我有一台带有板载 LSI 卡和两个磁盘的 Sun T5220 服务器,它们位于 RAID 1 镜像中。数据现在并不重要,但我们有一个故障磁盘,并且正在尝试了解如何真正做到这一点,如果我们必须从故障中恢复。
最初的情况是这样的:
# raidctl -l c1t0d0 卷大小条带状态缓存 RAID 子尺寸级别 磁盘 -------------------------------------------------- -------------- c1t0d0 136.6GN/A 降级关闭 RAID1 0.1.0 136.6G 好 不适用 136.6G 失败
0.0.0 磁盘上的绿灯。查找/点亮 0.1.0 磁盘。所以我知道我的驱动器坏了,它是哪一个。服务器仍然明显启动。
首先,我们尝试放入一个新磁盘。该磁盘来自未知来源。Format 看不到它, cfgadm -al 看不到它,所以 raidctl -l 看不到它。我认为这很糟糕。我们从另一个备用服务器尝试了另一个磁盘:
# raidctl -c c1t1d0 c1t0d0(其中 t1 是我的好磁盘 - 0.1.0) 磁盘已占用空间。
不同的语法选项也不会改变任何东西:
# raidctl -C "0.1.0 0.0.0" -r 1 1 磁盘已占用空间。 # raidctl -C "0.1.0 0.0.0" 1 磁盘已占用空间。
好的。这可能是因为备用服务器的磁盘上已经有 RAID 1。啊哈,我可以在 raidctl 中看到另一个卷:
#raidctl -l 控制器:1 卷:c1t1d0(这是我服务器的根镜像) 卷:c1t132d0(这是国外根镜像) 磁盘:0.0.0 磁盘:0.1.0 ...
没问题。我不关心数据,我只是删除了外来镜像。
# raidctl -d c1t132d0 (关于数据删除的警告,但它有效)
在这一点上,/usr/bin/ 二进制文件吓坏了。我的意思是, ls -l /usr/bin/ 显示 1.4k 但cat /usr/bin/which
给了我一个换行符。太好了,我刚刚吹走了二进制文件(即:内存中的二进制文件仍然有效)?我弹开盒子。一切都恢复正常。哇。无论如何,回到重建我的镜子。
#raidctl -l 控制器:1 卷:c1t1d0(这是我服务器的根镜像) 磁盘:0.0.0 磁盘:0.1.0 ...
男人说你可以删除一面镜子,它会分裂它。好的,我将删除根镜像。
# raidctl -d c1t0d0 正在使用的数组。(这可能不是确切的错误)
我用谷歌搜索了这个,发现在从镜像启动时你当然不能这样做(即使使用-f)。好的。我boot cdrom -s
删除了卷。
现在我有一个磁盘,在 c1t1d0(我的数据所在的位置)上有一个“LSI-Logical-Volume”类型,在 c1t0d0(我试图镜像到)上有一个全新的“Hitachi 146GB”:
(从 CD 启动) # raidctl -c c1t1d0 c1t0d0(man 说它是镜像的源目标) 非法阵列布局。 # raidctl -C "0.1.0 0.0.0" -r 1 1(每个人的替代语法) 非法阵列布局。 # raidctl -C "0.1.0 0.0.0" 1(假设为 raid1,没有帮助) 非法阵列布局。
相同大小的磁盘,相同的制造商,但我确实删除了卷,而不是放入空白磁盘并等待它重新同步。也许这是一个严重的错误。我尝试将我的好磁盘的格式类型选择为普通的 146gb 磁盘,但它重置了分区表,我很确定这会擦除数据(如果这是生产则不好)。
我是骨头吗?有人有打破和重新同步镜像的经验吗?Google 上没有关于“非法数组布局”的内容,所以这是我对搜索之神的贡献。