this post was submitted on 06 Nov 2023
29 points (91.4% liked)

Linux

48248 readers
842 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I have 500gb SSD and need to basically uninstall Elden Ring and Dark Souls 3 to install Baldur's Gate 3. I want to buy new SSD, but my money is a bit tight right now as I'm saving for my degree's tuition fee.

I'm thinking of buying 3x500GB spinning HDD that will cost me around $20. I know it wont be as fast as SSD, but I read/watched about RAID, and saw amazing result. Around 400-500MBPs, which should be more than enough for gaming, imo. If I were to buy the same amount of storage but SSD, it will cost me $100.

I dont really need redundancy, as all of my personal documents are backed up in my server and I have separate disk just for my data archieve. It will only be used to game and game only.

Do you think that my idea makes sense? Is it does..., I want to ask another questions.

I knew I wanted to use RAID 0, but after I read arch wiki, it says that RAID 5 is superior. Should I use BTRFS, EXT4, ZFS, or F2FS? What kernel or module should I use?

top 23 comments
sorted by: hot top controversial new old
[–] NeoNachtwaechter 14 points 1 year ago (1 children)

Ext4 and RAID0 for your intended use.

[–] [email protected] 2 points 1 year ago
[–] [email protected] 11 points 1 year ago (2 children)

Raid 0 on 3x500GB triples your failure rate (especially important on older drives, as I presume these are), and still won't get anywhere near an SSD in speed.

You could just mount the 3 drives separately and have storage that way, which means if one fails you've still got the data on the other two.. it'd still suck but not as bad as losing everything.

If it was me I'd wait until I could afford the SSD.. it'll be many times faster and newer.

[–] [email protected] 2 points 1 year ago

I mean it's worth a shot. OP knows that much. If it works out, it'd tide them over until they get a new ssd

[–] [email protected] 1 points 1 year ago (3 children)

I will only use it for game data. I highly value my personal data so I wont put anything remote to worthy in it, I have nas, separate drive, and even Google Drive. If it fails, the worst thing that will happen is I need to redownload all my games from Steam. It will be a bummer, but I think I should be able to restore the first game in matter of hours. My save data will be saved on Steam anyway.

Yeah, single hdd is only around 150mbps, not bad, but I saw 4 hdd can get to 600mbps, which is in realm of sata ssd. I'm just thinking to giving a shot, beside it's only $20. If one fail, I still have 1tb.

[–] SuperIce 17 points 1 year ago* (last edited 1 year ago) (2 children)

Sequential speeds aren't the only metric for storage performance though. Random reads are quite important and the HDDs will literally be hundreds of times slower than an SSD for random reads. It may be fine for older games if you're fine with waiting for a minute at each loading screen, but some modern games now require SSDs and that number will likely skyrocket soon.

[–] [email protected] 5 points 1 year ago (2 children)

agreed. games read a lot of random data. performance won't be nearly as 'good' as op expects.

the difference of $50 matters that much for op, i think that not spending anything would be the more prudent choice.

that said, if it were me i'd raid-0 two of them and keep the third as a single drop-in replacement for when that array dies; containing a full backup of the array's contents kept up-to-date with every major patch the games on it gets.

[–] [email protected] 3 points 1 year ago

In that case a 3 drive RAID-5 is what you want. One drive dies you lose nothing but redundancy. You still get two drives with of data along with parity checking. It isn’t quite as fast as a zero, depending on hardware (most will max the HDD speed before being bottlenecks). Nothing will be as fast for random reads as an SSD or NVME, but you get the storage and piece of mind.

[–] [email protected] 1 points 1 year ago

Yeah, I'm mega broke right now, lol. For reference, $50 for average people is around 8 days worth of salary here. And I'm unfortunately, an average people.

[–] [email protected] 1 points 1 year ago

This is what I do. I have a massive old-school hard drive and I use it for things like Rimworld or various indie games. It's honestly manageable for some more-demanding stuff, but if I try to run anything intensive, I might as well not play it, at all. The old-school drive is great for anything Steamdeck level or below, basically.

[–] Quazatron 1 points 1 year ago (1 children)

You can have separate disks attached to your Steam installation. You don't need RAID at all for that.

[–] [email protected] 1 points 1 year ago (1 children)

That RAID would be the separate disks. I surely wont use it to be my / or /home disks, it's too risky. 3x500mb should give me theoretically 300-400mbps of sequential read/write.

[–] Quazatron 1 points 1 year ago

If you really need the speed, sure, go ahead, but I suspect you won't actually get that speed unless on very large sequential files.

[–] [email protected] 1 points 1 year ago

Are you accounting for stuff like SATA cables and cradle mounts for the HDDs in your cost calculation?

[–] [email protected] 11 points 1 year ago* (last edited 1 year ago) (1 children)

As others have mentioned, the sequential speeds in RAID 0/5 won't really help you in gaming. What you might see at best is faster loading times, but that's really about it.

One option which no one else has mentioned is using setting up tiered storage using bcachefs - where your SSD acts like a cache drive, which would contain frequently read aka "hot" data, and the rest of the data would be on your spinning disks. This way, you'd be making the most of your limited SSD space, whilst still taking advantage of the large storage provided by the spinning disks.

