《linux物理服务器到虚拟机的整机迁移教程.docx》由会员分享,可在线阅读,更多相关《linux物理服务器到虚拟机的整机迁移教程.docx(24页珍藏版)》请在三一办公上搜索。
1、在本文中,学习如何使用开源的Clonezilla Live克隆软件将物理服务器转换成虚拟服务器。具体而言,就 是如何使用基于映像的方法将物理服务器迁移到虚拟服务器。如今,驱动数据中心的两大概念一经济和环保一使服务器虚拟化成为IT世界的一个热门话题。 许多硬件和软件供应商都提供了解决方案。虚拟解决方案可以带来这些优势:您可以在服务器之间轻松地迁 移虚拟机,虚拟机可以配置为克隆映像以供复制使用(例如,在软件开发和测试期间使用)。实现虚拟化服务器整合的具体过程取决于您的起点:如果您是从零开始设计系统,那么也将从头实现虚拟化。如果您的系统已经拥有物理状态,那么将从物理环境迁移到虚拟环境中。我将这第二个
2、过程称为物理-虚拟迁移,即PV2,并且这正是本文要论述的主题。在实施P2V迁移 的过程中,有一些(手动和自动)方法通常可以提供帮助。我将介绍这些方法,并向您展示如何使用 Clonezilla Live,这是一种基于映像的解决方案,它能将物理服务器转换为虚拟机。使用Clonezilla Live,首先从物理服务器创建一个系统映像,然后使用启动CD将 映像恢复到虚拟 机的硬盘中。Clonezilla Live使用起来非常便捷,并且可以为软件开发人员、系统管理员以及希望在维护 初始副本的同时分析系统副本(并避免可能的硬件组配不当问题)的工程师提供帮助。注意:虚拟和物理系统的硬件和软件跨越的范围很广,
3、因此本文介绍的步骤仅作为一个参考。您可能 需要调整这些步骤,以使它们匹配您的迁移。Clonezilla Live 简介Clonezilla是一个开源的与Norton Ghost类似的复制和克隆解决方案,可以使用它克隆特定的分区或整个磁盘。它有两个版本:Clonezilla SE (服务器版本)和ClonezillaLive.Clonezilla SE最适合跨越网络同步备份和恢复多个服务器。Clonezilla Live是针对单独机器克隆的更加轻量级的构建。Clonezilla Live是Debian Live和Clonezilla的结合;它提供以下特性和优点:它只克隆硬盘中被使用的块。提供了多
4、个文件系统甚至LVM支持,包括面向GNU/Linux的ext2、ext3、xf s、jfs和LVM2 ;面向 MS Windows 的 FAT、NTFS ;以及面向 Mac OS 的 HFS+.要设置Clonezilla SE,不需要在Linux上使用无磁盘的远程启动服务器(DRB L)。支持CD/DVD、USB闪存/硬盘和PXE启动。可以针对启动和恢复过程进行定制。Clonezilla Live 使用 Partition Image、ntfsclone、partclone 和 dd 等现有工具来克 隆分区或磁 盘。对于未列出的文件系统,Clonezilla使用dd复制所有正在使用和未使用的块
5、。虚拟化和系统迁移工具在将物理服务器迁移到虚拟机时,可能会和在物理服务器之间迁移一样,受到一些限制。例如,您不 能够将一个64位系统映像迁移到一个32位平台。在将Windows映像恢复到虚拟机时,很可能还会遇到 Hardware Abstract Layer (HAL)问题。许多免费或商业工具可以帮助实现物理和虚拟世界之间的系统迁移(PlateSpin PowerConvert、VMware Convert、Microsoft ? Virtual Server Migration Tookit 和克隆软件);这些迁移 工具还可以解决由于物理服务器和虚拟机之间的硬件不匹配引起的问题。它们的作用之
6、一就是在系统启动阶 段将必需的驱动程序传递给操作系统内核并初始化这些驱动程序。当然,大部分P2V工具的作用远不止仅执行单机迁移。VMware Server是一个免费的专用平台,在Linux和 Windows主机上提供了对多种客户操作系统类型的支持(包括Windows、Linux、Solaris等等)。作为一种全面的虚拟化解决方案,运行在hypervisor上的虚拟机监视器(VMM)为虚拟机提供了所有可用的硬件资源类 型,包括虚拟BIOS、虚拟内存、虚拟SCSI控制器、虚拟网卡,等等。由于客户操作系统与底层硬件完全 分离,因此不需要修改就可以运行。现在,让我们看看如何使用Clonezilla L
7、ive将Windows系统映像克隆到VMware Serv er托管的虚拟机 上,从而实现P2V迁移。步骤1.克隆系统分区首先,从Clonezilla Live CD启动物理服务器。Clonezilla提供了一些启动选项。例如,可以选择To RAM选项将Debian Live和Clonezilla加载 到内存中,并将CD-ROM用于其他应用。选择默认设置,您将得到语言和键盘布局设置。使用默认设置。接下来选择是否使用基于GUI的备份和恢复向导或Debian shell,用于高级访问和操作。除非您是 一名有经验的用户,否则使用Start_Clonezilla选项。您将在将映像恢复到虚拟机中了解如何
8、使用shell.现在列出了两个有关克隆类型的选项: device-device用于设备到设备之间的直接克隆。 device-image用于设备到映像之间的备份。由于您要将一个物理系统转换为一个虚拟机,因此device-image类型是最佳选择。接下来,必须选择在其中写入或从其中恢复备份映像的映像目录,如图1所示。ssh -server、 samba-server和nfs-server选项适合有网络连接但本地磁盘空闲空间或备份映像不可用的情况。在我们 的例子中,我们将克隆系统分区并将其保存到相同硬盘中的另一个分区中。如果选择local_dev,您将有 机会选择USB设备作为Clonezilla映
9、像库。Clonezilla 技巧要实现成功的迁移,在遵循本文介绍的步骤时,应当牢记这些技巧,并作为总结经验加以参考。1、确保映像库具有足够的空间来存储分区内的数据。2、可以将映像划分到多个卷文件,避免最大文件大小的限制。3、Clonezilla不支持从大硬盘和分区中将映像恢复到较小的磁盘和分区。4、如果Clonezilla Live对所有VMware版本都不支持SCSI磁盘,那么在创建VM时应使用IDE类 型。5、要在Clonezilla Live shell下恢复映像,您需要以根用户身份登录。6、 要恢复被克隆的分区映像,目标虚拟磁盘必须以格式化的形式呈现给Clonezilla.7、 要成功
10、地实现Windows ?迁移,您需要精通HAL和并了解sysprep等工具。图1.映像库选项ncNiiit ciancstiirt $障的匚 n 和 nxtomH 11浪萨 f 1 孔/ !F: .顷-!* n ih in I图片看不清楚?请点击这里查看原图(大图)您现在需要选择将被链接到映像库/home/partimag中的位置,这取决于内部和外部的(USB)插入磁盘。映像实际上是位于/home/partimag下目录中,它包含了所有有关映像的信息和数据文件。在本例中,系统分区/dev/sdal将被作为映像保存到/dev/sda5中。因此,将选择sda5并将其挂载为/home/partima
11、g/,如图2所示。irwtory |to b rpfli孑 He wiki iwUnrl tiMjt. dkvLCC 业rc0tct w redJ fron 舛 lORUhjj 边 HLwig图2.映像分区IKMict GldHCSkilftteTorc C|gn|ngl (t& 4Lg-Ti Uhcrc | CllWAllla InAgc:as ZhoM/jMrHl Clomzl11 iAfc Mill btfhimcE t Jw mde:SEhAscrucr- Oxjb- SS1I seruwr-EdHtaUeroeF Us SARBA; EAruer Pteif 女 NekghJbcf
12、Iw&ol seiMerJ nts_icivcr foe E SETverenter_shEi 1 E-ater ccKmind 1 ine prcmp*t. Do it ms thia k 1a xkifi tKc qA|Ih /irte 电(.利叭丁 l 出舐加 rO图片看不清楚?请点击这里查看原图(大图)。确保映像库具有足够的空闲空间来存储系统分区内的数据。如图3所示,可以为映像设备中的Clonezilla映像确认主目录。图 3. Clonezilla 模式 iKwni cidicxtlHit 加陀 m*nxtory | la lHd|C Mmi to B rpfli 齐 1 7 He
13、will WUwt tlsflt. fcvLCC ftr rviAtc Law HdJ rroH AliOR&zjidirtLMg.那么保持默认设置。-q (ntfsclone partimage dd)teTiOffA c laming J ”4 luw g #$4: Lgrn Where ItHsouiruH ae ZhMcziHrt Ifrftg. T| Cloiwxl 11 iMfe vl SI be Owe 心 Mode!如BO图片看不清楚?请点击这里查看原图(大图)。图2还展示了额外的命令信息,帮助使用关于/home/partimag空间使用报告挂载映像设备和当前的文件系统布局。在
14、执行这一步骤之后,选择计划在Clonezilla Live中使用的模式。可以选择保存或恢复整个本地磁盘或单独的分区。对于磁盘备份,选择第三项savepartSo选择模式之后,将要求您输入要进行备份的映像名(Sys01-2009-02-23-img)和源设备(/dev/sda1 )。下面的图展示了映像创建过程的高级选项。由于Clonezilla支持不同的文件系统格式,并且集成了ntfsclone、partclone, partimage和dd等分区克隆工具,可以为当前的文件系统设置要使用的工具的优先顺序。如果不了解将要克隆的文件系统的话,也是默认设置,非常适合我们的基于NTFS的备份。图4展示了
15、可以进行设置以优化克隆的其他参数。图4.其他Clonezilla高级参数:克隆图片看不清楚?请点击这里查看原图(大图)。对于win dows系统映像,-rm-win-swap-hib选项非常有助于保存备份和恢复时间,它的 做法是排除swap 和hibernation文件。如果需要将保存后的映像传递到另一个位置,并且需要在恢复映像时检查映像的完整性,那么建议使用-gm或-gs选项。Cionezilla Live还允许您在选择压缩方法时考虑到效率和期间的一些注意事项。一些文件系统不支持大于2G的文件,因此,可以通过将映像分解到多个卷文件,从而设置最大文件大小。最后,可以使用-p参数指定一个动作,表
16、示要在克隆过程结束后执行的动作。完成设置后,现在来查看操作并确认您的选择。备份和恢复过程都使用ocs-sr工具,而带有相应参数的ocs-sr命令则作为记录提供,供以后使用。现在,坐下来等待备份完成。完成备份并启动系统之后,将映像目录从物理服务器传递到一个位置,这个位置将作为虚拟机的恢复源。步骤2.准备虚拟机从现在开始,我们将在VMware Server内创建一个虚拟机作为系统迁移的目标。确保主机环境与 VMware Server兼容并能满足guest操作系统需求和限制。由于虚拟机将使用与主机相同的处理器作为基 准,因此要求我们克隆的主机环境和物理服务器具有兼容的处理器类型。首先,使用VMwar
17、e New Virtual Machine Wizard创建虚拟机。在此过程中,选择和物理服务 器中已克隆的操作系统相匹配的操作系统版本。同时,需要创建一个虚拟磁盘,它的大小必须等于或大于原 始的已克隆的系统所在的分区,因为Clonezilla不支持将映像从大硬盘或分区恢复到更小的硬盘或分区。然 而,在Clonezilla Live恢复过程中,您将能够根据初始磁盘布局将映像恢复到大硬盘。图5.指定虚拟机的磁盘容量Specify Duk CapneAvirtllw dnk cft never he yg ifvan the mAsndn c-afixy thiat you her*图片看不清楚?
18、请点击这里查看原图(大图)。注意:对于早期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 ) SCS
19、I驱动访问,因此可以为虚拟机添加另一个磁盘,将PhysicalDrive 1的Partition 0/home/partimag。直接附加到VMware中。在恢复阶段,这个设备将呈现给图7.将系统映像附加到分区叵_竖上回俑;WindcOi 曲 HeComnmMJi Editkrtu| Mac Mne SettGuc 址 O CGnAgur yerAtfeonDish MiNZIKrDvi&ff VMFhyii&3cily一14周尺DGEF*0twFyps herBwmwX Conuiwweseiw# LQJ B 衣图片看不清楚?请点击这里查看原图(大图)。现在,您已经创建了一个精简的虚拟机,接
20、下来将从Clonezilla Live启动虚拟机。步骤3.将映像恢复到虚拟机当虚拟机从Clonezilla Live映像启动之后,Clonezilla Live为恢复提供了和备份过程相同的基于GUI的向导界面,引导您选择模式。在本例中,我们将直接输入基于Debian的Clonezilla Live shell,以选择一个手动恢复。图 8. Clonezilla Live shellMOC FrcrUbi.grvi ultre Is Cloimll la luuxd /Hvl&口 I 丘禹仙M dlue.就宜dclw 茸 Ula bwg;c Alrxtory | iaaic wed to or
21、Md fron t Ito uni wdnt tiwit dbeulcc or rotote la or haJ Hkjr ZhMt/jartiiup.要在Clonezilla Live shell下恢复映像,必须以根用户身份登录;随后可以完全地访问 Clonezilla。清单1.成为根用户userdebian: $sudo su -debian:#现在,需要为恢复确定一个目标磁盘以及将要放置源映像的磁盘。清单2展示了两个本地硬盘。清单2.查看磁盘信息debian: # fdisk -lDisk /dev/sda:42.9 GB, 42949672960 bytes255 heads, 63
22、sectors/track, 5221 cylindersUnits = cylinders of 16065*512=8225280 bytesDisk identifier:0x00000000Disk /dev/sda doesnt 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:0xa
23、0bea0beDevice BootStartEndBlocksId System194571562883217HPFS/NTFS我们将/dev/sda虚拟磁盘创建为恢复的目标磁盘;它尚未格式化。/dev/sdb是主机服务 器的PhysicalDrive 1,我们将把它作为直通式SCSI磁盘直接附加到虚拟机;我们将在其上放置克隆后的系统映像。要恢复克隆后的分区映像,必须将格式化后的目标虚拟磁盘提供给Clonezilla。您可以使用fdisk工具将标签写到虚拟磁盘上。该过程如清单3所示。清单3.格式化目标磁盘# fdisk /dev/sdaDevice contains neither a va
24、lid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xee2955bc.Changes will remain in memory only, until you decide to write them.After that, of course, the previouscontent wont be recoverable.The number of cylinders for this disk is set to 5221.Th
25、ere is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)Warning:invalid flag 0x0000 of partition table 4
26、 will be corrected by wCommand (m for help):Command actione extendedp primary partition (1-4)plPartition number (1-4):1First cylinder (1-5221, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221):Using default value 5221Command (m for help):Command (m for
27、 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 hardware sectors (42950 MB)866.682658 sd 0:0:0:0:866.686443 sda: sda1sda Write Protect is off866.683795 sd 0:0:0:0:sda Cache data unavailable866.683822sd 0:0:0:0:sda As
28、sumingdrive cache: write through866.695530sd0:0:0:0:sda83886080 512-byte hardwaresectors (42950 MB)866.698278sd0:0:0:0:sdaWrite Protect is off866.699422sd0:0:0:0:sdaCache data unavailable866.699495 sd 0:0:0:0:sda Assuming drive cache:write through868.702058 sda: sda1Clonezilla 将在Syncing disks.我们可以使用
29、清单3所示的默认值。这一次,不需要关心分区类型,因为映像恢复过程中重新创建它。和备份过程一样,必须将一个可写设备或空间挂载为/home/partimag,Clonezilla随后将在/home/partimag下搜索克隆后的映像目录。如果要将分区/dev/sdb1中的映像恢复到新创建的分区/dev/sda1中,必须使用写权限将/dev/sdb1挂载到/home/partimag。注意,/dev/sdb1在主机服务器上是一个NTFS文件系统,它可能是公开的,因此要成功地挂载它,可能需要使用一个强制选项。参见清单4。清单4.将映像设备挂载到/home/partimagdebian: # mount
30、 -t ntfs-3g/dev/sdb1 /home/partimag -o forcedebian:# ls /home/partimagSys01-2009-02-23-img当准备好/home/partimag和目标分区后,需要选择一种最佳方式来为您的环境恢复映像。和备份一样,Clonezilla也为映像恢复提供了各种高级和灵活的选项。图9展示了恢复参数及其含义。图9.更多Clonezilla高级参数:恢复nciiint clQnczlilla: Swkje 41 rM-tcnrij |Bero eiMidnjh g KiMe atSilgm uhere Clmsilk*MV&I MX*
31、 1 Ue “111 iwiwt tMt Aeutee reMtercnmixc 几 ASDm ElonnaUI 册 ihup vlll beto nr rtd4 Iron Aisnnz|ArtliwgChCHkEE t lbr JdE:SEh.SEJVST IlfC 跑 I SEF4HF smi0 .fieruer Use SmA i*rr Crte LwaE* NebgMHrhMd serverJ ntxAirrwr tec HR server BntCTjhEll Euter cmuM 1 ins prempt. Do il |UTMAAI! ly skip lhe cAlisliivA
32、 冲 i 册护胛 C【触附(Ulnkrnvn?40103J图片看不清楚?请点击这里查看原图(大图)。对于Windows系统映像恢复,必须将启动头部(header)写入到目标磁盘中。为此,推荐使用(使用dd创建分区表)和-ti|(客户机从syslinux恢复预构建的MBR)。hnX PCX 为0或1)选项可以确保您的环境拥有一个惟一的Windows机器名。如果您不希望保持当前的目标分区布局,也可以尝试使用或另一个分区参数来创建不同的分区表。设备 /dev/sda1 中。清单5.使用命令行恢复映像/opt/drbl/sbin/ocs-sr-e1 auto -c -t1 -r -j3 -cm -j0
33、 -p rebootrestorepartsSys01-2009-02-23-imgsda1图10展示了在确认选项后您将收到的摘要和进度更新。在此之后,克隆后的系统将被放到虚拟机 中。图10. Clonezilla 恢复摘要和进度CMC Ffflr 白巾细 ire Ubs. TakuAvi1 iMamt cJPwlilTtr FMsic Otttiary |加萄c|QHilnOt凹治说to rcsouriDts xfhCMKB t Jk node:wbcft It E 怖尊刮】1 In 此 U 址心 or mA froti 7 Ik; uHI Mdftl tlwt 跖 Mm or r&itoU
34、 Dir tloncxH la lilirfc- win be ucd U)or rtalnon CM!cr/jAmnciOLijuiti: iu Fi 时 u drlue. UfiB drLutEih_T; rwer UUR 知EPFuerEjntftAERTOHF Ike EEruer htef.iiQrk Me bghtoFlvaodL senjer I nFx_5Ewcr Use INFS server enter_she 11 Enter CMMIII liir prcnpl. bo It 耐恤川 1 少就 ip IJtec /Hii?/|MirtlRir (LMrownJCCniicflb图片看不清楚?请点击这里查看原图(大图)。恢复完成后,可以看到系统将从虚拟机中启动。为了获得更好的性能,需要为虚拟操作系统安装VMware Tools。要确保在Windows上成功完成迁移,应当精通HAL并能够使用sysprep等工具来 配置虚拟服务器,使它支持虚拟机环境。结束语本文向您展示了如何使用基于映像的方法和开源工具完成物理-虚拟系统的迁移。注意,本文介绍的步骤仅用作参考;由于不同的环境之间存在差异,您使用的迁移方式可能与本文介绍的方式有所不同。