安裝的程序基本上符合OS的版本以及設定都可以成功
有些測試資料是實驗過是可行的,要轉載資料還是請附上連結
System OS:CentOS 6.4
software : virt-manager bridge-utils qemu-kvm python-virtinst libvirt openssh-askpass
virt-manager 是負責管理virtual machine的介面,
bridge-utils 是負責橋接host OS 與 guest OS 溝通的網路介面
講解了所需要的套件,最主要的還是要系統能夠使用虛擬化套件
1) 檢查系統CPU是否能使用KVM 虛擬化套件
# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave avx lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
有看到 vmx 或是 svm的字串就表示CPU可以使用虛擬化
2) 安裝bridge-utils,設定
# yum install bridge-utils
因為要橋接hostOS 與 guestOS的網路介面,需要編輯、新增br0 ,eth0的檔案
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=YSE
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.1.15
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DEFROUTE=YES
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"
|
新增完br0以後,要修改eth0的內容,而且br0也已經作為主要溝通網路介面
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
#BOOTPROTO=none
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
UUID="XXXXXXX-XXXX-XXXX-XXX-XXXXXXXXX"
HWADDR=XX:OO:XX:XX:XX:XX
#IPADDR=192.168.1.15
#NETMASK=255.255.255.0
#GATEWAY=192.168.1.1
#DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
BRIDGE=br0
|
設定好對內外的網路介面以後就可以重啟服務
# /etc/init.d/network restart
查看已經設定好的網路介面
# ifocnfig
[root@webserver ~]# ifconfig
br0 Link encap:Ethernet HWaddr XX:OO:XX:XX:XX:XX
inet addr:192.168.1.216 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::222:15ff:fe15:df97/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2998434 errors:0 dropped:0 overruns:0 frame:0
TX packets:2376811 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:401667835 (383.0 MiB) TX bytes:980007300 (934.6 MiB)
eth0 Link encap:Ethernet HWaddr XX:OO:XX:XX:XX:XX
inet6 addr: fe80::222:15ff:fe15:df97/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6869007 errors:0 dropped:0 overruns:0 frame:0
TX packets:4835129 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:5499583364 (5.1 GiB) TX bytes:1965860822 (1.8 GiB)
Interrupt:30
3) 安裝KVM套件
# yum install kvm libvirt python-virtinst qemu-kvm
只要安裝好套件並啟用,就可以執行了
# /etc/init.d/libvirtd start
查看現在KVM上有哪些虛擬機器在執行
# virsh -c qemu:///system list
[root@webserver ~]# virsh -c qemu:///system list
Id Name State
----------------------------------
這是在本機或是終端介面執行的指令,也可以用圖形化介面來管理虛擬機,套件也就要另外安裝
# yum install virt-manager libvirt qemu-system-x86 openssh-askpass
如果使用的是 ubuntu系列的,可以下
# sudo apt-get install virt-manager
這樣就可以啟用圖形化管理介面,來管理虛擬機
4)安裝guestOS
前面的安裝設定都只要一個步驟就可以完成,現在安裝OS需要用到的參數比較多
更多詳細的參數說明可以用
# man virt-install
現在就開始安裝GuestOS,以下兩個示範指令會各別說明用法
參數說明:
--connect = CONNECT
這是連接到非默認的虛擬機管理程序,也就是能夠透過他台主機管理虛擬機器
-n NAME, --name=NAME
指定Guest主機的名稱
-r MEMORY
設定記憶體使用量
--vcpus=VCPUS
設定虛擬cpu的數量,這數量不能超過實體cpu的核心數,更詳細的設定都在man virt-install
--disk path='路徑',size=GB
設定儲存裝置的路徑跟大小,這是最簡易的設定方式
--location='ISO路徑'
設定ISO安裝檔的路徑,也可以直接用URL指定,指定CDROM的參數還要加上 -x EXTRA
--vnc --noautoconsole
使用vnc進行連線設定,--noautoconsole是禁止使用 "virsh" "console"進行連線,如果想要兩個都使用就拿掉 --noautoconsole
--os-type = OS_TYPE
指定Guest的OS類型
--os-variant=OS_VARIANT
指定Guest的OS類型是"哪一類型的作業系統",這部分的設定要指定清楚,不然是沒辦法安裝成功,類型的詳細條目都在man virt-install
win7 : Microsoft Windows 7
fedora16 : Fedora 16
fedora15 : Fedora 15
fedora14 : Fedora 14
rhel6 : Red Hat Enterprise Linux 6
rhel5.4 : Red Hat Enterprise Linux 5.4 or later
ubuntuoneiric : Ubuntu 11.10 (Oneiric Ocelot)
ubuntunatty : Ubuntu 11.04 (Natty Narwhal)
--accelerate
這選項過時了,主要是如果要安裝一個純的qemu需要用 virt-QEMU
--network=NETWORK
指定我們安裝好的橋接網路介面
--kvm
指定為完全虛擬化要求
# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/root/dark/images/img/vm10.img,size=12 --location='/root/dark/images/CentOS-6.4-x86_64-bin-DVD1.iso' --vnc --noautoconsole --os-type linux --os-variant=rhel6 --accelerate --network=bridge:br0 --hvm
這個指令是利用console介面進行安裝,因為沒有指定vnc所以安裝與使用都是靠 ssh連線或是console
有些參數是與上面相同,只是簡化過
--extra-args='console=tty0 console=ttyS0,115200n8 serial'
這一整段表示指定Guest的連接介面,以及給予模擬磁碟設定的序列號 115200n8 serial
# virt-install
-n vm1 -r 1024 -f /root/dark/images/img/vm1.img -s 20 --vcpus=2
--os-type linux --os-variant=rhel6 --network bridge=br0 --nographics
--location='/root/dark/images/CentOS-6.4-x86_64-bin-DVD1.iso'
--extra-args='console=tty0 console=ttyS0,115200n8 serial'
這是精簡版的安裝GuestOS的教學,用來測試自動化安裝套件、測試套件...等,就不用拿實體機器開關機設定,灌一個OS老實說很浪費時間(正常程序而言)
參考資料
source data
http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-6.3-server