On 6/28/23 02:03, Theodore Ts'o wrote:
Unfortunately, (a) there is no place where the fact that the file system was created with this mkfs option is recorded in the superblock, and (b) once the file system starts getting used, the blocks where the metadata would need to be allocated at the start of the disk will get used for directory and data blocks.
Isn't resize2fs already capable of migrating directory and data blocks away? According to the comments at the beginning of resize2fs.c, I mean.
OK, so I think what you're trying to do is to create a RAID0 device where the first part of the md raid device is stored on SSD, and after that there would be one or more HDD devices. Is that right?
More or less. Using LVM and having the first extents of the LV on a fast PV and all the others on a slow PV.
In theory, it would be possible to add a file system extension where the first portion of the MD device is not allowed to be used for normal block allocations[...]
I would not aim to a so complex way. My hope was that one of the two was possible: 1. reserve the bitmaps and inode table space since the beginning (with mke2fs option resize, for example) 2. push things out of the way when the expansion is done I could attempt to code something to do 2., but I would either have to study resize2fs code, which is not trivial, or write something from scratch, based only on the layout docs, which would be also complex and not easily mergeable in resize2fs. Other options may have been: 3. do not add new inodes when expanding (impossible by design, right?) 4. have an offline way (custom tool, or detecting conflicting files and temporarily removing them, ...) to free the needed blocks At the moment the best option I have is to continue doing what I've been doing for years already: use dumpe2fs and debugfs to discover which bg contain metadata+journal and selectively use "pvmove" to migrate those extents (PE) to the fast PV. Automatable, but still messy. Discovering "packed_meta_blocks" turned out not a so great finding as I was hoping, if then you can't resize. Thanks. -- Roberto Ragusa mail at robertoragusa.it