KVM虛擬化管理

虛擬化

KVM  (kernel-based virtual machine)
常見的一些虛擬化的軟件xen   kvm    vmware esx        openVZ	     Oracle VM VirtualBox    vsphere
rhel5  xen
rhel6  kvm
rhel7  kvm
	半(準)虛擬化:
		客戶機器操作系統內核必須是修改過的,才能使用半虛擬化。
		硬件虛擬化技術。
		典型代表: Xen 
	全虛擬化:
		必須cpu支持硬件虛擬化。
		客戶機器不需要修改內核,原則上可以安裝任何的操作系統。
			Intel # cat /proc/cpuinfo | grep vmx
			AMD :  svm
		典型代表: kvm , VMware ESXi
=============================================================================
紅帽官檔下載路徑
docs.redhat.com
https://access.redhat.com/documentation/en-US/
準備工作
1,在宿主機準備好yum(只需要本地鏡像yum就可以了)

2,# cat /proc/cpuinfo |grep -E "vmx|svm"	--查看CPU是否支持intel或AMD的虛擬技術
在宿主機上安裝kvm

# yum install qemu-kvm libvirt virt-install libvirt-python virt-manager virt-install libvirt-client virt-viewer
# systemctl start libvirtd
# systemctl status libvirtd
# systemctl enable libvirtd

# lsmod |grep kvm		--確認是否有裝載kvm模塊,沒有裝載的可以使用modprobe kvm來裝載
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm

開始安裝kvm 
1,圖形安裝
# virt-manager    --和xen一樣的命令,打開虛擬機管理器

第一步:
安裝方式:      --我這裏選擇第一個,使用iso直接安裝

第二步:
安裝路徑:/data/CentOS-7-x86_64-DVD-1611.iso	--寫上iso的路徑

第三步:
內存大小: 800M		-- 內存如果較小,安裝時無法使用圖形安裝方式,只能使用文本安裝方式
cpu個數:2     --不能大於宿主機器的cpu核數

第四步:
硬盤大小: 20 G    --我這裏定義20G大小;它的默認路徑會在/var/lib/libvirt/images/kvm1.qcow2

第五步:
name : kvm1    --自定義一個虛擬機名稱
網絡現在只能選擇default  --這是一個nat網絡(私有網絡),橋接網絡不能選,需要後面單獨配置後才能選擇

2,直接使用命令行來安裝
# virt-install --hvm --name "kvm1" --memory 800 --vcpus 2  --disk=/var/lib/libvirt/images/kvm1.qcow2,size=20 -l /share/CentOS-7-x86_64-DVD-1611.iso --network bridge=virbr0
--hvm指使用全虛擬化

3, 通過指定ks文件來實現自動安裝
#  virt-install --noautoconsole --hvm --name "kvm2" --memory 800 --vcpus 2  --disk=/var/lib/libvirt/images/kvm2.img,size=20 -l /share/CentOS-7-x86_64-DVD-1611.iso --extra-args="ks=nfs:172.16.13.250:/ks/ks.cfg" --network bridge=virbr0
--noautoconsole 代表不連接虛擬機(也就是不用去看它自動安裝的過程)
-extra-args="ks=nfs:172.16.13.250:/ks/ks.cfg" 指定ks文件的路徑,它會讀取此文件並按照此文件的內容進行自動安裝(這裏是使用nfs來共享的,你也可以使用ftp或http來做)

4,直接使用以前學過的kickstart或cobbler網絡安裝服務器自動安裝

virt-install --pxe --network bridge=br0 --prompt
==============================================================================
主要的管理命令:
virsh help  
virsh help domain
virsh help network
virsh help monitor   --因爲參數很多,可以用象domain,network,monitor這種關鍵字,只查看與關鍵字有關的參數幫助
......
# virsh  list
 Id    Name                           State
----------------------------------------------------
 1     kvm1                           running

# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     kvm1                           running
 -     kvm2                           shut off

