服务器 频道

虚拟化实战之存储平台迁移实战

  【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、测试集群的故障切换功能。故障切换应当能成功。

 

0
相关文章