《NetBSD指南-16.3.10.增加Disk0/wd0到RAID》
发表于 : 2010-03-05 12:02
现在我们将把Disk0/wd0作为组件添加到RAID中. 这将破坏原来的文件系统结构。在i386上, MBR的disklabel分区不会改变(记住不管怎样我们把wd0的label拷贝到了wd1) , 因此没有必要清空Disk0/wd0。但是, 我们需要重新label Disk0/wd0,让它和Disk1/wd1具有完全相同的NetBSD disklabel分区布局。然后,我们把Disk0/wd0设置为 "热备用" 加到RAID组并为所有的RAID设备启动奇偶校验重建过程, 真正地将Disk0/wd0带进 RAID-1 组,并且"同步"两个磁盘。
最后的理智的检查,你应该使用 diff(1) 来确保Disk0/wd0 和 Disk1/wd1 两者的disklabel完全匹配。你应该备份这些文件以防出现任何紧急情况。
一旦你确认后, 将Disk0/wd0加为一个备用组件, 并开始重建:
重建消耗的时间依赖于你的硬件的速度, 长短不一。 你也许想从另一个终端上观察它:
完成重建后, 两个磁盘全应该是 “最优化的”.
当重建构成结束后,我们需要在Disk0/wd0上安装引导装载程序. 在i386上, 安装引导加载程序到 /dev/rwd0a:
在sparc64上:
最终, 在使用前最后重新启动一次计算机。这是为了将Disk0/wd0从 "used_spare" 状态迁移到 "Component0" 以达到状态 "最优化". 请参考下一小节的关于每次启动后清空奇偶校验的说明。
代码: 全选
# disklabel -r wd1 > /tmp/disklabel.wd1
# disklabel -R -r wd0 /tmp/disklabel.wd1
代码: 全选
# disklabel -r wd0 > /tmp/disklabel.wd0
# disklabel -r wd1 > /tmp/disklabel.wd1
# diff /tmp/disklabel.wd0 /tmp/disklabel.wd1
# fdisk /dev/rwd0 > /tmp/fdisk.wd0
# fdisk /dev/rwd1 > /tmp/fdisk.wd1
# diff /tmp/fdisk.wd0 /tmp/fdisk.wd1
# mkdir /root/RFbackup
# cp -p /tmp/{disklabel,fdisk}* /root/RFbackup
代码: 全选
# raidctl -v -a /dev/wd0a raid0
/netbsd: Warning: truncating spare disk /dev/wd0a to 241254528 blocks
# raidctl -v -s raid0
Components:
component0: failed
/dev/wd1a: optimal
Spares:
/dev/wd0a: spare
[...snip...]
# raidctl -F component0 raid0
RECON: initiating reconstruction on col 0 -> spare at col 2
11% |**** | ETA: 04:26 \
代码: 全选
# raidctl -S raid0
Reconstruction is 0% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.
Reconstruction status:
17% |****** | ETA: 03:08 -
代码: 全选
# tail -f /var/log/messages
raid0: Reconstruction of disk at col 0 completed
raid0: Recon time was 1290.625033 seconds, accumulated XOR time was 0 us (0.000000)
raid0: (start time 1093407069 sec 145393 usec, end time 1093408359 sec 770426 usec)
raid0: Total head-sep stall count was 0
raid0: 305318 recon event waits, 1 recon delays
raid0: 1093407069060000 max exec ticks
# raidctl -v -s raid0
Components:
component0: spared
/dev/wd1a: optimal
Spares:
/dev/wd0a: used_spare
[...snip...]
代码: 全选
# /usr/sbin/installboot -o timeout=15 -v /dev/rwd0a /usr/mdec/bootxx_ffsv1
File system: /dev/rwd1a
File system type: raw (blocksize 8192, needswap 1)
Primary bootstrap: /usr/mdec/bootxx_ffsv1
Preserving 51 (0x33) bytes of the BPB
代码: 全选
# /usr/sbin/installboot -v /dev/rwd0a /usr/mdec/bootblk
File system: /dev/rwd0a
File system type: raw (blocksize 8192, needswap 0)
Primary bootstrap: /usr/mdec/bootblk
Bootstrap start sector: 1
Bootstrap byte count: 4915
Writing bootstrap
代码: 全选
# shutdown -r now