啓動,關閉,重啓相關基本操作
# virsh  start kvm1	   --啓動一個虛擬機
# virsh  shutdown kvm1    --正常關閉一個虛擬機(把服務都停掉,再關電源)
# virsh  reboot kvm1      --正常重啓一個虛擬機,先shutdown再start
# virsh  destroy kvm1     --強制關閉一個虛擬機,類似斷電,可以瞬間關閉虛擬機 	
# virsh  reset kvm1	  --相當於是先destroy,再start

保存,暫停相關基本操作
# virsh save kvm1 /etc/libvirt/qemu/kvm1.save	  --把kvm1關閉,並把當前狀態保存爲一個文件	
# virsh restore /etc/libvirt/qemu/kvm1.save	--通過保存的文件,恢復當時save時的狀態
# virsh suspend kvm1	--暫停kvm1的狀態
# virsh resume kvm1	--由暫停切換爲繼續的狀態

連接虛擬機(domain)相關操作
方法一:
# virt-manager 打開管理器,雙擊你要連接的虛擬機
方法二;
# virt-viewer  kvm1   --連接一個已經啓動的虛擬機,並使用圖形查看
方法三:
# ssh x.x.x.x   --非圖形方式就可以連,但需要虛擬機配置好ip
方法四:
非圖形方式也可以使用console連(此方法不需要虛擬機配置ip都可以連),但需要配置授權
# virsh console kvm1   --字符連接一個虛擬機,但是現在連接不了;因爲需要一個串口的授權纔可以;

授權做法:
1,在kvm1虛擬機裏操作(注意不是在宿主機上操作)
# grubby --update-kernel=ALL --args="console=ttyS0"
# reboot

2,在宿主機virsh console kvm1連接使用 

3,退出的方式
exit只是退出登錄的用戶而已
要完全退出這個console連接,需要使用的是ctrl+ ] (也就是右中框號的這個鍵)
======================================================================
虛擬機相關的文件:
以kvm1爲例:
配置文件在:/etc/libvirt/qemu/kvm1.xml
磁盤文件默認在:/var/lib/libvirt/images/kvm1.qcow2

打開虛擬機配置文件的做法:
方法一:
# vim /etc/libvirt/qemu/kvm1.xml
方法二:
# virsh edit kvm1  	--此方法默認是調用vi,所以沒有顏色,你可以做個軟鏈接,讓訪問vi實際鏈接到vim就可以了

命令刪除一個虛擬機的做法(假設爲kvm3)
# virsh destroy kvm3
# virsh undefine kvm3
# rm -rf /var/lib/libvirt/images/kvm3.img
======================================================================
kvm 的克隆
--注意:克隆都需要源虛擬機器是關閉或暫停狀態
例一:圖形克隆
1,先關閉kvm1或 virsh suspend kvm1暫停kvm1(使用virsh resume kvm1恢復)

2,virt-manager--》右鍵點kvm1--》選擇clone-->修改克隆後的名字或其它參數--》點clone
例二:文本克隆
1,拷貝配置文件和磁盤文件
# cp /etc/libvirt/qemu/kvm1.xml /etc/libvirt/qemu/kvm3.xml
# cp /var/lib/libvirt/images/kvm1.qcow2 /var/lib/libvirt/images/kvm3.qcow2
修改拷貝的配置文件
# vim /etc/libvirt/qemu/kvm3.xml 
<domain type='kvm'>
  <name>kvm3</name>		--名字改成kvm3
  <uuid>811d69e8-b1d8-cfbf-684a-69f2e0af6b88</uuid>	--uuid隨便改幾個數字
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/var/lib/libvirt/images/kvm3.qcow2'/>   --磁盤路徑改成kvm3.qcow2的路徑
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:5c:3a:2d'/>   --網卡地址隨便改下,只改後三位
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <sound model='ich6'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
</domain>

3,保存後,使用virsh list --all查看不到的,需要define一下
# virsh define /etc/libvirt/qemu/kvm3.xml
# virsh list --all		--再查就可以查看到kvm3
 Id    Name                           State
