当前位置:文档之家› 虚拟化和系统迁移方法

虚拟化和系统迁移方法

虚拟化和系统迁移工具在将物理服务器迁移到虚拟机时,可能会和在物理服务器之间迁移一样,受到一些限制。

例如,您不能够将一个 64 位系统映像迁移到一个 32 位平台。

在将Windows 映像恢复到虚拟机时,很可能还会遇到 Hardware Abstract Layer (HAL) 问题。

许多免费或商业工具可以帮助实现物理和虚拟世界之间的系统迁移(PlateSpin PowerConvert、VMware Convert、Microsoft® Virtual Server Migration Tookit 和克隆软件);这些迁移工具还可以解决由于物理服务器和虚拟机之间的硬件不匹配引起的问题。

它们的作用之一就是在系统启动阶段将必需的驱动程序传递给操作系统内核并初始化这些驱动程序。

当然,大部分 P2V 工具的作用远不止仅执行单机迁移。

VMware Server 是一个免费的专用平台,在 Linux 和 Windows 主机上提供了对多种客户操作系统类型的支持(包括 Windows、Linux、Solaris 等等)。

作为一种全面的虚拟化解决方案,运行在 hypervisor 上的虚拟机监视器(VMM)为虚拟机提供了所有可用的硬件资源类型,包括虚拟 BIOS、虚拟内存、虚拟 SCSI 控制器、虚拟网卡,等等。

由于客户操作系统与底层硬件完全分离,因此不需要修改就可以运行。

现在,让我们看看如何使用 Clonezilla Live 将 Windows 系统映像克隆到VMware Server 托管的虚拟机上,从而实现 P2V 迁移。

回页首步骤 1. 克隆系统分区Clonezilla 技巧要实现成功的迁移,在遵循本文介绍的步骤时,应当牢记这些技巧,并作为总结经验加以参考。

1.确保映像库具有足够的空间来存储分区内的数据。

2.可以将映像划分到多个卷文件,避免最大文件大小的限制。

3.Clonezilla 不支持从大硬盘和分区中将映像恢复到较小的磁盘和分区。

4.如果 Clonezilla Live 对所有 VMware 版本都不支持 SCSI 磁盘,那么在创建 VM 时应使用 IDE 类型。

5.要在 Clonezilla Live shell 下恢复映像,您需要以根用户身份登录。

6.要恢复被克隆的分区映像,目标虚拟磁盘必须以格式化的形式呈现给Clonezilla。

7.要成功地实现Windows® 迁移,您需要精通 HAL 和并了解 sysprep 等工具。

首先,从 Clonezilla Live CD 启动物理服务器。

Clonezilla 提供了一些启动选项。

例如,可以选择To RAM选项将 Debian Live 和 Clonezilla 加载到内存中,并将 CD-ROM 用于其他应用。

选择默认设置,您将得到语言和键盘布局设置。

使用默认设置。

接下来选择是否使用基于 GUI 的备份和恢复向导或 Debian shell,用于高级访问和操作。

除非您是一名有经验的用户,否则使用Start_Clonezilla选项。

您将在将映像恢复到虚拟机中了解如何使用 shell。

现在列出了两个有关克隆类型的选项:∙device-device用于设备到设备之间的直接克隆。

∙device-image用于设备到映像之间的备份。

由于您要将一个物理系统转换为一个虚拟机,因此device-image类型是最佳选择。

接下来,必须选择在其中写入或从其中恢复备份映像的映像目录,如图 1 所示。

ssh-server、samba-server和nfs-server选项适合有网络连接但本地磁盘空闲空间或备份映像不可用的情况。

在我们的例子中,我们将克隆系统分区并将其保存到相同硬盘中的另一个分区中。

如果选择local_dev,您将有机会选择 USB 设备作为 Clonezilla 映像库。

图 1. 映像库选项您现在需要选择将被链接到映像库 /home/partimag 中的位置,这取决于内部和外部的(USB)插入磁盘。

映像实际上是位于 /home/partimag 下目录中,它包含了所有有关映像的信息和数据文件。

在本例中,系统分区 /dev/sda1 将被作为映像保存到 /dev/sda5 中。

因此,将选择 sda5 并将其挂载为/home/partimag/,如图 2 所示。

图 2. 映像分区确保映像库具有足够的空闲空间来存储系统分区内的数据。

如图 3 所示,可以为映像设备中的 Clonezilla 映像确认主目录。

图 3. Clonezilla 模式图 2 还展示了额外的命令信息,帮助使用关于 /home/partimag 空间使用报告挂载映像设备和当前的文件系统布局。

在执行这一步骤之后,选择计划在Clonezilla Live 中使用的模式。

可以选择保存或恢复整个本地磁盘或单独的分区。

对于磁盘备份,选择第三项saveparts。

选择模式之后,将要求您输入要进行备份的映像名(Sys01-2009-02-23-img)和源设备(/dev/sda1)。

下面的图展示了映像创建过程的高级选项。

