首先聲明這邊文檔引用了別人的文檔加上自己的理解而編寫。
做這個實驗,需要我們的cpu支持虛擬化,如果你的機器沒有開啓的話,安裝64位系統會出現報錯,
有的機器支持但是並未在bios開啓,這個需要事先開啓。你需要進入bios中開啓。
如果顯示“此主機支持Intel VT-x”,說明電腦是支持Intel虛擬技術的,但是在BIOS中沒有開啓。接下來重啓機器進入BIOS,找到“Intel VT-x”(可能有的機器不一樣,我的是中文的),修改“disabled”爲“enabled”,F10保存並重啓。
其中有幾個注意的地方:
a. 內存給2g
b. 磁盤給50g, 或者再單獨分一個磁盤,用來存儲虛擬機文件
c. 最關鍵的一步,在創建虛擬機時,cpu是需要配置一下虛擬化的如圖
2. 安裝kvm前的準備工作
a. 清除iptables規則
service iptables stop; service iptables save
b. 關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
3. 開始安裝kvm
a. 檢查你的系統是否支持虛擬化
grep -Ei 'vmx|svm' /proc/cpuinfo
如果有輸出內容,則支持,其中intel cpu支持會有vmx,amd cpu支持會有svm
b. 通過yum安裝虛擬化的軟件包
yum install -y kvm virt-* libvirts bridge-utils qemu-img
說明:
kvm:軟件包中含有KVM內核模塊,它在默認linux內核中提供kvm管理程序
libvirts:安裝虛擬機管理工具,使用virsh等命令來管理和控制虛擬機。
bridge-utils:設置網絡網卡橋接。
virt-*:創建、克隆虛擬機命令,以及圖形化管理工具virt-manager
qemu-img:安裝qemu組件,使用qemu命令來創建磁盤等。
c. 檢查kvm模塊是否加載
lsmod |grep kvm
正常應該是:
kvm_intel 55496 0
kvm 337772 1 kvm_intel
如果沒有,需要執行
modprobe kvm-intel
還沒有就重啓一下試試
d. 配置網卡
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 ONBOOT=yes NM_CONTROLLED=yes 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 Link encap:Ethernet HWaddr 00:0C:29:55:A7:0A
inet addr:192.168.11.17 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:141326 errors:0 dropped:0 overruns:0 frame:0
TX packets:90931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:456024940 (434.8 MiB) TX bytes:10933593 (10.4 MiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:55:A7:0A
inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:341978 errors:0 dropped:0 overruns:0 frame:0
TX packets:90946 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:468848861 (447.1 MiB) TX bytes:10934699 (10.4 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
virbr0 Link encap:Ethernet HWaddr 52:54:00:14:EF:D5
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
e. 啓動或重啓libvirtd服務和messagebus 服務
/etc/init.d/libvirtd start
/etc/init.d/messagebus restart
此時可以查看網絡接口列表
brctl show 結果如下:
kvm虛擬機安裝
1.上傳ISO文件,這裏採用Centos 6.4x64iso
2.開始安裝Centos6.4
(1)raw格式磁盤
[root@KVM ~]#vim create_kvm.sh
virt-install \ --name centos2 \ ##虛擬機名稱 --ram 512 \ ##分配內存大小(默認大小MB) --vcpus=1 \ ##分配CPU核心數,最大與時提及CPU核心數相同 --disk path=/data/img/kvm_centos2.img,size=10 \ ##指定虛擬機鏡像(size單位爲GB) --network bridge=br0 \ ##指定網絡 --cdrom=/data/CentOS-6.4-x86_64-bin-DVD1.iso \ ##指定安裝鏡像iso --accelerate \ ##加速 --vnclisten=0.0.0.0 \ ##指定VNC綁定IP,默認綁定127.0.0.1,這裏改爲0.0.0.0 --vncport=5911 \ ##指定VNC監聽端口(默認爲5900) --vnc ##啓用VNC管理
注: 每行"\"後面不要帶有空格.
##用KVM創建虛擬機
如果採用qcow2磁盤格式,需要事先創建qcow2格式虛擬磁盤
[root@KVM ~]# qemu-img create -f qcow2 /data/img/Centos3.img 3G
##用KVM創建虛擬機
[root@KVM ~]# sh create_qcow2_kvm.sh
[root@KVM ~]# echo $?
0
[root@KVM ~]# virsh list
說明:在linux系統安裝開始就要注意添加提高性能的一些參數,後面就不需要做一些調整了。
3.開始通過VNC進行連接,進行安裝過程。
查看虛擬機列表
ps: Centos1是我的測試機. centos2和centos3是新創建的。 centos2安裝完操作系統自動關閉了, 需要手動啓動. centos3安裝完後也需要手動啓動
[root@KVM ~]# virsh start centos2
Domain centos2 started
[root@KVM ~]# virsh list --all|grep centos2
11 centos2 running
(2) centos2、centos3主機自動獲取IP地址
##centos2自動獲取IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak[root@localhost network-scripts]#dhclient
[root@localhost network-scripts]# ip a
清空iptables規則, 通過sshd登錄該主機
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# /etc/init.d/iptables restart
安裝電源服務
[root@localhost ~]# yum -y install acpid
[root@shadowsocks ~]# /etc/init.d/acpid start
[root@shadowsocks ~]# chkconfig acpid on
至此Centos 6.4X64KVM虛擬機安裝完畢。