----------------------------------------------------
 -     kvm1                           shut off
 -     kvm1-clone                     shut off
 -     kvm2                           shut off
 -     kvm3                           shut off

4,再啓動
# virsh start kvm3   --可以啓動克隆的機器了

例三:命令克隆
# virt-clone -o kvm1 -n kvm4 -f /var/lib/libvirt/images/kvm4.img 
Allocating kvm4.img  7% [-          ]  34 MB/s | 957 MB     05:29 ETA
--把kvm1克隆成kvm4,指定磁盤路徑爲/var/lib/libvirt/images/kvm4.img;如果kvm1有多個硬盤,那麼克隆時也要對應的克隆成多個路
===============================================================================
kvm 網絡管理
# virsh  help network	--只查看與網絡有關的幫助參數
# virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes 	--這是一個NAT網絡,私有網絡

# virsh net-info default
Name            default
UUID            704eb1b7-3feb-4a38-8642-9c3fe2f023bb
Active:         yes
Persistent:     yes
Autostart:      yes
Bridge:         virbr0

default網段的配置文件的路徑爲:
/etc/libvirt/qemu/networks/default.xml
# virsh net-destroy default		--停掉default網絡,由virsh net-list --all去查看,狀態變爲inactive
# virsh net-start  default		--啓動default網絡,狀態變爲active
=====================================================================
例四:圖形增加私有網絡
virt-manager打開圖形--》edit --》connections details --》 virtual networks--》點左下角的+號增加一個私有網絡(選擇名字,網絡分配地址範圍,dhcp的分配範圍)
--注意:這裏最後一步有三種網絡:
1,isolated 相當vmware的hostonly,沒有NAT,也沒有網關(完全和vmware的hostonly類型一樣)
2,NAT   有網關,有NAT,可以通過宿主上外網(和vmware的NAT類型一樣)
3,routed 也是相當於hostonly,在isolated的基礎上就是加了一個網關(仍然是和vmware的hostonly一致,但多了一個網關)
把上面的步驟做完後,直接在宿主機用ifconfig或virsh net-list --all,就可以看到新加的網絡了
=====================================================================
例五:手動加一個私有網絡
1,# cp /etc/libvirt/qemu/networks/default1.xml /etc/libvirt/qemu/networks/default2.xml
# vim /etc/libvirt/qemu/networks/default2.xml
<network>
  <name>default2</name>		--修改名字爲default2
  <uuid>243166ddb-e2fd-9983-1997-5e8efdc06c42</uuid>  --uuid隨便修改一下
  <bridge name='virbr2' stp='on' delay='0' />	--virbr1改成virbr2
  <mac address='52:54:00:AF:27:25'/>	--MAC地址改一下,只改後面三位
  <ip address='192.168.101.1' netmask='255.255.255.0'>	--IP改爲101
    <dhcp>
      <range start='192.168.101.128' end='192.168.101.254' /> --dhcp地址範圍也改成101的
    </dhcp>
  </ip>
</network>
2,# virsh net-define /etc/libvirt/qemu/networks/default2.xml	--定義一下,然後你可以使用virsh net-list --all去查看,狀態爲inactive,autostart的狀態爲no
3,# virsh net-start default2	--啓動
# ifconfig virbr2 |head -2	--查看就有了	
virbr2    Link encap:Ethernet  HWaddr 52:54:00:AF:27:25  
          inet addr:192.168.101.1  Bcast:192.168.101.255  Mask:255.255.255.
# ls /etc/libvirt/qemu/networks/autostart/
default1.xml   default.xml
4,# virsh net-autostart default2  --讓他開機自動啓動
# ls /etc/libvirt/qemu/networks/autostart/	--這裏就會多了default2.xml了,其實都是網絡配置文件的軟鏈接
default1.xml  default2.xml   default.xml

