真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

kvm介紹與操作文檔

--

虛擬化

KVM  (kernel-based virtual machine)

xen   kvm    vmare esx          openVZ     Oracle VM VirtualBox   vsphere



企業(yè)級(jí)應(yīng)用:非本地的    
分兩部分:一,host虛擬機(jī)
       二,management端



最早的虛擬化:  分時(shí)操作系統(tǒng)    單核CPU 同一時(shí)間點(diǎn)只能做一個(gè)任務(wù)   運(yùn)行多個(gè)進(jìn)程或線程就是一種虛擬化
  cpu運(yùn)行一個(gè)進(jìn)程,中斷,再運(yùn)行另一個(gè),因?yàn)镃PU運(yùn)行速度快,所以用戶感覺不到這種切換,這種切換叫上下文切換


常見的虛擬化場(chǎng)景: 游戲模擬器:如使用X86的CPU模擬PSP或街機(jī)的CPU,使用X86的硬件模擬PSP或街機(jī)的硬件




vmware workstation的虛擬結(jié)構(gòu)圖:

OS1 OS2


  vmware workstation


OS(內(nèi)核)

  硬件:CPU,mem,hd等


--上面的結(jié)構(gòu):OS1和OS2的操作,需要通過vmware來轉(zhuǎn)化為進(jìn)程對(duì)OS的請(qǐng)求,再由OS轉(zhuǎn)化為對(duì)硬件的請(qǐng)求;
如果這里OS里跑的其它程序如果占用和資源多,那么必然會(huì)造成vmware的資源占用少,性能就會(huì)不太好,因?yàn)関mware的進(jìn)程和其它進(jìn)程是同級(jí)的


--如何把性能提高:跳過OS這一層
  或者虛擬化和os同級(jí)
  或者硬件本身支持虛擬化


所以就發(fā)展成下面這幾種虛擬情況:
半(準(zhǔn))虛擬化:
完全虛擬化:




半(準(zhǔn))虛擬化:
客戶機(jī)器操作系統(tǒng)必須是修改過的,才能使用半虛擬化。
硬件虛擬化技術(shù)。

典型代表: Xen


citrix: xen

xen半虛擬化結(jié)構(gòu)圖:


domain0    domain1 domain2  ...

  xen

 硬件:CPU,MEM,HD等



--上面的結(jié)構(gòu): xend取代了OS,domain0是用來控制xen的一個(gè)控制器(跑hypervisor),domain1,domain2...就是虛擬的操作系統(tǒng);這樣轉(zhuǎn)化的效率就會(huì)高很多
但要注意的是:上層的domain1,domain2等的內(nèi)核接口必須要與xen對(duì)應(yīng)才可以;
 xen要使用支持xen的專有內(nèi)核才可以,原有的內(nèi)核不行,原有的內(nèi)核是直接與硬件進(jìn)行通訊的;
開源的linux,freebsd都可以修改,但windows卻不行;
xen已經(jīng)加入到linux內(nèi)核里去了,從2.6.18之后的內(nèi)核就有xen
citrix把xen買下來了,所以redhat不再繼續(xù)開發(fā)xen,就買了另一家kvm;并且citrix是微軟的白金級(jí)合作伙伴,它可以要求MS去修改源代碼支持xen,所以只有citrix的xen支持windows



Hypervisor——一種運(yùn)行在基礎(chǔ)物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可允許多個(gè)操作系統(tǒng)和應(yīng)用共享硬件。也可叫做VMM( virtual machine monitor ),即虛擬機(jī)監(jiān)視器。  
Hypervisors是一種在虛擬環(huán)境中的“元”操作系統(tǒng)。他們可以訪問服務(wù)器上包括磁盤和內(nèi)存在內(nèi)的所有物理設(shè)備。
Hypervisors不但協(xié)調(diào)著這些硬件資源的訪問,也同時(shí)在各個(gè)虛擬機(jī)之間施加防護(hù)。
當(dāng)服務(wù)器啟動(dòng)并執(zhí)行Hypervisor時(shí),它會(huì)加載所有虛擬機(jī)客戶端的操作系統(tǒng)同時(shí)會(huì)分配給每一臺(tái)虛擬機(jī)適量的內(nèi)存,CPU,網(wǎng)絡(luò)和磁盤。




全虛擬化:
必須cpu支持硬件虛擬化。
客戶機(jī)器不需要修改內(nèi)核,原則上可以安裝任何的操作系統(tǒng)。
Intel # cat /proc/cpuinfo | grep vmx
AMD :  svm

