我有一个带有板载LSI卡的Sun T5220服务器和两个位于RAID 1镜像的磁盘。 数据现在并不重要,但我们有一个失败的磁盘,并试图了解如何做到这一点,如果我们不得不从失败中恢复。
最初的情况是这样的:
#raidctl -l c1t0d0
卷大小条带状态cachingRAID
子尺寸级别
磁盘
-------------------------------------------------- --------------
c1t0d0 136.6GN / A降级RAID1
0.1.0 136.6G好
N / A 136.6G失败
绿灯在0.0.0磁盘上。 查找/点亮0.1.0磁盘。 所以我知道我有一个坏的驱动器,它是哪一个。 服务器仍然明显启动。
首先,我们尝试了一个新的磁盘。这个磁盘来自一个未知的来源。 格式不会看到它,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 / binaries吓坏了。 我的意思是,ls -l / usr / bin /显示1.4k,但是cat /usr/bin/which给了我一个换行符。 太棒了,我只是吹走了二进制文件(例如:mem中的二进制文件仍在工作)? 我反弹了箱子。 这一切都恢复正常。 WTF。 无论如何,回到重新创build我的镜子。
#raidctl -l
控制器:1
卷:c1t1d0(这是我的服务器的根镜像)
磁盘:0.0.0
磁盘:0.1.0
...
男人说,你可以删除一个镜像,它会分裂它。 好的,我将删除根镜像。
#raidctl -d c1t0d0 arrays在使用中。 (这可能不是确切的错误)
我GOOGLE了这一点,发现当然,你不能这样做(即使-f),而从镜子上启动。 好。 我boot cdrom -s并删除了音量。
现在我有一个磁盘,在c1t1d0(我的数据是)上有一个“LSI-Logical-Volume”types,在c1t0d0上有一个全新的“Hitachi 146GB”(我想要镜像):
(从光盘启动) #raidctl -c c1t1d0 c1t0d0(man表示它是镜像的源目标) 非法数组布局。 #raidctl -C“0.1.0 0.0.0”-r 1 1(每个人的alt语法) 非法数组布局。 #raidctl -C“0.1.0 0.0.0”1(假设raid1,没有帮助) 非法数组布局。
相同大小的磁盘,相同的制造商,但我删除了卷,而不是投入空白磁盘,并等待它重新同步。 也许这是一个严重的错误。 我尝试select格式为我的好磁盘是一个普通的146GB磁盘,但它重置分区表,我敢肯定会擦除数据(坏,如果这是生产)。
我骨头? 任何人都有经验打破和重新镜像? Google上没有关于“非法数组布局”的内容,所以这里是我对search神的贡献。
事实certificate,我无法find答案。 但是我find了一个解决方法和一些很好的信息。 首先,这是在Solaris 10的10/08(U6)。我启动了10/09启动CD(U8),发现U8上有一个raidctl的bug。 U8失败,出现“Corrupt labe – bad geometry”错误。 即使当我完全擦除磁盘时,我无法使用U8引导光盘重新创build镜像,但在U7上(大概是U6)完全相同的命令工作。 所以只有一点版本警告。
解决方法的要点是这样的(replace你的磁盘,path等)。
prtvtoc /dev/rdsk/c1t0d0s2 > /mnt/space/partitions.txt ufsdump 0f - /dev/rdsk/c1t0d0s0 > /mnt/space/root_c1t1d0s0.dmp ufsdump 0f - /dev/rdsk/c1t1d0s4 > /mnt/space/var_c1t1d0s4.dmp raidctl -c c1t0d0 c1t1d0警告:这会擦除两个驱动器。 raidctl -l查找你的卷(假设这些指令是c1t1d0) newfs /dev/rdsk/c1t1d0s0 (通过s7,显然跳过s2) mkdir /tmp/s0 mount /dev/rdsk/ctt1d0s0 /tmp/s0 cd /tmp/s0 cat /mnt/space/root_c1t1d0s0.dmp | ufsrestore xf - cat /mnt/space/root_c1t1d0s0.dmp | ufsrestore xf - (回答是根目录权限) umount /tmp/s0 installboot platform/SUNW,SPARC-Enterprise-T5220/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0 probe-scei-all show-disks (select磁盘) nvalias disk Ctrl-Y boot disk 如果你想在所有这些中切换到disksuite: – 使用上面的ufsdump进行备份 – 删除你的硬件raid定义 – 将分区恢复到第一个磁盘,newfs第一个磁盘上的分区 – ufsrestore到第一个磁盘,做一个理智引导 – 然后启动常规disksuite安装。 如果您尝试一次性将光盘放在CD上,则不会执行此操作,因为元服务没有运行。 你会得到这个错误: metadb: network/rpc/meta:default: failed to enable/disable SVM service做元命令不会伤害,他们只是不会坚持。 IE浏览器:当你重新启动你的硬盘时,metastat会说“找不到元数据库”。