剛加的網絡配置文件都在下面的目錄
# ls /etc/libvirt/qemu/networks
autostart  default1.xml  default2.xml  default.xml
=====================================================================
例六:修改一個網絡
1,# vim /etc/libvirt/qemu/networks/default2.xml	
<network>
  <name>default2</name>
  <uuid>243166ddb-e2fd-9982-1996-5e8efdc06c42</uuid>
  <forward dev='eth0' mode='route'>
    <interface dev='eth0'/>
  </forward>
  <bridge name='virbr2' stp='on' delay='0' />
  <mac address='52:54:00:AF:166:45'/>
  <ip address='192.168.102.1' netmask='255.255.255.0'>	--我這裏把以前的192.168.101.0的IP範圍都改成了192.168.102.0
    <dhcp>
      <range start='192.168.102.128' end='192.168.102.254' />
    </dhcp>
  </ip>
</network>
保存後,使用ifconfig virbr1 查看,還是192.168.102.1,沒有改變
需要做下面三步:

2,# virsh net-define /etc/libvirt/qemu/networks/default2.xml  --定義一個網絡,使你的修改被他知道
Network default2 defined from /etc/libvirt/qemu/networks/default3.xml

3,# virsh net-destroy default2	--停一下這個網絡
Network default2 destroyed

4,# virsh net-start default2	--再啓這個網絡
Network default2 started

# ifconfig virbr2查看,成功修改成192.168.102.1

上面的第一步和第二步可以統一成一步來做:
# virsh  net-edit default2   --使用這個命令打開,修改,然後就直接net-destroy和net-start,不需要去net-define
=====================================================================
例七:
圖形刪除一個網絡
virt-manager打開圖形--》edit --》connections details --》 virtual networks--》選擇你要刪除的網絡,然後左下角,先停,再刪除就可以了

用命令刪除一個網絡
# virsh net-destroy default2	--停掉要刪除的網絡,用virsh net-list --all命令去查就變成了inactive狀態
# virsh net-undefine default2  --這下就刪除了這個網絡定義了,並且物理上的配置文件也沒了
=====================================================================
例八:增加一個橋接網絡:
把物理網卡enp2s0橋接到br0(這個名字是自己定義的)
1,在宿主機上創建一個橋接網絡
# systemctl stop NetworkManager
# systemctl status NetworkManager
# systemctl disable NetworkManager

# vim /etc/sysconfig/network-scripts/ifcfg-br0  --此文件不存在,br0這個名字是自定義的
DEVICE=br0		--名字對應好
TYPE=Bridge		--這裏的Birdge,B要大寫,後面的irdge要小寫
BOOTPROTO=static
IPADDR=172.16.13.X
NETMASK=255.255.255.0
GATEWAY=172.16.13.254
DNS1=114.114.114.114
ONBOOT=yes

2,把一個物理網卡加到一個橋接網絡裏,我這裏是把enp2s0加到br0
# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0 	--原物理網卡enp2s0裏的配置只留下這三句就可以了
DEVICE="enp2s0"
ONBOOT="yes"
BRIDGE=br0

3,重啓網絡	/etc/init.d/network restart 或者 systemctl restart network
在宿主機上ifconfig 查看就會有br0這個網卡,有IP;
而原enp2s0網卡沒有IP;這是正常的
=====================================================================
例九:圖形修改一個虛擬機網卡鏈接
virt-manager打開圖形,雙擊你要修改的虛擬機--》點擊左上的一個!號(centos7裏看到的是一個像燈泡一樣的符號)按鈕show virtual hardware detail-->>找個網卡,修改成你想要改的網絡
=====================================================================
例十:命令修改一個虛擬機的網卡連接
# virsh edit kvm3
    <interface type='network'>
      <mac address='52:54:00:07:8d:e5'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