典型代表: kvm , VMware ESXi



KVM 完全虛擬化結(jié)構(gòu)圖:


OS1 OS2

    KVM  os

硬件:CPU,MEM,HD等

要求操作系統(tǒng)廠商按照它的虛擬化標(biāo)準(zhǔn)和規(guī)則編寫



=============================================================



紅帽官檔下載路徑

docs.redhat.com
https://access.redhat.com/documentation/en-US/


KVM官方安裝文檔(english)

Red_Hat_Enterprise_Linux-6-Virtualization_Host_Configuration_and_Guest_Installation_Guide-en-US.pdf


在宿主機(jī)安裝kvm


1,配置好yum

# vim /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=rhel6.5
baseurl=file:///yum/
enabled=1
gpgcheck=0


# yum groupinstall "Virtualization"
# yum groupinstall "Virtualization Client"
# yum groupinstall "Virtualization Platform"
# yum groupinstall "Virtualization Tools"


# service libvirtd restart
# chkconfig libvirtd on


# cat /proc/cpuinfo |grep -E "vmx|svm" --查看CPU是否支持intel或AMD的虛擬技術(shù)

vmx ---intel
svm ---AMD

# modprobe kvm
# modprobe kvm_intel --如果不支持vmx指令,則加載不支持

# lsmod |grep kvm
kvm_intel              52570  0
kvm                   314739  1 kvm_intel




開始安裝kvm
1,圖形安裝

# virt-manager    --和xen一樣的命令,打開虛擬機(jī)管理器

安裝名:kvm1    --名字隨意
安裝方式:      --我這里選擇第一個(gè),使用iso直接安裝

安裝路徑:/share/soft/rhel-server-6.5-x86_64-dvd.iso --寫上iso的路徑
OS type:  linux
         red hat enterprise  linux  6


內(nèi)存大小: 1024M -- 內(nèi)存如果較小,安裝時(shí)無法使用圖形安裝方式,只能使用文本安裝方式
cpu個(gè)數(shù):2     --不能大于宿主機(jī)器的cpu核數(shù)

硬盤大小: 12 G    --我這里定義12G大小,不馬上分配;它的默認(rèn)路徑會(huì)在/var/lib/libvirt/p_w_picpaths/kvm1.img;也可以自定義路徑


第五步:網(wǎng)絡(luò)現(xiàn)在只能選擇default  --這是一個(gè)nat網(wǎng)絡(luò)(私有網(wǎng)絡(luò)),橋接網(wǎng)絡(luò)不能選,需要后面單獨(dú)配置后才能選擇




2,命令行交互式安裝
[root@li ~]# virt-install --prompt
What is the name of your virtual machine?
kvm2
How much RAM should be allocated (in megabytes)?
800
What would you like to use as the disk (file path)?
/var/lib/libvirt/p_w_picpaths/kvm2.img
How large would you like the disk (/var/lib/libvirt/p_w_picpaths/kvm2.img) to be (in gigabytes)?
12
What is the install CD-ROM/ISO or URL?
/share/soft/rhel-server-6.5-x86_64-dvd.iso




3,直接使用命令行來安裝
# virt-install --hvm -n "kvm3" -r 800 --vcpus 2 --os-type="linux" --os-variant="rhel6" --disk path=/var/lib/libvirt/p_w_picpaths/kvm3.img,size=12 -l /share/soft/rhel-server-6.5-x86_64-dvd.iso --network bridge=virbr0




hvm是指全虛擬化
p是指半虛擬化


4,使用kc.cfg自動(dòng)安裝

# virt-install --vnc --noautoconsole --arch=x86_64 --hvm -n "kvm3" -r 800 --vcpus 2 --os-type="linux" --os-variant="rhel6" --disk path=/var/lib/libvirt/p_w_picpaths/kvm3.img,size=12 --location=ftp://172.16.2.9/ --extra-args="ks=nfs:172.16.2.9:/ks/ks.cfg" --network bridge=virbr0


# virt-install --vnc --noautoconsole --arch=x86_64 --hvm -n "kvm3" -r 800 --vcpus 2 --os-type="linux" --os-variant="rhel6" --disk path=/var/lib/libvirt/p_w_picpaths/kvm3.img,size=12 --location=ftp://172.16.2.9/ --extra-args="ks=http://172.16.2.9/ks.cfg" --network bridge=virbr0

virt-install  --help
幫助手冊(cè)

