本文共 4462 字,大约阅读时间需要 14 分钟。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟
化。在性能上KVM继承了Linux很好的性能和伸缩性,在虚拟化性能方面,已经达到非虚拟化原生环境95%左右的性能(官方数据)。KVM拓展性也非常好,客户机和宿主机都可以支持非常多的CPU数量和非常大的内存,可以过载使用CPU和内存,还可借助KSM技术实现对内存的过量使用,且保证性能依旧非常不错。红帽2008年9月收购。虚拟化:虚拟化是云计算的底层,在硬件基础上跑虚拟机
云计算:对硬件进行一个整合,协调硬件资源,可以理解为分布式的集群2.1虚拟化技术虚拟化技术的分类:
模拟:emulation 相当于硬件的60%虚拟:virtulization(虚拟出来的架构与底层架构要保持一致)完全虚拟化(full-virtulization)BT:二进制翻译 (软件) 相当于硬件的80%HVM:硬件辅助的虚拟化 (硬件) 相当于硬件的85%半虚拟化(para-virtulization) 【准虚拟化】 相当于硬件的95%3.1检测是否支持虚拟化
# egrep --color '(vmx|svm)' /proc/cpuinfo # grep --color=auto -Ei "vmx|svm" /proc/cpuinfo
#如果含有vmx或者svm字样,则表示硬件支持虚拟化,vmx代表Intel,svm代表AMD
3.2装载模块# modprobe kvmmodprobe kvm_intel
# lsmod | grep kvmkvm_intel 55496 0 kvm 337772 1 kvm_intel
3.3安装kvm相关软件包
# yum grouplist | grep -i "Virtualization"# yum install qemu-kvm qemu-kvm-tools virt-manager virt-viewer libvirt python-virtinst bridge-utils tigervnc# ln -sv /usr/libexec/qemu-kvm /usr/sbin/
4.1桥接网卡
#!/bin/bashipaddr=`ifconfig eth0 |awk '/inet addr:/{print $2}' |awk -F: '{print $2}'`brctl addbr br0ifconfig eth0 0 upbrctl addif br0 eth0ifconfig br0 ${ipaddr}/16 upbrctl stp br0 on
#virsh iface-bridge eth0 br0
配置文件创建桥接口
# vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0HWADDR=00:50:56:39:11:f4TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneBRIDGE=br0
# vim /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0TYPE=BridgeONBOOT=yesNM_CONTROLLED=noBOOTPROTO=stitcIPADDR=192.168.100.101GATEWAY=192.168.100.1NETMASK=255.255.255.0
重启网卡
# /etc/init.d/network restart
service libvirtd start
创建磁盘映像文件
# qemu-img create -f qcow2 -o size=10G /u01/images/vm1/centos.qcow2# dd if=/dev/zero of centos6.img bs=1M count=1024
创建稀疏格式
# dd if=/dev/zero of=centos6.img bs=1M oflag=direct seek=1023 count=1
Qemu命令新建虚拟机
# qemu-kvm -name "mhn_node1" -m 512 -smp 1 -hda /u01/images/vm1/centos.qcow2 -cdrom /u01/centos_iso/CentOS-6.5-x86_64-bin-DVD1.iso -boot order=dc
virt-install新建虚拟机
# virt-install --name=centos6 --ram 1024 --vcpus=1 --disk path=/u01/centos6.qcow2 --accelerate --cdrom /mnt/CentOS6.5.iso --graphics vnc,listen=0.0.0.0,port=5920 --network bridge=br0 --force –autostart# virt-install --name=node1 --ram=1024 --arch=x86_64 --vcpus=1 --check-cpu --os-type=linux --os-variant='rhel6' -c /u01/iso/centos6.5.iso --disk path=/u01/images/centos6.5_vm001.img,device=disk,bus=virtio --bridge=br0 --noautoconsole --vnc --vncport=5921 --vnclisten=0.0.0.0
virsh基于模板创建虚拟机
# cp centos.img /u01/images/node1.img# virsh dumpxml centos > /etc/libvirt/qemu/node1.xml# virsh create /etc/libvirt/qemu/node1.xml -console# virsh define /etc/libvirt/qemu/node3.xml# virsh edit node3 不建议直接通过vim修改xml文件修改id号修改虚拟机的name修改uuid指定新虚拟机的硬盘文件# virsh start node3
# qemu-img create -f vmdk -0 ? test.vmdk# qemu-img convert –O vmdk –o adapter_type=lsilogic test.qcow2 test.vmdk# qemu-img convert -f raw -O qcow2 node1.img node1.qcow2
-f:源镜像的格式,它会自动检测
-O:目标镜像的格式-o:其他选先扩大磁盘容量
# qemu-img resize /u01/images/test.qcow2 50G
克隆
# virt-clone -o node1 -n node2 -f node2.qcow2
-o:原来的虚拟机名称-n:新的虚拟机名称-f:新的虚拟机磁盘文件 生成随机mac
# openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
cd:8b:7b:ba:c1:b5创建快照# qemu-img snapshot –c test-1.snap test.qcow2
恢复快照#qemu-img snapshot -a test.-1.snap test.qcow2
删除快照#qemu-img snapshot -d test.-1.snap test.qcow2
virsh管理
# virsh define /etc/libvirt/qemu/node5.xml
#将配置导入到虚拟机# virsh start node3
#启动虚拟机# virsh create /etc/libvirt/qemu/centos6.5.xml
#通过配置文件启动# virsh shutdown node3
#关闭虚拟机# virsh destroy node3
#强制关闭电源# virsh undefine node3
#删除虚拟机# virsh suspend node3
#挂起虚拟机# virsh resume node3
#恢复被挂起的虚拟机# virsh list --all
#查看所有的虚拟机 virt-manager管理
# virt-manager
转载于:https://blog.51cto.com/redone/2153044