这个真的让我挠了挠头。
首先, 数据安全地备份,虽然我已经失去了数小时的迁移工作。 但是发生的事情的结果让我感到担忧。
我正在使用2.5英寸SATA背板的旧服务器上迁移备份arrays,1TB光盘太小,所以我已经开始使用希捷FireCuda 2.5“2TB光盘(它们都是SSHD和SMR)切换到2TB光盘 – 我的第一眼在SMR光盘。
在这一过程中,ZFS池已经消失无踪了。
这个arrays上的存储是备份。 旧的设置是Linux MD RAID-1,而我正在更换光盘时将迁移到ZFS镜像。
要replace的第一张光盘是/ dev / sdc。
我正在使用ZFS设备的整个光盘(即/ dev / sdc not / dev / sdc1)。
迁移过程是(1)备份三个外部光盘,(2)破坏RAID镜像,(3)删除一个1TB光盘,(4)安装第一个SSHD,(5)创buildZFS池,(6)复制数据,(7)validation它,(8)停止MDarrays,(9)replace第二个盘,然后(10)镜像池。
但我从来没有过去7.在重新启动服务器,(然后仍然是单一光盘)池消失了 ,我不能find它的痕迹,尽pipe写了800GB的数据。
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
我尝试了/ dev / sdc的第一个1MB的二进制转储。 这是我得到的:
# 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 ................
直到我看到任何types的数据之前,我已经超过了1GB的零。
# 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 -#.+..*mP...&. 0075020: 146b 2174 5ddd a757 e49e 2dfa 9e06 d0fc .k!t]..W..-..... 0075030: dfda 1ee7 ac17 cb41 8246 a7de ff39 d362 .......AF..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错误,它通过testing就好了。 自从这个怪异开始以来,我没有试图写任何数据。 我一定在看正确的光盘,因为它报告的容量是2TB,而且是唯一安装的2TB光盘。
有没有人见过这样的事情? 我是否使用正确的工具来计算出第一个1GB和1位的数据已经完全清零了? 这可以解释为SSHD光盘上的错误闪存caching或SMR写区域奇怪的东西?
数据开始的那一点似乎是一个有趣的数字(从dd偏移1048576×1032然后0x75000这看起来是一个整数),但我不知道如何做到这一点。
作为一个复杂的事情,当我在这个服务器的同一个房间里开始这个工作的时候,我现在距离4000公里的路程已经有两个星期了,但是如果需要的话,我希望可以让别人来交换光盘。 第二个FireCuda光盘尚未打开。
编辑:更正术语,清理错别字