CentOS6.5 x64上安裝KVM功能模塊步驟操作都以root用戶進行竖哩。
查看是否支持虛擬技術(shù)
cat /proc/cpuinfo | egrep 'vmx|svm'
關(guān)掉networkmanager固灵,因為這個會導(dǎo)致虛擬網(wǎng)卡配置沖突
service NetworkManager stop
chkconfig --del NetworkManager
關(guān)掉selinux
修改/etc/selinux/config 文件
SELINUX=enforcing改為SELINUX=disabled
啟動虛擬化服務(wù)并設(shè)置開機啟動
service libvirtd start
chkconfig --level 3 libvirtd on
檢查是否可以使用kvm模塊
lsmod | grep kvm
kvm_intel 54285 9
kvm 333172 1 kvm_intel
配置橋接網(wǎng)卡(如果只需要NAT可以不做)
進入網(wǎng)卡配置目錄
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
將eth0的網(wǎng)卡配置和br0的網(wǎng)卡配置修改為如下內(nèi)容:
[root@test02 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
HWADDR=BC:EE:7B:9A:5E:91
TYPE=Ethernet
UUID=a257d75d-072c-4eac-8daa-b131324fff52
ONBOOT=yes
NM_CONTROLLED=yes
#BOOTPROTO=static
#IPADDR=192.168.0.12
#NETMASK=255.255.255.0
#GATEWAY=192.168.0.1
DNS1=8.8.8.8
BRIDGE=br0
[root@test02 network-scripts]# cat ifcfg-br0
DEVICE=br0
HWADDR=BC:EE:7B:9A:5E:91
UUID=a257d75d-072c-4eac-8daa-b131324fff52
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.12
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
配置完成后 執(zhí)行
service network restart 即可看到效果
注:
1.DNS服務(wù)器配置隨意
2.br0是虛擬網(wǎng)卡,libvirt是安裝這個軟件后出來的
3.實體網(wǎng)卡去掉相關(guān)ip屬性,如BOOTPROTO IPADDR NETMASK GATEWAY,虛擬網(wǎng)卡將這些屬性補充到自己的網(wǎng)卡配置文件里面去,但其他配置一律不變動,相當(dāng)于br0變成實體網(wǎng)卡了膀篮,但只是相當(dāng)于而已。
3.虛擬網(wǎng)卡需要將TYPE改為Bridge岂膳,證明是使用橋接模式誓竿。
安裝虛擬機
創(chuàng)建虛擬機磁盤鏡像文件
創(chuàng)建磁盤文件不能太小,不然會coredump谈截。
qcow2格式是kvm支持的標準格式筷屡,raw格式為虛擬磁盤文件通用格式。有測試數(shù)據(jù)表明raw格式的I/O性能略高于qcow2格式簸喂,但是在加密毙死,容量,快照方面qcow2格式有優(yōu)勢
qemu-img create -f qcow2 test.qcow2 20G //建立qcow2格式磁盤文件
qemu-img create -f raw test.raw 20G //建立raw格式磁盤文件
qemu-img info test.qcow2 //查看已經(jīng)創(chuàng)建的虛擬磁盤文件
創(chuàng)建并安裝虛擬機
以下是ubuntu為例喻鳄,ubuntu 14
#!/bin/bash
virt-install --name ubuntu \
--boot network,cdrom,menu=on \
--ram 512 --vcpus=1 \
--os-variant=ubuntuquantal \
--cdrom=/app/ftp_data/team/public/system_iso/ubuntu-14.04-desktop-i386.iso \
--disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
--bridge=br0,model=virtio --keymap=en-us \
--vnc --vncport=5910 --vnclisten=0.0.0.0
以下是centos 6.5為例
cat vir_centos.sh
#!/bin/bash
virt-install --name centos6.5x64 \
--boot network,cdrom,menu=on \
--ram 512 --vcpus=1 \
--os-variant=rhel6 \
--cdrom=/app/ftp_data/team/public/system_iso/CentOS-6.5-x86_64-bin-DVD1.iso \
--disk path=/app/ftp_data/team/public/system_iso/another_CentOS-6.5-x86_64-bin-DVD1.iso,device=cdrom \
--disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
--bridge=br0,model=virtio --keymap=en-us \
--vnc --vncport=5911 --vnclisten=0.0.0.0
查看 os-variant 都有哪些代號
virsh-install --os-variant list
osinfo-query os
注:
1.disk屬性就是指虛擬機使用哪一個磁盤鏡像文件作為存儲地方扼倘,指定剛才創(chuàng)建的鏡像文件位置即可,size=10,format=qcow2,bus=virtio分別是指大小,格式(跟鏡像格式一致)再菊,磁盤總線類型(指Value can be ’ide’, ’scsi’, ’usb’, ’virtio’ or ’xen’爪喘,virtio是專門為kvm制定的bus,比較常用)纠拔,大小需要比鏡像文件大小要小秉剑,相當(dāng)于鏡像是容器,這個disk是里面的水稠诲,水太多就溢出了侦鹏。
2.bridge=br0,model=virtio --keymap=en-us分別指網(wǎng)卡使用,網(wǎng)卡模式即驅(qū)動模式臀叙,和鍵盤制式略水,橋接模式都使用br0,而虛擬機需要使用virtio這個驅(qū)動才能使用虛擬網(wǎng)卡匹耕,這個虛擬網(wǎng)卡驅(qū)動在linux下支持很好聚请,在windows下支持一般荠雕,鍵盤制式如果不指定的話會出現(xiàn)鍵位錯亂的情況稳其,一般我們使用英式。
3.安裝centos6.5的時候我使用了2次disk炸卑,原因是因為centos6.5的安裝盤啟動引導(dǎo)安裝有問題既鞠,會出現(xiàn)無法查找到安裝源的情況,所以特地加載多一個iso盖文,一個作為啟動使用嘱蛋,一個作為安裝源使用,作為安裝源使用的時候是使用磁盤格式存儲五续。
4.vnc相關(guān)配置洒敏,這個vnc如果配置了的話是virt-tools組件自帶的,無需要額外安裝vnc服務(wù)端疙驾,默認綁定127.0.0.1凶伙,這里將其改為 0.0.0.0 以便可以通過外部連接,每一臺的虛擬機的端口都不能一致它碎,一致就會沖突而造成無法啟動安裝函荣。
5.如果無須使用圖形界面安裝,virt-install默認是支持文本模式安裝的扳肛。
qcow2擴容
安裝必備
sudo apt-get install libguestfs-tools
備份文件
sudo virsh shutdown vm-gitlab6
sudo cp /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1.qcow2 /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1-back.qcow2
查看虛機分區(qū)大小
sudo virt-df -h vm-gitlab6-img1.qcow2
W: kvm binary is deprecated, please use qemu-system-x86_64 instead
Filesystem Size Used Available Use%
vm-gitlab6-img1.qcow2:/dev/sda1 18G 1.1G 16G 6%
創(chuàng)建新的鏡像文件vm-gitlab6-img1-big.qcow2傻挂,給40G大小(要求不低于30G)
sudo qemu-img create -f qcow2 vm-gitlab6-img1-big.qcow2 40G
下面就是關(guān)鍵的虛擬機擴容
sudo virt-resize --expand /dev/sda1 vm-gitlab6-img1.qcow2 vm-gitlab6-img1-big.qcow2
用vm-gitlab6-img1-big.qcow2替換vm-gitlab6-img1.qcow2即可。
啟動虛擬機
sudo virsh start vm-gitlab6
如果一切正常挖息,原來那個vm-gitlab6-img1-back.qcow2就可以刪除了金拒。一般不會翻車。翻車就把備份拿出來套腹。
shrink壓縮虛擬機
如果新虛擬機文件過大绪抛,用下面的命令轉(zhuǎn)存一下轿衔,就可以縮小虛擬機文件大小(不是分區(qū)大心酪摺)害驹。
sudo qemu-img convert -O qcow2 vm-gitlab6-img1-big.qcow2 vm-gitlab6-img1-shrink.qcow2
最后用vm-gitlab6-img1-shrink.qcow2替換vm-gitlab6-img1.qcow2即可。