****************大家好,我是霸王卸甲,今天給大家帶來的是安裝KVM。。。
kvm:Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM目前已成爲學術界的主流VMM之一。
KVM的虛擬化需要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的完全虛擬化。而Xen早期則是基於軟件模擬的Para-Virtualization,新版本則是基於硬件支持的完全虛擬化。但Xen本身有自己的進程調度器,存儲管理模塊等,所以代碼較爲龐大。廣爲流傳的商業系統虛擬化軟件VMware ESX系列是基於軟件模擬的Full-Virtualization。
查看CPU是否支持VT技術:
#cat /proc/cpuinfo | egrep 'vmx|svm'
flags : fpu vme de pse tsc msr pae mce cx8 apicmtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
需求內核(rhel6以上):
uname -r
2.6.32-358.el6.x86_64
安裝軟件:
rhel6:
yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y
rhel7:
# yum install *virt* *qemu* -y
# yum install libvirt qemu-kvm virt-manager -y
啓動服務:
rhel6:
/etc/init.d/libvirtd start
rhel7:
# systemctl start libvirtd
查看kvm模塊加載:
lsmod | grep kvm
kvm_intel 53484 3
kvm 316506 1 kvm_intel
#
圖形模式安裝guest os
#virt-manager
存儲池:
1.創建基於文件夾的存儲池(目錄)
mkdir -p /data/vmfs
2.定義存儲池與其目錄
# virsh pool-define-as vmdisk --type dir --target /data/vmfs
3.創建已定義的存儲池
(1)創建已定義的存儲池
# virsh pool-build vmdisk
(2)查看已定義的存儲池,存儲池不激活無法使用。
#virsh pool-list --all
4.激活並自動啓動已定義的存儲池
# virsh pool-start vmdisk
# virsh pool-autostart vmdisk
這裏vmdisk存儲池就已經創建好了,可以直接在這個存儲池中創建虛擬磁盤文件了。
5.在存儲池中創建虛擬機存儲卷
(1)在存儲池中創建虛擬機存儲卷
# virsh vol-create-as vmdisk oeltest03.qcow2 20G --format qcow2
(2)根據創建的虛擬機存儲卷安裝虛擬機
#virt-install --name=oeltest03 --os-variant=RHEL6 --ram 1024 --vcpus=1 --disk path=/data/vmfs/oeltest03.qcow2,format=qcow2,size=20,bus=virtio --accelerate --cdrom /data/iso/oel63x64.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio –noautoconsole
注1:KVM存儲池主要是體現一種管理方式,可以通過掛載存儲目錄,lvm邏輯卷的方式創建存儲池,虛擬機存儲卷創建完成後,剩下的操作與無存儲卷的方式無任何區別了。
注2:KVM存儲池也要用於虛擬機遷移任務。
6.存儲池相關管理命令
(1)在存儲池中刪除虛擬機存儲卷
virsh vol-delete --pool vmdisk oeltest03.qcow2
(2)取消激活存儲池
# virsh pool-destroy vmdisk
(3)刪除存儲池定義的目錄/data/vmfs
# virsh pool-delete vmdisk
(4)取消定義存儲池
# virsh pool-undefine vmdisk
到此kvm存儲池配置與管理操作完畢。
命令方式安裝虛擬機:
一般在創建虛擬機前,如果需要橋接虛擬機,就需要創建橋接網口,具體看自己的需求。創建一個虛擬機,可以通過virt-manager來完成,圖形化界面,但是這個功能不全,不能隨心所欲,例如,需要將虛擬機創建在不同的位置上,畢竟默認的存儲是在/var/lib/libvirt/images下,無法進行存儲的管理,所以,在創建虛擬機之前,需要先創建一個存儲池。
存儲池:
存儲池(Storage pools)是放置虛擬機的存儲位置,可以是本地的,也可以是網絡存儲,本實例放置在卷(Volume)上。
在創建卷之前,先要創建存儲池,存儲池可以建立在好幾種方式的存儲上,現在主要建立一個基於目錄的存儲池。
首先創建了一個LVM,步驟如下:
1.使用lvcreate命令,創建一個名爲lv_kvm,大小爲250G的邏輯卷,卷組名爲VolGroup(VolGroup是已經創建好的卷組,創建方法在上一篇文章中)
#lvcreate -L 250G -n lv_kvm VolGroup
2.使用mkfs.ext4命令在邏輯卷lvdata1上創建ext4文件系統.
#mkfs.ext4 /dev/VolGroup/lv_kvm
3.將創建好的文件系統/lv_kvm掛載到/kvm上.(創建好之後,會在/dev/mapper/生成一個軟連接名字爲"卷組-邏輯卷")
#mount /dev/VolGroup/lv_kvm /kvm
4.建立存儲池的目錄
#mkdir /kvm/images
5.配置SELinux文件上下文,這個主要是打開SELinux設定,不然虛擬機無法訪問存儲文件(沒有深究原因)
#semanage fcontext -a -t virt_image_t /kvm/images
6.創建基於文件夾(目錄)的存儲池
#virsh pool-define-as kvm_images --type dir --target /kvm/images
7.查看創建的存儲池信息
virsh pool-list --all
Name State Autostart
-----------------------------------------
default inactive yes
kvm_images inactive no
停止默認存儲池:
# virsh pool-destroy default
Pool default destroyed
8.啓動存儲池
virsh pool-start kvm_images
# virsh pool-list --all
Name State Autostart
-----------------------------------------
default inactive yes
kvm_images active no
9.創建了存儲池後,就可以創建一個卷,這個卷是用來做虛擬機的硬盤
#virsh vol-create-as --pool kvm_images --name TAF05.img --capacity 10G --format qcow2
10.在存儲捲上安裝虛擬主機
10.1 配置bridge方式:
創建橋接器
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
NM_CONTROLLED=no
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.230
PREFIX=24
GATEWAY=192.168.1.254
DNS1=8.8.8.8
ONBOOT=yes
USERCTL=no
DELAY=0
將物理接口橋接到橋接器
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NM_CONTROLLED=no
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
USERCTL=no
BRIDGE=br0
重啓加載網絡服務
# service network restart
查看當前橋接情況
# brctl show
10.2 安裝
# virt-install --connect qemu:///system -n vm3 -r 512 -f /virhost/vmware/vm2.img -s 7 --vnc --os-type=linux --os-variant=rhel6 --vcpus=1 --network bridge=br0 -c /var/ftp/soft/rhel6u4.iso
完全文本方式安裝:
#virt-install --connect qemu:///system -n vm7 -r 2024 --disk path=/var/lib/libvirt/images/vm7.qcow2,size=10 --os-type=linux --os-variant=centos7.0 --vcpus=1 --location=ftp://10.18.42.251/centos7u4 -x console=ttyS0 --nographics
-n 虛擬機名字
-r 內存 必須2個G以上
1.取消安裝ctrl+] 然後在ctrl+c
2.取消安裝之後,虛擬機名字必須改,鏡像名字必須改
3.磁盤鏡像名字不需要手動圖形創建了,直接指定名字就可以
4.宿主機剩餘內存必須要大一點
yum -y update
排錯:
安裝過程中:
手動配置IP地址
到url位置找不到路徑,要返回去手動選擇url,重新配置url爲ftp://192.168.100.230/rhel6u4,這裏的ip不要寫127.0.0.1而是br0的ip
==================
根據配置文件創建虛擬機:
1.需要有磁盤文件:
cp vm1.img vm2.img
2.需要有配置文件:配置文件需要修改必要的東西
cp vm1.xml vm2.xml
3.創建虛擬機: