满足做镜像的硬件条件:源盘与目标盘大小最好一致,至少目标盘要大于源盘。
参考文档《Solstice DiskSuite 4.2 User's Guide.pdf》
『Solaris 8是用SUN Solstice DiskSuite做RAID1,在Solaris 9等后续版本中更新为Solaris Volume Manager,功能一样,使用的命令也类似』
机器每次启动时DiskSuite都从Metadb文件中读取这些信息。一旦Metadb被破坏,机器将不能正常启动,所以一般都将Metadb做多个备份,这个分区的大小取决于Metadb备份的多少。
metadevice 状态数据库必须驻留在一个系统引导磁盘的专用分区上。
『实例:』源盘:c0d0 目标盘:c0d1
1、format # 设定存放metadb的分区
2、prtvtoc /dev/rdsk/c0d0s2 | fmthard -s - /dev/rdsk/c0d1s2 把系统引导磁盘(c0d0)分区表复制到镜像磁盘(c0d1)
3、(1) metadb -a -f -c 2 /dev/dsk/c0d0s3 /dev/dsk/c0d1s3 创建状态数据库复本。最少要创建两个或两个以上,这里划分c0d0s3用来做disksuite metadevice database 数据库区。
(2) 创建文件系统分区的镜像:(d0 - 镜像1、d10 submirror 1 、 d20 submirror 2 ; d1 - 镜像2、d11 submiroor 1、d21 submirror 2)
『对root分区 “/”文件系统的镜像:』
metainit -f d10 1 1 c0d0s0 // 为root分区创建一个一对一的级联
metainit -f d20 1 1 c0d1s0 // -f”参数表示强迫metainit 命令继续,即使是这些分区之一包含了一个被挂载的文件系统或正在被使用的交换分区。
metainit d0 -m d10 //创建metadevice镜像,并把子镜像设备d10 附加到d0
4、更新/etc/vfstab 和/etc/system file。
/etc/vfstab:
对于 root / 分区,用命令:#metaroot d0 更新
对于 其它 分区,vi 文件并保存
/etc/system:
echo "set md:mirrored_root_flag=1" >> /etc/system
5、reboot ;
metattach d0 d20 同步数据到submirror d20 //运行metastat -t 检查这个同步的进程
6(optional)、生成可自切换的能启动的镜像磁盘: (就是写引导信息到目标盘,是目的盘可引导)
Sparc:/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0d1s0
X86 : /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d1s0
==<取消镜像文件系统>================================================================================
# metastat “mirror_name” 验证子镜状态
# umount “/file-system-name” 卸载文件系统
# metadetach “mirror_name" "submirror_name" 拆离子镜像
# metaclear -r "mirror_name" 清除镜像和剩余的子组件
编辑/etc/vfstab 文件相应启动项
# mount /file-system 重新挂载文件系统
详细可见:
==Appendix=======================================================================================
【Solaris下如何扩大/分区(c0d0s0)的方法】
# ufsdump 0uf /dev/rdsk/c0d1s2 /dev/rdsk/c0d0s0 将原/分区备份到第二块硬盘的s2上
# init 0 #进入Ok 模式
OK boot cdrom -s
# OK进单用户,用format命令将c0d0s0调整放大(可以从/export/home和/里面分出空间给/,先将/export/home下的数据全部备份,调整完后要newfs,然后再将数据导入/export/home)
#mount /dev/dsk/c0d0s0 /mnt
#cd /mnt
#ufsrestore rf /dev/rdsk/c0d1s2
#rm restoresymtable
#cd /usr/platform/sun4u/lib/fs/ufs
#installboot bootblk /dev/rdsk/c0d0s0 *在调整大小后的盘上安装引导块
#umount /mnt
#reboot
【issue A】
# metadb -i
flags first blk block count
M m p lu 16 unknown /dev/dsk/c0d0s7
a m p luo 8208 8192 /dev/dsk/c0d0s7
a p luo 16 8192 /dev/dsk/c0d1s7
a p luo 8208 8192 /dev/dsk/c0d1s7
# metadb -d c0d0s7 # 删除失效的replicas
【issue B】
# prtvtoc /dev/rdsk/c0d0s2|fmthard -s- /dev/rdsk/c0d1s2
Partition 0 not aligned on cylinder boundary: " 0 2 00 0 26624040 26624039 /"
表示分区0的起始点不正确,应该是在cylinder的开始处(分区时不能把一个柱面截开)。要保证做镜像的2块盘大小一致
2块不同大小的盘做镜像,因为磁道、磁头数都不可能相同,不能用prtvtoc复制磁盘分区信息,做完之后大容量盘会显示与小盘大小一致,多余空间被浪费
详细可见:
阅读(906) | 评论(0) | 转发(0) |