[root@i ~]# virt-install --vnc --noautoconsole --arch=x86_64 --hvm -n "kvm4" -r 800 --vcpus 1 --os-type="linux" --os-variant="rhel6" --disk /var/lib/libvirt/p_w_picpaths/kvm4.img,size=9 --location=ftp://192.168.0.254/pub/rhel6/dvd --extra-args="ks=
ftp://192.168.0.254/kvm.cfg" --network bridge=virbr0

==========================================================


主要的管理命令:
virsh help  
virsh help domain
virsh help network
virsh help monitor   --因?yàn)閰?shù)很多,可以用象domain,network,monitor這種關(guān)鍵字,只查看與關(guān)鍵字有關(guān)的參數(shù)幫助
......




# virsh  list
Id    Name                           State
----------------------------------------------------
1     kvm1                           running

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



# virsh  start kvm1 --啟動(dòng)一個(gè)虛擬機(jī)
# virsh  shutdown kvm1     --正常在一分鐘后關(guān)閉一個(gè)虛擬機(jī)(如果都沒有登錄進(jìn)去,則會(huì)馬上關(guān)閉)
# virsh  reboot kvm1    --正常重啟一個(gè)虛擬機(jī),一樣會(huì)在關(guān)閉時(shí)要一分鐘
# virsh  destroy kvm1    --強(qiáng)制關(guān)閉一個(gè)虛擬機(jī),類似斷電,可以瞬間關(guān)閉虛擬機(jī)

# virsh save kvm1 /etc/libvirt/qemu/kvm1.save  --把kvm1關(guān)閉,并把當(dāng)前狀態(tài)保存為一個(gè)文件 <開啟狀態(tài)>
# virsh restore /etc/libvirt/qemu/kvm1.save --通過保存的文件,恢復(fù)當(dāng)時(shí)save時(shí)的狀態(tài) <關(guān)閉狀態(tài)>

# virsh suspend kvm1 --暫停kvm1的狀態(tài)
# virsh resume kvm1 --由暫停切換為繼續(xù)的狀態(tài)

# virt-viewer  kvm1   --連接一個(gè)已經(jīng)啟動(dòng)的虛擬機(jī),并使用圖形查看


# virsh console kvm1   --字符連接一個(gè)虛擬機(jī),但是現(xiàn)在連接不了;因?yàn)樾枰粋€(gè)串口的授權(quán)才可以;下面的例8會(huì)說明

--這里要注意,console連接會(huì)卡死在那;只能殺進(jìn)程退出;但其實(shí)是有快捷鍵的;是ctrl+ ] (也就是右中框號(hào)的這個(gè)鍵)來退出


虛擬機(jī)相關(guān)的文件:
以kvm1為例:
配置文件在:/etc/libvirt/qemu/kvm1.xml
磁盤文件默認(rèn)在:/var/lib/libvirt/p_w_picpaths/kvm1.img




命令刪除一個(gè)虛擬機(jī)的做法(假設(shè)為kvm3)

virsh destroy kvm3
virsh undefine kvm3
rm -rf /var/lib/libvirt/p_w_picpaths/kvm3.img


=====================================================================

網(wǎng)絡(luò)管理
console連接
克隆
添加或刪除硬件
遠(yuǎn)程虛擬機(jī)管理
遷移
快照

================================================================



kvm 網(wǎng)絡(luò)管理

# virsh  help network --只查看與網(wǎng)絡(luò)有關(guān)的幫助參數(shù)


# virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes --這是一個(gè)NAT網(wǎng)絡(luò),私有網(wǎng)絡(luò)


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


default網(wǎng)段的配置文件的路徑為:
/etc/libvirt/qemu/networks/default.xml


virsh net-destroy default --停掉default網(wǎng)絡(luò),由virsh net-list --all去查看,狀態(tài)變?yōu)閕nactive
virsh net-start  default --啟動(dòng)default網(wǎng)絡(luò),狀態(tài)變?yōu)閍ctive




-----------------------------------------------------



例一:圖形增加私有網(wǎng)絡(luò)

virt-manager打開圖形--》edit --》connections details --》 virtual networks--》點(diǎn)左下角的+號(hào)增加一個(gè)私有網(wǎng)絡(luò)(選擇名字,網(wǎng)絡(luò)分配地址范圍,dhcp的分配范圍)
--注意:這里最后一步有三種網(wǎng)絡(luò):
1,isolated 相當(dāng)vmware的hostonly,沒有NAT,也沒有網(wǎng)關(guān)
2,NAT   有網(wǎng)關(guān),有NAT,可以通過宿主上外網(wǎng)
3,routed 也是相當(dāng)于hostonly,在isolated的基礎(chǔ)上就是加了一個(gè)網(wǎng)關(guān)

