《NetBSD指南-16.3.8.将系统迁移至RAID》

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

版主: lionux

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

《NetBSD指南-16.3.8.将系统迁移至RAID》

帖子 leo » 2010-03-02 23:28

这个新的RAID文件系统现在已经可以使用了。我们将其挂载到 /mnt 并且将老系统上的所有文件拷贝过去。 这可以用 dump(8) 或 pax(1)来完成。

代码: 全选

# mount /dev/raid0a /mnt
# df -h /mnt
Filesystem    Size     Used     Avail Capacity  Mounted on
/dev/raid0a   9.0G     2.0K      8.6G     0%    /mnt
# cd /; pax -v -X -rw -pe . /mnt
[...snip...]


现在NetBSD已经安装到这个RAID文件系统上了. 我们需要修改一下 /etc/fstab文件上的挂载点,否则系统不能正确地启动。 将实例中的 wd0 修改为 raid0.

[INDENT]
说明:对NetBSD 5.0以前的发行版来说内核崩溃转储只能保存在一个真实的物理磁盘(wd0b)上,而不能保存在RIAD设备上。 这个转储区域是我们在上一章建立在第二块磁盘的(wd1b)上的, 但是在后面我们将把wd0做成wd1的一个完全相同的拷贝, 所以wd0b和wd1b将有相同的大小和偏移量。 如果wd0损坏了并且从服务器上摘下,如果我们在/etc/fstab里设置了wd0b,在重新启动和崩溃转储后wd1会代替wd0(译者注:原文是wd1变成了wd0)继续工作. 这个配置中唯一的缺陷是当用一块新硬盘替换原来的损坏的wd0时,我们还没有用fdisk和disklabel初始化它。 在内核崩溃时,我们无法再如此短的时间内完成崩溃转储。注意:怎么转储设备的第四列里有一个 “dp” 关键字。

[/INDENT]

代码: 全选

# vi /mnt/etc/fstab
 
/dev/raid0a  /  ffs  rw  1  1
/dev/raid0b  none  swap  sw  0  0
/dev/wd0b  none  swap  dp  0  0
kernfs    /kern  kernfs  rw
procfs    /proc  procfs  rw


swap应该在关机时被取消配置(不配置)以避免RAID设备的奇偶校验误差。 这可以通过在/etc/rc.conf里加上简单的一行设置完成。

代码: 全选

# vi /mnt/etc/rc.conf
swapoff=YES


接下来引导装载程序必须被安装在Disk1/wd1上. 如果在Disk0/wd0的损坏并使RAID-1找不到引导装载程序的情况下,不在Disk1/wd1上安装引导装载程序将导致系统无法启动。
[INDENT]
提示
因为在许多基于i386系统的 BIOS/CMOS 菜单误导了设备启动顺序。 我在这里强烈推荐利用被i386第一阶段引导安装程序支持的 "-o timeout=X" 选项。 为每个磁盘建立唯一的对应值作为从哪块磁盘启动系统的参考点。

警告
尽管看起来将第一阶段启动块安装进 /dev/rwd1{c,d} 很符合逻辑 (它已在NetBSD 1.6.x 的installboot(8)上修正了 , 目前不存在这种情况了.) 如果你犯了这种错误, 引导扇区将被无可挽回地破坏,你只能再一次重复安装设置过程。
[/INDENT]在i386上, 安装引导装载程序到 /dev/rwd1a :

代码: 全选

# /usr/sbin/installboot -o timeout=30 -v /dev/rwd1a /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上, 安装引导装载程序到 /dev/rwd1a 还有, 不管怎样 "-o" 标签不被支持 (而且与OpenBoot无关):

代码: 全选

# /usr/sbin/installboot -v /dev/rwd1a /usr/mdec/bootblk
File system:         /dev/rwd1a
File system type:    raw (blocksize 8192, needswap 0)
Primary bootstrap:   /usr/mdec/bootblk
Bootstrap start sector: 1
Bootstrap byte count:   4915
Writing bootstrap


最后RAID组必须被设置为可自动配置,然后系统应该重新启动。重新启动后所有的文件系统都挂载到了RAID设备上。

代码: 全选

# raidctl -v -A root raid0
raid0: Autoconfigure: Yes
raid0: Root: Yes
# tail -2 /var/log/messages
raid0: New autoconfig value is: 1
raid0: New rootpartition value is: 1
# raidctl -v -s raid0
[...snip...]
   Autoconfig: Yes
   Root partition: Yes
   Last configured as: raid0
[...snip...]
# shutdown -r now
[INDENT]
警告
当你关闭系统时永远记住使用 shutdown(8) 。绝不要使用 reboot(8). reboot(8) 不会正确的运行shutdown RC 脚本,并且不会安全的禁用。这会在每次重新启动时导致损坏的奇偶校验。
[/INDENT]

主题已锁定

在线用户

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