歡迎您光臨本站 註冊首頁

使用 Clonezilla 遷移到虛擬 Linux 環境

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
在本文中,學習如何使用開源的 Clonezilla Live 克隆軟體將物理伺服器轉換成虛擬伺服器。具體而言,就是如何使用基於映像的方法將物理伺服器遷移到虛擬伺服器。

如今,驅動數據中心的兩大概念 — 經濟和環保 — 使伺服器虛擬化成為 IT 世界的一個熱門話題。許多硬體和軟體供應商都提供了解決方案。虛擬解決方案可以帶來這些優勢:您可以在伺服器之間輕鬆地遷移虛擬機,虛擬機可以配置為克隆映像以供複製使用(例如,在軟體開發和測試期間使用)。

實現虛擬化伺服器整合的具體過程取決於您的起點:

  • 如果您是從零開始設計系統,那麼也將從頭實現虛擬化。
  • 如果您的系統已經擁有物理狀態,那麼將從物理環境遷移到虛擬環境中。

我將這第二個過程稱為物理-虛擬遷移,即 PV2,並且這正是本文要論述的主題。在實施 P2V 遷移的過程中,有一些(手動和自動)方法通常可以提供幫助。我將介紹這些方法,並向您展示如何使用 Clonezilla Live,這是一種基於映像的解決方案,它能將物理伺服器轉換為虛擬機。

使用 Clonezilla Live,首先從物理伺服器創建一個系統映像,然後使用啟動 CD 將映像恢復到虛擬機的硬碟中。Clonezilla Live 使用起來非常便捷,並且可以為軟體開發人員、系統管理員以及希望在維護初始副本的同時分析系統副本(並避免可能的硬體組配不當問題)的工程師提供幫助。

注意:虛擬和物理系統的硬體和軟體跨越的範圍很廣,因此本文介紹的步驟僅作為一個參考。您可能需要調整這些步驟,以使它們匹配您的遷移。

Clonezilla Live 簡介

Clonezilla 是一個開源的與 Norton Ghost 類似的複製和克隆解決方案,可以使用它克隆特定的分區或整個磁碟。它有兩個版本:Clonezilla SE(伺服器版本)和 Clonezilla Live。Clonezilla SE 最適合跨越網路同步備份和恢復多個伺服器。Clonezilla Live 是針對單獨機器克隆的更加輕量級的構建。

Clonezilla Live 是 Debian Live 和 Clonezilla 的結合;它提供以下特性和優點:

  • 它只克隆硬碟中被使用的塊。
  • 提供了多個文件系統甚至 LVM 支持,包括面向 GNU/Linux 的 ext2、ext3、xfs、jfs 和 LVM2;面向 MS Windows 的 FAT、NTFS;以及面向 Mac OS 的 HFS+。
  • 要設置 Clonezilla SE,不需要在 Linux 上使用無磁碟的遠程啟動伺服器(DRBL)。
  • 支持 CD/DVD、USB 快閃記憶體/硬碟和 PXE 啟動。
  • 可以針對啟動和恢復過程進行定製。

Clonezilla Live 使用 Partition Image、ntfsclone、partclone 和 dd 等現有工具來克隆分區或磁碟。對於未列出的文件系統,Clonezilla 使用 dd 複製所有正在使用和未使用的塊。





虛擬化和系統遷移工具

在將物理伺服器遷移到虛擬機時,可能會和在物理伺服器之間遷移一樣,受到一些限制。例如,您不能夠將一個 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 展示了可以進行設置以優化克隆的其他參數。


圖 4. 其他 Clonezilla 高級參數:克隆

對於 Windows 系統映像,-rm-win-swap-hib 選項非常有助於保存備份和恢復時間,它的做法是排除 swap 和 hibernation 文件。如果需要將保存后的映像傳遞到另一個位置,並且需要在恢復映像時檢查映像的完整性,那麼建議使用 -gm 或 -gs 選項。

Clonezilla Live 還允許您在選擇壓縮方法時考慮到效率和期間的一些注意事項。一些文件系統不支持大於 2G 的文件,因此,可以通過將映像分解到多個卷文件,從而設置最大文件大小。

最後,可以使用 -p 參數指定一個動作,表示要在克隆過程結束后執行的動作。

完成設置后,現在來查看操作並確認您的選擇。備份和恢復過程都使用 ocs-sr 工具,而帶有相應參數的 ocs-sr 命令則作為記錄提供,供以後使用。

現在,坐下來等待備份完成。完成備份並啟動系統之後,將映像目錄從物理伺服器傳遞到一個位置,這個位置將作為虛擬機的恢復源。





步驟 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。


圖 7. 將系統映像附加到分區

現在,您已經創建了一個精簡的虛擬機,接下來將從 Clonezilla Live 啟動虛擬機。





步驟 3. 將映像恢復到虛擬機

當虛擬機從 Clonezilla Live 映像啟動之後,Clonezilla Live 為恢復提供了和備份過程相同的基於 GUI 的嚮導界面,引導您選擇模式。在本例中,我們將直接輸入基於 Debian 的 Clonezilla Live shell,以選擇一個手動恢復。


圖 8. Clonezilla Live shell

要在 Clonezilla Live shell 下恢復映像,必須以根用戶身份登錄;隨後可以完全地訪問 Clonezilla。