把上面的步驟做完后,直接在宿主機(jī)用ifconfig或virsh net-list --all,就可以看到新加的網(wǎng)絡(luò)了


例二:手動(dòng)加一個(gè)私有網(wǎng)絡(luò)
1,# cp /etc/libvirt/qemu/networks/default1.xml /etc/libvirt/qemu/networks/default2.xml

# vim /etc/libvirt/qemu/networks/default2.xml

 default2 --修改名字為default2
 243166ddb-e2fd-9983-1997-5e8efdc06c42  --uuid隨便修改一下
  --virbr1改成virbr2
  --MAC地址改一下,只改后面三位
  --IP改為101
   
      --dhcp地址范圍也改成101的
   

 




2,# virsh net-define /etc/libvirt/qemu/networks/default2.xml --定義一下,然后你可以使用virsh net-list --all去查看,狀態(tài)為inactive,autostart的狀態(tài)為no
3,# virsh net-start default2 --啟動(dòng)
4,# 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.0



# ls /etc/libvirt/qemu/networks/autostart/
default1.xml   default.xml

5,# virsh net-autostart default2  --讓他開機(jī)自動(dòng)啟動(dòng)

# ls /etc/libvirt/qemu/networks/autostart/ --這里就會(huì)多了default2.xml了,其實(shí)都是網(wǎng)絡(luò)配置文件的軟鏈接
default1.xml  default2.xml   default.xml


剛加的網(wǎng)絡(luò)配置文件都在下面的目錄
# ls /etc/libvirt/qemu/networks
autostart  default1.xml  default2.xml  default.xml




例三:修改一個(gè)網(wǎng)絡(luò)
1,# vim /etc/libvirt/qemu/networks/default2.xml



 default2
 243166ddb-e2fd-9982-1996-5e8efdc06c42
 
   
 

 
 
  --我這里把以前的192.168.101.0的IP范圍都改成了192.168.102.0
   
     
   

 




保存后,使用ifconfig virbr1 查看,還是192.168.102.1,沒有改變
需要做下面三步:

2,# virsh net-define /etc/libvirt/qemu/networks/default2.xml  --定義一個(gè)網(wǎng)絡(luò),使你的修改被他知道
Network default2 defined from /etc/libvirt/qemu/networks/default3.xml

3,# virsh net-destroy default2 --停一下這個(gè)網(wǎng)絡(luò)
Network default2 destroyed

4,# virsh net-start default2 --再啟這個(gè)網(wǎng)絡(luò)
Network default2 started


ifconfig virbr2查看,成功修改成192.168.102.1


上面的第一步和第二步可以統(tǒng)一成一步來做:
# virsh  net-edit default2   --使用這個(gè)命令打開,修改,然后就直接net-destroy和net-start,不需要去net-define



例四:
圖形刪除一個(gè)網(wǎng)絡(luò)
virt-manager打開圖形--》edit --》connections details --》 virtual networks--》選擇你要?jiǎng)h除的網(wǎng)絡(luò),然后左下角,先停,再刪除就可以了


用命令刪除一個(gè)網(wǎng)絡(luò)

# virsh net-destroy default2 --停掉要?jiǎng)h除的網(wǎng)絡(luò),用virsh net-list --all命令去查就變成了inactive狀態(tài)

# virsh net-undefine default2  --這下就刪除了這個(gè)網(wǎng)絡(luò)定義了,并且物理上的配置文件也沒了



例五:增加一個(gè)橋接網(wǎng)絡(luò):
把物理網(wǎng)卡eth0橋接到br0(這個(gè)名字是自己定義的)

在rhel6里有一個(gè)networkmanger這個(gè)服務(wù),可以圖形管理所有的網(wǎng)絡(luò)鏈接。但這個(gè)服務(wù)不支持kvm的橋接,所以要關(guān)掉這個(gè)服務(wù),或者在eth0的配置文件里加上NM_CONTROLLED="no",讓eth0不受networkmanger服務(wù)的控制




1,在宿主機(jī)上創(chuàng)建一個(gè)橋接網(wǎng)絡(luò)

# /etc/init.d/NetworkManager stop
# chkconfig NetworkManager off


