Sun disksuite 磁盘镜像和镜像恢复详细文档


这是我在一次安装fujitsu primepower 250 小型机 有关用SDS做镜像和根盘坏掉恢复的详细文档

先说一下FUJITSU PRIMEPOWER 250 简要硬件配置:

CPU:1块 SPARC64-V 1100MHz
内存:2048MB
硬盘:容量为73.43GB的内置SCSI硬盘2块
OS:SOLARIS 8 02/02

新安装系统时,2块硬盘在系统中被分别定义为:c0t0d0 ;c0t1d0,对其中一块硬盘进行手工分区,如下:

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 41003 58.42GB (41004/0/0) 122519952
1 swap wu 41004 - 43811 4.00GB (2808/0/0) 8390304
2 backup wm 0 - 47993 68.38GB (47994/0/0) 143406072
3 unassigned wm 43812 - 43880 100.67MB (69/0/0) 206172
4 unassigned wu 0 0 (0/0/0) 0
5 unassigned wu 0 0 (0/0/0) 0
6 unassigned wu 0 0 (0/0/0) 0
7 home wm 43881 - 47993 5.86GB (4113/0/0) 12289644


其中c0t0d0s0 给 / 划分了:58.42GB。
c0t0d0s1 给 swap 划分了:4.00GB 是内存的2倍。
c0t0d0s7 给 /export/home 划分了:5.86GB 按SUN SOLARIS 安装要求,默认s7分区是给/export/home的。
c0t0d0s3 划分了100MB用来做disksuite metadevice database 数据库区。

用disksuite镜像根盘步骤:

1,先确定硬件系统满足镜像条件:

源盘与目标盘大小最好一致,至少目标盘要大于源盘。
如新盘加入系统,请先保证系统能识别新盘,可用以下命令:

#devfsadm 查找新安装的硬盘

#format 查看disk

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

# prtvtoc /dev/rdsk/c1t1d0s2 | fmthard -s - /dev/rdsk/c1t2d0s2

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

(1) #metadb -a -f -c 3 /dev/dsk/c0t0d0s3 /dev/dsk/c0t1d0s3

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

(2) 创建文件系统分区的镜像

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

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

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

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

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

1,#metainit -f d10 1 1 c0t0d0s0

2,#metainit -f d20 1 1 c0t1d0s0

3,#metainit d30 -m d10

在上列命令中的“-f”参数表示强迫metainit 命令继续,即使是这些分区之一包含了一个被挂载的文件系统或正在被使用的交换分
区。 命令“# metainit -f d10 1 1 c0t0d0s0”表示为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/c0t0d0s0上。

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

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

# metainit -f d11 1 1 c0t0d0s1

# metainit -f d21 1 1 c0t1d0s1

# metainit d31 -m d11

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


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

# metainit -f d17 1 1 c0t0d0s7

# metainit -f d27 1 1 c0t1d0s7

# metainit d37 -m d17


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

# vi /etc/vfstab

#device#to mount Deviceto fsck Mountpoint FStype Fsckpass Mountat boot mount options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -
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 -
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/c0t1d0s0

回到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恢复镜像盘的步骤:

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

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

{0} ok boot disk1 -s

在单用户下执行:

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

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

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

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

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


#metareplace -e d30 c0t0d0s0

#metareplace -e d31 c0t0d0s1

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

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

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

{0} ok boot disk

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


以上是我实际工作中的一点经验,写出来与大家分享!