在LINUX系统中安装KVM虚拟化

首先CPU要支持虚拟化(Intel是vmx,AMD是svm)
[root@localhost ~]# egrep '(vmx|svm)' --color /proc/cpuinfo
确保BIOS里开启VT,如果无法安装会有未开启虚似化的提示,去BISO里开启
Intel(R) Virtualization Tech [Enabled]


安装虚拟化套件,由于安装包较多,应该先配置好YUM库,然后用YUM安装虚似化的四个组,完装完无法打开有可能是你少装包了,检查一下是不是有错字。
[root@localhost ~]# LANG=en_US-utf8
[root@localhost ~]# yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
安装完后启动服务并设置服务开机自动运行
[root@localhost ~]# /etc/init.d/libvirtd start
[root@localhost ~]# chkconfig libvirtd on
用virt-manager来开启虚似管理器(图形桌面中)
[root@localhost ~]# virt-manager
自己手动安装系统...


设置HOST主机网络
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
建立一个桥接网卡,可以拷贝一个网卡文件然后我们来修改一下内容。
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@localhost network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge   //连接类型:桥接
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.30.6.149
PREFIX=24  //子网掩码
ARPCHECK=no       //关闭ARP检测
[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:7E:DF:4F
TYPE=Ethernet
UUID=743094da-ab6c-406d-8238-a8e51be4a515
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0          //被br0网卡桥接
如果NetworkManager服务阻止网卡重启,可以先关闭一下
[root@localhost network-scripts]# /etc/init.d/NetworkManager stop
[root@localhost network-scripts]# chkconfig NetworkManager off
[root@localhost network-scripts]# service network restart
[root@localhost network-scripts]# chkconfig network on
[root@localhost network-scripts]# reboot

 

 

kvm虚拟机常用文件
/var/lib/libvirt/p_w_picpaths //安装kvm虚拟机默认存放位置
/etc/libvirt/qemu/  //kvm虚拟机配置文件存放位置

管理命令
[root@localhost ~]# virsh list   //查看已打开虚拟机列表
[root@localhost ~]# virsh list --all  //查看所有虚拟机列表
[root@localhost ~]# virsh version  //查看版本号
[root@localhost ~]# virsh start kvm_snap1 //启动kvm_snap1虚拟机 
[root@localhost ~]# virsh create /etc/libvirt/qemu/kvm_snap1.xml
[root@localhost ~]# /etc/init.d/acpid restart
[root@localhost ~]# chkconfig acpid on
[root@localhost ~]# virsh shutdown kvm_snap1 //关闭kvm_snap1虚拟机
[root@localhost ~]# virsh destroy kvm_snap1 //强制关闭kvm_snap1虚拟机
[root@localhost ~]# virsh autostart kvm_snap1 //设置kvm_snap1自启动
[root@localhost ~]# virsh dumpxml kvm_snap1 > kvm_snap1.xml //导出kvm_snap1虚拟机配置文件
[root@localhost ~]# virsh undefine kvm_snap1   //取消kvm_snap1定义
[root@localhost ~]# virsh define kvm_snap1.xml    //定义kvm_snap1
[root@localhost ~]# virsh dominfo kvm_snap1   //列举kvm_snap1信息
[root@localhost ~]# virsh edit kvm_snap1   //编辑kvm_snap1配置文件

[root@localhost ~]# virt-clone -o rhel5.10 -n rhel5.10-clone -f /data/p_w_picpaths/rhel5.10-clone.img    //克隆虚拟机
 -o 指定模板主机
 -n 指定克隆出来虚拟机名字
 -f  指定克隆出来虚拟机存放位置


使用LVM方式管理虚拟主机磁盘
1,创建LV
[root@localhost ~]# fdisk -l | grep /dev/sda6
/dev/sda6            6170       39163   265015296   8e  Linux LVM
[root@localhost ~]# pvcreate /dev/sda6
[root@localhost ~]# vgextend vg_data /dev/sda6
[root@localhost ~]# vgdisplay | grep "Free  PE"
  Free  PE / Size       12799 / 50.00 GiB
[root@localhost ~]# lvcreate -L 10G -n lv_kvm_node1 vg_data
2,使用创建的LV安装Guest
[root@localhost ~]# virt-install \
--name kvm_node1 \   //定义虚拟机名字
--noautoconsole \   //使用本选项指定不自动试图连接到客户机控制台
--ram 1024 \    //指定虚拟机内存大小,单位M
--arch=x86_64 \    //指定CPU架构
--vcpus=1 \    //指定虚拟cpu个数
--os-type=linux \   //指定安装系统类型
--os-variant=rhel5 \   //指定特定版本
--hvm \     //使用全虚拟化
--accelerate \    //使用内核加速功能
--disk path=/dev/vg_data/lv_kvm_node1 \
--network bridge=br0 \
--location nfs:192.168.194.253:/var/ftp/pub/iso/RedHat/5.9 \
--extra-args="ks=http://192.168.194.253/rhel-ks.cfg ip=192.168.194.10 netmask=255.255.255.0 gateway=192.168.194.253 dns=192.168.194.253 noipv6"
3,设置模板虚拟机,去掉一些个性信息(在kvm_node1操作)
[root@localhost ~]# touch   /.unconfigured
4,生成快照
LVM快照
快照就是将当时的系统信息记录下来,就好像照相记录一样。未来若有任何数据更改,则原始数据会被放入到快照区,没有被更改的区域则由快照区与文件系统共享。
lvcreate -s -L 20G -n lv_node1  /dev/vg_data/lv_data
[root@localhost ~]# lvcreate -s -n kvm_snap1 -L 10G /dev/vg_data/lv_kvm_node1
5,定义到virt-manager
[root@localhost ~]# virsh dumpxml kvm_node1 > /root/kvm_snap1.xml
[root@localhost ~]# uuidgen
d2d8fe52-d244-46e5-97fb-7da9440d785b
修改 /root/kvm_snap1.xml文件(名字,UUID,磁盘位置,mac地址,见图.)
[root@localhost ~]# virsh define /root/kvm_snap1.xml
6,删除虚拟机
[root@localhost ~]# virsh undefine kvm_snap1


使用qcow2管理KVM虚拟机磁盘
目前主要有那些格式来作为虚拟机的镜像:
 raw 默认,不支持快照
 cow
 qcow
 qcow2 qcow2的性能上接近raw裸格式的性能
 vmdk  VMware格式
 vdi