Sun Solaris 不同规格的硬盘用Disksuite做镜像的实现

使用不同规格的硬盘用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、 插入新硬盘;
【Sun Solaris 不同规格的硬盘用Disksuite做镜像的实现】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 基本是重复劳动了 , 我是用上面的过程做了一遍 , 听说用prtvtovMetarepalce可以 , 但是我试了一下 , 不成功 , 麻烦点总比冒险好 。
结论:1、DiskSuite 是个好东西 , 竟然完成了这么一个不同兄弟的克隆 , 推荐深入研究;
2、Solaris 是个好东西 , 微软估计经不起老折腾;
3、小日本是个坏东西 , 东西不好又死贵 , 建议抵制日货 , 因为电话又来了 , 又有一个用Fujitsu 硬盘的小型机爆了 , 哎 , 好是命苦 。
4、这篇文章是本来是我的工作笔记 , 但是我想对于Solaris平台的东西或许有共性 , 拿出来让批评指正 。

推荐阅读