KVM (kernel-based virtual machine,內核虛擬機),是一個開源的系統虛擬化模塊,自Linux 2.6.20以後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,虛擬化效率高、管理簡便。linux
1)系統環境 ios
操做系統 |
CentOS release 6.3vim |
內核版本 |
2.6.32-279.el6.x86_64windows |
服務器型號 |
Dell R410api |
基本配置 |
32G內存、8核CPU、4T硬盤緩存 |
2)安裝KVM軟件,加載內核模塊服務器
2.1)安裝kvm 內核模塊(前提:配置好yum源)網絡
[root@project ~]# yum list|grep -i kvmssh qemu-kvm.x86_64 2:0.12.1.2-2.415.el6_5.10 updates tcp 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 p_w_picpath: /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,其中40G爲Guest系統的最大可用空間,實際佔用宿主空間根據實際使用量計算。
qemu-img info xxx.img 查看img映像的信息,格式,實際大小,建立時指定大小等。
7)安裝kvm的Guest系統
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-ifup,no爲不執行腳本;
-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安裝(linux與windows客戶端均可以),本處使用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桌面後,顯示光盤安裝界面。安裝方式同本地安裝。(過程略)
安裝完畢,重啓系統後,關閉該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系統已啓動到等待登錄狀態
8.4)登錄系統,配置好網絡地址、iptables 防火牆策略、將SELinux 設置爲disabled,重啓系統,而後就能夠經過ssh方式登錄系統了。