KVM虚拟化安装配置(一)

KVM的虚拟化简介

    KVM(全称Kernel-based Virtual Machine)是一套开源的全虚拟化解决方案,同时也支持半虚拟化。KVM不同于其他(如Xen),它是集成到Linux内核的Hypervisor,在X86架构上需要硬件支持(如Intel VT技术或者AMD V技术)虚拟化技术。KVM由一个可加载的内核模块kvm.ko提供核心虚拟化基础构造,和一个处理器特殊的模块kvm-intel.ko 或者 kvm-amd.ko组成。

    在KVM虚拟主机上,可以允许运行多个Linux或Windows虚拟机,每个虚拟机都有各自的虚拟硬件:网卡、磁盘、图形适配器等。


这里KVM的安装环境是VMware和CentOS6.7_64位系统

  • 前提需要足够大的硬件配置支持,如KVM主机内存需要至少2个G,硬盘需要40G以上。

  • 检查CPU是否支持虚拟化技术,查看虚拟机设置虚拟化引擎部分,把【虚拟化Inter VT-x/EPT或AMD-V/RVI(V)】选项打钩。

  • 同时可以在主机下查看CPU是否支持虚拟化,可以使用egrep 'vmx|svm' --color /proc/cpuinfo查看,若有输出则支持。


现在开始安装KVM

Step1:清除防火墙规则并把Selinux关闭

