Linux
將 Linux 伺服器轉移到虛擬機
我有一個執行某些服務(包括 Apache Web 伺服器、郵件列表等)的 OpenSuse 伺服器。現在我需要將所有這些服務移動到虛擬機(Virtualbox 可以在同一台物理機或其他地方執行)。
如果我可以將所有內容“複製”到虛擬機,那麼虛擬機將完全按照原始機器的執行方式工作,這是理想的。所有使用者的數據(/home/*)都儲存在 NFS 中,不應傳輸到 VM。然後我可以擁有一個相對較小(幾千兆字節)的 VM 映像,以便每隔幾天備份一次。
我需要將所有系統和應用程序設置移動到虛擬機,這樣我才能順利切換到使用虛擬機。
有什麼工具或東西可以簡單地做到這一點嗎?如果沒有,我該怎麼做?
你可以用 dd 非常直接地做到這一點。
dd if=/dev/you-root of=/mnt/temp/filesystem.raw bs=1M
現在您可以使用 qemu-img 將此原始文件轉換為任何需要的容器。甚至讓 VM 使用塊設備並將其複製到邏輯卷。對於 VirtualBox,它將是 vdi。
qemu-img convert -O vdi /mnt/temp/filesystem.raw /mnt/temp/filesystem.vdi
從技術上講,您可以為此使用Rsync :
在虛擬機上啟動一張 live CD,並對磁碟進行分區以品嚐,然後將“/”掛載為 /mnt/rootfs/,並從虛擬機執行以下命令:
rsync -aHAXz root@OLD-SERVER:/ --exclude=/sys/* --exclude=/proc/* --exclude=/dev/* /mnt/rootfs/ -a = archive mode; equals -rlptgoD (no -H,-A,-X) -H = preserve hard links -A = preserve ACLs (implies --perms) -X = preserve extended attributes -z = compress file data during the transfer
然後修復 GRUB、/etc/fstab 等…
假設您的“舊伺服器”具有 SSH 訪問權限,這將(大部分)工作……
我之前用過這個方法複製物理機…