改成下面的樣子
    <interface type='bridge'>		--network改成了bridge
      <mac address='52:54:00:07:8d:e5'/>
      <source bridge='br0'/>		--network改成了bridge;default改成了br0
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
# virsh shutdown kvm1
# virsh start kvm1	--重啓後,虛擬機就是橋接網絡
=====================================================================
例十一:添加網卡或硬盤
virt-manager--》 雙擊打開kvm4--》點左上角的燈泡符號show virtual hardware details --》點左下角add devices 直接添加,並寫上相關參數就可以(注意參數,device type都選擇virtio,不需要重啓虛擬機,可以直接生效,並且磁盤名叫vda,vdb,vdc...;如果你第一次加硬盤選擇IDE disk,需要重啓,並且磁盤名叫sda,sdb,sdc...)
--用圖形方式在線刪除磁盤後,還要去物理上把它的磁盤xxx.qcow2文件給rm掉
=====================================================================
例十二:直接用命令來添加一個硬盤設備
1,使用dd命令創建一個磁盤文件
# dd if=/dev/zero of=/var/lib/libvirt/images/kvm4-2.img bs=1M count=1 seek=4000000
--seek是指跳過多少個BS塊,這裏就是產生一個4T大小的文件(實際大小隻1M)
# qemu-img info /var/lib/libvirt/images/kvm4-2.img
image: /var/lib/libvirt/images/kvm4-2.img
file format: raw				--格式爲raw(這是老版本的默認格式,新版本是qcow2格式)
virtual size: 3.8T (4194305048576 bytes)
disk size: 1.0M
# cd /var/lib/libvirt/images/
# qemu-img convert -f raw -O qcow2 kvm4-2.img kvm4-2.qcow2	--把kvm4-2.img文件轉換成一個新文件kvm4-2.qcow2(格式也轉換成qcow2)
# rm kvm4-2.img -rf	--原來的這個文件不用了就可以刪除掉了

# qemu-img info /var/lib/libvirt/images/kvm4-2.qcow2 
image: /var/lib/libvirt/images/kvm4-2.qcow2
file format: qcow2				 --轉化後的新文件格式就爲qcow2格式了
virtual size: 3.8T (4194305048576 bytes)
disk size: 256K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

2,編輯虛擬機的配置文件
# virsh edit kvm4
<devices>與</devices>之間加上下面的一段,也可以把其它磁盤的配置定義拷貝一段進行修改
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' />	   --格式爲qcow2
      <source file='/var/lib/libvirt/images/kvm4-2.qcow2'/>  --路徑名稱改成kvm4-2.qcow2
      <target dev='vdb' bus='virtio'/>	--新加的硬盤,就叫vdb
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>	--slot也改一下,我這裏是把0x07改成0x09(只要這個編號沒有被重複佔用就可以)	
    </disk>

3,重啓虛擬機後(有可能reboot還不行,需要force off再啓動),登錄使用fdisk就能查看到這個4T大小的硬盤了
=====================================================================
例十三:因爲有些人的機器的/var目錄空間不夠,想把磁盤文件改到其它目錄(如/data/kvm/目錄)
# virsh destroy kvm1  --先停掉kvm1
# mv /var/lib/libvirt/images/kvm1.qcow2 /data/kvm/
# virsh edit kvm1
......
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' />
      <source file='/data/kvm/kvm1.qcow2'/>	--把這個路徑改成mv後的新路徑
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
......
# virsh start kvm1
=============================================================================
kvm 的遠程管理
例十四:在172.16.13.250(宿主機)上遠程圖形管理172.16.13.62(宿主機)
1,先在/etc/hosts裏綁定對方(被管理的宿主機器)的主機名

2,做ssh等效性
# ssh-keygen 	--直接三次回車
# ssh-add /root/.ssh/id_rsa	--加入自己的私鑰
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.13.62
--把自己的公鑰scp傳給對方

3,所有的被管理客戶端宿主機,需要啓動libvirtd服務

4,virt-manager--》file--》add connection--》填上要遠程連接的主機IP(或主機名,但要求/etc/hosts綁定)

5,連接上去之後,就可以看到有遠程的虛擬客戶機,雙擊就可以遠程調取他們的圖形了

