Linux-KVM虛擬機的創建和快照命令

KVM:Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。

安裝虛擬機腳本:

虛擬機的安裝可以通過virt-manager管理工具新建,也可以使用命令來創建。圖形界面創建和其他場上的虛擬化產品並無太大差異,這裏我們使用命令創建虛擬機:

通過命令創建,我們將命令寫入文件保存爲一個.sh腳本文件,以便多次使用
[root@foundation80 ~]# cat > vm-create.sh << "EOF"
#!/bin/bash
virt-install \
--cdrom /iso/rhel-server-7.0-x86_64-dvd.iso \                   ##安裝介質##
--ram 1024 \							##內存## 
--cpus 1 \							##CPU## 
--disk /var/lib/libvirt/images/$1.qcow2,size=9,bus=virtio \	##虛擬磁盤文件、大小、運行模式##
--name $1 \							##名稱##
--network source=br0,model=virtio \				##配置網絡,運行模式##
## 腳本運行格式:vm-create.sh 虛擬機名

執行腳本創建虛擬機:

[root@foundation80 ~]# ./vm-create.sh jinx
[root@foundation80 ~]# WARNING  No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results.

Starting install...
Allocating 'jinx.qcow2'                                     |  10 GB  00:00     
Creating domain... 

彈出虛擬機窗口,進行系統的安裝


虛擬機快照:

快照就是記錄當前虛擬機的狀態,以便隨時恢復虛擬機

[root@foundation80 images]# cd /var/lib/libvirt/images/         ##默認虛擬磁盤文件存儲目錄
[root@foundation80 images]# qemu-img create -f qcow2 -b jinx.qcow2 node1.qcow2
                          ##qemu-img  create創建 -f格式 qcow2 -b 源文件 鏡像文件
 Formatting 'node1.qcow2', fmt=qcow2 size=9663676416 backing_file='jinx.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off

 我們可以將上面的命令寫成sh文件,方便後期使用
[root@foundation80 images]#vim ~/vm-snapshot.sh
#!/bin/bash
qemu-img create -f qcow2 \                    ##創建快照,-f格式qcow2
-b /var/lib/libvirt/images/$1.qcow2 \         ##-b 源虛擬機磁盤文件
/var/lib/libvirt/images/$2.qcow2              ##目標路徑
[root@foundation80 images]#chmod +x ~/snapshot.sh    ##添加執行權限

## 腳本運行格式:vm-snapshot.sh 虛擬機名 快照名

[root@foundation80 images]# cd /etc/libvirt/qemu/		##虛擬機配置文件目錄
[root@foundation80 qemu]# ls
desktop.xml  jinx.xml  networks  server.xml

虛擬機控制命令:

[root@foundation80 qemu]# virsh list --all			##顯示所有虛擬機
 Id    Name                           State
----------------------------------------------------
 -     desktop                        shut off
 -     jinx                           shut off
 -     server                         shut off


[root@foundation80 qemu]# virsh start jinx			##打開指定虛擬機
Domain Jinx started
[root@foundation80 qemu]# virt-viewer jinx			##顯示指定虛擬機

(virt-viewer:7666): GSpice-WARNING **: PulseAudio context failed Connection refused

(virt-viewer:7666): GSpice-WARNING **: pa_context_connect() failed: Connection refused

(virt-viewer:7666): GSpice-WARNING **: Error calling 'org.gnome.SessionManager.Inhibit': GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

[root@foundation80 qemu]# virsh destroy jinx			 ##關閉指定虛擬機
Domain Jinx destroyed

[root@foundation80 qemu]# systemctl restart libvirtd.service     ##重啓虛擬機服務

一個虛擬機至少由兩個文件組成,默認存放位置:

/etc/libvirt/qemu                 ##虛擬機配置文件

/var/lib/libvirt/images/        ##虛擬機磁盤文件

使用這兩個文件,就可以對虛擬機完成遷移或恢復

[root@foundation80 qemu]# vim jinx.xml                           ##查看虛擬機配置文件的內容
  </disk>
 45     <disk type='file' device='disk'>
 46       <driver name='qemu' type='qcow2'/>
 47       <source file='/var/lib/libvirt/images/jinx.qcow2'/>    ##配置文件中記錄的虛擬機磁盤位置
 48       <target dev='vda' bus='virtio'/>
 49       <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
 50     </disk>
##可以通過修改虛擬機配置文件中的磁盤路徑,或移動虛擬機磁盤文件至配置文件中的路徑,恢復虛擬機
命令示例:
[root@foundation80 qemu]# virsh create jinx.xml 	##通過配置文件啓動虛擬機
Domain jinx created from jinx.xml

[root@foundation80 qemu]# virsh define Jinx.xml 	##通過配置文件添加虛擬機
Domain jinx defined from jinx.xml

[root@foundation80 qemu]# virsh undefine Jinx		##刪除虛擬機配置文件
Domain jinx has been undefined
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章