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内存、8核CPU、4T硬盘 |
2)安装KVM软件,加载内核模块
2.1)安装kvm 内核模块(前提:配置好yum源)
[[email protected] ~]# 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 [[email protected] ~]# 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 模块
[[email protected] ~]# lsmod |grep kvm kvm_intel 52570 0 kvm 314739 1 kvm_intel |
3)宿主服务器桥接配置
3.1)安装网桥管理工具
[[email protected] ~]# yum install bridge-utils tunctl -y |
3.2)新建网桥br0配置文件,将网卡em1加入网桥br0
[[email protected] ~]# cd /etc/sysconfig/network-scripts [[email protected] 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 [[email protected] network-scripts]# vim ifcfg-em1 DEVICE="em1" ONBOOT="yes" BRIDGE=br0 |
3.3)重启网络服务,查看网桥br0
[[email protected] ~]# /etc/init.d/network restart [[email protected] ~]# 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
[[email protected] ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.90b11c0d8014 no em1 |
4)添加虚拟网卡
4.1)为Guest系统新建虚拟网卡tap10,并加入网桥br0
[[email protected] ~]# tunctl -t tap10 Set ‘tap10‘ persistent and owned by uid 0 [[email protected] ~]# brctl addif br0 tap10 [[email protected] ~]# ifconfig tap10 up [[email protected] ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.32d37d9e08d3 no em1 tap10 [[email protected] ~]# 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
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-tap10 DEVICE=tap10 TYPE=Tap ONBOOT=yes BRIDGE=br0 |
5)安装vnc服务软件,客户机可通过宿主机的vnc桌面管理guest系统
[[email protected] ~]# yum install tigervnc tigervnc-server -y |
6)使用 qemu-img 建立img映像文件,作为Guest系统的磁盘
[[email protected] ~]# 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 [[email protected] ~]# 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,其中40G为Guest系统的最大可用空间,实际占用宿主空间根据实际使用量计算。
qemu-img info xxx.img 查看img映像的信息,格式,实际大小,创建时指定大小等。
7)安装kvm的Guest系统
7.1)使用/usr/libexec/qemu-kvm 的命令行方式安装
[[email protected] ~]#/usr/libexec/qemu-kvm -m 1024 -smp 2 -drive file=/data/KVM_img/mail_server1.img -net nic,vlan=2,model=e1000 -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 [[email protected] ~]# 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 -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 [[email protected] 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 -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=? ”查看支持的网卡类型;
-net tap 指定了使用桥接模式网络,ifname= 指定了使用的虚拟网卡;
script= 初始化桥接网卡的脚本,默认为/etc/qemu-ifup,no为不执行脚本;
还可通过 -net nic,macaddr=52:54:00:DD:56:19 指定网卡的MAC地址
-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
[[email protected] 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 ,去除光盘资源
[[email protected] ~]#/usr/libexec/qemu-kvm -m 1024 -smp 2 -drive file=/data/KVM_img/mail_server1.img -net nic,vlan=2,model=e1000 -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方式登陆系统了。
KVM虚拟机安装管理——qemu-kvm方式,布布扣,bubuko.com