如何使用Linux命令創(chuàng)建快照?
在我們學(xué)習(xí)Linux的過程中,我們經(jīng)常會(huì)遇到一些解決不了的問題,本文為你講解如何用Linux命令創(chuàng)建快照。虛擬機(jī)快照是一個(gè)非常好的功能,它能保存當(dāng)前虛擬機(jī)的狀態(tài)。不幸的是開源Xen不提供對(duì)快照的支持,而Linux能支持。由于開源Xen通常使用Linux作為它的特權(quán)域,所以你能使用Linux命令創(chuàng)建快照。
逐個(gè)字節(jié)進(jìn)行快照
在Xen里創(chuàng)建快照的一種方法是在保存虛擬機(jī)當(dāng)前狀態(tài)后使用Linux dd。這包括以下步驟:
1.使用xm save命令禁用當(dāng)前的虛擬機(jī)狀態(tài)并將其寫入磁盤文件。這只把機(jī)器狀態(tài)寫入一個(gè)文件,不是用于Xen磁盤文件或分區(qū)的當(dāng)前狀態(tài)。使用名稱linux01這樣做,用xm save linux01 linux01.sav。注意這個(gè)命令將停止虛擬機(jī)。
2.現(xiàn)在使用dd將磁盤鏡像文件的當(dāng)前狀態(tài)轉(zhuǎn)存到一個(gè)備份文件。下面的例子將為LVM邏輯卷:
- dd if=/dev/xenvols/linux01_root of=/data/xen_linux01_root.img
3.使用xm restore命令重新啟動(dòng)虛擬機(jī)。
這種解決方案的主要缺點(diǎn)在于耗時(shí)。dd命令逐個(gè)字節(jié)地對(duì)虛擬機(jī)磁盤文件進(jìn)行復(fù)制,因此需要消費(fèi)大量時(shí)間。所以這種方案不是非常實(shí)用。
LVM方法
在Linux里,Logical Volume Manager(LVM)也能用于創(chuàng)建快照,它比先前的磁盤文件方法節(jié)省了許多時(shí)間。這種方法意味著你的虛擬機(jī)使用LVM邏輯卷作為存儲(chǔ)后端,與使用虛擬磁盤文件形成對(duì)比。由于這個(gè)邏輯卷,你接下來需要?jiǎng)?chuàng)建快照。這個(gè)快照是一種備份,只包含當(dāng)時(shí)進(jìn)行快照時(shí)所改變的元數(shù)據(jù)和塊。當(dāng)你通過元數(shù)據(jù)使用dd制作快照副本時(shí),你通常在原始卷上制作原始?jí)K的快照,不需要重新激活原始卷。通過這種方式,能大幅度減少創(chuàng)建快照的時(shí)間。步驟如下:
1.使用xm save命令保存虛擬機(jī)當(dāng)前狀態(tài),并寫入磁盤文件:
- xm save linux01 linux01.sav
2.假定你已經(jīng)有一個(gè)LVM邏輯卷用來作為你虛擬機(jī)的存儲(chǔ)后端,使用下面的命令對(duì)這個(gè)卷進(jìn)行快照。比較好的準(zhǔn)則是使用在原始邏輯卷里所分配磁盤空間的10%作為快照卷的大?。?/p>
- lvcreate -s -L 1G -n linux01-snap /dev/xenvols/linux01
3.由于現(xiàn)在你已經(jīng)在LVM快照里保存了虛擬機(jī)的狀態(tài),你能重新啟動(dòng)虛擬機(jī),顯著減少虛擬機(jī)的停機(jī)時(shí)間:
- xm restore linux01-sav
4.使用dd創(chuàng)建虛擬機(jī)快照并寫入一個(gè)鏡像文件。由于要使用快照復(fù)制所有虛擬機(jī)分配的磁盤塊,這將花費(fèi)很長時(shí)間:
- dd if=/dev/xenvols/linux01-snap of=/data/xen01.img
5.不要忘記在***一步移除快照。這很重要,因?yàn)榭煺兆罱K將被完全覆蓋而導(dǎo)致快照不能用。這樣的問題是將阻止你從原始卷重新啟動(dòng),因此不要忘記這***一步:
- lvremove /dev/xenvols/linux01-snap
目前,沒有任何一種Linux版本提供了在開源Xen堆棧里創(chuàng)建虛擬機(jī)快照的方法,在本文中,我們學(xué)習(xí)了使用標(biāo)準(zhǔn)Linux工具,如LVM和dd命令來創(chuàng)建快照。
這樣你就學(xué)會(huì)如何用Linux命令創(chuàng)建快照了。