清單 1. 成為根用戶
				  user@debian:~$ sudo su -  debian:~#  

現在,需要為恢復確定一個目標磁碟以及將要放置源映像的磁碟。清單 2 展示了兩個本地硬碟。


清單 2. 查看磁碟信息
				  debian:~# fdisk -l  Disk /dev/sda: 42.9 GB, 42949672960 bytes  255 heads, 63 sectors/track, 5221 cylinders  Units = cylinders of 16065 * 512 = 8225280 bytes  Disk identifier: 0x00000000    Disk /dev/sda doesn't contain a valid partition table    Disk /dev/sdb: 160.0 GB, 160039272960 bytes  255 heads, 63 sectors/track, 19457 cylinders  Units = cylinders of 16065 * 512 = 8225280 bytes  Disk identifier: 0xa0bea0be    Device Boot         Start       End      Blocks       Id    System  /dev/sdb1            1            19457   156288321   7      HPFS/NTFS  

我們將 /dev/sda 虛擬磁碟創建為恢復的目標磁碟;它尚未格式化。/dev/sdb 是主機伺服器的 PhysicalDrive 1,我們將把它作為直通式 SCSI 磁碟直接附加到虛擬機;我們將在其上放置克隆后的系統映像。

要恢復克隆后的分區映像,必須將格式化后的目標虛擬磁碟提供給 Clonezilla。您可以使用 fdisk 工具將標籤寫到虛擬磁碟上。該過程如清單 3 所示。


清單 3. 格式化目標磁碟
				  # fdisk /dev/sda  Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel  Building 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 previous content won't be recoverable.    The number of cylinders for this disk is set to 5221.  There 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 will be corrected by w(rite)    Command (m for help):  Command action     e   extended     p   primary partition (1-4)  p  Partition number (1-4): 1  First cylinder (1-5221, default 1):  Using default value 1  Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221):   Using default value 5221    Command (m for help):  Command (m for help): w  The 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: [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: write through  [ 866.686443]  sda: sda1  [ 866.695530] sd 0:0:0:0: [sda] 83886080 512-byte hardware sectors (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: write through  [ 868.702058]  sda: sda1   Syncing disks.  

我們可以使用清單 3 所示的默認值。這一次,不需要關心分區類型,因為 Clonezilla 將在映像恢復過程中重新創建它。

和備份過程一樣,必須將一個可寫設備或空間掛載為 /home/partimag,Clonezilla 隨後將在 /home/partimag 下搜索克隆后的映像目錄。如果要將分區 /dev/sdb1 中的映像恢復到新創建的分區 /dev/sda1 中,必須使用寫許可權將 /dev/sdb1 掛載到 /home/partimag。注意,/dev/sdb1 在主機伺服器上是一個 NTFS 文件系統,它可能是公開的,因此要成功地掛載它,可能需要使用一個強制選項。參見清單 4。


清單 4. 將映像設備掛載到 /home/partimag
				  debian:~# mount -t ntfs-3g /dev/sdb1 /home/partimag -o force  debian:~# ls /home/partimag  Sys01-2009-02-23-img  

當準備好 /home/partimag 和目標分區后,需要選擇一種最佳方式來為您的環境恢復映像。和備份一樣,Clonezilla 也為映像恢復提供了各種高級和靈活的選項。圖 9 展示了恢復參數及其含義。


圖 9. 更多 Clonezilla 高級參數:恢復

對於 Windows 系統映像恢復,必須將啟動頭部(header)寫入到目標磁碟中。為此,推薦使用 -j0(使用 dd 創建分區表)和 -t1(客戶機從 syslinux 恢復預構建的 MBR)。hnX PC(X 為 0 或 1)選項可以確保您的環境擁有一個惟一的 Windows 機器名。如果您不希望保持當前的目標分區布局,也可以嘗試使用 -k1 或另一個分區參數來創建不同的分區表。

清單 5 從 /home/partimag(/dev/sdb1)將映像 Sys01-2009-02-23-img 恢復到目標設備 /dev/sda1 中。


清單 5. 使用命令行恢復映像
				  debian:~# /opt/drbl/sbin/ocs-sr -e1 auto -c -t1 -r -j3 -cm -j0 -p reboot restoreparts               "Sys01-2009-02-23-img" "sda1"  

圖 10 展示了在確認選項后您將收到的摘要和進度更新。在此之後,克隆后的系統將被放到虛擬機中。


圖 10. Clonezilla 恢復摘要和進度

恢復完成後,可以看到系統將從虛擬機中啟動。為了獲得更好的性能,需要為虛擬操作系統安裝 VMware Tools。

要確保在 Windows 上成功完成遷移,應當精通 HAL 並能夠使用 sysprep 等工具來配置虛擬伺服器,使它支持虛擬機環境。





結束語

本文向您展示了如何使用基於映像的方法和開源工具完成物理-虛擬系統的遷移。注意,本文介紹的步驟僅用作參考;由於不同的環境之間存在差異,您使用的遷移方式可能與本文介紹的方式有所不同。(責任編輯:A6)



[火星人 ] 使用 Clonezilla 遷移到虛擬 Linux 環境已經有3113次圍觀

http://coctec.com/docs/linux/show-post-68899.html