# vim /etc/sysconfig/network-scripts/ifcfg-br0  --此文件不存在,br0這個(gè)名字是自定義的
DEVICE=br0 --名字對(duì)應(yīng)好
TYPE=Bridge --這里的Birdge,B要大寫,后面的irdge要小寫
BOOTPROTO=static
IPADDR=172.16.2.9
NETMASK=255.255.0.0
GATEWAY=172.16.1.1
ONBOOT=yes



2,把一個(gè)物理網(wǎng)卡加到一個(gè)橋接網(wǎng)絡(luò)里,我這里是把eth0加到br0
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BRIDGE=br0 --這句就是把eth0橋接到br0
NM_CONTROLLED="no" --這句就是讓eth0不受networkmanager的控制
ONBOOT="YES"




[root@li ~]# brctl show  --重啟網(wǎng)絡(luò)前的情況
bridge name bridge id STP enabled interfaces
virbr0 8000.5254004e4c3f yes virbr0-nic
virbr1 8000.5254004cf4e4 yes virbr1-nic



3,重啟網(wǎng)絡(luò) /etc/init.d/network restart


# brctl show --重啟網(wǎng)絡(luò)后查看的情況
bridge name bridge id STP enabled interfaces
br0 8000.0030677653f7 no eth0
virbr0 8000.5254004e4c3f yes virbr0-nic
virbr1 8000.5254004cf4e4 yes virbr1-nic




有了上面這些網(wǎng)絡(luò),如果你再建立虛擬機(jī),就會(huì)有多種網(wǎng)絡(luò)可選


在宿主機(jī)上ifconfig 查看就會(huì)有br0這個(gè)網(wǎng)卡,有IP;而eth0網(wǎng)卡也有,但沒有IP;這是正常的



例六:圖形修改一個(gè)虛擬機(jī)網(wǎng)卡鏈接


virt-manager打開圖形,雙擊你要修改的虛擬機(jī) --》點(diǎn)擊左上的一個(gè)!號(hào)按鈕show hardware detail-->>找個(gè)網(wǎng)卡,修改成你想要改的網(wǎng)絡(luò)(但這里報(bào)需要重啟虛擬機(jī)才能生效)

# virsh shutdown kvm1
# virsh start kvm1 --重啟后,就改成了你想要的虛擬網(wǎng)絡(luò)了



--問題:可能有些人在圖形選擇時(shí)看不到br0,但是brctl show能查看到,那么你在選擇時(shí)選擇specify shared device name,然后再下面手動(dòng)在bridge name后寫br0





例七:文本修改一個(gè)虛擬機(jī)的網(wǎng)卡連接


1,# vim /etc/libvirt/qemu/kvm1.xml --直接打開修改
2,# virsh define /etc/libvirt/qemu/kvm1.xml --vim修改后要define一下



# virsh edit kvm1   --或者使用edit命令打開修改,就可以替代前面的1,2步
    40     --接口類型把network改成bridge
    41      
    42       --把原來默認(rèn)的network改成bridge,把原來的網(wǎng)絡(luò)default改成br0
    43      
    44      





# virsh shutdown kvm1
# virsh start kvm1 --重啟后,虛擬機(jī)就是橋接網(wǎng)絡(luò)了



--KVM現(xiàn)在修改一個(gè)網(wǎng)卡的類型(比如NAT改橋接),需要重啟才能生效;但如果你是加網(wǎng)卡或者刪網(wǎng)卡,是不需要重啟生效的(rhel6.5環(huán)境下測(cè)試為,圖形加或刪網(wǎng)卡不用重啟,但命令加或刪網(wǎng)卡要重啟)



======================================================================



例八:解決virsh console kvm1 連接不上去的錯(cuò)誤

1,在kvm1虛擬機(jī)里操作
vim /boot/grub/grub.conf

kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=f900cbb3-c0cf-440c-94f6-0c208f1da6e0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0,115200  --在內(nèi)核參數(shù)這里加上console=ttyS0,115200,表示這個(gè)串口以115200的波特率可以連接;注意ttyS0里的S一定要大寫;


如果小寫會(huì)造成這個(gè)虛擬機(jī)啟動(dòng)不了,解決方法:
1,挽救模式進(jìn)去修改
2,用虛擬化的一個(gè)交互編輯工具
# yum install libguestfs-tools
# virt-edit -a /var/lib/libvirt/p_w_picpaths/kvm1.img /boot/grub/grub.conf去修改;
同理這個(gè)工具也可以用于完全沒有圖形的宿主機(jī)上無法通過virt-viewer或者ssh(因?yàn)檎也坏教摂M機(jī)的IP)或者virsh console來連接虛擬機(jī)的情況;
可以先用virt-edit來修改加上上面的console=ttyS0,115200;再用virsh console去連接

