前一段连续加了4天班就是为了这个不同系统间数据迁移的项目,说实话真是累死人了,来介绍一下方法吧。
首先介绍一下系统环境,原有一套SUSE系统,又单独买了一台IBMX3850来安装Redhat AS4 U4。目的是将SUSE上的一个5.4T的文件系统迁移到Redhat上,由于原来这个5.4T文件系统是XFS格式的,还需在迁移前转换成EXT3格式,因为Redhat系统不认XFS格式的文件系统,存储用的是EMC CX700,使用SAN存储网络。
先提一下,EXT3格式宣称好像是支持最大为7.4T(记不清了,反正是7T多)的文件系统,但是建立文件系统时候最好不要建立的过大,否则在扩展文件系统(就是为原文件系统扩容的方式),其完成的时间不可预估,可能会需要几天时间,也不能中断,血的教训啊!
好了,来介绍方法了:
1.在SUSE系统上新挂一块存储,大小要比需要迁移的5.4T大一些,因为将XFS转为EXT3会比原来多占用一些存储空间,我是挂了6T左右,挂接存储的方法视存储的品牌和种类来决定。我说一下EMC CX700,就是先记录下HBA卡的WWN,连接HBA到存储交换机,并配置ZONE,使其服务器与存储相连,在服务器上安装EMC的POWERPATH,AGENT软件,通过powerpath config命令来认到存储。
2.SUSE系统上存储准备完成后(在SUSE上用pvdisplay能够看到新增硬盘),先要建立PV。命令是pvcreat /dev/[硬盘名称],要将新增的硬盘都建成PV。
3.建立一个新的VG。命令:vgcreate [vg名称] /dev/[pv名称]。可同时使用多个PV建立一个VG。
4.建立一个新的LV。命令:lvcreate -n [lv名称] -L 6.4T /dev/[vg名称]
5.建立文件系统。命令:mkfs.ext3 /dev/[vg名称]/[lv名称]。
以上命令我写的都是绝对路径,可以根据实际情况修改。
6.将新文件系统mount到一个目录下,命令:mount [lv名称] [需要mount的目录]
7.这时用df命令查看,我们已经能够使用新建立的文件系统了,注意检查mount目录的权限
8.先将原文件系统上内容拷贝到这个新mount的目录,其目的就是将原xfs格式文件系统内容转换成ext3格式,由于我们的数据量很大,拷贝花费了约36个小时(我都没怎么睡啊)
9.拷贝完成后,umount新目录。命令:umount [目录名称]
10.修改新建的VG状态。命令:vgchange -an /dev/[vg名称]
11.此时在存储及交换机上,将新挂的存储连接到Redhat系统上,注意最好此时断开与suse系统的连接,避免发生数据读写操作。
12.在Redhat上认存储,我已经事先在系统上安装了EMC的POWERPATH,AGENT软件。命令也是powerpath config,然后用fdisk命令或pvdisplay都可以查看到。
13.这个时候其实已经能看到在suse系统上新建立的那个vg了,可用vgdisplay命令查看,只需要将其状态激活,命令:vgchange -ay [vg名称]
14.激活VG后,将文件系统mount到一个目录下,整个VG的迁移可以说是大功告成了。
整个过程看似简单,实际上还是有操作风险的,主要要避免双机同时看到存储,造成双机同时写数据的状况。建议实施后,保留suse上原数据一段时间。