在FreeBSD上使用软RAID-1( 三 )


/dev/mirror/gm0s1a 248M 35M 193M 15% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/mirror/gm0s1e 248M 12K 228M 0% /tmp
/dev/mirror/gm0s1f 7.3G 99M 6.7G 1% /usr
/dev/mirror/gm0s1d 248M 196K 228M 0% /var
df 不显示交换分区的信息 , 可以用以下命令核实:
% swapinfo
Device 1K-blocks Used Avail Capacity
/dev/mirror/gm0s1b 629544 0 629544 0%
同步镜像/双工
剩下的事就是同步两块硬盘的数据了 。只要键入向镜像插入第二块硬盘的命令 , 数据同步将自动进行 。
# gmirror insert gm0 /dev/ad2
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad2.
看看进展如何:
# gmirror list | more
Geom name: gm0
State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 2125638583
Providers:
1. Name: mirror/gm0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r6w5e2
Consumers:
1. Name: ad0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 3986018406
2. Name: ad2
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: SYNCHRONIZING
Priority: 0
Flags: DIRTY, SYNCHRONIZING
GenID: 0
SyncID: 1
Synchronized: 1%
ID: 1946262342
注意看 Flags 行上的 SYNCHRONIZING 字眼 。这两块硬盘的数据要同步需要一些时间 , 如当前所示才一个百分点 。据我所知 , 10GB 的硬盘大约需时 30 分钟 , 75GB 的约需两个半小时 。若你觉得好奇 , 查查进度:
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad0
ad2 (2%)
数据同步完毕后 , 你将看到以白色粗体字显示的系统信息:
GEOM_MIRROR: Device gm0: rebuilding provider ad2 finished.
GEOM_MIRROR: Device gm0: provider ad2 activated.
若再次输入 gmirror list , 你会看到 State (状态) 已从 DEGRADED (已降级) 变成 COMPLETE (完毕) , Synchronized (已同步) 一行已不见了 。若在 Flags 行上看到 DIRTY (不干净) 字眼 , 不用担心;那仅表示系统已写入新的数据但尚未完成镜射 。若你在磁盘平静下来后等数秒钟 , 则你将会看到 Flags 行变成了 NONE (无) 。
重启系统 , 最后检查一下 。
这回启动信息应包含以下这些:
GEOM_MIRROR: Device gm0 created (id=2125638583).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider ad2 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
Mounting root from ufs:/dev/mirror/gm0s1a
结语
GEOM 实用程序在日益进步 , 它的开发者不断地将新特性及更新上传到网页去 。利用 cvsup 更新你手上的 FreeBSD 版本或在决定安装 FreeBSD 时选用最新的版本是很重要的 。
若你想取得镜像/双工的性能数据 , 用 gstat(8) 。通读 gmirror(8) 的说明文字也是值得倡议的 , 特别是在你想了解如何更换一块坏硬盘的情况下 。
vmware gmirror实验:
1.强行关机,gmirror会自动修复,自动同步
2.强行关机,拆掉其中一个,系统能起来(当然,不能是0-0,vmware傻乎乎的不肯)
3.强行关机,拆掉其中一个,挂一个新的上去,系统能起来,可是无法自动重建mirror,可以手动
gmirror forget data
gmirror instert data device

推荐阅读