天天看點

kvm虛拟化

  kvm的安裝與使用

1,技術參考

http://taokey.blog.51cto.com/4633273/1540873 

http://www.server-world.info/en/note?os=CentOS_6&p=kvm&f=1

http://koumm.blog.51cto.com/703525/1288795

http://www.361way.com/category/virtualization-cloud-automation/page/3

注意:在做實驗之前,先确定cpu是否支援虛拟化,在bios裡面看,并把虛拟化功能打開

本實驗是直接使用vmware安裝centos6.6-64位,如果在實際環境,則直接在真機上使用

實驗前的準備:

1.給虛拟機硬體資源的大小(cpu,硬碟,記憶體等)

2.硬碟給兩個磁盤,一個裝系統,另一個用來存放虛拟機的檔案

3.在虛拟機上cpu配置啟用虛拟化

預設是raw格式     一般建立qcow2格式

下面就是安裝centos系統了,這個百度上有很多,就不介紹了。重點是kvm

安裝kvm之前,需要做的準備

1.清除iptable規則或者關閉iptables服務

service iptables stop

chkconfig iptables off

2.關閉selinux

setenforce 0

3.檢視一下cpu是否支援虛拟化

cat /proc/cpuinfo  或者 grep -Ei 'vmx|svm' /proc/cpuinfo

如果有輸出内容,則支援,其中intel cpu支援會有vmx,amd cpu支援會有svm

4.先配置ip保證機器能夠上網

安裝虛拟化軟體包使用yum(如果yum安裝不了的,則需要安裝epel源了)

yum install -y kvm virt-*  libvirt  bridge-utils qemu-img

檢查kvm子產品是否加載

lsmod |grep kvm

正常應該是:

kvm_intel              55496  3

kvm                   337772  1 kvm_intel

如果沒有,需要執行 

modprobe kvm-intel

還沒有就重新開機一下試試

配置網卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-br0

分别編輯eth0和br0

ifcfg-eth0改成如下:

DEVICE=eth0

HWADDR=00:0C:29:55:A7:0A

TYPE=Ethernet

UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

BRIDGE=br0

ifcfg-br0改成如下:

DEVICE=br0

#HWADDR=00:0C:29:55:A7:0A

TYPE=Bridge

#UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6

BOOTPROTO=static

IPADDR=192.168.11.17

NETMASK=255.255.255.0

GATEWAY=192.168.11.1

DNS1=202.106.0.20

說明: 我的虛拟機是橋接模式,是以設定br0的ip和我的真機同樣的網段,包括網關也是我路由器的ip,大家可以根據自己的環境去配置,目的是為了讓虛拟機可以上網。

重新開機網絡服務

/etc/init.d/network restart

檢視網卡br0的ip

ifconfig -a

啟動或重新開機libvirtd服務和messagebus 服務

/etc/init.d/libvirtd start

/etc/init.d/messagebus restart

此時可以檢視網絡接口清單

brctl show 結果如下:

bridge name     bridge id               STP enabled     interfaces

br0             8000.000c2955a70a       no              eth0

virbr0          8000.52540014efd5       yes             virbr0-nic

建立虛拟機

把50G大小的容量挂載在/data目錄下面,用于存放虛拟機

mkdir /data/   //建立一個存儲虛拟機虛拟磁盤的目錄,該目錄所在分區必須足夠大

virt-install \

--name  aming1 \

--ram 512 \

--disk path=/data/aming1.img,size=30 \

--vcpus 1 \

--os-type linux \

--os-variant rhel6 \

--network bridge=br0 \

--graphics none \

--console pty,target_type=serial \

--location 'http://mirrors.163.com/centos/6.8/os/x86_64' \

--extra-args 'console=ttyS0,115200n8 serial'

注意:随着時間久了,可能使用的網絡資源不存在了,則需要自己在網絡上找了。

