我正在嘗試將虛擬機器轉換為實體專用伺服器。
我只能存取 VM 作業系統 (CentOS 6.7)。我無法存取虛擬機器管理程式。
我想使用dd
命令轉儲虛擬機器磁碟,然後將該映像寫入dd
專用伺服器的硬碟上。為此,我可能需要從 Live CD 啟動伺服器。
我的問題是:這會起作用嗎?最好使用rsync
?將/中的所有檔案和目錄從一台伺服器複製到另一台伺服器。
答案1
您應該在應用程式層級處理該遷移,以便您可以從新伺服器開始一個乾淨的開始,並且不會留下任何遺留的遷移問題(例如管理程式工具和驅動程式)。
首先列出伺服器目前託管的所有內容,然後使用特定於每個應用程式的遷移過程將這些角色單獨遷移到新伺服器上,並為每個應用程式製定回滾計劃和測試過程。然後,停用舊伺服器。
答案2
我會在實體機上安裝 Cent OS。這減少了 rsync 時間,讓您為實體機設定權限和 grub。然後從虛擬機器進行 rsync。我認為在這種情況下沒有理由實時啟動。您可能不想同步所有根目錄,因此您需要一些排除項。您排除的內容因您的環境而異。這個網站有一個很好的範例排除清單可供查看。
http://www.rackspace.com/knowledge_center/article/migration-a-linux-server-from-the-command-line-0
您也可以考慮根據您的網路和伺服器的大小限制 rsync。
所以從VM運行
sudo rsync -a --bwlimit=5000 --delete -exclude-from Excludefile.txt / root@physicalserver:/
-a 保留權限和時間戳記。 --delete 刪除實體伺服器上但不在虛擬機器上的所有檔案。 --bwlimit 限制 rsync。排除自排除在排除文件中找到的模式。
潛在問題
如果您使用 ACL,它們將不會在 rsync 期間傳輸。如果需要,您可以進行匯出和匯入。
如果您在 fstab 中使用磁碟 ID,並且覆寫新的 fstab,則您的分割區將不會掛載。如果您不確定,只需從 rsync 中排除 fstab 文件,然後將任何需要的行新增至文件。
就像 fstab 一樣,您的網路設定腳本需要被排除或檢查潛在問題。
還有其他選項同樣適用於此目的,但這種方法對我來說效果很好。
答案3
由於實體伺服器將具有不同的硬件,因此我不建議克隆磁碟。我建議在實體伺服器上安裝相同版本的 CentOS,然後複製相關資料夾/目錄。複製 /etc 和其他系統資料夾時要有選擇性。
答案4
簡單的 dd 不起作用 - 來賓沒有正確的啟動分區。而且dd很慢。手動方式 - 在系統上安裝最小的 centos 6.7 - 確保使用單獨的 /boot 分割區,並預先建立所有其他分割區(包括 fs,但不一定是掛載點)。
現在livecd你最小的centos,並使用nc和tar覆蓋除/boot分區之外的所有內容,一次一個分區。這也將比 dd 快得多。
nc/tar 呼叫範例;在物理機上:
nc -l 1234 | tar xvf -
在虛擬方面:
tar cvjf - . | nc <physical ip> 1234
對除引導之外的每個分割區重複此操作。
艾瑞克的警告也保留在這裡 - 您可能需要修改任何特定於硬體的文件,包括網路、fstab 和 udev 規則。您必須注意 modprobe,因為 paravirt 網路驅動程式與其實際對應的驅動程式不同。
其他選項 - 在網路上搜尋 v2p 解決方案。