--如果上面的virt-edit打不開,可以使用# libguestfs-test-tool來調(diào)試錯(cuò)誤(我這里以前講庫(kù)的時(shí)候做了一個(gè)小實(shí)驗(yàn),把/lib64/libselinux.so.1改名成了/lib64/libselinux.so.1.bak,然后用軟鏈接鏈接回來。但在這里就會(huì)造成錯(cuò)誤。解決方法:mv /lib64/libselinux.so.1.bak /lib64/libselinux.so.1)



2,重啟kvm1
# virsh reboot kvm1   --直接destroy再start,可能無法生效,建議這樣重啟

3,再在宿主機(jī)上
# virsh console kvm1    --然后回車就可以直接連你本地的這個(gè)虛擬機(jī)了;虛擬機(jī)沒有IP一樣可以連


4,退出的方式
exit只是退出登錄的用戶而已
要完全退出這個(gè)console連接,需要使用的是ctrl+ ] (也就是右中框號(hào)的這個(gè)鍵)



========================================




kvm 的克隆

--注意:克隆都需要源虛擬機(jī)器是關(guān)閉或暫停狀態(tài)


例九:圖形克隆
1,先關(guān)閉kvm1或 virsh suspend kvm1暫停kvm1(使用virsh resume kvm1恢復(fù))



2,virt-manager--》右鍵點(diǎn)kvm1--》選擇clone-->修改克隆后的名字或其它參數(shù)--》點(diǎn)clone



例十:文本克隆
1,拷貝配置文件和磁盤文件
# cp /etc/libvirt/qemu/kvm1.xml /etc/libvirt/qemu/kvm3.xml
# cp /var/lib/libvirt/p_w_picpaths/kvm1.img /var/lib/libvirt/p_w_picpaths/kvm3.img


2,修改拷貝的配置文件
# vim /etc/libvirt/qemu/kvm3.xml



 kvm3 --名字改成kvm3
 811d69e8-b1d8-cfbf-684a-69f2e0af6b88 --uuid隨便改幾個(gè)數(shù)字
 1048576
 1048576
 2
 
   hvm
   
 

 
   
   
   
 

 
 destroy
 restart
 restart
 
   /usr/libexec/qemu-kvm
   
     
        --磁盤路徑改成kvm3.img的路徑
     
     

   
   
     
     
     
     

   
   
     

   
   
     

   
   
        --網(wǎng)卡地址隨便改下,只改后三位
     
     
     

   
   
      --第二張網(wǎng)卡也隨便改下
     
     
     

   
   
     
   

   
     
   

   
   
   
   
     

   
   

   
   
     

   
 




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


# virsh start kvm3   --可以啟動(dòng)克隆的機(jī)器了



例十一:命令克隆

# virt-clone -o kvm1 -n kvm4 -f /var/lib/libvirt/p_w_picpaths/kvm4.img
Allocating kvm4.img  7% [-          ]  34 MB/s | 957 MB     05:29 ETA
--把kvm1克隆成kvm4,指定磁盤路徑為/var/lib/libvirt/p_w_picpaths/kvm4.img;如果kvm1有多個(gè)硬盤,那么克隆時(shí)也要對(duì)應(yīng)的克隆成多個(gè)路徑





========================================



例十二:添加網(wǎng)卡或硬盤


virt-manager--》 雙擊打開kvm1--》點(diǎn)左上角的!號(hào)show hardware details --》點(diǎn)左下角add devices 直接添加,并寫上相關(guān)參數(shù)就可以(注意參數(shù),device type都選擇virtio,不需要重啟虛擬機(jī),可以直接生效,并且磁盤名叫vda,vdb,vdc...;如果你第一次加硬盤選擇IDE disk,需要重啟,并且磁盤名叫sda,sdb,sdc...)


--注意:當(dāng)虛擬機(jī)(非宿主機(jī))為文本模式的情況,在宿主機(jī)上用上面的圖形模式加的設(shè)備,在虛擬機(jī)的配置文件里沒有加上,需要手動(dòng)再加上,才可以




例十三:直接用命令來添加一個(gè)硬盤設(shè)備
1,使用dd命令創(chuàng)建一個(gè)磁盤文件
# dd if=/dev/zero of=/var/lib/libvirt/p_w_picpaths/kvm2-2.img bs=1M count=1 seek=4000000
--seek是指跳過多少個(gè)BS塊,這里就是產(chǎn)生一個(gè)4T大小的文件(實(shí)際大小只1M)



