首頁 > 軟體

CentOS 6.5安裝KVM實踐

2020-06-16 17:39:10

一,安裝CentOS6.5,使用最小化的minimal安裝二、安裝完CentOS後,使用root登入設定網絡卡,使虛擬機器可以使用外網上網
vi /etc/sysconifg/network-scripts/ifcfg-eth0
下圖作為參考:

儲存後,重新啟動網路服務
service network restart

然後測試是否能聯網
ping www.linuxidc.com

三、關閉selinux和清空iptables
修改selinux組態檔
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
設定當前selinux
setenforce 0

清空iptables
iptables -F
儲存iptables規則
service iptables save

四、安裝KVM
使用yum安裝:
yum -y install qemu-kvm libvirt python-virtinst bridge-utils avahi dmidecode
安裝完成後重新啟動虛擬機器
init 6

重新啟動完成後,測試kvm是否安裝成功
stat /dev/kvm
執行結果:
  File: "/dev/kvm"
  Size: 0              Blocks: 0          IO Block: 4096  字元特殊檔案
Device: 5h/5d  Inode: 9503        Links: 1    Device type: a,e8
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)  Gid: (  36/    kvm)
Access: 2015-06-28 16:56:11.463134124 +0800
Modify: 2015-06-28 16:56:11.463134124 +0800
Change: 2015-06-28 16:56:11.463134124 +0800

在vb上執行這個命令不會有結果, 我這個是在真機上執行的結果

測試libvirtd是否可以正常啟動
service libvirtd start
service libvirtd restart

五、設定網路橋接
檢查系統中是否啟用了NetworkManager,最好關閉該服務,因為該服務與network有衝突。
chkconfig |grep NetworkManager
如果存在NetworkManager
chkconfig NetworkManager off
service NetworkManager stop

從ifcfg-eth0複製現有網絡卡的組態檔,改名為ifcfg-br0:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0

修改ifcfg-br0,注意紅色的兩行,其他部分基本上不用改。
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
HWADDR=08:00:27:1D:26:B2
UUID=251576f1-0ae3-4a52-b0e1-9343a7ad936d
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=stataic
IPADDR=10.0.0.156
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
DNS1=202.96.64.68
DNS2=202.96.69.38

 

修改ifcfg-eth0,僅儲存以下幾行。
vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:1D:26:B2
UUID=251576f1-0ae3-4a52-b0e1-9343a7ad936d
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BRIDGE=br0

重新啟動network服務
service network restart

正在關閉介面 eth0: bridge br0 does not exist!
                                                          [確定]
關閉環迴介面:                                            [確定]
彈出環回介面:                                            [確定]
彈出介面 eth0:                                            [確定]
彈出介面 br0: Determining if ip address 10.0.0.156 is already in use for device br0...
                                                          [確定]

執行ifconfig
br0     Link encap:Ethernet  HWaddr 08:00:27:1D:26:B2
          inet addr:10.0.0.156  Bcast:10.0.0.1  Mask:255.255.255.0
          inet6 addr: fe80::ba97:5aff:feb7:98b5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1210 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:74677 (72.9 KiB)  TX bytes:7509 (7.3 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:1D:26:B2
          inet6 addr: fe80::ba97:5aff:feb7:98b5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5625 errors:0 dropped:0 overruns:0 frame:0
          TX packets:359 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:425234 (415.2 KiB)  TX bytes:65054 (63.5 KiB)

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:16436  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:CA:22:F4
          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:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:2449 (2.3 KiB)

設定轉發
執行以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
這一步雖然只有簡單的一條命令,但卻很關鍵。如果不執行這一步,所有的虛擬機器將無法上網。
另外,上一步設定完橋接之後重新啟動network,會自動將ip_forward改為0,所以重新設定網路後,不要忘了執行該命令。發現虛擬機器無法上網的時候,也可以檢查一下ip_forward值。

六、安裝虛擬機器
修改 qemu.conf 設定
vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"
user = "root"
group = "root"
dynamic_ownership = 0

重新啟動libvirtd服務
service libvirtd restart

新建用於存放虛擬機器相關檔案的目錄
mkdir /kvm

使用winscp將centos6.5的安裝光碟映象複製到/kvm

新建用於存放虛擬機器的目錄
mkdir /kvm/vm

安裝虛擬機器
virt-install --name centos --ram 1024 --vcpus=1 --disk path=/kvm/vm/vm1.img,size=10 --network bridge=br0 --os-variant=rhel6 --cdrom /kvm/CentOS-6.5-x86_64-bin-DVD1.iso --vnclisten=10.0.0.156 --vncport=6900 --vnc

引數詳解:
--vcpus    分配給虛擬機器CPU個數
--disk path    虛擬磁碟所在的路徑
--size    虛擬磁碟大小,單位是GB
--network bridge    指定虛擬機器使用的橋接網絡卡
--os-variant    虛擬機器的作業系統型別
--cdrom    安裝虛擬機器作業系統的光碟映象的路徑
--vnclisten    vnc的監聽IP
--vncport    vnc的監聽埠
--vnc    使用vnc進行連線

然後使用vnc-viewer連線虛擬機器 ,
如果用VNC VIEWER連線虛擬機器一閃而過,設定vnc的 ColourLevel=rgb222
使用vnc-viewer連線10.0.0.156:6900就可以遠端安裝這台虛擬機器了

在kvm虛擬機器中安裝作業系統和在其他虛擬機器上沒有什麼不同的地方
安裝完成後, 在kvm虛擬機器中進行網絡卡設定後,就可以使用putty進行遠端連線了

如果需要虛擬機器隨系統啟動,就執行
virsh start centos

在VirtualBox中巢狀安裝kvm時, 使用vnc遠端安裝系統是沒有問題的, 但是在啟動kvm虛擬機器的過程中,非常非常的慢, 我等了二十幾分鐘也沒有啟動成功. 而且cpu的負載很高
所以在有條件的情況下, 可以使用真機進行實驗.

Virsh語法參考

virsh list                                列出執行中的虛擬機器
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顯示 

--------------------------------------分割線 --------------------------------------


IT145.com E-mail:sddin#qq.com