免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2183 | 回复: 0
打印 上一主题 下一主题

如何在Solaris中创建RAID1镜像 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-21 11:02 |只看该作者 |倒序浏览
    RAID1也叫做镜像,需要至少两块硬盘,提供数据冗余。Solaris 8是用SUN Solstice DiskSuite来做RAID1,在Solaris 9等后续版本中更新为Solaris Volume Manager,功能一样,使用的命令也类似。


一、准备工作
1、在安装系统时,对硬盘分区需注意,一般我们把c0t0d0s7划分为一个10MB到100MB的分区留着用来存放Metadb数据,Metadb是DiskSuite存储硬盘配置信息的文件,机器每次启动时DiskSuite都从Metadb文件中读取这些信息。一旦Metadb被破坏,机器将不能正常启动,所以一般我们都将Metadb做多个备份,这个分区的大小取决于你Metadb备份的多少。

2、如果是Solaris 9,在安装系统时包含了Solaris Volume Manager,可以直接使用。如果是Solaris 8,就稍微麻烦一点了,需要手动从Solaris 8 Software 2 of 2光盘中安装DiskSuite,安装方法如下:
① 将Solaris 8 Software 2 of 2光盘插入光驱,cd到/cdrom目录下并ls查看是否已自动挂载了光驱,如果没有,手动挂载光驱:
# mount -F hsfs -o ro /dev/dsk/c0t1d0s0 /cdrom
    如果不知道光驱的位置,可以# iostat -En查看。
② 进入DiskSuite安装包所在目录:
       # cd /cdrom/cdrom0/Solaris_8/EA/products/DiskSuite_4.2.1/sparc/Packages
    查看安装包# ls,4.2.1版本中有10个包,分别为SUNWlvma、SUNWlvmg、SUNWlvmr、SUNWmdg、SUNWmdja、SUNWmdnr、SUNWmdnu、SUNWmdr、SUNWmdu、SUNWmdx。
③ 执行pkgadd安装:
       # pkgadd -d .(注意有个“.”,表示当前目录,不可省略)
    列出的10个安装包都需要安装,因此选择默认的安装选项all。一番敲y和回车后安装完毕,键入q退出,并# init 6重启。

3、准备一个表,记录自己规划的各分区的镜像名称,这个可选,但我觉得很有必要,以防止自己在d10、d20、d12等数字中混乱。如下简单写清楚就行,名称规则可自行约定:
镜像名称
源盘子镜像名
镜像盘子镜像名
挂载点
分区序号
d0
d10
d20
/
c0t?d0s0
d1
d11
d21
swap
c0t?d0s1
d2
d12
d22
/var
c0t?d0s3
d3
d13
d23
/opt
c0t?d0s4
d4
d14
d24
/export/home
c0t?d0s5


二、做RAID1
1、将两块硬盘分区进行同步
       # prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2
    这里要求最好两块硬盘的大小相等,如果镜像盘比源盘大,在做完分区同步后,镜像盘的大小会变成与源盘相同,多余的那部分看不到,会浪费掉。当前,也可以不同这条命令同步分区,用format手动修改分区以达到相同的目的,比较复杂,不详说。

2、创建metadb数据
       # metadb -a -f -c 3 c0t0d0s7 c0t1d0s7
    这里做3个metadb,metadb命令的各参数含义如下:
       -a:增加metadb;
       -f:建立初始化的metadb(如果是新建,需要-a -f连用);
       -c:指定创建metadb备份的数目,如-c 3,表示建立3个metadb,不指定默认1;
       -i:查询现有的metadb信息,备份数量及状态等;
       -d:删除metadb。

3、做root分区的子镜像
       # metainit -f d10 1 1 c0t0d0s0
       # metainit d20 1 1 c0t1d0s0
    分别把root(/)分区c0t0d0s0和c0t1d0s0创建成为d10和d20的子镜像。1 1 表示一对一的级联,-f表示强制执行metainit命令,在对源盘做子镜像时,会遇到系统文件被挂载的情况,所以需要使用-f。

4、制作root分区的镜像
       # metainit d0 -m d10
    该命令表示将d10附加到d0上,d0为镜像,d10是d0的子镜像,这样就将c0t0d0s0分区制作成了根分区镜像的子镜像。

5、修改/etc/vfstab文件中的root分区信息
    在修改前要先备份vfstab文件,如果修改失败可进行恢复:
       # cp /etc/vfstab /etc/vfstab.orig
    对于root分区,我们不需要手动修改vfstab,可执行命令进行修改:
       # metaroot d0
    修改完后查看/etc/vfstab文件,会发现root分区一行的/dev/dsk/c1t0d0s0以及/dev/rdsk/c1t0d0s0变成了/dev/md/dsk/d0和/dev/md/rdsk/d0。
    然后执行如下命令并重新引导系统以挂载镜像:
       # lockfs -fa
       # reboot

6、创建其他分区的镜像和子镜像
    步骤与root分区类似,命令如下:
    swap:
       # metainit -f d11 1 1 c0t0d0s1
       # metainit d21 1 1 c0t1d0s1
       # metainit d1 -m d11
    /var:
       # metainit -f d12 1 1 c0t0d0s3
       # metainit d22 1 1 c0t1d0s3
       # metainit d2 -m d12
    /opt:
       # metainit -f d13 1 1 c0t0d0s4
       # metainit d23 1 1 c0t1d0s4
       # metainit d3 -m d13
    /export/home:
       # metainit -f d14 1 1 c0t0d0s5
       # metainit d24 1 1 c0t1d0s5
       # metainit d4 -m d14

7、附加镜像盘所有分区的子镜像
       # metattach d0 d20
       # metattach d1 d21
       # metattach d2 d22
       # metattach d3 d23
       # metattach d4 d24
    这一步不可放到前面做,否则会导致无法制作子镜像。执行完命令后,源盘和镜像盘开始同步,这个过程需要比较长的时间,可以通过metastat命令查看同步情况:
       # metastat | grep %

8、修改/etc/vfstab文件中其他分区的信息
    因为metaroot命令只对root分区有效,其他非root的分区需要手动进行修改。和root分区一样,将文件中所有分区类似/dev/dsk/c1t0d0s0和/dev/rdsk/c1t0d0s0的地方修改为/dev/md/dsk/d0和/dev/md/rdsk/d0,注意分区序号和镜像名称的对应关系。

9、重新引导系统
    修改完/etc/vfstab文件并且等待同步过程完成后,重新引导系统:
       # init 6
    至此,RAID1制作完毕。






本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80598/showart_1615007.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP