《NetBSD指南-16.3.10.增加Disk0/wd0到RAID》

NetBSD用户指南中文版、NetBSD pkgsrc指南中文版...

版主: lionux

主题已锁定
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

《NetBSD指南-16.3.10.增加Disk0/wd0到RAID》

帖子 leo » 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 组,并且"同步"两个磁盘。

代码: 全选

# disklabel -r wd1 > /tmp/disklabel.wd1
# disklabel -R -r wd0 /tmp/disklabel.wd1
最后的理智的检查,你应该使用 diff(1) 来确保Disk0/wd0 和 Disk1/wd1 两者的disklabel完全匹配。你应该备份这些文件以防出现任何紧急情况。

代码: 全选

# 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
一旦你确认后, 将Disk0/wd0加为一个备用组件, 并开始重建:

代码: 全选

# 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...]
当重建构成结束后,我们需要在Disk0/wd0上安装引导装载程序. 在i386上, 安装引导加载程序到 /dev/rwd0a:

代码: 全选

# /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
在sparc64上:

代码: 全选

# /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
最终, 在使用前最后重新启动一次计算机。这是为了将Disk0/wd0从 "used_spare" 状态迁移到 "Component0" 以达到状态 "最优化". 请参考下一小节的关于每次启动后清空奇偶校验的说明。

代码: 全选

# shutdown -r now

主题已锁定

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客