2,編輯虛擬機(jī)的配置文件
# virsh edit kvm2
之間加上下面的一段,也可以把其它磁盤的配置定義拷貝一段進(jìn)行修改


   
     
       --名字改成kvm1-2.img
      --磁盤名,改成vdb;bus總線如果是ide,那么磁盤名會(huì)叫sda(就算dev寫hda,在虛擬機(jī)里fdisk也是看到sda);virtio這種總線會(huì)以vda,vdb...這種形式來命名
     
--slot也改一下,我這里是把0x09改成0x10
   


3,重啟虛擬機(jī)
# virsh define /etc/libvirt/qemu/kvm2.xml
# virsh reboot kvm2

======================================================================


kvm 的遠(yuǎn)程管理

例:在192.168.0.254上管理192.168.0.252

1,先在/etc/hosts里綁定對(duì)方(被管理的宿主機(jī)器)的主機(jī)名


2,做ssh等效性
# ssh-keygen --直接三次回車

# ssh-add /root/.ssh/id_rsa --加入自己的私鑰
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)


# scp /root/.ssh/id_rsa.pub 172.16.1.65:/root/.ssh/authorized_keys
--把自己的公鑰scp傳給對(duì)方



3,所有的被管理客戶端宿主機(jī),需要啟動(dòng)libvirtd服務(wù)



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



5,連接上去之后,就可以看到有遠(yuǎn)程的虛擬客戶機(jī),雙擊就可以遠(yuǎn)程調(diào)取他們的圖形了



--或者用命令的方式去連接
# virt-viewer -c qemu+ssh://root@192.168.0.1/system kvm1
--表示使用root用戶(當(dāng)然前面你做的ssh等效性需要是root用戶)去訪問192.168.0.1上叫kvm1的虛擬機(jī)



=================================================================




遷移:
冷遷移: 這個(gè)和克隆還是有區(qū)別的:克隆是把源虛擬機(jī)關(guān)閉,那么內(nèi)存的數(shù)據(jù)都沒了;而遷移是遷過去成功,然后打開后,還保持原來的內(nèi)存數(shù)據(jù)
熱遷移:



冷遷移過程:
1,虛擬機(jī)kvm1是開啟狀態(tài)
2,保存當(dāng)前的運(yùn)行狀態(tài)
# virsh save kvm1 /etc/libvirt/qemu/kvm1.xml.save

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

3,scp或者rsync把相關(guān)的文件都拷貝到被遷移的宿主機(jī)
# scp /etc/libvirt/qemu/kvm1.xml.save 172.16.1.65:/etc/libvirt/qemu/
# scp /etc/libvirt/qemu/kvm1.xml 172.16.1.65:/etc/libvirt/qemu/
# scp /var/lib/libvirt/p_w_picpaths/kvm1.img 172.16.1.65:/var/lib/libvirt/p_w_picpaths/


4,到192.168.0.1(也就是遷移的目標(biāo)宿主機(jī))上操作

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


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






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

      remote01  remote02
                   \ /
               \       /
            \     /
         storage(0.254)


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

# /etc/init.d/nfs restart  --rhel6.x已經(jīng)沒有portmap服務(wù)了(代替的是rpcbind服務(wù)),直接啟動(dòng)nfs服務(wù)就可以


3,在目標(biāo)宿主機(jī)器上把源共享的目錄掛載,保證路徑一致
# mount -t nfs -o vers=3 172.16.2.9:/var/lib/libvirt/p_w_picpaths/ /var/lib/libvirt/p_w_picpaths/



4,進(jìn)行遷移,下面的操作是在源172.16.2.9上的操作(注意檢查一下防火墻和selinux要關(guān)閉)
命令遷
# virsh  migrate --live kvm1 qemu+ssh://172.16.1.65/system
--(可能會(huì)有很多問題:如kvm1有橋接網(wǎng)絡(luò),但172.16.1.65那邊沒有,會(huì)報(bào)錯(cuò):或者kvm1內(nèi)存較大,172.16.1.65那邊沒有足夠的內(nèi)存分配,則也會(huì)報(bào)錯(cuò)等等;還有可能是因?yàn)榫W(wǎng)絡(luò)的問題,造成一次不成功;畢竟我們是實(shí)驗(yàn)環(huán)境@_@多試幾次看看)

圖形遷
virt-manager --》右鍵點(diǎn)kvm1-->點(diǎn)遷移



