KVM虛擬機安裝管理——qemu-kvm方式

KVM (kernel-based virtual machine,內核虛擬機),是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,虛擬化效率高、管理簡便。


1)系統環境 

操作系統

CentOS release 6.3

內核版本

2.6.32-279.el6.x86_64

服務器型號

Dell  R410

基本配置

32G內存、8CPU4T硬盤


2)安裝KVM軟件,加載內核模塊

2.1)安裝kvm 內核模塊(前提:配置好yum源)

[root@project ~]# yum  list|grep -i kvm

qemu-kvm.x86_64                        2:0.12.1.2-2.415.el6_5.10        updates 

qemu-kvm-tools.x86_64                  2:0.12.1.2-2.415.el6_5.10        updates 

[root@project ~]# yum  install  qemu-kvm  qemu-kvm-tools  -y

......

Installing for dependencies:               //由於依賴關係需要安裝如下的軟件

celt051          x86_64     0.5.1.3-0.el6                 

glusterfs-api      x86_64     3.4.0.57rhs-1.el6_5           

glusterfs-libs     x86_64     3.4.0.57rhs-1.el6_5           

gpxe-roms-qemu  noarch     0.9.7-6.10.el6                

qemu-img        x86_64     2:0.12.1.2-2.415.el6_5.10     

seabios          x86_64     0.6.1.2-28.el6                

sgabios-bin       noarch     0-0.3.20110621svn.el6         

spice-server      x86_64     0.12.4-6.el6_5.2              

usbredir         x86_64     0.5.1-1.el6                   

vgabios         noarch     0.6b-3.7.el6


2.2)驗證內核加載 kvm 模塊

[root@project ~]# lsmod  |grep  kvm

kvm_intel              52570   0 

kvm                   314739  1 kvm_intel


3)宿主服務器橋接配置

3.1)安裝網橋管理工具

[root@project ~]# yum  install  bridge-utils  tunctl  -y


3.2)新建網橋br0配置文件,將網卡em1加入網橋br0

[root@project ~]# cd  /etc/sysconfig/network-scripts

[root@project network-scripts]# vim  ifcfg-br0

DEVICE=br0

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.10.100.30

NETMASK=255.255.255.0

GATEWAY=10.10.100.254

TYPE=Bridge

 

[root@project network-scripts]# vim   ifcfg-em1

DEVICE="em1"

ONBOOT="yes"

BRIDGE=br0

3.3重啓網絡服務,查看網橋br0

[root@project ~]# /etc/init.d/network  restart

[root@project ~]# ifconfig 

br0       Link encap:Ethernet  HWaddr 90:B1:1C:0D:80:14  

          inet addr:10.10.100.30  Bcast:10.10.100.255  Mask:255.255.255.0

          inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:584 errors:0 dropped:0 overruns:0 frame:0

          TX packets:458 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:43198 (42.1 KiB)  TX bytes:53755 (52.4 KiB)

 

em1       Link encap:Ethernet  HWaddr 90:B1:1C:0D:80:14  

          inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link

          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1

          RX packets:602 errors:0 dropped:0 overruns:0 frame:0

          TX packets:435 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:55634 (54.3 KiB)  TX bytes:52012 (50.7 KiB)

          Interrupt:36 Memory:da000000-da012800


3.4驗證網卡em1 已橋接至 br0

[root@project ~]# brctl  show

bridge name   bridge id    STP enabled     interfaces

br0     8000.90b11c0d8014      no              em1


4)添加虛擬網卡

4.1)爲Guest系統新建虛擬網卡tap10,並加入網橋br0

[root@project ~]# tunctl  -t  tap10

Set 'tap10' persistent and owned by uid 0

[root@project ~]# brctl  addif  br0  tap10

[root@project ~]# ifconfig  tap10  up

[root@project ~]# brctl   show

bridge name     bridge id               STP enabled     interfaces

br0             8000.32d37d9e08d3       no              em1

                                                        tap10

 

[root@project ~]# ifconfig  tap10      //使用ifconfig查看,多出了tap10網卡

tap10     Link encap:Ethernet  HWaddr 32:D3:7D:9E:08:D3  

          inet6 addr: fe80::30d3:7dff:fe9e:8d3/64 Scope:Link

          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:34 overruns:0 carrier:0

          collisions:0 txqueuelen:500 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


4.2)爲虛擬橋接網卡tap10建立配置文件,重啓系統時能隨系統啓動,並加入網橋 br0

[root@project ~]# cat  /etc/sysconfig/network-scripts/ifcfg-tap10 

DEVICE=tap10

TYPE=Tap

ONBOOT=yes

BRIDGE=br0


5安裝vnc服務軟件,客戶機可通過宿主機的vnc桌面管理guest系統

[root@project ~]# yum  install  tigervnc  tigervnc-server  -y


6)使用 qemu-img 建立img映像文件,作爲Guest系統的磁盤

[root@project ~]# qemu-img  create  -f qcow2  /data/KVM_img/mail_server1.img  40G

Formatting '/data/KVM_img/mail_server1.img', fmt=qcow2 size=42949672960 encryption=off cluster_size=65536 

[root@project ~]# qemu-img  info   /data/KVM_img/mail_server1.img 

image: /data/KVM_img/mail_server1.img

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 136K

cluster_size: 65536


說明:

qemu-img語法:

qemu-img  create  [-f fmt]  [-o options]  filename  [size]

-f  fmt 文件格式,有raw cow qcow vdi vmdk   bochs vpc vvfat qcow2等,常用qcow2

filename     文件名稱

size  文件大小,根據需要自己指定

所有上條命令創建了一個格式爲qcow2,大小爲40G的映像文件mail_server1.img,其中40GGuest系統的最大可用空間,實際佔用宿主空間根據實際使用量計算。

