查看CPU是否支持VT技术:
#cat /proc/cpuinfo | egrep 'vmx|svm'
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
需求内核(rhel6以上):
# uname -r
2.6.32-358.el6.x86_64
安装软件:
# yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y
启动服务:
# /etc/init.d/libvirtd start
查看kvm模块加载:
# lsmod | grep kvm
kvm_intel 54285 0
kvm 333172 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 vm6 -r 512 --disk path=/virhost/vmware/vm6.img,size=7 --os-type=linux --os-variant=rhel6 --vcpus=1 --network bridge=br0 --location=http://127.0.0.1/rhel6u4 -x console=ttyS0 --nographics
#virt-install --connect qemu:///system -n vm9 -r 512 --disk path=/virhost/vmware/vm8.img,size=7 --os-type=linux --os-variant=rhel6 --vcpus=1 --location=ftp://127.0.0.1/rhel6u4 -x console=ttyS0 --nographics
排错:
安装过程中:
手动配置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
=================