使用不同规格的硬盘用Disksuite做镜像
硬件平台:Fujitsu PP400 2*SPARC64GP (基本与Sun E450(Sparc III)兼容)
软件:Sun Solaris 8(无差异)
原因:PP400上的原装Fujitsu 硬盘在不到两年的时间内爆掉一个,厂商原规格的硬盘已经停产(33.6G/Ultra 160 /LVD接口/热插拔),由于过保买该规格(厂商的备件)硬盘狂贵(接近杀猪),一气之下订购两个西捷36G/Ultra 320 /LVD/热插拔硬盘(总价不到Fujitsu的1/4)。这两款硬盘在磁头数量和磁道数量上有很大的差异,为保证一次成功我基本每步均极小心,否则原来盘上的Oracle数据库就爆了,赔不起,即便重装又麻烦。
过程:
1、 将数据库备份(建议);
2、 停止应用服务,特别是数据库;
3、 Init 1 进入单用户模式
4、 拔除坏硬盘,将硬盘托架装到西捷盘上;
5、 metadb –I #查看Metadb状态,由/dev/dsk/c0t0d0s6 与/dev/dsk/c0t1d0s6 构成replicas
6、 因为c0t1d0已经坏了,故>metadb –d /dev/c0t1d0s6
7、 插入新硬盘;
8、 format ->disk 0 -> Part ->print查看一下好的硬盘的分区状态,记录下来(不要弄错了,一定要仔细);
9、 Format ->disk 1 -> part ->print 查看一下新硬盘的分区状态磁道与Block的分配;
10、 由于disk1 与Disk 0 磁道数与磁头数不一样所以要稍微计算一下新硬盘起始磁道的数量,同时可以参考block的数量因为每个block 的大小在Solaris 下都是一样大的512B 。
11、 Part->调整0,1,2,4,6,7 分区大小(看自己的分区,我的是0->root 1->swap 2->overlap 4->var 6 ->(留做Replicas,50M) 7->home);
12、 由于分区是以整数磁道作为分区的大小的边界,也就是说不能不足半个磁道进行分区,所以对于两个不一样规格的硬盘来说基本上不大可能会出现精确到1KB的的分区大小,开始我也比较犹豫,因为镜像硬盘基本上是选用同规格的。但是我还是坚持下去,我将新盘的大小划得比旧盘的大一点(一个磁道偏差内)。
13、 part ->lable->quit #有时间的话做一下Format ,但时间太长,我没做,前提是相信西捷的质量不会那么烂。
14、 metadb –afc 2 /dsk/c0t1d0s6[2是因为我旧盘上也是两个MetaDB]
15、 metaoffline –f d10 d12 #将坏SubMirror离线
16、 metadetach –f d10 d12 #将坏SubMirror 清除出Metadb
17、 newfs /dev/dsk/c0t1d0s0 #一定要先建立文件系统否则出错
18、 metattach d10 d12
19、 开始同步文件系统;
20、 依次从15~18重复将其他分区也做一次;
21、 出去吃顿饭或逛上一趟街,回来基本同步好了;
22、 reboot 机器;
23、 系统OK了但是,在GUI界面下在打开终端你会发现[用Metastat],磁盘又在同步,不过这次是两个SubMirror在同步](我很纳闷,但还是让它做吧,免得失败。
24、 完成后,热拔老硬盘,系统正常,镜像生效。一半的工作完成了。
25、 你会问为啥还只是一半的工作,因为为了保险起见,毕竟两个硬盘不同规格你还是冒了风险的。后面将同规格的西捷硬盘再做SubMirror 基本是重复劳动了,我是用上面的过程做了一遍,听说用prtvtov + Metarepalce可以,但是我试了一下,不成功,麻烦点总比冒险好。
结论:1、DiskSuite 是个好东西,竟然完成了这么一个不同兄弟的克隆,推荐深入研究;
2、Solaris 是个好东西,微软估计经不起老折腾;
3、小日本是个坏东西,东西不好又死贵,建议抵制日货,因为电话又来了,又有一个用Fujitsu 硬盘的小型机爆了,哎,好是命苦。
4、这篇文章是本来是我的工作笔记,但是我想对于Solaris平台的东西或许有共性,拿出来让批评指正。