SUN-对磁盘做镜像

CPU:4*1500MHz
内存:16GB
硬盘:容量为146GB的内置SCSI硬盘2块
OS:SOLARIS 10

新安装系统时,2块硬盘在系统中被分别定义为:c1t0d0,c1t1d0,其中c1t0d0做为安装操作系统的根盘,另一块硬盘不做任何初始化。

安装时对根盘进行手工分区,如下:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    3319 -  6410       30.01GB    (3092/0/0)   62928384
  1       swap    wu       0 -  3297       32.01GB    (3298/0/0)   67120896
  2     backup    wm       0 - 14086      136.71GB    (14087/0/0) 286698624
  3 unassigned    wm    3298 -  3318      208.69MB    (21/0/0)       427392
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7       home    wm    6411 - 14086       74.49GB    (7676/0/0)  156221952
 

其中c1t0d0s0  给 /  划分了:30GB。 
    c1t0d0s1  给 swap 划分了:32GB 是内存的2倍。
    c1t0d0s3  划分了200MB用来做disksuite metadevice database 数据库区。
    c1t0d0s7  剩下的空间都给了 /export/home:75GB。按SUN SOLARIS 安装要求,默认s7分区是给/export/home的。
  

用disksuite镜像根盘步骤:

1,先确定硬件系统满足镜像条件:
  
源盘与目标盘大小最好一致,至少目标盘要大于源盘。
如新盘加入系统,请先保证系统能识别新盘,可用以下命令:

#devfsadm    查找新安装的硬盘

#format      查看disk

2,用format命令创建metadevice 状态数据库,这些数据库必须驻留在一个引导磁盘的专用分区上,
 当然如果在安装新系统时以对DISK进行了分区,并在分区时划出一个分区,最好为S3,S4也可以,这时要保证被镜像的磁盘分区表必须是与引导磁盘相同。把引导磁盘的分区表复制到镜像磁盘。使用下列命令:

# prtvtoc /dev/rdsk/c1t0d0s3 | fmthard -s - /dev/rdsk/c1t1d0s3

3,使用Disksuite进行配置
首先要创建状态数据库复本。最少要创建两个或两个以上的数据库复本。用2中的命令我们以经共有了2个用来保存数据库复本的磁盘分区c1t0d0s3 和c1t1d0s3,
现在我们将在2个分区中分别为每个分区创建3个数据库复本,总计是6个复本。状态数据库复本存储着DiskSuite的配置和状态信息。我们可以使用下列命令去创建这个数据库复本。

(1) #metadb -a -f -c 3 /dev/dsk/c1t0d0s3 /dev/dsk/c1t1d0s3

     #metadb -i                *这个命令可以查询数据库状态。

