NonWonderDog
Cadet
- Joined
- Sep 8, 2020
- Messages
- 2
So I was upgrading the array in my home server from 6 drives in zraid2 to 8 drives. I replicated everything to a 16 TB external drive, recreated my pool, and started another replication task to move from the external back to my pool. (I have partial backups containing everything important, but I only had one full copy during all this. The only files potentially lost were downloaded/recorded media.)
Overnight I was getting slow I/O warnings over email and the external was sitting at 60 °C. This seemed not-so-good, so I stood the enclosure up on one side (it has feet on the short edge, so this is how the cooling was designed) and it immediately cooled by 5 degrees.
And then of course I accidentally tipped it on its side 20 minutes later. And it head crashed. No more spinup. No more data. (This is pretty poor shock resistance for an external drive, but then again I knew it was just an Exos X16 stuffed in an enclosure.) I was able to get it to spin up again with the freezer trick, but all it did was make some godawful scratching noises before stopping. It's probably toast.
But before that happened it had transferred all but about 1.2 TB of data to my storage pool. Several datasets fully transferred and are fine, but a big chunk of data is in one 5.2 TB dataset (which should be 6.4 TB, I think).
Even though it shows as 5.21 TB, there are no files. Is there anything I can do to recover this and put some filenames to the partially-transferred dataset?
I don't really understand how zfs is structured physically or where metadata is stored in relation to data. If replication is block-by-block, did it simply fail before it copied any metadata and all my files are undifferentiated compressed gibberish, or has it probably copied enough metadata to reconstruct something but is failing somewhere in the process? In short, is there any hope?
"zpool status" reports "errors: No known data errors."
Overnight I was getting slow I/O warnings over email and the external was sitting at 60 °C. This seemed not-so-good, so I stood the enclosure up on one side (it has feet on the short edge, so this is how the cooling was designed) and it immediately cooled by 5 degrees.
And then of course I accidentally tipped it on its side 20 minutes later. And it head crashed. No more spinup. No more data. (This is pretty poor shock resistance for an external drive, but then again I knew it was just an Exos X16 stuffed in an enclosure.) I was able to get it to spin up again with the freezer trick, but all it did was make some godawful scratching noises before stopping. It's probably toast.
But before that happened it had transferred all but about 1.2 TB of data to my storage pool. Several datasets fully transferred and are fine, but a big chunk of data is in one 5.2 TB dataset (which should be 6.4 TB, I think).
Even though it shows as 5.21 TB, there are no files. Is there anything I can do to recover this and put some filenames to the partially-transferred dataset?
I don't really understand how zfs is structured physically or where metadata is stored in relation to data. If replication is block-by-block, did it simply fail before it copied any metadata and all my files are undifferentiated compressed gibberish, or has it probably copied enough metadata to reconstruct something but is failing somewhere in the process? In short, is there any hope?
"zpool status" reports "errors: No known data errors."