--或者用命令的方式去連接
# virt-viewer -c qemu+ssh://[email protected]/system kvm1
--表示使用root用戶(當然前面你做的ssh等效性需要是root用戶)去訪問172.16.13.62上叫kvm1的虛擬機
==============================================================================
遷移:
冷遷移:	這個和克隆還是有區別的:克隆是把源虛擬機關閉,那麼內存的數據都沒了;而遷移是遷過去成功,然後打開後,還保持原來的內存數據
熱遷移:
		 172.16.13.250		172.16.13.62		
		老舊的宿主機		新的宿主機

		    虛擬機 ---->
冷遷移過程:
1,虛擬機kvm1是開啓狀態
2,保存當前的運行狀態
# virsh save kvm1 /etc/libvirt/qemu/kvm1.xml.save

Domain kvm1 saved to /etc/libvirt/qemu/kvm1.xml.save

3,scp或者rsync把相關的文件都拷貝到被遷移的宿主機
# scp /etc/libvirt/qemu/kvm1.xml.save 172.16.13.62:/etc/libvirt/qemu/
# scp /etc/libvirt/qemu/kvm1.xml 172.16.13.62:/etc/libvirt/qemu/
# scp /var/lib/libvirt/images/kvm1.qcow2 172.16.13.62:/var/lib/libvirt/images/

4,到172.16.13.62(也就是遷移的目標宿主機)上操作

# virsh define /etc/libvirt/qemu/kvm1.xml  --define一下,然後就可以用virsh list --all查看到

5,# virsh restore /etc/libvirt/qemu/kvm1.xml.save

熱遷移過程:
1,做熱遷移需要使用共享存儲(也就是說這些虛擬機都安裝在宿主機的共享存儲設備上);我們這裏只能使用nfs來替代

			172.16.13.250	172.16.13.62
		              \		/
			       \       /		 
				\     /				
		   storage(SAN;storage area network)

2,在源宿主機器上把虛擬機的磁盤文件路徑用nfs導出
# vim /etc/exports 
/var/lib/libvirt/images *(rw,no_root_squash,sync)
# systemctl restart nfs 

3,在目標宿主機器上把源共享的目錄掛載,保證路徑一致(目標宿主機的掛載目錄一定要與源宿主機的目錄一致)
# mount  172.16.13.250:/var/lib/libvirt/images/ /var/lib/libvirt/images/

4,進行遷移,下面的操作是在源172.16.13.250上的操作(注意檢查一下防火牆和selinux要關閉)
命令遷
# virsh  migrate --live kvm1 qemu+ssh://172.16.13.62/system
--(可能會有很多問題:如kvm1有橋接網絡,但172.16.13.62那邊沒有,會報錯:或者本地有iso鏡像,但對方那裏iso路徑不一樣,會報錯;或者kvm1內存較大,172.16.13.62那邊沒有足夠的內存分配,則也會報錯等等;雙方主機名沒有綁定,也有可能報錯;還有可能是因爲網絡的問題,造成一次不成功;畢竟我們是實驗環境@_@多試幾次看看)

圖形遷
virt-manager --》右鍵點kvm1-->點遷移

遷移回來可能出現下面錯誤
錯誤信息:
Unable to migrate guest: Unsafe migration: Migration may lead to data corruption if disks use cache != none
解決方法:
在高級選項裏把allow unsafe打勾就可以了
======================================================================================================
在rhel7和centos7下使用快照非常方便,速度也快很多(前提條件:磁盤爲qcow2格式)
查看幫助
virsh help snapshot

主要記住下面幾條命令就ok
# virsh snapshot-list kvm1			--列表kvm1這個虛擬機的快照
# virsh snapshot-create-as --domain kvm1 snap1 --description "my first test snapshot"	--爲kvm1當前狀態創建一個快照,名稱爲snap1;後面的描述信息自定義
# virsh snapshot-revert kvm1 snap1		--恢復kvm1的快照snap1
# virsh snapshot-delete kvm1 snap1		--刪除kvm1的快照snap1

==================================================================================================
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章