Это действительно заставило меня почесать голову.
Во-первых, данные надежно сохранены хотя я потерял часы работы по миграции. Но результат того, что произошло, меня обеспокоил.
Я переносил резервный массив на старый сервер с объединительной платой SATA 2,5 дюйма. Диски 1 ТБ были слишком малы, поэтому я начал переходить на диски 2 ТБ - используя диски Seagate FireCuda 2,5 дюйма 2 ТБ, которые одновременно являются SSHD и SMR - мой первый взгляд на SMR дисках.
В ходе этого процесса пул ZFS бесследно исчез.
Хранение на этом массиве - резервные копии. Старая установка была Linux MD RAID-1, и я собирался перейти на зеркало ZFS при смене дисков.
Первым заменяемым диском был / dev / sdc.
Я использую целые диски для устройств ZFS (т.е. / dev / sdc, а не / dev / sdc1).
Процесс миграции заключался в (1) резервном копировании до трех внешних дисков, (2) поломке зеркала RAID, (3) удалении одного диска емкостью 1 ТБ, (4) установке первого SSHD, (5) создании пула ZFS, (6) скопировать данные, (7) проверить это, (8) остановить массив MD, (9) заменить второй диск, затем (10) отразить пул.
Но я так и не прошел 7. При перезагрузке сервера (тогда еще однодисковый) пул исчезнувший и я не могу найти его следов, несмотря на то, что записал в него 800 ГБ данных.
zdb -l / dev / sdc возвращает:
--------------------------------------------
LABEL 0
--------------------------------------------
failed to unpack label 0
--------------------------------------------
LABEL 1
--------------------------------------------
failed to unpack label 1
--------------------------------------------
LABEL 2
--------------------------------------------
failed to unpack label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to unpack label 3
Я попробовал создать бинарный дамп первого 1 МБ / dev / sdc. Вот что у меня получилось:
# dd if=/dev/sdc bs=1048576 count=1 | xxd
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
(...)
00fff60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fff70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fff80: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fff90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fffa0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fffb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fffc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fffd0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00fffe0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00ffff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
И только когда я закончу 1 ГБ нулей, я увижу какие-либо данные:
# dd if=/dev/sdc bs=1048576 count=1 skip=1032
(...)
0074fb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0074fc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0074fd0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0074fe0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0074ff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0075000: 7f4a d799 69ad bcac dd98 5393 afeb 2745 .J..i.....S...'E
0075010: 2d23 af2b fdd9 2a6d c950 dd8b 0c8f 268d -#.+..*m.P....&.
0075020: 146b 2174 5ddd a757 e49e 2dfa 9e06 d0fc .k!t]..W..-.....
0075030: dfda 1ee7 ac17 cb41 8246 a7de ff39 d362 .......A.F...9.b
0075040: 67a0 c1e1 7f9b 6a4a 6e45 e2e3 1726 93e2 g.....jJnE...&..
0075050: 8310 6f20 5644 2a2c 0609 1927 9c22 d676 ..o VD*,...'.".v
0075060: 5950 cae7 f14c 938b 39b9 041e 960e 871b YP...L..9.......
0075070: 7dc6 54eb 5ee4 8cc9 836f adde 4aba dc3b }.T.^....o..J..;
0075080: 49c7 db23 5d0f 557d 8f63 3e43 9c5e 59c4 I..#].U}.c>C.^Y.
(...)
/ dev / sdc не показывает ошибок SMART и отлично проходит тесты. Я не пытался записывать в него какие-либо данные с тех пор, как началась эта странность. Я определенно ищу нужный диск, поскольку он сообщает о его емкости как 2 ТБ, и это единственный установленный диск на 2 ТБ.
Кто-нибудь видел что-нибудь подобное раньше? Правильно ли я использую инструменты для обработки первых 1 Гбайт данных, которые каким-то образом были полностью обнулены? Может ли это быть объяснено неисправным флеш-кешем на диске SSHD или чем-то странным с зонами записи SMR?
Точка, где начинаются данные, кажется интересным числом (смещение от dd составляет 1048576x1032, затем 0x75000, которое выглядит круглым числом), но я не знаю, как это понять.
В качестве осложнения я начал эту работу в той же комнате, что и этот сервер, а сейчас я на расстоянии 4000 км на две недели, но, надеюсь, я смогу попросить кого-нибудь еще поменять диски, если это будет необходимо. Второй диск FireCuda еще предстоит развернуть.
правки: исправлена терминология, убраны опечатки