[root@kvm ~]# service iptables stop
[root@kvm ~]# iptables -F
[root@kvm ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
[root@kvm ~]# setenforce 0

Step2:安装KVM核心包和其他所必须的虚拟化软件包

    kvm:             KVM核心模块,它在默认Linux内核中提供KVM管理程序

    virt:                 创建、克隆、虚拟机命令,以及图形化管理工具virt-manager

    qemu-img:      qemu组件,使用qemu命令来创建磁盘等

    libvirts:             虚拟机管理工具,使用virsh等命令来管理和控制虚拟机

    bridge-utils:      设置网络网卡桥接

KVM的安装需要解决的依赖比较多,其中virt需要安装200多个依赖包,安装过程比较费时,大约十几分钟,这取决于你的机器。

[root@kvm ~]# yum -y install kvm virt* libvirt qemu-img bridge-utils


Step3:确认安装KVM是否已经成功

检查KVM模块是否加载

[root@kvm ~]# lsmod |grep kvm
kvm_intel              55624  0 
kvm                   341551  1 kvm_intel

查看virt版本

[root@kvm ~]# virt-install --version
0.600.0
[root@kvm ~]# virsh --version
0.10.2
[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------


Step4:接下来可以创建并安装虚拟机,首先是配置网卡

进入/etc/sysconfig/network-scripts/目录下,拷贝eth0网卡配置文件ifcfg-eth0为ifcfg-br0

[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# cp ifcfg-eth0 ifcfg-br0

编辑ifcfg-eth0文件

DEVICE=eth0
HWADDR=00:0C:29:6C:57:4E
TYPE=Ethernet
UUID=41b2bd36-fc1a-4bbf-ab3f-2e11a9fc888a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0

编辑ifcfg-br0文件

DEVICE=br0
#HWADDR=00:0C:29:6C:57:4E
TYPE=Bridge
UUID=41b2bd36-fc1a-4bbf-ab3f-2e11a9fc888a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.33
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

重启网络服务

[root@kvm network-scripts]# service network restart
Shutting down interface br0:                               [  OK  ]
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface br0:  Determining if ip address 192.168.1.33 is already in use for device br0...
                                                           [  OK  ]

查看一下网卡信息,其中br0就是刚刚创建的网卡配置文件,可以看到设置的IP已经生效

[root@kvm ~]# ifconfig 
br0       Link encap:Ethernet  HWaddr 00:0C:29:6C:57:4E  
          inet addr:192.168.1.33  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe6c:574e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1211 errors:0 dropped:0 overruns:0 frame:0
          TX packets:193 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:100106 (97.7 KiB)  TX bytes:18094 (17.6 KiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:6C:57:4E  
          inet6 addr: fe80::20c:29ff:fe6c:574e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:160842 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84216 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:210835385 (201.0 MiB)  TX bytes:7062228 (6.7 MiB)
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:65536  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)
virbr0    Link encap:Ethernet  HWaddr 52:54:00:07:F1:48  
          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)

Step5:启动或重启libvirtd和messagebus服务

启动libvirtd、messagebus

[root@kvm ~]# service libvirtd start
Starting libvirtd daemon:                                  [  OK  ]
[root@kvm ~]# service messagebus start
Starting system message bus:                               [  OK  ]

查看网络接口列表

[root@kvm ~]# brctl show
bridge name    bridge id             STP enabled     interfaces
br             08000.000c296c574e    no              eth0
virbr0         8000.52540007f148     yes             virbr0-nic


Step6:创建一个虚拟机

首先创建一个用来存放虚拟机的目录/kvm,当然要先查看一下磁盘大小情况再选择的位置

[root@kvm ~]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    43G  1.3G   39G   4% /
tmpfs          tmpfs  932M     0  932M   0% /dev/shm
/dev/sda1      ext4   190M   31M  149M  18% /boot

[root@kvm ~]# mkdir /kvm

创建一个预分配的元数据选项的qcow2格式镜像文件(用来存储虚拟机的磁盘镜像)

[root@kvm ~]# qemu-img create -f qcow2 -o preallocation=metadata /kvm/centos6.7_v1.img 10G
Formatting '/kvm/centos6.7_v1.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata'

stat命令输出磁盘镜像信息

[root@kvm ~]# stat /kvm/centos6.7_v1.img 
  File: `/kvm/centos6.7_v1.img'
  Size: 10739318784Blocks: 3488       IO Block: 4096   regular file
Device: 803h/2051dInode: 2490371     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-01-15 17:08:46.695998217 +0800
Modify: 2016-01-15 17:08:46.694998217 +0800
Change: 2016-01-15 17:08:46.694998217 +0800


info命令查看磁盘镜像的大小信息

[root@kvm ~]# qemu-img info /kvm/centos6.7_v1.img 
image: /kvm/centos6.7_v1.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.7M
cluster_size: 65536


下面通过文本模式安装一个512内存、1核心、磁盘大小10G的linux系统。使用virt-install命令来创建虚拟机

[root@kvm ~]# virt-install \
--name centos6.7_v1 \
--ram 512 \
--disk path=/kvm/centos6.7_v1.img,format=qcow2,size=10,bus=virtio \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--location=/dev/sr0 \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'


部分输出内容

Starting install...
Retrieving file .treeinfo...                                                                      |  676 B     00:00 ... 
Retrieving file vmlinuz...                                                                        | 8.1 MB     00:00 ... 
Retrieving file initrd.img...                                                                     |  69 MB     00:00 ... 
Creating domain...                                                                                |    0 B     00:00     
Connected to domain centos6.7_v1
Escape character is ^]
[1;256r
Google, Inc.
Serial Graphics Adapter 12/07/11
SGABIOS $Id: sgabios.S 8 2010-04-22 00:03:40Z nlaredo $ ([email protected]) Wed Dec  7 17:04:47 UTC 2011
Term: 121x32
4 0

SeaBIOS (version seabios-0.6.1.2-30.el6)
Machine UUID 51dca1d8-adbc-51d1-1f39-343ad2c7a49f


gPXE (http://etherboot.org) - 00:03.0 C100 PCI2.10 PnP BBS PMM1FE0@10 C100
                                                                               

Probing EDD (edd=off to disable)... ok

......

Greetings.
anaconda installer init version 13.21.239 starting
mounting /proc filesystem... done
creating /dev filesystem... usb 2-1: new full speed USB device number 2 using uhci_hcd
done
starting udev...done
mounting /dev/pts (unix98 pty) filesystem... udevd[48]: error setting /sys/class/firmware/timeout: No such file or directory

done
mounting /sys filesystem... done
anaconda installer init version 13.21.239 using a serial console
trying to remount root filesystem read write... done
Welcome to CentOS for x86_64

                     ┌───────────┤ Disc Found ├───────────┐
                     │                                    │
                     │ To begin testing the media before  │
                     │ installation press OK.             │
                     │                                    │                     
                     │ Choose Skip to skip the media test │                     
                     │ and start the installation.        │                     
                     │                                    │                     
                     │     ┌────┐           ┌──────┐      │                     
                     │     │ OK │           │ Skip │      │
                     │     └────┘           └──────┘      │
                     │                                    │
                     │                                    │
                     └────────────────────────────────────┘




  <Tab>/<Alt-Tab> between elements  | <Space> selects | <F12> next screen

接下来的安装操作就变得简单了,安装完成选择Reboot就进入虚拟机了

                                                                            
     ┌─────────────────────┤ Package Installation ├──────────────────────┐      
     │                                                                   │      
     │                                                                   │      
     │                                 0%                                │      
     │                                                                   │      
     │                   Packages completed: 6 of 225                    │      
     │                                                                   │      
     │ Installing glibc-common-2.12-1.166.el6.x86_64 (107 MB)            │      
     │ Common binaries and locale data for glibc                         │      
     │                                                                   │      
     │                                                                   │      
     │                                                                   │      
     └───────────────────────────────────────────────────────────────────┘


查看一下磁盘信息和登录信息

[root@localhost ~]# df -Th
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                     ext4   8.3G  644M  7.3G   9% /
tmpfs                tmpfs  246M     0  246M   0% /dev/shm
/dev/vda1            ext4   477M   33M  419M   8% /boot
[root@localhost ~]# last
root     ttyS0                         Fri Jan 15 18:01   still logged in   
reboot   system boot  2.6.32-573.el6.x Fri Jan 15 18:00 - 18:03  (00:02)    
wtmp begins Fri Jan 15 18:00:36 2016


退出返回到KVM主机,键入ctrl+]即可,在KVM主机中使用virsh list可以查看虚拟机列表

[root@kvm ~]# virsh list --all

 Id    Name                           State

----------------------------------------------------

 4     centos6.7_v1                   running


进入虚拟机,使用virsh console命令

[root@kvm ~]# virsh console centos6.7_v1
Connected to domain centos6.7_v1
Escape character is ^]
[root@localhost ~]#


使用virsh命令管理虚拟机

[root@kvm ~]# virsh shutdown hostname    #关闭虚拟机,需要在虚拟机中安装acpid服务并启动
[root@kvm ~]# virsh destroy hostname     #强制关闭电源
[root@kvm ~]# virsh undefine hostname    #删除虚拟机



你可能感兴趣的:(kvm,虚拟化,安装配置)