【IT168 专稿】如今,在多个硬件主机之间迁移虚拟机是一种相当简单、无缝的操作。使用VMware的ESX 3.5和Virtual Center 2.5来迁移只要采用VMotion方法,最多点击几下鼠标,就能把每个虚拟机从一个ESX主机迁移至另一个ESX主机。Storage VMotion在2007年12月宣布推出,它便于把实际的vmdk(虚拟硬盘驱动器)文件迁移至其他的备用存储位置,不会造成停机时间,进一步改善了可移植性和迁移工作。这似乎相当简单,不过我们遇到裸设备映射(RDM),情况就有点复杂了。简而言之,RDM是VMFS卷上的一个特殊文件,充当虚拟机的代理,以便直接访问裸设备。不像VMFS分区,VMware的ESX Server并不管理处于物理模式的设备。这时,负责直接管理设备的是虚拟机的操作系统。
在功能上,微软集群服务(Microsoft Cluster Services)等应用依赖用裸设备即RDM格式显示的共享存储。如果有些人期望改换存储阵列或平台,或者把这些虚拟机从一个ESX集群完全迁移至另一个ESX集群,这带来了几个难题(尽管可以克服);另外需要一番规划,才能确保集群的完整性。为了获得成功,必须创建及配置新的RDM,以便与原始RDM一样,本文介绍的正是这个过程。
我们这次迁移过程将用到:
·ESX 3.5 update2
·Virtual Center 2.5
·Windows 2003企业版
·微软集群服务器(Microsoft Cluster Server)
·Windows 2000资源工具包
整个过程分为8个基本步骤:
1、 记录原始配置
2、 添加新的逻辑单元号(LUN)
3、 添加RDM配置
4、 拷贝数据
5、 克隆虚拟机
6、 配置克隆机
7、 改变微软磁盘签名(Disk Signature)
8、 为集群中的额外节点添加RDM
第一步:记录原始配置
1、登录到Virtual Center,鼠标右击Cluster配置中的Primary Node。该服务器将被名为Node1.
2、选择Edit Setting。
3、记录所有SCSI控制器设置。
4、记录每个Raw Mapped LUN、Datastore Mapping和Virtual Device Node。
5、登录到Node 1。
6、点击"开始",然后点击"运行",输入"compmgmt.msc",然后点击OK。
7、在Computer Management->System Tools->Device Manager,找到Disk Drives,你就能查看展示给该节点的所有逻辑磁盘。
8、记录左边的磁盘号及右边与之相关的驱动器名。(比如:Disk 1 = 1GB Quorum Q drive,Disk 2 = 10GB Data E drive)
9、把dumpcfg.exe(Windows 2000资源工具包)拷贝到c:\。
10、点击"开始"->"运行",输入"cmd",点击OK。
11、输入"cd to c:"。
12、运行"dumpcfg"。
13、记录磁盘签名以及上面记录的磁盘号。(比如:Disk 1 = Quorum Q drive =1234567: Disk 2 = Data E Drive = 7654321)
第二步:添加新的LUN
注意:第1至第3个步骤需要存储管理员来完成,除非你本身也是存储管理员。
1、创建Quorum LUN(通常是1GB大小)。
2、创建额外的LUN(LUN大小即使与原始LUN的大小不一样,也应当能够容纳将来拷贝到上面的数据量)。
3、把LUN展示给原始集群环境的ESX主机以及克隆虚拟机的新ESX主机。
4、登录到VC,选择能看到新LUN的每个ESX主机,然后浏览至Configuration->Storage Adapters,选择Rescan,就选择Scan for New Storage Devices。
5、识别分配给所有LUN的SCSI LUN ID(比如:对光纤通道而言,VHBA1:5:6将是SCSI ID 6。这个ID在所有主机上应当都一样)。
对iSCSI而言,被分配的iSCSI别名将识别哪个SCSI目标被分配给了RDM Example:iSCSI别名brian-rdm-data-n在VMHBA32:12:0 Target 12上加以配置。目标号在所有主机上可能不一样。
6、记录这些信息。到时添加新的RDM时要用到。
第三步:添加RDM配置
1、在VC中选择Node 1。
2、选择Edit Settings和Add Disk.
3、选择Raw Device Mappings。
4、使用前几步中记录的信息,选择目标LUN。这里,目标是16和17。
5、选择元数据文件与虚拟机一起存储。
6、选择Physical Compatibility Mode。
7、选择Virtual Device Node(就本文这个过程而言,不需要另外的SCSI控制器,因为我们只要把数据拷贝到这些LUN上)。点击Next。
如果虚拟机已启动,可以略过第8步,点击OK。
9、 把控制器设成Physical Mode后点击OK。
第四步:拷贝数据
1、添加新的LUN。
2、登录到Node1。
3、启动Disk Manager。
4、让窗口对诸磁盘进行初始化,并进行格式化以便用,点击Next。
5、点击Next。
6、让它空着,点击Next。
7、创建分区。
注意:添加额外磁盘时,建议创建对齐的磁盘。
1、 打开命令提示符窗口。
2、输入diskpart
3、输入list disk
4、然后选择其中一个新添加的磁盘。
5、输入命令来选择磁盘号。
6、输入select disk #。
7、创建对齐的主分区。
8、输入create partition primary align=64。
8、分配驱动器名(对于新的LUN,请选择比原始LUN高一个驱动器名)。
9、对驱动器进行格式化,更改卷标,并把Allocation unit size设成32K。
终止所有集群应用服务(比如SQL Server Service)。
10、启动Cluster Administrator小应用程序。
11、点击"开始"->"运行",输入cluadmin,点击OK。
12、在cluster or server name下,输入.,点击OK。
13、让磁盘之外的所有资源处于脱机(Take offline)。
14、把来自所有集群磁盘的所有数据拷贝到新连接的LUN。建议使用能够输出/通知故障的拷贝工具。
15、一旦文件拷贝在这时完成,关闭Node1及该集群中的其他任何节点。
16、从Node 1移除Raw Device Mappings。鼠标右击虚拟机,点击Edit Setting,选择每个硬盘,点击Remove。选择Remove from Virtual Machine选项,点击OK。
17、把虚拟机克隆到新的存储/文件夹(以便保持名称相同)。
18、对集群中其他节点重复步骤11至13(在移除磁盘之前,核实记录的有关Node 1的RDM信息与每个节点的配置相符)。
第五步:克隆虚拟机
1、创建一个新的文件夹。
2、鼠标右击虚拟机,选择Clone。
3、输入虚拟机名称(使用与原始虚拟机同样的名称)。选择前一个步骤中创建的文件夹,点击Next。
4、选择你希望虚拟机驻留在上面的集群组或ESX主机上,点击Next。
5、选择指定的存储位置。
6、不定制。选择Do not customize。
7、不启动,也不对配置进行任何更改,点击Finish。
第六步:配置克隆机
1、登录到虚拟机,鼠标右击Cloned Node1。
2、选择Edit Setting。
3、Add Disk,选择Raw Device Mapping。
4、添加创建的RDM(核实VMHBA路径和LUN Size与记录的信息相符)。
5、务必要选择一个新的SCSI目标ID(这会自动为物理RDM创建额外的SCSI控制器;还要记下SCSI ID,万一多个RDM在虚拟机操作系统中有着同样的磁盘大小,它有助于确认哪个RDM被访问)。
6、把SCSI控制器配置成Physical Mode,然后点击OK和Finish。
7、启动Clone Node1。
8、点击"开始"->"运行",输入"compmgmt.msc",然后点击OK。
9、把磁盘号记录成驱动器(比如:Disk1 = Q Drive Quorum Disk,Disk 2 = E Drive Data Disk)。
第七步:更改磁盘签名
1、鼠标右击磁盘号,选择Properties。
2、比如,该例子中Disk2拥有Target ID 1。Target ID 1与数据磁盘驱动器名E联系起来。
3、一旦识别了集群磁盘的所有磁盘号,可以使用记录的有关原始Node1的信息来分配磁盘签名(比如:Disk1 = Quorum Drive Q = 12344567,Disk 2 = Data Drive E = 7654321)
4、打开命令提示符窗口,输入"cd to c:\"。
记录的每个磁盘都有相关签名。
5、运行"dumpcfg <signature of the disk> Disk #"
(比如dumpcfg -s 1234567 1)
该命令把原始签名改写成了新的quorum LUN。
注意:万一没有记录下原始系统的磁盘签名,就在克隆虚拟机中,打开Event Viewer,找到system events
搜索event ID 1034
该错误会表明驱动器名及相关签名。最初被识别的只有Quorum。一旦Quorum进行了相应配置,该集群中其他任何磁盘的Events会随之出现。
5、运行该命令,为所有集群磁盘更改签名。
6、打开Computer Management->Disk Management,为磁盘分配相应的驱动器名。
7、重启。
第八步:为集群中的额外节点添加RDM
1、鼠标右击Node,选择Edit Settings。
2、选择Add Disk和Select Existing Disk。
3、 浏览至RDM元数据文件的位置(通常存储在主节点文件夹里面,大小通常是RDM的1/500)。
4、再次选择新的SCSI DEVICE ID。
5、把SCSI控制器设成Physical Mode;如果略过了这一步,虚拟机就无法启动。
6、点击Off and Power On VM。
7、测试集群的故障切换功能。故障切换应当能成功。