由于Clonezilla 支持不同的文件系统格式,并且集成了 ntfsclone、partclone、partimage 和 dd 等分区克隆工具,可以为当前的文件系统设置要使用的工具的优先顺序。

如果不了解将要克隆的文件系统的话,那么保持默认设置。

-q (ntfsclone > partimage > dd) 也是默认设置,非常适合我们的基于 NTFS 的备份。

图 4 展示了可以进行设置以优化克隆的其他参数。

步骤 2. 准备虚拟机从现在开始,我们将在 VMware Server 内创建一个虚拟机作为系统迁移的目标。

确保主机环境与 VMware Server 兼容并能满足 guest 操作系统需求和限制。

由于虚拟机将使用与主机相同的处理器作为基准,因此要求我们克隆的主机环境和物理服务器具有兼容的处理器类型。

首先,使用 VMware New Virtual Machine Wizard 创建虚拟机。

在此过程中,选择和物理服务器中已克隆的操作系统相匹配的操作系统版本。

同时,需要创建一个虚拟磁盘,它的大小必须等于或大于原始的已克隆的系统所在的分区,因为Clonezilla 不支持将映像从大硬盘或分区恢复到更小的硬盘或分区。

然而,在Clonezilla Live 恢复过程中,您将能够根据初始磁盘布局将映像恢复到大硬盘。

图 5. 指定虚拟机的磁盘容量注意:对于早期 VMware Server 版本,Clonezilla Live 内核可能不支持 SCSI 磁盘。

在这种情况下,创建虚拟机时使用 IDE 类型的虚拟磁盘。

其次,将虚拟 CD-ROM 设备修改为对虚拟机使用 Clonezilla Live ISO 映像,如图 6 所示。

图 6. 在 VM 中使用 Clonezilla Live ISO 映像第三,将前面小节中的系统映像文件放到主机服务器的备用磁盘中,即PhysicalDrive 1 的 Partition 0。

由于 VMware Server 支持在主机系统上进行直通式(pass-through)SCSI 驱动访问,因此可以为虚拟机添加另一个磁盘,将 PhysicalDrive 1 的 Partition 0 直接附加到 VMware 中。

在恢复阶段,这个设备将呈现给 /home/partimag。

图 8. Clonezilla Live shell要在 Clonezilla Live shell 下恢复映像,必须以根用户身份登录;随后可以完全地访问 Clonezilla。

清单 1. 成为根用户user@debian:~$ sudo su -debian:~#现在,需要为恢复确定一个目标磁盘以及将要放置源映像的磁盘。

清单 2 展示了两个本地硬盘。

清单 2. 查看磁盘信息debian:~# fdisk -lDisk /dev/sda: 42.9 GB, 42949672960 bytes255 heads, 63 sectors/track, 5221 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x00000000Disk /dev/sda doesn't contain a valid partition tableDisk /dev/sdb: 160.0 GB, 160039272960 bytes255 heads, 63 sectors/track, 19457 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0xa0bea0beDevice Boot Start End BlocksId System/dev/sdb1 1 19457 156288321 7HPFS/NTFS我们将 /dev/sda 虚拟磁盘创建为恢复的目标磁盘;它尚未格式化。

/dev/sdb 是主机服务器的 PhysicalDrive 1,我们将把它作为直通式 SCSI 磁盘直接附加到虚拟机;我们将在其上放置克隆后的系统映像。

要恢复克隆后的分区映像,必须将格式化后的目标虚拟磁盘提供给 Clonezilla。

您可以使用 fdisk 工具将标签写到虚拟磁盘上。

该过程如清单 3 所示。

清单 3. 格式化目标磁盘# fdisk /dev/sdaDevice contains neither a valid DOS partition table, norSun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier0xee2955bc.Changes will remain in memory only, until you decide towrite them.After that, of course, the previous content won't berecoverable.The number of cylinders for this disk is set to 5221.There is nothing wrong with that, but this is larger than1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions ofLILO)2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)Warning: invalid flag 0x0000 of partition table 4 will becorrected by w(rite)Command (m for help):Command actione extendedp primary partition (1-4)pPartition number (1-4): 1First cylinder (1-5221, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-5221, default5221):Using default value 5221Command (m for help):Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.[ 866.679048] sd 0:0:0:0: [sda] 83886080 512-byte hardwaresectors (42950 MB)[ 866.682658] sd 0:0:0:0: [sda] Write Protect is off[ 866.683795] sd 0:0:0:0: [sda] Cache data unavailable[ 866.683822] sd 0:0:0:0: [sda] Assuming drive cache: writethrough[ 866.686443] sda: sda1[ 866.695530] sd 0:0:0:0: [sda] 83886080 512-byte hardwaresectors (42950 MB)[ 866.698278] sd 0:0:0:0: [sda] Write Protect is off[ 866.699422] sd 0:0:0:0: [sda] Cache data unavailable[ 866.699495] sd 0:0:0:0: [sda] Assuming drive cache: writethrough[ 868.702058] sda: sda1Syncing disks.我们可以使用清单 3 所示的默认值。

相关主题