kvm环境安装

一、kvm环境安装

**1.环境准备***

CPU要支持虚拟化,服务器上默认一般是开启的,虚拟机要自己启动VT-EPT技术,如下图

img

查看服务器或虚拟机是否开启虚拟化

[root@centos6 ~]#  grep -E '(vmx|svm)' /proc/cpuinfo  #输出不为空表示支持

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep

*关闭**防火墙及selinux*

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

chkconfig iptables off

/etc/init.d/iptables stop

2. KVM虚拟机安装

*配置**yum源*

[root@centos6 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

[root@centos6 ~]# yum repolist

安装KVM

[root@centos6 ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

[root@centos6 ~]# yum install -y libguestfs-tools-c

*启动**libvirtd**服务*

[root@centos6 ~]# /etc/init.d/libvirtd start

3. *配置**网桥*

配置网桥br0

[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0  #创建并配置如下

DEVICE=br0

BOOTPROTO=static

ONBOOT=yes

TYPE=Bridge

IPADDR=192.168.1.108

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=192.168.1.1

DNS2=114.114.114.114

DELAY=0

*配置**eth0**网卡*

[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

IPV6INIT=yes

MTU=1500

NM_CONTROLLED=yes

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

PEERDNS=yes

NM_CONTROLLED=no

BRIDGE=br0

重启网络

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

*查看**添加的网桥*

[root@centos6 ~]# brctl show

bridge name   bridge id        STP enabled   interfaces

***br0       8000.000c29e5973f    no        eth0***

virbr0      8000.5254008a9d23    yes       virbr0-nic

4. *创建**虚拟机*

*1.**上传**iso镜像文件*

*方式**一:*

对于虚拟机如果镜像文件太大通过rz方式上传可能会中断,可以将iso文件先挂载到虚拟机的CD/DVD。然后通过如下方式生成镜像

[root@centos6 ~]# dd if=/dev/cdrom of=/data/iso/centos6.5.iso
8726528+0 records in
8726528+0 records out
4467982336 bytes (4.5 GB) copied, 151.412 s, 29.5 MB/s

方式二

*wget网络**下载*

wget -O /data/iso/centos6.5.iso http://archive.kernel.org/centos-vault/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

*2.创建**qcow2**格式**的磁盘文件*

[root@centos6 ~]# qemu-img create -f qcow2 /data/kvm_disk/centos6.5_model.qcow2 20G
Formatting '/data/kvm_disk/centos6.5_model.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536

3.创建虚拟机

[root@centos6 ~]# virt-install --virt-type kvm --name centos6.5_model --ram 1024 --cdrom=/data/iso/centos6.5.iso --disk path=/data/kvm_disk/centos6.5_model.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6

参数说明:

--virt-type:指定虚拟机类型(kvm、qemu、xen)

--name:指定虚拟机的名称

--raw:指定内存大小

--cpu:指定cpu的核数(默认为1)

--cdrom:指定镜像

--disk:指定磁盘路径(即上文创建的虚拟磁盘)

--network:指定网络类

在windows上安装VNC客户端(tightvnc),然后连接进行安装,默认端口为5900,第一台虚拟机连接端口为5900,第二台为5901,以此类推。如下所示

img

5. *kvm常用操作**命令*

[root@centos6 ~]# virsh list --all   #查看所有虚拟机的状态

[root@centos6 ~]# virsh shutdown centos6.5_1   #优雅地关闭一个虚拟机(虚拟机需要开启acpid)

[root@centos6 ~]# virsh destroy centos6.5_1    #强制关闭一个虚拟机

[root@centos6 ~]# virsh start centos6.5_1     #启动一个虚拟机

[root@centos6 ~]# virsh reboot centos6.5_1    #重启一个虚拟机

[root@centos6 ~]# virsh undefine centos6.5_1   #删除一个虚拟机

[root@centos6 ~]# virsh define centos6.5_1    #删除一个虚拟机

[root@centos6 ~]# virsh define --file /etc/libvirt/qemu/centos6.5_model.xml  #定义一个虚拟机

[root@centos6 ~]# virt-clone -o centos6.5_model -n centos6.5_1 -f /data/kvm_disk/centos6.5_1.qcow2   #克隆一个虚拟机,-o模板虚拟机名;-n新虚拟机名;-f新虚拟机磁盘文件名

[root@centos6 ~]# virsh autostart centos6.5_1      #设置虚拟机自启(libvirtd服务启动后)

[root@centos6 ~]# virsh autostart centos6.5_1 --disable   #取消虚拟机自启

[root@centos6 ~]# guestmount -d centos6.5_1 -i /media/virtimage/ #挂载虚拟机磁盘文件

6. 使用cgroup限制管理虚拟机

*cgroup**安装*

[root@centos6 ~]# yum install libcgroup -y

*启动**cgroup*

[root@centos6 ~]# /etc/init.d/cgconfig start

*配置**cgroup管理**虚拟机*

[root@centos6 ~]# cat /etc/cgconfig.conf
mount {
        cpuset  = /cgroup/cpuset;
        cpu     = /cgroup/cpu;
        cpuacct = /cgroup/cpuacct;
        memory  = /cgroup/memory;
        devices = /cgroup/devices;
        freezer = /cgroup/freezer;
        net_cls = /cgroup/net_cls;
        blkio   = /cgroup/blkio;
}
group libvirt/qemu/centos6.5_model {
    cpu { 
       cpu.cfs_quota_us = 50000; 
       cpu.cfs_period_us = 100000; 
    } 
    memory {   
       memory.limit_in_bytes=1000M; 
       memory.swappiness=0; 
    }  
    blkio  {   
       blkio.throttle.read_bps_device="8:0 10485760"; 
       blkio.throttle.write_bps_device="8:0 10485760"; 
    }
}

仅添加黑体部分即可

重启cgconfig服务

[root@centos6 ~]# /etc/init.d/cgconfig restart

查看

[root@centos6 ~]# cat /cgroup/memory/libvirt/qemu/centos6.5_model/tasks
14106
14130
14132
14208
[root@centos6 ~]# ps aux|grep centos6.5_model|awk '{print $2}'
14106

centos6.5_model的内存已被限制

7. 模板机基本配置

1.修改网卡配置文件

[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.190    #如果是桥接需要和网桥地址在同一网段
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

2.清空70-persistent-net.rules

[root@centos6 ~]# >/etc/udev/rules.d/70-persistent-net.rules

3.关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

grep SELINUX=disabled /etc/selinux/config

setenforce 0
服务器技术交流群请加微信 YJZyjz