一、kvm环境安装
**1.环境准备***
CPU要支持虚拟化,服务器上默认一般是开启的,虚拟机要自己启动VT-EPT技术,如下图
查看服务器或虚拟机是否开启虚拟化
[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,以此类推。如下所示
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
发表评论