VM 運行時 KVM 虛擬克隆

VM 運行時 KVM 虛擬克隆

是否可以在沒有像 virt-clone 這樣的工具的情況下克隆正在運行的 kvm 機器?

他們已經在生產中擁有原始虛擬機,我無法將其關閉。如果我不關心克隆上的臨時資料損壞(初始 fsck 可以修復的問題),我可以將 qcow 映像檔 cp 到一個新名稱,建立一個使用該磁碟的新 vm 定義並啟動機器嗎?

答案1

如果您不關心記憶體中的數據,則可以對支援設備進行快照並取得該快照的副本。

這當然需要一個支援快照的儲存池(主要是 LVM 或 ZFS,因為 BTRFS 對於虛擬機器儲存來說非常慢)。

答案2

我懷疑是僅有的可以透過避免使用 virt-clone 來克隆磁碟,因為(正如已經提到的)virt-clone 將拒絕與正在運行的虛擬機器一起工作。因此,您必須使用其他東西來製作實際磁碟映像的副本。

我認為基本的答案是你可以嘗試並希望你能幸運。

取得來賓配置的「快照」非常簡單(virsh dumpxml NAME就可以做到)。如果您有多個磁碟(即,如果您有一個作業系統磁碟和 n+1 個資料磁碟),那麼我會嘗試避免複製作業系統磁碟,並看看是否可以使用全新安裝。

然而,如果有任何除了複製磁碟映像之外的其他方法,我可能更喜歡它。例如,如果這一切都與資料庫伺服器有關,我可能會使用資料庫自己的設施在實例之間安全地複製資料。如果您直接處理檔案系統,那麼可能值得看看像 DRBD 這樣的東西是否可以提供幫助,或者像 rsync 這樣簡單的東西是否可以提供幫助。

基本上,我會仔細考慮您實際需要做什麼,並嘗試避免花時間在嘗試複製正在使用的磁碟映像之類的事情上(除了圍繞副本可能是什麼樣子的問題之外,我還會擔心嘗試複製磁碟可能會對原始磁碟造成什麼影響)。

答案3

我有一個工作虛擬機。在其中,我已通過 ssh 連接到 KVM 基礎計算機,並使用cp -ar.我還在複製之前對提到的nvme進行了格式化和分區...然後使用

virsh edit mykvm 

更改了 ID、磁碟位置和名稱...

並關閉我的機器並重新啟動新機器。唯一消失的是打開的視窗和 chrome 會話...

除非您正在編寫一些系統或應用程式文件,否則它似乎可以工作...

我當然不會用這個。我將對其進行實驗,實驗後我將把結果應用到原始文件中。

但是,如果我不得不將它用作主作業系統快照。我會簡單地進行檔案系統檢查,然後進行系統檔案檢查(sha1sum),或使用任何內建命令來檢查系統檔案。

答案4

這對於 RAW 磁碟映像格式來說是完全可行的。我不知道qcow2...

Debian.img:x86 引導磁區;分區 1:ID=0x83,活動,起始頭 32,起始扇區 2048,497664 個扇區;分割區 2:ID=0x5,起始頭 59,起始磁區 501758,104353794 區,碼偏移 0x63

Debian2.img:x86 引導磁區;分區 1:ID=0x83,活動,起始頭 32,起始扇區 2048,497664 個扇區;分割區 2:ID=0x5,起始頭 59,起始磁區 501758,104353794 區,碼偏移 0x63

為了進行測試,我安裝了一個正在運行的 linux mint 系統,其中包含所有內容。然後使用新映像建立一個新虛擬機,它甚至在啟動時沒有檔案系統不一致的情況。雖然這只是一個小型桌面虛擬機,但我要「克隆」的是一個正在生產中運行的 LAMP 伺服器,資料庫上有高 I/O。

我真的不關心不一致,只是想節省一些時間來重新設定 LAMP 環境,我想在開始時創建一個基本映像或對第一個 Web 伺服器進行快照將是一個好主意,但在完全配置之後並且測試時為時已晚,他們立即開始在生產中使用它。

相關內容