注意:KVM一切安裝和運行都是在root用戶下完成的,並且只有root才能支持某些軟件。
一、准備工作:
1、查看系統版本、內核版本
##查看系統版本 # cat /etc/redhat-release CentOS release 6.4 (Final) ##查看內核版本 # uname -a Linux KVM 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
注: 2.6.20以下的內核需要升級。
2、關閉selinux,iptables,重啟后生效
##關閉selinux # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #修改配置文件則永久生效,但是必須要重啟系統。 #生效命令 # setenforce 0
##關閉iptables(這一步可以后續按照業務來添加防火牆,前期先排除防火牆導致的不必要問題) # iptables -F # iptables -X # /etc/init.d/iptables save # /etc/init.d/iptables stop
3、查看系統是否支持KVM虛擬化
# egrep '(vmx|svm)' --color=always /proc/cpuinfo
//要有vmx|svm才支持虛擬化
4、設置轉發,使其KVM可以通過網橋上網
##開啟路由轉發功能 sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf sysctl -p #生效
5、重啟
# reboot
二、安裝KVM必備軟件
##安裝KVM所有需要的包 yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v virt-install yum -y install libguestfs-tools /etc/init.d/libvirtd restart #重啟
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
安裝完成后查看狀態如下:
[root@localhost iso]# virsh -c qemu:///system list Id 名稱 狀態 ---------------------------------------------------- [root@localhost iso]# lsmod |grep kvm kvm_intel 54285 0 kvm 333172 1 kvm_intel [root@localhost iso]# virsh --version 0.10.2 [root@localhost iso]# virt-install --version 0.600.0
三、配置網橋
1、關閉NetworkManager服務(桌面版本會有這個服務,服務器版不會安裝)
/etc/init.d/NetworkManager stop #停止
chkconfig NetworkManager off #禁止下次自啟動
2、創建br0網橋(注意粗體部分)
# cd /etc/sysconfig/network-scripts/ # cp ifcfg-eth0 ifcfg-br0 # vim ifcfg-eth0 DEVICE=eth0 #HWADDR=00:0C:29:41:DA:81 TYPE=Ethernet UUID=21501ff5-e313-494c-a402-50f2a84f1f5c ONBOOT=yes NM_CONTROLLED=yes #BOOTPROTO=static #IPADDR=192.168.213.6 #NETMASK=255.255.255.0 #GATEWAY=192.168.213.2 BRIDGE=br0 # vim ifcfg-br0 DEVICE=br0 ONBOOT=yes HWADDR=00:0C:29:41:DA:81 NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.213.6 NETMASK=255.255.255.0 GATEWAY=192.168.213.2 DNS1=8.8.8.8 DNS2=114.114.114.114 TYPE=Bridge
注意:上面配置的網卡信息為靜態地址,如果使用DHCP需要對應修改為BOOTPROTO=dhcp
3、重啟network服務。
/etc/init.d/network restart
檢查網卡狀態:
# ifconfig
查看網橋狀態
# brctl show bridge name bridge id STP enabled interfaces br0 8000.7446a0f51698 no eth0 virbr0 8000.52540095e5ac yes virbr0-nic
四、配置和安裝KVM虛擬機
##創建文件夾 mkdir -p /data/kvm/image mkdir -p /data/iso ##使用FTP上傳CentOS6.9的ISO文件到/data/iso,我使用的rz進行上傳 rz CentOS-6.9-x86_64-bin-DVD1.iso ##創建虛擬機鏡像文件 qemu-img create -f raw /data/nfyg/images/centos6.raw 100G ##創建KVM虛擬機 virt-install --name centos6 --ram 1024 --vcpus=1 --disk path=/data/kvm/image/centos6.raw --network bridge=br0 --cdrom=/data/iso/CentOS-6.9-x86_64-bin-DVD1.iso --accelerate --vnclisten=0.0.0.0 --vncport=5900 --vnc
選項解釋:
--name centos6 ##虛擬機名稱,自定義 --ram 1024 ##分配內存大小(默認大小MB) --vcpus=1 ##分配CPU核心數,最大與時提及CPU核心數相同 --disk path=/data/kvm/image/centos6.img ##指定虛擬機鏡像 --network bridge=br0 ##指定網絡 --cdrom=/data/iso/CentOS-6.9-x86_64-bin-DVD1.iso ##指定安裝鏡像iso --accelerate ##加速 --vnclisten=0.0.0.0 ##指定VNC綁定IP,默認綁定127.0.0.1,這里改為0.0.0.0 --vncport=5900 ##指定VNC監聽端口(默認為5900),可以自行設置 --vnc ##啟用VNC管理
查看是否運行:
# virsh list Id Name State ---------------------------------------------------- 2 centos6 running
五、使用VNC連接進行安裝
使用vnc-viewer連接192.168.213.6:5900就可以遠程安裝這台虛擬機,或者使用vnc顯示(需要桌面的支持):virsh vncdisplay centos6
六、常用操作命令
Virsh語法參考(centos為KVM名字) virsh list --all 列出所有的虛擬機 virsh start centos 啟動centos虛擬機 virsh shutdown centos 關閉centos虛擬機 virsh destroy centos 強制關閉centos虛擬機 virsh autostart centos 設置centos自動啟動 virsh undefine centos 刪除centos虛擬機 virsh suspend centos 暫停centos虛擬機 vrish resume centos 恢復centos虛擬機 virsh reboot centos 重啟centos虛擬機 virsh edit centos 編輯centos虛擬機 virsh vncdisplay centos vnc顯示
參考:
http://www.linuxidc.com/Linux/2016-06/132424.htm
http://www.jb51.net/article/94963.htm
https://www.server110.com/kvm/201311/3292.html
http://blog.csdn.net/xiegh2014/article/details/53215102(以上內容部分轉自此篇文章)
http://www.linuxidc.com/Linux/2016-06/132424.htm
http://blog.csdn.net/wh211212/article/details/74529890
http://blog.51cto.com/bluefei/1773891
http://www.89cool.com/240.html
https://segmentfault.com/a/1190000000644069
https://www.vpsee.com/2012/04/install-kvm-on-centos-6-2/