使用qmeu-img创建虚拟机[创建虚拟机,虚拟机快照]
本文主要介紹創(chuàng)建虛擬機(jī)的一般過程。
一臺(tái)虛擬機(jī)的核心就是一個(gè)磁盤鏡像,這個(gè)鏡像可以理解成虛擬機(jī)的磁盤,里面有虛擬機(jī)的操作系統(tǒng)和驅(qū)動(dòng)等重要文件。
創(chuàng)建虛擬機(jī)鏡像
?
要在一臺(tái)host上跑起一個(gè)虛擬機(jī)一般需要兩個(gè)步驟:
第一步:創(chuàng)建虛擬機(jī)鏡像
qemu-img?create?-f?raw?/p_w_picpaths/vm1.raw?8Gqmeu-img創(chuàng)建的鏡像是一個(gè)稀疏文件,也就是說剛創(chuàng)建出來的文件并沒有8G,它會(huì)隨著數(shù)據(jù)的增多慢慢增加,直到8G
?
第二步:啟動(dòng)虛擬機(jī)
kvm?/imges/vm1.raw運(yùn)行結(jié)果: 因?yàn)殓R像里面沒有任何內(nèi)容,所以提示找不到可引導(dǎo)設(shè)備。
?
使用qemu-img管理鏡像
?
qemu-img基本命令
?
上節(jié)介紹了使用qemu-img創(chuàng)建鏡像,這一節(jié)將會(huì)介紹qemu-img在鏡像管理上的強(qiáng)大功能。
qemu-img有很多命令,包括下面常用的,當(dāng)然qemu-img -h你懂得。
info
查看鏡像的信息
create
創(chuàng)建鏡像
check
檢查鏡像
convert
轉(zhuǎn)化鏡像的格式,(raw,qcow ……)
snapshot
管理鏡像的快照
rebase
在已有的鏡像的基礎(chǔ)上創(chuàng)建新的鏡像
resize
增加或減小鏡像大小
?
?創(chuàng)建鏡像
?
qemu-img?create?-f?<fmt>?-o?<options>?<fname>?<size>?舉例:
qemu-img?create?-f?raw?-o?size=4G?/p_w_picpaths/vm2.raw?
hzgatt@hzgatt:~/p_w_picpaths$?lltotal?0-rw-r--r--?1?hzgatt?hzgatt?4.0G??6月?29?14:11?vm2.rawhzgatt@hzgatt:~/p_w_picpaths$?ll?-stotal?00?-rw-r--r--?1?hzgatt?hzgatt?4.0G??6月?29?14:11?vm2.raw?
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm2.raw?p_w_picpath:?vm2.rawfile?format:?raw virtual?size:?4.0G?(4294967296?bytes) disk?size:?0?
雖然ls中看到文件的大小是4G,但是實(shí)際上磁盤大小是0。這就是稀疏文件
?
?
轉(zhuǎn)化
將一個(gè)鏡像文件轉(zhuǎn)化為另外一種格式,qemu-img支持的格式可以看qemu-img -h最后一行。
Supported?formats:?vvfat?vpc?vmdk?vdi?sheepdog?rbd?raw?host_cdrom?host_floppy?host_device?file?qed?qcow2?qcow?parallels?nbd?dmg?tftp?ftps?ftp?https?http?cow?cloop?bochs?blkverify?blkdebug?
轉(zhuǎn)化命令:
qemu-img?convert?-c?-f?fmt?-O?out_fmt?-o?options?fname?out_fname?
-c:采用壓縮,只有qcow和qcow2才支持
-f:源鏡像的格式,它會(huì)自動(dòng)檢測(cè),所以省略之
-O 目標(biāo)鏡像的格式
-o 其他選先
fname:源文件
out_fname:轉(zhuǎn)化后的文件
看例子:
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?convert?-c?-O?qcow2?vm2.raw?vm2.qcow2?
hzgatt@hzgatt:~/p_w_picpaths$?ll?-stotal?136K???0?-rw-r--r--?1?hzgatt?hzgatt?5.0G??6月?29?13:55?vm1.raw 136K?-rw-r--r--?1?hzgatt?hzgatt?193K??6月?29?14:22?vm2.qcow2???0?-rw-r--r--?1?hzgatt?hzgatt?4.0G??6月?29?14:11?vm2.rawhzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm2.qcow2? p_w_picpath:?vm2.qcow2file?format:?qcow2 virtual?size:?4.0G?(4294967296?bytes) disk?size:?136K cluster_size:?65536?
如果想看要轉(zhuǎn)化的格式支持的-o選項(xiàng)有哪些,可以在命令末尾加上 -o ?
?
增加減少鏡像大小
注意:只有raw格式的鏡像才可以改變大小
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?resize?vm2.raw?+2GBhzgatt@hzgatt:~/p_w_picpaths$?ll?-s total?136K???0?-rw-r--r--?1?hzgatt?hzgatt?5.0G??6月?29?13:55?vm1.raw 136K?-rw-r--r--?1?hzgatt?hzgatt?193K??6月?29?14:22?vm2.qcow2???0?-rw-r--r--?1?hzgatt?hzgatt?6.0G??6月?29?14:28?vm2.raw hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm2.raw? p_w_picpath:?vm2.rawfile?format:?raw virtual?size:?6.0G?(6442450944?bytes) disk?size:?0?
快照
查看快照
qemu-img?snapshot?-l?/p_w_picpaths/vm2.qcow2注意:只有qcow2才支持快照
打快照
qemu-img?snapshot?-c?booting?vm2.qcow2?
舉例:
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?snapshot?-c?booting?vm2.qcow2? hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?snapshot?-l?vm2.qcow2? Snapshot?list: ID????????TAG?????????????????VM?SIZE????????????????DATE???????VM?CLOCK1?????????booting???????????????????0?2012-06-29?14:35:04???00:00:00.000?
從快照恢復(fù):
qemu-img?snapshot?-a?1?/p_w_picpaths/vm2.qcow2然后從kvm啟動(dòng)這個(gè)虛擬機(jī),會(huì)發(fā)現(xiàn)虛擬機(jī)又在打快照時(shí)的狀態(tài)了
?
刪除快照:
qemu-img?snapshot?-d?2?/p_w_picpaths/vm2.qcow?
?
使用派生鏡像(qcow2)
??? 當(dāng)創(chuàng)建的虛擬機(jī)越來越多,并且你發(fā)現(xiàn)好多虛擬機(jī)都是同一個(gè)操作系統(tǒng),它們的區(qū)別就是安裝的軟件不大一樣,那么你肯定會(huì)希望把他們公共的部分提取出來,只保存那些與公共部分不同的東西,這樣鏡像大小下去了,空間變多了,管理也方便了。派生鏡像就是用來干這事的!
首先看一個(gè)原始鏡像
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm3_base.raw? p_w_picpath:?vm3_base.rawfile?format:?raw virtual?size:?2.0G?(2147483648?bytes) disk?size:?2.0G現(xiàn)在我們新建一個(gè)鏡像,但是派生自它
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?create?-f?qcow2?vm3_5.qcow2?-o?backing_file=vm3_base.raw?5GFormatting?'vm3_5.qcow2',?fmt=qcow2?size=5368709120?backing_file='vm3_base.raw'?encryption=off?cluster_size=65536?
hzgatt@hzgatt:~/p_w_picpaths$?ll-rw-r--r--?1?hzgatt?hzgatt?193K??6月?29?15:00?vm3_5.qcow2-rw-r--r--?1?hzgatt?hzgatt?2.0G??6月?29?14:51?vm3_base.raw?
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm3_5.qcow2?p_w_picpath:?vm3_5.qcow2file?format:?qcow2 virtual?size:?5.0G?(5368709120?bytes) disk?size:?136K cluster_size:?65536backing?file:?vm3_base.raw?(actual?path:?vm3_base.raw)?
?^_^,這個(gè)鏡像才136K,夠省了吧。DRY永遠(yuǎn)的真理啊!
現(xiàn)在我們?cè)趘m3_5.qcow2上打了很多安全補(bǔ)丁,然后發(fā)現(xiàn)我又想在vm3_5.qcow2上派生新的虛擬機(jī),o(∩∩)o...哈哈,這下怎么辦呢?
?
hzgatt@hzgatt:~/p_w_picpaths$?qemu-img?info?vm3_base2.raw? p_w_picpath:?vm3_base2.rawfile?format:?raw virtual?size:?5.0G?(5368709120?bytes) disk?size:?592M?
這個(gè)轉(zhuǎn)化將會(huì)將vm3_5和base合并,生成新的vm3_base2.raw,然后你就可以繼續(xù)無窮無盡的派生之旅了!
?
轉(zhuǎn)載于:https://blog.51cto.com/hfcombo/1613855
總結(jié)
以上是生活随笔為你收集整理的使用qmeu-img创建虚拟机[创建虚拟机,虚拟机快照]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试JdbcTemplate执行SQL语
- 下一篇: android RefBase、sp、w