****************大家好,我是霸王卸甲,今天给大家带来的是安装KVM。。。

    kvm:Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

查看CPU是否支持VT技术:
#cat /proc/cpuinfo | egrep 'vmx|svm'   
flags : fpu vme de pse tsc msr pae mce cx8 apicmtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority

需求内核(rhel6以上):

uname -r

2.6.32-358.el6.x86_64

安装软件:
rhel6:

yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y

rhel7:
# yum install *virt*  *qemu* -y
# yum install  libvirt  qemu-kvm virt-manager -y

启动服务:
rhel6:

/etc/init.d/libvirtd start

rhel7:
# systemctl start libvirtd 

查看kvm模块加载:

lsmod | grep kvm

    kvm_intel              53484  3 
    kvm                   316506  1 kvm_intel

# 

图形模式安装guest os
#virt-manager

存储池:
1.创建基于文件夹的存储池(目录)

mkdir -p /data/vmfs

2.定义存储池与其目录
   # virsh pool-define-as vmdisk --type dir --target /data/vmfs
3.创建已定义的存储池
    (1)创建已定义的存储池
        # virsh pool-build vmdisk
    (2)查看已定义的存储池,存储池不激活无法使用。
        #virsh pool-list --all
4.激活并自动启动已定义的存储池
    # virsh pool-start vmdisk
    # virsh pool-autostart vmdisk         
    这里vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘文件了。
5.在存储池中创建虚拟机存储卷
    (1)在存储池中创建虚拟机存储卷
        # virsh vol-create-as vmdisk oeltest03.qcow2 20G --format qcow2
    (2)根据创建的虚拟机存储卷安装虚拟机
        #virt-install --name=oeltest03 --os-variant=RHEL6 --ram 1024 --vcpus=1 --disk path=/data/vmfs/oeltest03.qcow2,format=qcow2,size=20,bus=virtio  --accelerate --cdrom /data/iso/oel63x64.iso --vnc --vncport=5910  --vnclisten=0.0.0.0 --network bridge=br0,model=virtio –noautoconsole

注1:KVM存储池主要是体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池,虚拟机存储卷创建完成后,剩下的操作与无存储卷的方式无任何区别了。
注2:KVM存储池也要用于虚拟机迁移任务。

6.存储池相关管理命令
(1)在存储池中删除虚拟机存储卷

virsh vol-delete --pool vmdisk oeltest03.qcow2

(2)取消激活存储池
    # virsh pool-destroy vmdisk
(3)删除存储池定义的目录/data/vmfs
    # virsh pool-delete vmdisk
(4)取消定义存储池
    # virsh pool-undefine vmdisk

到此kvm存储池配置与管理操作完毕。

命令方式安装虚拟机:
一般在创建虚拟机前,如果需要桥接虚拟机,就需要创建桥接网口,具体看自己的需求。创建一个虚拟机,可以通过virt-manager来完成,图形化界面,但是这个功能不全,不能随心所欲,例如,需要将虚拟机创建在不同的位置上,毕竟默认的存储是在/var/lib/libvirt/images下,无法进行存储的管理,所以,在创建虚拟机之前,需要先创建一个存储池。

存储池:
存储池(Storage pools)是放置虚拟机的存储位置,可以是本地的,也可以是网络存储,本实例放置在卷(Volume)上。

在创建卷之前,先要创建存储池,存储池可以建立在好几种方式的存储上,现在主要建立一个基于目录的存储池。

首先创建了一个LVM,步骤如下:
1.使用lvcreate命令,创建一个名为lv_kvm,大小为250G的逻辑卷,卷组名为VolGroup(VolGroup是已经创建好的卷组,创建方法在上一篇文章中)
#lvcreate -L 250G -n lv_kvm VolGroup
2.使用mkfs.ext4命令在逻辑卷lvdata1上创建ext4文件系统.
#mkfs.ext4 /dev/VolGroup/lv_kvm
3.将创建好的文件系统/lv_kvm挂载到/kvm上.(创建好之后,会在/dev/mapper/生成一个软连接名字为"卷组-逻辑卷")
#mount /dev/VolGroup/lv_kvm /kvm
4.建立存储池的目录
#mkdir /kvm/images
5.配置SELinux文件上下文,这个主要是打开SELinux设定,不然虚拟机无法访问存储文件(没有深究原因)
#semanage fcontext -a -t virt_image_t /kvm/images
6.创建基于文件夹(目录)的存储池
#virsh pool-define-as kvm_images --type dir --target /kvm/images
7.查看创建的存储池信息

virsh pool-list --all

    Name                 State      Autostart 
    -----------------------------------------
    default              inactive   yes
    kvm_images      inactive   no

停止默认存储池:
    # virsh pool-destroy  default
    Pool default destroyed

8.启动存储池

virsh pool-start kvm_images

    # virsh pool-list --all
    Name                 State      Autostart 
    -----------------------------------------
    default              inactive   yes       
    kvm_images           active     no

9.创建了存储池后,就可以创建一个卷,这个卷是用来做虚拟机的硬盘
#virsh vol-create-as --pool kvm_images --name TAF05.img --capacity 10G --format qcow2
10.在存储卷上安装虚拟主机
10.1 配置bridge方式:
创建桥接器

cat /etc/sysconfig/network-scripts/ifcfg-br0

    DEVICE=br0
    NM_CONTROLLED=no
    TYPE=Bridge
    BOOTPROTO=static
    IPADDR=192.168.0.230
    PREFIX=24
    GATEWAY=192.168.1.254
    DNS1=8.8.8.8
    ONBOOT=yes
    USERCTL=no
    DELAY=0

    将物理接口桥接到桥接器
    # cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    NM_CONTROLLED=no
    TYPE=Ethernet
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    BRIDGE=br0

    重启加载网络服务
    # service network restart

    查看当前桥接情况 
    # brctl show 
 10.2 安装
    # virt-install --connect qemu:///system -n vm3 -r 512 -f /virhost/vmware/vm2.img -s 7 --vnc --os-type=linux --os-variant=rhel6 --vcpus=1 --network bridge=br0 -c /var/ftp/soft/rhel6u4.iso

完全文本方式安装:

#virt-install --connect qemu:///system -n vm7 -r 2024 --disk path=/var/lib/libvirt/images/vm7.qcow2,size=10 --os-type=linux --os-variant=centos7.0 --vcpus=1 --location=ftp://10.18.42.251/centos7u4 -x console=ttyS0 --nographics

-n 虚拟机名字
-r 内存 必须2个G以上

1.取消安装ctrl+] 然后在ctrl+c
2.取消安装之后,虚拟机名字必须改,镜像名字必须改
3.磁盘镜像名字不需要手动图形创建了,直接指定名字就可以
4.宿主机剩余内存必须要大一点
yum -y update
排错:
安装过程中:
手动配置IP地址
到url位置找不到路径,要返回去手动选择url,重新配置url为ftp://192.168.100.230/rhel6u4,这里的ip不要写127.0.0.1而是br0的ip

==================
根据配置文件创建虚拟机:
1.需要有磁盘文件:

cp vm1.img vm2.img

2.需要有配置文件:配置文件需要修改必要的东西

cp vm1.xml vm2.xml

3.创建虚拟机:

virsh define /etc/libvirt/qemu/vm2.xml