2013年5月30日 星期四

KVM in CentOS 6.4


KVM網頁:http://www.linux-kvm.org

作業系統環境需求:CentOS x86_64 ( 一定是要 64 位元,不能是i386 )
硬體環境需求:CPU 具有  Intel VT or AMD-V
指令  grep -E 'vmx|svm' /proc/cpuinfo
如果有結果輸出代表 CPU支援 

、介紹
  
KVM:Kernel-based Virtual Machine
特色:hardware-assisted, fully virtualized
 

、安裝

環境需求
yum install kvm (qemu-kvm)
yum install virt-manager libvirt libvirt-python python-virtinst 
載入KVM 的 module

指令: modprobe kvm-intel  
 ( 如果是 intel的 CPU,AMD 用 modprobe kvm-amd )
 
啟動 libvirtd daemon
指令:/etc/init.d/libvirtd start 
libvirtd 啟動後會產生1片預設的網卡virbr0
如果每次重新開機要啟動libvirtd
指令:chkconfig libvirtd on
說明:

預設虛擬網卡(virbr0)只有兩個功能:

You will only access the guest from the KVM host.
You will access the outside network from the guests.

透過ifconfig 指令可以看到

virbr0    Link encap:Ethernet  HWaddr 52:54:00:98:9B:2F
          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)

三、設定

NetworkManager

另外產生一個橋接的網路卡
方式:
在/etc/sysconfig/networking-script中 複製 名稱叫做 br0
指令cp ifcfg-eth0 ifcfg-br0
修改前範例
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:14:5E:C2:1E:40
IPADDR=10.10.1.152
NETMASK=255.255.255.0
ONBOOT=yes
 
修改後範例
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:14:5E:C2:1E:40
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0    ( 注意有大小寫有差別)

br0 的設定
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.1.152
NETMASK=255.255.255.0
ONBOOT=yes
 
說明:
ethernet bridge administration  
指令  brctl show 
 
CentOS6 以後用NetworkManager 來管理網路介面

TYPE 的類型有 BridgeEthernetIPsec
 
BOOTPROTO 的類型有
  • none — No boot-time protocol should be used.
  • bootp — The BOOTP protocol should be used.
  • dhcp — The DHCP protocol should be used.



四、使用



有兩種方式建立 Guest

virt-manager: a GUI tool

virt-install: a command line tool.





 Virtual Ethernet Port Aggregator/VEPA mode
Virtual Ethernet Bridge/VEB mode




要關閉 selinux



在GUI網路介面中
有兩種介面可以選
Virtual network :  使用 virbr0 的 nat
選擇 Shared physical device.  挑選br0



為網路卡帶 vlan tag
確認module有沒有
指令lsmod | grep 8021q
如果沒有module 
指令modprobe 8021q
設定範例:

如果VLAN ID 是10介面名稱是 eth0 在/etc/sysconfig/network-scripts/中的名稱要變更為ifcfg-eth0.10。內容如下


DEVICE=eth0.10
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
USERCTL=no
NETWORK=192.168.1.0
VLAN=yes