使用網絡資源的情況下,主機需要能聯網,如果網絡不可用,則會跳到讓你選擇使用其他的方式安裝

說明:

--name  指定虛拟機的名字

--ram 指定記憶體配置設定多少

--disk path 指定虛拟磁盤放到哪裡,size=30 指定磁盤大小為30G,這樣磁盤檔案格式為raw,raw格式不能做快照,後面有說明,需要轉換為qcow2格式,如果要使用qcow2格式的虛拟磁盤,需要事先建立qcow2格式的虛拟磁盤。 參考  http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html   示例:qemu-img create -f qcow2 -o preallocation=metadata  /data/test02.img 7G;  --disk path=/data/test02.img,format=qcow2,size=7,bus=virtio

--vcpus 指定配置設定cpu幾個

--os-type 指定系統類型為linux 

--os-variant 指定系統版本

--network  指定網絡類型

--graphics 指定安裝通過哪種類型,可以是vnc,也可以沒有圖形,在這裡我們沒有使用圖形直接使用文本方式

--console 指定控制台類型

--location 指定安裝媒體位址,可以是網絡位址,也可以是本地的一個絕對路徑,(--location '/mnt/', 其中/mnt/下就是我們挂載的CD光牒鏡像mount /dev/cdrom /mnt)如果是絕對路徑,那麼後面還需要指定一個安裝媒體,比如NFS,假如虛拟機設定ip後,不能連外網,那麼就會提示讓我們選擇安裝途徑:                        

下面就是我們非常熟悉的界面了,根據安裝提示,進行安裝。不過這裡使用的全部都是文本模式的,如果想使用圖形界面,可以開啟vnc

最後安裝完,reboot就進入剛剛建立的虛拟機了。要想退回到主控端,ctrl  ] 即可。

virsh list 可以列出目前的子機清單。

virsh console centos6.6_1  可以進入指定的子機

退出到母機 ctrl+]

kvm的使用

virsh list 檢視目前的子機清單

virsh list --all   列出全部的子機

virsh console 名字    登入子機

virsh shutdown 名字   關閉子機     需要在母機和用戶端都安裝acpid包

virsh start 名字 --console    開啟子機,并直接進入

ctrl+]   退出

virsh destroy bob  關閉虛拟機

virsh start bob        開啟虛拟機

virsh suspend bob   挂起虛拟機

virsh resume bob   恢複挂起機器

virsh autostart bob  自動開始(母機啟動,子機也一起起來)

virsh autostart --disable bob  解除自動開始

徹底的銷毀機器

virsh destory bob    删除機器

virsh undefine bob 取消定義

然後再删除安裝檔案

更改虛拟機的名字:

cd /etc/libvirt/qemu 把配置檔案名字改一下,然後編輯配置檔案,更改 <name></name> 這裡面的字元。 還得重新開機一下 /etc/init.d/libvirtd restart

虛拟機克隆

 1.先關閉虛拟機  virsh shutdown bob

2.在母機裡面操作

      virt-clone --original alo7 --name test --file /data/kvm/test.qcow2

如果網卡名字有錯誤,可以直接修改或者編輯這個檔案

vim /etc/udev/rules.d/70-persistend-net.rules

建立快照(可以再開機或者關機的狀态下建立)

virsh snapshot-create bob

檢視格式

qemu-img info /data/kvm/bob.img

編輯虛拟機的配置檔案

virsh edit bob   和直接編輯這個檔案是一樣的  vim /etc/libvirt/qemu/bob.xml

 轉換磁盤格式

qemu-img convert -f raw -O qcow2 /data/kvm/bob.img /data/kvm/bob.qcow2

  源格式    後格式      源路徑 後路徑

檢視虛拟機的快照

virsh snapshot-list bob

恢複快照

virsh snapshot-revert bob id号(1441043345)

檢視目前子機的快照版本

virsh snapshot-current bob

删除一個快照

virsh snapshot-delete bob 1143043345