(2) 创建文件系统分区的镜像
  
   首先我们先对1个磁盘做一个单向的镜像,稍候我们追加第2个磁盘去镜像。设备编号(d##) 是任意的。这里为了方便管理,我们须对镜像设备编号做个约定:

d10 – 表示第1块磁盘的镜像设备名。

d20 – 表示第2块磁盘的镜像设备名。

d30 – 表示镜像中所包含第1块磁盘的镜像设备和第2块磁盘的镜像设备的总镜像设备。

metainit 命令被用来创建磁盘0号分区(c1t0d0s0,root分区 “/”文件系统)的镜像:

  1,#metainit -f d10 1 1 c1t0d0s0

  2,#metainit -f d20 1 1 c1t1d0s0  

  3,#metainit d30 -m d10

在上列命令中的“-f”参数表示强迫metainit 命令继续,即使是这些分区之一包含了一个被挂载的文件系统或正在被使用的交换分
区。 命令“# metainit -f d10 1 1 c1t0d0s0”表示为root分区创建一个一对一的级联。
最后一条命令表示创建metadevice镜像并且把镜像设备d10 附加到d30。也就是d30是mirror,而d10就是d30的子镜像submirror。


下一步是要更新/etc/vfstab 文件和/etc/system file。不能用手工编辑 /etc/vfstab或/etc/system文件。可以使用metaroot 命令,做之前,请一定要先做vfstab文件和system文件的备份:

#cp /etc/vfstab /etc/vfstab.bak

#cp /etc/system /etc/system.bak

#metaroot d30

然后我们查看/etc/vfstab,可以能看到“/”文件系统将被挂载到/dev/md/dsk/d30上,而不是挂载到/dev/dsk/c1t0d0s0上。

5,创建其它文件系统的镜像

swap 文件系统(在硬盘c1t0d0 的s1分区上这要和你安装时的分区内容一致)。  :

# metainit -f d11 1 1 c1t0d0s1

# metainit -f d21 1 1 c1t1d0s1

# metainit d31 -m d11

  注:如分区时并未指明分区 /var /opt 文件系统的挂接分区,就无需做镜像,只做指明的分区镜像!


/export/home 文件系统(在硬盘c1t0d0的s7分区上这要和你安装时的分区内容一致)。

# metainit -f d17 1 1 c1t0d0s7

# metainit -f d27 1 1 c1t1d0s7

# metainit d37 -m d17

 
6、编辑/etc/vfstab文件,编辑之后这个新的/etc/vfstab文件应该类似于这样:

# vi /etc/vfstab

root@XJHTGW1 # more /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      -
/proc   -       /proc   proc    -       no      -
/dev/md/dsk/d31         -       -       swap    -       no      -
/dev/md/dsk/d30 /dev/md/rdsk/d30        /       ufs     1       no      -
/dev/md/dsk/d37 /dev/md/rdsk/d37        /export/home    ufs     2       yes     -
/devices        -       /devices        devfs   -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
swap    -       /tmp    tmpfs   -       yes     -

7、禁止无害的消息(可选)被禁止掉的这条信息是:"WARNING: forceload of misc/md_hotspares failed".
   
   # metainit hsp001

8、重新引导允许系统去重新挂载镜像

# lockfs -fa


# init 6

下列的警告住处是无害的,可以忽略不记:
WARNING: forceload of misc/md_trans failed
WARNING: forceload of misc/md_raid failed
WARNING: forceload of misc/md_hotspares failed

以后上面这些信息可以在/etc/system里面注释掉就不会出现了!!

追加第二个子镜像设备到镜像。这样磁盘上的数据就会从引导磁盘上与已经镜像的磁盘进行同步

9、 # metattach d30 d20

  运行metastat -t 检查这个同步的进程 

10、 # metastat d30

现在可以追加其它的镜像设备了。

11、
# metattach d31 d21

# metattach d37 d27

运行metastat -t 检查这些进程


12、生成可自切换的能启动的镜像磁盘

生成引导块

# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0

回到ok提示符下(用笔记本,或PC上的终端仿真软件请按Ctrl+Break从solaris操做系统状态可回到ok提示符下,如用sun 工作站或键盘可用stop+A回到OK装态)修改启动值,把被镜像磁盘列入备用启动中:

{0} ok printenv            *查看obp参数,注意 boot-device 项的参数,未修改前默认为 disk。

{0} ok devalias            *查看设备别名,我们可以看到,第2块盘被命名为 disk1 。

{0} ok setenv boot-device disk disk1    *设置 boot-device 把 disk1 加入。

{0} ok reset-all           *重启

设置此项,可保证在根盘坏掉的情况下,系统能从另一块硬盘自动启动。

 

========================================================
用disk suite恢复镜像盘的步骤:

假如c1t0d0盘坏掉,则停机更换硬盘后需做恢复工作,如下:

先在OK状态下用镜像的盘启动到单用户模式下:

{0} ok boot disk1 -s

在单用户下执行:

#metadb -d c1t0d0s3   *删除原来在c1t0d0s3上创建的metadevices database。

#prtvtoc /dev/rdsk/c1t1d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2  *给新盘创建和镜像盘一样的分区表。

#metadb -a -f -c 3 c1t0d0s3    *重新在新盘上创建metadevices database。

#halt                           *停机,回到OK状态下。

{0} ok boot disk1               *用镜像盘启动系统。


#metareplace -e d30 c1t0d0s0

#metareplace -e d31 c1t0d0s1

#metareplace -e d37 c1t0d0s7     *镜像恢复。

#metastat -t   *可以查看镜像恢复进度。

恢复完成后,可在OK状态下用:

{0} ok boot disk

从恢复盘启动系统,如正常启动,则恢复成功。

你可能感兴趣的:(操作系统)