On Sun, 2022-01-09 at 07:55 +0800, Qu Wenruo wrote: > On 2022/1/9 04:29, Lukas Straub wrote: > > But there is a even simpler solution for btrfs: It could just not touch > > stripes that already contain data. > > That would waste a lot of space, if the fs is fragemented. > > Or we have to write into data stripes when free space is low. > > That's why I'm trying to implement a PPL-like journal for btrfs RAID56. PPL writes the P/Q of the unmodified chunks from the stripe, doesn't it? An alternative in a true file system which can do its own block allocation is to just calculate the P/Q of the final stripe after it's been modified, and write those (and) the updated data out to newly- allocated blocks instead of overwriting the original. Then the final step is to free the original data blocks and P/Q. This means that your RAID stripes no longer have a fixed topology; you need metadata to be able to *find* the component data and P/Q chunks... it ends up being non-trivial, but it has attractive properties if we can work it out.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature