通過文件管理可以直接查看、修改、復(fù)制虛擬機的內(nèi)部文件。例如,當(dāng)系統(tǒng)因為配置文件無法啟動時,可以直接修改虛擬機的文件。虛擬機磁盤文件主要有raw和qcow2格式。raw格式性能最好,速度最快,它的缺點就是不支持一些新的功能,如支持鏡像,zlib磁盤壓縮,AES加密等。要使用鏡像功能,磁盤格式必須為qcow2。
raw格式的話,速度稍微快點,在高版本的qemu-kvm中,幾乎不比qcow2的格式快,而qcow2格式節(jié)省空間,可動態(tài)增長,在公有云中廣泛使用,建議使用qcow2。所以有時候,我們需要將raw格式的磁盤轉(zhuǎn)換成qcow2格式(qemu-img convert -f raw -O qcow2 /kvm-vm/vmtest01.img /kvm-vm/vmtest01.qcow2)。
虛擬磁盤離線訪問工具
離線訪問工具應(yīng)用場景
? 觀看或下載位于虛擬機磁盤中的文件
? 編輯或上傳文件到虛擬機磁盤
? 讀取或?qū)懭氲奶摂M機配置
? 準(zhǔn)備新的磁盤映像,其中包含文件、目錄、文件系統(tǒng)、分區(qū)、邏輯卷和其他選項
? 拯救和修復(fù)客戶無法啟動或需要更改啟動配置的虛擬機
? 監(jiān)控虛擬機的磁盤使用情況
? 根據(jù)組織安全標(biāo)準(zhǔn)審計虛擬機的合規(guī)性
? 通過克隆和修改模板來部署虛擬機
? 讀取CD和DVD ISO和軟盤映像
1、查看關(guān)機狀態(tài)下虛擬機的os版本、內(nèi)核、驅(qū)動、掛載點、應(yīng)用等信息(virt-inspector)(很少使用)
①第一種方式:
[root@localhost ~]# virt-inspector -d test-os1 > /tmp/test-os1.log
[root@localhost ~]# vim /tmp/test-os1.log
②第二種方式(不常用,因為有時不確定硬盤文件對應(yīng)的是哪一臺虛擬機,但是查詢到的信息和第一種方式是一樣的,不過和第一種方式都是不常用的,內(nèi)容太多):
[root@localhost ~]# virt-inspector -a /kvm-vm/vm1.qcow2 > /tmp/test-os1_log
[root@localhost ~]# vim /tmp/test-os1_log
2、查看關(guān)機狀態(tài)下虛擬機的文件內(nèi)容(virt-cat)
[root@localhost ~]# virt-cat -d test-os1 /root/test.txt
[root@localhost ~]# virt-cat -d test-os2 /root/test.txt
3、修改關(guān)機狀態(tài)下虛擬機的文件內(nèi)容(virt-edit)
[root@localhost ~]# virt-edit -d test-os2 /root/test.txt
4、查看關(guān)機狀態(tài)下虛擬機的磁盤信息(virt-df)
[root@localhost ~]# virt-df -d test-os2
[root@localhost ~]# virt-df -h -d test-os2
5、將關(guān)機狀態(tài)下虛擬機的文件拷貝到本地(virt-copy-out)
[root@localhost ~]# virt-copy-out -d test-os2 /root/test.txt /tmp/
6、將本地文件拷貝到關(guān)機狀態(tài)下的虛擬機中(virt-copy-in)
[root@localhost ~]# virt-copy-in -d test-os2 /root/hello.txt /root/
7、guestfish命令(不常用)
①以只讀的方式進(jìn)入到關(guān)機狀態(tài)下虛擬機的文件系統(tǒng)中
[root@localhost ~]# guestfish --ro -i -d test-os2
②以讀寫的方式進(jìn)入到關(guān)機狀態(tài)下虛擬機的文件系統(tǒng)中
[root@localhost ~]# guestfish --rw -i -d test-os2
8、guestmount掛載命令與guestunmmount卸載命令
在一些使用場景中,直接把虛機鏡像文件掛接在本地系統(tǒng)中,也是一個簡便的辦法。例如:
guestmount -a vm1.qcow2 -m /dev/vg_centosbase/lv_root --rw /mnt
如果事先不知道虛機內(nèi)部分區(qū)的路徑信息,則可以使用參數(shù)-i來讓guestmount自己決定使用哪一個掛接點:
guestmount -a vm1.qcow2 -i --rw /mnt
①將關(guān)機狀態(tài)下虛擬機的文件系統(tǒng)掛載到本地目錄下
[root@localhost ~]# mkdir /mnt/tmp
[root@localhost ~]# guestmount -d test-os2 -i --rw /mnt/tmp/
②將載到本地目錄下的虛擬機文件系統(tǒng)卸載掉
[root@localhost ~]# guestunmount /mnt/tmp/
擴展(當(dāng)不能以vnc方式和console方式登錄虛擬機時,通過掛載關(guān)機狀態(tài)下虛擬機的文件系統(tǒng)去修改grub.cfg配置文件):
[root@localhost ~]# guestmount -d test-os2 -i --rw /mnt/tmp/
[root@localhost ~]# vim /mnt/tmp/boot/grub2/grub.cfg
[root@localhost ~]# guestunmount /mnt/tmp/
管理虛擬磁盤
虛擬化項目中存儲的注意事項:
? 存儲的性能幾乎總是虛擬化的瓶頸
? 通過多個磁盤驅(qū)動以分布磁盤I/O來實現(xiàn)存儲解決方案
? 驅(qū)動器的速度越快越好,考慮SSD與機械磁盤的混合使用
? 考慮部署集中化的SAN/NFS來實現(xiàn)高可用性和實時遷移
虛擬磁盤類型:
? 固定 Fixed
ü 在配置時,指定磁盤大小
ü 不管在虛擬磁盤上實際存儲多少數(shù)據(jù),都將占用相同大小主機磁盤空間
? 動態(tài) Dynamic
ü 增長到最大容量,但是只根據(jù)需求使用更多的空間
? 差異(差分盤) Differencing
ü 因為創(chuàng)建是差異磁盤,所以只保存變更的數(shù)據(jù),類似于lvm的快照
ü 例如,將操作系統(tǒng)安裝在父盤,然后創(chuàng)建差異化磁盤來執(zhí)行進(jìn)一步配置,桌面虛擬化使用很多。
KVM支持的虛擬磁盤類型:
? raw
ü 這并非是一種真正的磁盤格式,而是代表虛擬機所使用的原始鏡像
ü 它并不存儲元數(shù)據(jù),因此可以作為保證虛擬機兼容性的候選方案。然而,也正因為它不存儲元數(shù)據(jù),因此不能支持某些高級特性,比如快照和壓縮等
ü 格式簡單,容易轉(zhuǎn)化為其他的格式。需要文件系統(tǒng)的支持才能支持sparse file
? cow: copy-on-wirte格式,曇花一現(xiàn)
? qcow: QEMU早期的copy-on-write格式,過渡性方案
? qcow2:
ü 按需進(jìn)行分配磁盤空間,不管文件系統(tǒng)是否支持
ü 支持快照
ü 支持zlib的磁盤壓縮
ü 支持AES的加密
? vmdk(virtual machine disk)
ü VMware環(huán)境當(dāng)中默認(rèn)使用的磁盤格式
? vhd\vhdx(virtual Hard Disk)
ü 微軟默認(rèn)采用的文件格式
? vdi(virtual Box)
可以通過qemu-img --help | grep Supported命令查看KVM所支持的磁盤格式。
qemu-img是QEMU的磁盤管理工具,在qemu-kvm源碼編譯后就會默認(rèn)編譯好qemu-img這個二進(jìn)制文件。qemu-img也是QEMU/KVM使用過程中一個比較重要的工具,qemu-img工具的命令行基本用法如下:
qemu-img command [command options]
qemu-img常用功能命令:
? check 檢查完整性
? create 創(chuàng)建鏡像
? commit 提交更改
? compare 比較
? convert 轉(zhuǎn)換
? info 獲取信息
? map 映射
? snapshot 快照管理
? rebase 在已有的鏡像的基礎(chǔ)上創(chuàng)建新的鏡像
? resize 調(diào)整大小
? amend 修訂鏡像格式選項
后備差異虛擬磁盤(VMware中稱作鏈接克?。?br> ? 存儲與基礎(chǔ)鏡像(父)磁盤的變化
ü 基礎(chǔ)鏡像(父)磁盤不會改變
ü 差異磁盤隔離變化
ü 多個差異磁盤可以使用相同的基礎(chǔ)鏡像(父)磁盤
? 優(yōu)點:標(biāo)準(zhǔn)化基礎(chǔ)鏡像,節(jié)省空間
? 缺點:增加了開銷,較差的性能 (尤其是vmware虛擬機中的試驗環(huán)境,要等待很久才能啟動)
1.創(chuàng)建差異虛擬磁盤:
[root@localhost ~]# qemu-img create -f qcow2 -o backing_file=/kvm-vm/vm2.qcow2 /kvm-vm/vm5.qcow2
2.拷貝一個新的虛擬機配置文件并編輯:
[root@localhost ~]# cp /etc/libvirt/qemu/test-os2.xml /etc/libvirt/qemu/test-os2_5.xml
[root@localhost ~]# vim /etc/libvirt/qemu/test-os2_5.xml
1)進(jìn)入配置文件用:%s/test-os2/test-os2_5/g (把文件里面test-os2 替換為 test-os2_5)
2)修改虛擬機的uuid 將一個數(shù)字改為16機制的一位數(shù)即可
3)將虛擬機指向的硬盤文件修改為vm5.qcow2
4)修改mac地址,也是16進(jìn)制數(shù)才可以
通過虛擬機的配置文件與硬盤文件恢復(fù)虛擬機:
[root@localhost ~]# virsh define /etc/libvirt/qemu/test-os2_5.xml
聯(lián)系客服