The advantage of bcachefs is that all your drives can be part of the same pool and it'll all be transparent to your OS/programs, and all your data is striped like a RAID 10 array, so you can replace your drives in the future without any issues, or any major config changes. Like if you get a faster NVMe drive in the future, you can set that as your "hot" (promote) drive, your SSD as the foreground drive and your spinning disk pool as the background ones and your data will automagically migrate.

Have a quick read of the manual, you'll see that it's actually fairly easy to set up and operate: https://bcachefs.org/bcachefs-principles-of-operation.pdf

The main drawback right now (for you) is that it's not yet part of the kernel. The good news is that it's gonna be in the next kernel (6.7), so you can either wait for it, or use a third-party kernel with bcachefs already compiled in it (I believe linux-tkg is one of them).

[–] [email protected] 3 points 1 year ago (1 children)

Now THIS is what I need.

I think I need to change my plan abit. What do you think: if I buy 2x1TB, use my sata ssd as foreground, and use 128gb nvme drive as promote drive. I still do not understand the difference between background, foreground, ans promote tho. I went back and forth both reading the guide.pdf and archwiki. Still have no idea how they actually work. It's bleeding edge, as no one beside the developer talking about it on youtube.

However, I think I'm gonna use both linux-tkg linux-git as they are available on the aur. Tkg is the Garuda used, no? It is on chaotic-aur, so I assumed so.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Foreground targets are where writes initially go. Data is moved from foreground to background targets while idle or as needed. Data which is read from the background targets is moved to promote targets.

If you set your NVMe as a promote target, SSD as foreground and your HDDs as background targets, all writes would first go to your SSD, then get copied to your HDD during idle, and finally the copy of the data on your SSD will then be marked as a cached copy. In case your SSD becomes full, then it'll store the data on other drives. As for the promote targets, any time you read data from either the SSD or HDD that wasn't on the NVMe, it would get cached to it, so the next read will be faster.

The main point of the foreground vs promote is to prioritize write vs read speeds. If you value faster writes, then set your NVMe as foreground. If you value faster reads, then set your NVMe as promote. Of course, you can also set your NVMe as both foreground and promote to benefit from both faster reads and writes.

But since you plan to introduce an SSD in the mix, you can create a single group for your NVMe + SSD, and a second group for the HDDs, and set your SSD group to foreground + promote, which will simplify things.

The Arch wiki illustrates this well:

A recommended configuration is to use an ssd group for the foreground and promote, and an hdd group for the background (a writeback cache).

Modified example to your scenario:

# bcachefs format \
    --label=ssd.nvme1 /dev/nvme0n1 \
    --label=ssd.ssd1 /dev/sda \
    --label=hdd.hdd1 /dev/sdb \
    --label=hdd.hdd2 /dev/sdc \
    --replicas=2 \
    --foreground_target=ssd \
    --promote_target=ssd \
    --background_target=hdd 

If you're concerned about chucking both the SSD and NVMe in the same group, no need to worry cause bcachefs will automatically prioritize reads from drives with lower latency as mentioned in the wiki.

If they are different speeds, reads for replicated data will be sent to the ones with the lowest IO latency.

But regardless of which setup you go for, main thing to remember is to use the NVMe (or the group containing the NVMe) as the promote target, as that will be your primary cache drive.

[–] [email protected] 9 points 1 year ago

Im sorry, but, for things like games, raid isn't really going to give you a perceivable speed increase. Most games today get the most use from the random read, where raid does best is with things like sequencial writes (large movies, etc).

Raid0 will add to your throughput, but your seek times will still be the same regardless of how many drives you add to it.

Here in the us, a 2tb ssd is less than 50$. Im sorry its not the same where you are at.

I know the others suggest raid0, but since youre doing three drives im gonna suggest raid 5 instead. You don't lose out on read performance compared to raid0, just write speeds. More importantly, one drive failing wont actually break anything.

[–] [email protected] 5 points 1 year ago (1 children)

Just out of curiosity, where do you live and what hardware are you using? I can buy 2 TB nvme ssds for around $75 usd.

Also as someone mentioned, those hard drives may be used already and could fail. If you do want to try it I'd say go ahead.

[–] [email protected] 4 points 1 year ago

I'm an Indonesian, and 1tb of nvme here, used, is $70.

[–] [email protected] 2 points 1 year ago (1 children)

Sorry for not being able to offer insightful feedback. This caused me to look up current prices for 500GB spinning disks and holy shit. Something that used to be barely attainable (for me, then) is so cheap now that I said, “holy shit,” out loud.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago)

Holy shit.. 1Tb drives too..

If only I had a use for them :/

[–] [email protected] 0 points 1 year ago

So this is my setup, and it's pretty cost effective. I have two 2Tb HDDs that are striped and one 500Gb SSD that's alone. The games I play the most live on my SSD, any games I'm not really playing live on the HDD. Then I just move my games from one to another. I didn't even have the second HDD for the longest time. I don't bother with using the SSD as a cache anymore. There is no advantage in gameplay to striping a game, however updates and moves are faster.