檢視快照存放的位置

ls /var/lib/libvirt/qemu/snapshot/bob/

kvm磁盤擴容

qemu-img info /data/kvm/saybot.qcow2  檢視大小

qemu-img resize /data/kvm/saybot.qcow2 +5G      加5個G       添加的是實體主機的磁盤空間

注意:直接進入saybot主機。裡面是看不到新加的大小的。需要先virsh destroy saybot ,在啟動機器在裡面才會生效

下面需要從新分區為vda4

fdisk /dev/vda

建立pv   (注意:如果在建立的時候找不到vda4,則重新開機機器)

pvcreate  /dev/vda4

pvs檢視一下

pv加入到VG裡面去,

vgextend VolGroup /dev/vda4

加入後,用pvs檢查一下

vgs檢視一下

lvs檢視一下邏輯卷

下面把lvm新加的5G空間加入到lv_root裡面

 lvextend -l +100%FREE /dev/VolGroup/lV_root   吧剩下的所有空間都加入到lv_root裡面

最後需要對操作的地方進行resize2fs

resize2fs /dev/VolGroup/lv_root

添加虛拟磁盤

退出主機,進入母機裡面

qemu-img create -f qcow2 /data/kvm/saybot1.qcow2 5G

virsh destroy saybot

virsh edit saybot

複制一段disk‘

<disk type='file' device='disk'>     

  <driver name='qemu' type='raw' cache='none'/>      

  <source file='/data/kvm/test03_2.img'/>      

<target dev='vdb' bus='virtio'/>      

</disk>

開啟虛拟機:virsh start test03

進入虛拟機:virsh console test03

分區: fdisk /dev/vdb

格式化 (略)

挂載 (略)

當然也可以按照上面的思路把 /dev/vdb1 加入到 lvm裡面去

通過虛拟磁盤恢複虛拟機檔案

虛拟機的配置檔案/etc/libvirt/qemu

虛拟機磁盤檔案/data/kvm

virsh dumpxml saybot > /etc/libvirt/qemu/xcb.xml

相當于備份saybot并重命名xcb.xml

編譯剛那個檔案

vim /etc/libvirt/qemu/xcb.xml

修改的地方有:名字,uuid,type,file

重新定義xcb檔案或者指定檔案

virsh define /etc/libvirt/qemu/xcb.xml

調整cpu,記憶體和網卡

修改cpu和記憶體直接更改配置檔案既可,并吧機器destroy ,最後啟動

列出網卡

修改網卡的名字

vi /etc/udev/rules.d/70-persistent-net.rules

檢視網卡資訊

virsh domiflist saybot

添加一塊網卡

virsh attache-interface saybot --type bridge --source br0

virsh dumpxml saybot > /etc/libvirt/qemu/saybot.xml

機器啟動的狀态,直接添加即可生效

機器關閉的狀态,添加網卡

更改的地方有:mac位址,删掉address行

然後啟動系統virsh start saybot --console

kvm系統遷移

1.可以拷貝/data/kvm目錄下的.qcow2檔案

2.拷貝/etc/libvirt/qemu目錄下的配置檔案.xml

1.機器關機

2.拷貝檔案

virsh dumpxml saybot > /etc/libvirt/qemu/saybot1.xml

3.檢視虛拟磁盤在哪裡

virsh domblklist saybot

4.拷貝磁盤到遠端去

rsync -avp /data/kvm/saybot.qcow2 /data/kvm/saybot1.qcow2

5.編輯配置檔案

vim /etc/libvirt/qemu/saybot1.xml

更改的地方:name,uuid,file,

6.定義

virsh define /etc/libvirt/qemu/saybotq.xml

7.開啟

virsh start saybot1 --console

注意:如果是遷移到遠端上去,則不需要更改配置檔案

如果遠端機器上有相同名字的,也需要更改。

下一篇: 初識虛拟化

繼續閱讀