Chinaunix首页 | 论坛 | 博客
  • 博客访问: 171578
  • 博文数量: 33
  • 博客积分: 2037
  • 博客等级: 大尉
  • 技术积分: 365
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-24 20:29
文章分类
文章存档

2011年(1)

2010年(2)

2009年(21)

2008年(9)

我的朋友

分类:

2008-11-21 11:02:14

    RAID1也叫做镜像,需要至少两块硬盘,提供数据冗余。Solaris 8是用SUN Solstice DiskSuite来做RAID1,在Solaris 9等后续版本中更新为Solaris Volume Manager,功能一样,使用的命令也类似。

 

 

一、准备工作

1在安装系统时,对硬盘分区需注意,一般我们把c0t0d0s7划分为一个10MB100MB的分区留着用来存放Metadb数据,MetadbDiskSuite存储硬盘配置信息的文件,机器每次启动时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

    查看安装包# ls4.2.1版本中有10个包,分别为SUNWlvmaSUNWlvmgSUNWlvmrSUNWmdgSUNWmdjaSUNWmdnrSUNWmdnuSUNWmdrSUNWmduSUNWmdx

执行pkgadd安装:

       # pkgadd -d .(注意有个“.”,表示当前目录,不可省略)

    列出的10个安装包都需要安装,因此选择默认的安装选项all。一番敲y和回车后安装完毕,键入q退出,并# init 6重启。

 

3准备一个表,记录自己规划的各分区的镜像名称,这个可选,但我觉得很有必要,以防止自己在d10d20d12等数字中混乱。如下简单写清楚就行,名称规则可自行约定:

镜像名称

源盘子镜像名

镜像盘子镜像名

挂载点

分区序号

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

    这里做3metadbmetadb命令的各参数含义如下:

       -a:增加metadb

       -f:建立初始化的metadb(如果是新建,需要-a -f连用);

       -c:指定创建metadb备份的数目,如-c 3,表示建立3metadb,不指定默认1

       -i:查询现有的metadb信息,备份数量及状态等;

       -d:删除metadb

 

3、做root分区的子镜像

       # metainit -f d10 1 1 c0t0d0s0

       # metainit d20 1 1 c0t1d0s0

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

 

4、制作root分区的镜像

       # metainit d0 -m d10

    该命令表示将d10附加到d0上,d0为镜像,d10d0的子镜像,这样就将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制作完毕。

 

 

 

 

阅读(3904) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-28 14:49:00

设置启动顺序 例如: ok devalias(察看启动设备) ok nvalias rootdisk /pci@8,600000/SUNW,qlc@4/fp@0,0/disk@0,0 ok nvalias mirrdisk /pci@8,600000/SUNW,qlc@4/fp@0,0/disk@1,0 ok setenv boot-device rootdisk mirrdisk

twinklezcf2010-06-28 18:06:51

写的真挺细致的,文笔不错.但好像少最关键的一步...埋坑也好:)~

qingheliu2009-04-17 12:53:20

写的非常好,谢谢兄弟!