--遷移過程中,源虛擬機(jī)還是可以繼續(xù)運(yùn)行,幾乎感覺不到停;遷移完成后,則源會(huì)關(guān)閉(源已經(jīng)沒有用了),而目標(biāo)172.16.1.65,就已經(jīng)無縫接管了源虛擬機(jī)的狀態(tài)了


熱遷移時(shí),如果報(bào)下面的錯(cuò)誤
libvirtError: internal error Attempt to migrate guest to the same host
解決方法:在目標(biāo)端172.16.1.65上操作
# uuidgen --產(chǎn)生一個(gè)新的uuid
596b0eb8-3a15-48da-bbba-11e136b7c893
# vi /etc/libvirt/libvirtd.conf --此配置文件里加上下面一行,注意id一定要用雙引號(hào)引起來
host_uuid = "596b0eb8-3a15-48da-bbba-11e136b7c893"

# /etc/init.d/libvirtd restart   --重啟服務(wù)



=======================================================================




kvm快照

# virsh shutdown kvm1


# qemu-img info /var/lib/libvirt/p_w_picpaths/kvm1.img
p_w_picpath: /var/lib/libvirt/p_w_picpaths/kvm1.img
file format: raw
virtual size: 12G (12884901888 bytes)
disk size: 3.2G


# cd /var/lib/libvirt/p_w_picpaths/
# qemu-img convert -f raw -O qcow2 kvm1.img kvm1.qcow2.img
--把磁盤格式由raw轉(zhuǎn)換為qcow2



# ll -h kvm1* --qcow2格式占用空間小
-rw------- 1 root root  12G Dec  7 17:11 kvm1.img
-rw-r--r-- 1 root root 3.1G Dec  7 17:21 kvm1.qcow2.img



# virsh edit kvm1 --編輯kvm1虛擬的主配置文件,把raw磁盤換成qcow2磁盤

   
      --把type里的row改成qcow2
      --把路徑也改成轉(zhuǎn)換為qcow2格式的文件路徑
     
     

   



# virsh start kvm1 --再啟動(dòng),使他生效



# rm -rf /var/lib/libvirt/p_w_picpaths/kvm1.img  --可以把原來的raw格式的磁盤文件給刪除掉



# virsh help snapshot --查看和快照操作有關(guān)的命令


# virsh snapshot-list kvm1 --列快照,默認(rèn)沒有
Name                 Creation Time             State
------------------------------------------------------------



#  virsh snapshot-create-as --domain kvm1 snap1 --description "my first test snapshot" --對(duì)kvm1創(chuàng)建一個(gè)叫snap1的快照
Domain snapshot snap created


# ll -h kvm1.qcow2.img --在建快照的過程中看到此文件在增大
-rw-r--r-- 1 qemu qemu 3.6G Dec  7 17:48 kvm1.qcow2.img


# virsh snapshot-list kvm1
Name                 Creation Time             State
------------------------------------------------------------
snap1                2013-12-07 17:52:42 +0800 running


查看幫助
virsh help snapshot
查看快照配置
virsh snapshot-current kvm1
恢復(fù)快照
virsh snapshot-revert kvm1 snap1
刪除快照
virsh snapshot-delete kvm1 snap1


--恢復(fù)快照時(shí)報(bào)錯(cuò):error: revert requires force: Target controller type ide does not match source usb
表示kvm不能在線恢復(fù),需要關(guān)閉虛擬機(jī),再恢復(fù)快照。如果你要在線恢復(fù)快照,需要加一個(gè)--force的參數(shù)
寫法如:
virsh snapshot-revert kvm1 snap1 --force

恢復(fù)快照的時(shí)間較長(zhǎng),恢復(fù)完后,鍵盤操作會(huì)有些問題,可以把它重啟一下
virsh destroy kvm1
virsh start kvm1



===============================================================

練習(xí),準(zhǔn)備一個(gè)qcow2格式的新kvm虛擬機(jī),并安裝好操作系統(tǒng)(并做基本優(yōu)化,配yum,關(guān)閉iptables和selinux等),并做好快照。以后要用多臺(tái)的話,就按照這臺(tái)來克隆就可以





站在用戶的角度思考問題,與客戶深入溝通,找到黃龍網(wǎng)站設(shè)計(jì)與黃龍網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋黃龍地區(qū)。


網(wǎng)頁(yè)標(biāo)題:kvm介紹與操作文檔
網(wǎng)址分享:http://weahome.cn/article/ihjejh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部