this post was submitted on 22 Sep 2023
88 points (98.9% liked)

Linux

48061 readers
832 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
you are viewing a single comment's thread
view the rest of the comments
[–] sxan@midwest.social 7 points 1 year ago (2 children)

I just read through the documentation, and didn't see any mention (in particular, on the mount options page) of wear leveling. btrfs makes an effort to use SSDs well; how does bcachefs fare in this respect?

[–] d3Xt3r@lemmy.nz 16 points 1 year ago (1 children)

You're right, there isn't any special effort put towards wear leveling, but the bcache FAQ (NOT bcachefs mind you, but the same should be applicable) mentions this:

#I thought SSDs wore out quickly if you did regular writes to them?

For older SSDs, that was true. Newer SSDs will recognize that a given block is getting heavy writes and will actually swap a heavily written block with a more lightly written block (moving the data transparently and using internal pointers to keep track of the move). This is called "wear leveling" and its use can take a drive whose individual blocks might have tens of thousands of writes before failure and produce an SSD that can support up to millions of writes in a given location by moving data around underneath. Also, keep in mind that unlike (most) standard filesystems that treat SSDs as random access devices that can take any number of writes of any size, bcache understands the write issues in SSDs and tunes its write algorithms to minimize the number of erasures needed. As a side note, what we think of as ''write'' performance problems on SSDs are largely ''erase'' performance problems.

[–] sxan@midwest.social 2 points 1 year ago

Thank you for finding that!

[–] blashork@hexbear.net 3 points 1 year ago* (last edited 1 year ago)

bcache is inherently designed to be an ssd cache that sits in front of slower bigger disks. Bcachefs is an extension of this into it's own filesystem. iirc the words of the bcache creator were: 'we've implemented 80% of a filesystem here, might as well go the rest of the way'. So how much it thrashes a disk is based on what position you give it in the architecture. The caching ssds are going to be used heavily, taking advantage of their fast random access to manage all random accesses, while sequential operations generally go to the slower disk that's set as the background device. The background disks will tend to be accessed less.

So yeah, it's based on what kind of disk and position in the bcache, and what caching options you enable. If you want to look into it further, bcache is fs agnostic, so if you can find some tests that have been done for bcache enabled for classic linux filesystems, like ext4 and xfs, that include hardware degradation info, you'll probably end up with similar usage and hardware wear with the actual bcachefs.