qemu-img   info   xxx.img  查看img映像的信息,格式,實際大小,創建時指定大小等。


7)安裝kvmGuest系統

7.1)使用/usr/libexec/qemu-kvm 的命令行方式安裝

[root@project ~]#/usr/libexec/qemu-kvm  -m 1024 -smp 2           \

-drive file=/data/KVM_img/mail_server1.img                     \

-net nic,vlan=2,model=e1000,macaddr=52:54:00:12:34:56          \

-net tap,vlan=2,ifname=tap10,script=no    -boot  d              \

-cdrom /data/CentOS-6.3-x86_64-bin-DVD1.iso  -vnc 10.10.100.30:1  --daemonize

 

[root@project ~]# ps  aux|grep  kvm    //啓動後查看kvm進程

root     16231  0.0  0.0      0     0 ?        S    10:28   0:00 [kvm-irqfd-clean]

root     18570 15.8  6.5 1425608 1074372 ?     Sl   13:21   1:51 /usr/libexec/qemu-kvm -m 1024 -smp 2 -drive file=/data/KVM_img/mail_server1.img -net nic,vlan=2,model=e1000,macaddr=52:54:00:12:34:56 -net tap,vlan=2,ifname=tap10,script=no -boot d -cdrom /data/CentOS-6.3-x86_64-bin-DVD1.iso -vnc 10.10.100.30:1 --daemonize

 

[root@project KVM_img]# netstat  -tulnp |grep  qemu     //驗證vncserver端口

tcp      0    0 10.10.100.30:5901         0.0.0.0:*               LISTEN      3447/qemu-kvm

參數詳解:

-m   1024分配的內存大小

-smp   2虛擬的cpu核心數

-drive  file=xxx.img指定作爲虛擬磁盤的映像文件,可添加cache=writeback啓用緩存,如 -drive  file=xxx.img,cache=writeback

 

-net nic,vlan=2,model=e1000,macaddr=52:54:00:12:34:56 

-net tap,vlan=2,ifname=tap10,script=no

-net nic,vlan=2     初始化網絡設備,將網絡加入vlan2中,默認爲vlan0

model=   指定模擬的網卡類型,主要有“i82551,i82557b,i82559er,rtl8139,e1000,virtio” 等;可以使用“# /usr/libexec/qemu-kvm -net nic,model=? ”查看支持的網卡類型;

macaddr=52:54:00:12:34:56    指定網卡的MAC地址,每塊網卡一定要不同

-net  tap      指定了使用橋接模式網絡

ifname=tap10     指定了使用的虛擬網卡;

script=no      初始化橋接網卡的腳本,默認爲/etc/qemu-ifupno爲不執行腳本;  

 

-boot   d指定啓動介質,a—軟盤、c—硬盤、d—光盤、n—網絡,默認爲硬盤啓動。

如果使用網絡引導安裝,指定  -boot  n,查找網絡安裝源。

-cdrom/xx/xx.iso   使用光盤啓動時,指定iso鏡像文件

 

-vnc   x.x.x.x:1指定vncserver監聽的 地址及端口,默認從5900開始,每個桌面加1,即  x.x.x.x:1  端口爲 5900+1=5901

--daemonize      執行命令後,將命令作爲守護進程放入後臺,不佔據終端




7.2)使用vnc客戶端遠程連接,執行Linux安裝(linuxwindows客戶端都可以),本處使用Linux下客戶端  vncviewer

[root@mail Desktop]# vncviewer  10.10.100.30:1

TigerVNC Viewer for X version 1.0.90 - built Dec  8 2011 01:41:17

Copyright (C) 2002-2005 RealVNC Ltd.

Copyright (C) 2000-2006 TightVNC Group

Copyright (C) 2004-2009 Peter Astrand for Cendio AB

See http://www.tigervnc.org for information on TigerVNC.

 

Tue Aug  5 13:16:02 2014

 CConn:       connected to host 10.10.100.30 port 5901

 CConnection: Server supports RFB protocol version 3.8

 CConnection: Using RFB protocol version 3.8

 TXImage:     Using default colormap and visual, TrueColor, depth 24.

 CConn:       Using pixel format depth 24 (32bpp) little-endian rgb888

 CConn:       Using Tight encoding


7.3)連接到宿主機的vnc桌面後,顯示光盤安裝界面。安裝方式同本地安裝。(過程略)

wKiom1Pgsjfizkt2AANLYjN4i2w689.jpg

安裝完畢,重啓系統後,關閉該Guest系統的進程,修改啓動參數爲硬盤,不然又會從光盤啓動。修改方式如下面步驟。


8)管理Guest虛擬機系統

8.1啓動Guest虛擬機,修改啓動方式爲硬盤 -boot c ,去除光盤資源

[root@project ~]#/usr/libexec/qemu-kvm  -m 1024  -smp 2       \

-drive file=/data/KVM_img/mail_server1.img                    \

-net nic,vlan=2,model=e1000,macaddr=52:54:00:12:34:56          \

-net tap,vlan=2,ifname=tap10,script=no   -boot  c  -vnc 10.10.100.30:1  --daemonize


8.2)將上面啓動Guest系統的命令保存爲腳本,如 start_kvm_mailserver1.sh,關閉系統後執行該腳本可以直接啓動Guest系統。

 

8.3再次通過 vncviewer 客戶端連接系統,Guest系統已啓動到等待登陸狀態

wKioL1Pgs9Dghp5nAACG1grvRjI440.jpg

8.4)登陸系統,配置好網絡地址、iptables 防火牆策略、將SELinux 設置爲disabled,重啓系統,然後就可以通過ssh方式登陸系統了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章