July 29, 20241 yr All, I have a cache pool of 2x1TB SSDs using btrfs and I was trying to swap to 2x2TB NVME drives. I have all four drives in the chassis and did a pre-clear on the new drives. I tried to follow the instructions here: As soon as I swapped the secondary drive in the cache pool and restarted the array it started giving me the error "unmountable: unsupported or no file system" on both cache drives. I tried switching the cache back to the original secondary in the original order in the cache pool, but now I am still getting the same error. Even when I remove the secondary drive completely I get the same error. I tried to attempt a scrub, but it is grayed out and says the array must be started (even when it is). A check with read-only gives me the below error: bad tree block 1242422575104, bytenr mismatch, want=1242422575104, have=0 ERROR: cannot read chunk root ERROR: cannot open file system Opening filesystem to check... warning, device 2 is missing Edited July 29, 20241 yr by atlasalex Adding details
July 29, 20241 yr Author tower-diagnostics-20240729-1204.zip root@Tower:~# btrfs fi show warning, device 2 is missing ERROR: cannot read chunk root Label: none uuid: aa9fb921-7e3f-427d-8bfe-43753c232a81 Total devices 2 FS bytes used 373.90GiB devid 1 size 931.51GiB used 639.00GiB path /dev/sde1 *** Some devices missing
July 29, 20241 yr Community Expert Type sfdisk /dev/sdd then type 2048 and hit enter, post the results
July 29, 20241 yr Author root@Tower:~# sfdisk /dev/sdd Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: Samsung SSD 860 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes sfdisk is going to create a new 'dos' disk label. Use 'label: <name>' before you define a first partition to override the default. Type 'help' to get more information. >>> 2048 Created a new DOS disklabel with disk identifier 0x820aaa46. Created a new partition 1 of type 'Linux' and of size 931.5 GiB. /dev/sdd1 : 2048 1953525167 (931.5G) Linux Edited July 29, 20241 yr by atlasalex added 2048 output
July 29, 20241 yr Community Expert Hit CTR + C to abort and repeat but with 64 instead of 2048, then output again
July 29, 20241 yr Author root@Tower:~# sfdisk /dev/sdd Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: Samsung SSD 860 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes sfdisk is going to create a new 'dos' disk label. Use 'label: <name>' before you define a first partition to override the default. Type 'help' to get more information. >>> 64 Created a new DOS disklabel with disk identifier 0xf405de7a. Created a new partition 1 of type 'Linux' and of size 931.5 GiB. Partition #1 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o:
July 29, 20241 yr Community Expert Type N to keep the signature, then type w and hit enter, then the output again: 38 minutes ago, JorgeB said: btrfs fi show
July 29, 20241 yr Author Do you want to remove the signature? [Y]es/[N]o: n /dev/sdd1 : 64 1953525167 (931.5G) Linux /dev/sdd2: w unsupported command root@Tower:~# btrfs fi show warning, device 2 is missing ERROR: cannot read chunk root Label: none uuid: aa9fb921-7e3f-427d-8bfe-43753c232a81 Total devices 2 FS bytes used 373.90GiB devid 1 size 931.51GiB used 639.00GiB path /dev/sde1 *** Some devices missing I may have messed up as I missed your initial instruction to hit "w" first. So I repeated your instruction but now it is on sdd2. See below for full steps: >>> 64 Created a new DOS disklabel with disk identifier 0xf405de7a. Created a new partition 1 of type 'Linux' and of size 931.5 GiB. Partition #1 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o: n /dev/sdd1 : 64 1953525167 (931.5G) Linux /dev/sdd2: btrfs fi show unsupported command /dev/sdd2: ^C unsupported command /dev/sdd2: ^C root@Tower:~# btrfs fi show warning, device 2 is missing ERROR: cannot read chunk root Label: none uuid: aa9fb921-7e3f-427d-8bfe-43753c232a81 Total devices 2 FS bytes used 373.90GiB devid 1 size 931.51GiB used 639.00GiB path /dev/sde1 *** Some devices missing root@Tower:~# sfdisk /dev/sdd Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: Samsung SSD 860 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes sfdisk is going to create a new 'dos' disk label. Use 'label: <name>' before you define a first partition to override the default. Type 'help' to get more information. >>> 64 Created a new DOS disklabel with disk identifier 0x6a24e7da. Created a new partition 1 of type 'Linux' and of size 931.5 GiB. Partition #1 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o: n /dev/sdd1 : 64 1953525167 (931.5G) Linux /dev/sdd2: w unsupported command /dev/sdd2: Edited July 29, 20241 yr by atlasalex
July 29, 20241 yr Community Expert Sorry, it's not w, repeat again with 64 and then type write in the end
July 29, 20241 yr Author >>> 64 Created a new DOS disklabel with disk identifier 0x6a24e7da. Created a new partition 1 of type 'Linux' and of size 931.5 GiB. Partition #1 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o: n /dev/sdd1 : 64 1953525167 (931.5G) Linux /dev/sdd2: w unsupported command /dev/sdd2: write New situation: Disklabel type: dos Disk identifier: 0x6a24e7da Device Boot Start End Sectors Size Id Type /dev/sdd1 64 1953525167 1953525104 931.5G 83 Linux The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. root@Tower:~# btrfs fi show Label: none uuid: aa9fb921-7e3f-427d-8bfe-43753c232a81 Total devices 2 FS bytes used 373.90GiB devid 1 size 931.51GiB used 639.00GiB path /dev/sde1 devid 2 size 931.51GiB used 639.03GiB path /dev/sdd1
July 29, 20241 yr Community Expert Solution Now unassign all devices form the cache pool, start array, stop array, assign those two devices (sde and sdd), start the array and post new diags.
July 29, 20241 yr Author to confirm I am going to: stop array unassign both cache drives (so I now have no drives in the pool) start the array stop the array assign both original devices to the cache pool again start the array post diags correct?
July 29, 20241 yr Author OMG, I think cache pool is good now. Diags below. Can you walk me through what we did here? Then also how I should proceed to upgrade to the NVME drives? I'm buying you a beer for sure. tower-diagnostics-20240729-1321.zip
July 29, 20241 yr Community Expert The pool is using single metadata, so it's not redundant, possibly it's a very old pool, IIRC there was a bug that caused that a long time ago. balance the pool to raid1 and post new diags.
July 29, 20241 yr Author Scrub complete with no issues. Should I now proceed to swap one disk to the new NVME?
July 29, 20241 yr Author Any idea how long the btrfs operation should take? It's been running for hours now and I only have like 300GB data on the drives.... root@Tower:~# btrfs fi show Label: none uuid: aa9fb921-7e3f-427d-8bfe-43753c232a81 Total devices 3 FS bytes used 353.46GiB devid 1 size 931.51GiB used 354.03GiB path /dev/sde1 devid 2 size 0 used 0 path /dev/sdd1 MISSING devid 3 size 1.86TiB used 326.03GiB path /dev/nvme1n1p1 Label: none uuid: 799888ac-cff8-4a2e-9b18-58cab1dac3d7 Total devices 1 FS bytes used 17.73GiB devid 1 size 200.00GiB used 40.02GiB path /dev/loop2 Label: none uuid: 2ba05aca-92aa-42ac-8a73-daf2d1866102 Total devices 1 FS bytes used 552.00KiB devid 1 size 1.00GiB used 126.38MiB path /dev/loop3
July 30, 20241 yr Author It did eventually finish and I was able to do the same to the second drive and let it run over night. My (hopefully last) question is, does this seem like an excessive amount of reads/writes for brand new drives?? tower-diagnostics-20240730-0813.zip
July 30, 20241 yr Community Expert Balance causes a lot of writes, since all data is re-written, pool looks OK, so everything should be fine.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.