KVM的虛擬化須要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的徹底虛擬
化。在性能上KVM繼承了Linux很好的性能和伸縮性,在虛擬化性能方面,已經達到非虛
擬化原生環境95%左右的性能(官方數據)。KVM拓展性也很是好,客戶機和宿主機均可以
支持很是多的CPU數量和很是大的內存,能夠過載使用CPU和內存,還可藉助KSM技術實
現對內存的過量使用,且保證性能依舊很是不錯。紅帽2008年9月收購。node
虛擬化:虛擬化是雲計算的底層,在硬件基礎上跑虛擬機
雲計算:對硬件進行一個整合,協調硬件資源,能夠理解爲分佈式的集羣
2.1虛擬化技術python
虛擬化技術的分類:
模擬:emulation 至關於硬件的60%
虛擬:virtulization(虛擬出來的架構與底層架構要保持一致)
徹底虛擬化(full-virtulization)
BT:二進制翻譯 (軟件) 至關於硬件的80%
HVM:硬件輔助的虛擬化 (硬件) 至關於硬件的85%
半虛擬化(para-virtulization) 【準虛擬化】 至關於硬件的95%linux
3.1檢測是否支持虛擬化ios
# egrep --color '(vmx|svm)' /proc/cpuinfo # grep --color=auto -Ei "vmx|svm" /proc/cpuinfo
#若是含有vmx或者svm字樣,則表示硬件支持虛擬化,vmx表明Intel,svm表明AMD
3.2裝載模塊vim
# modprobe kvm modprobe kvm_intel
# lsmod | grep kvm kvm_intel 55496 0 kvm 337772 1 kvm_intel
3.3安裝kvm相關軟件包centos
# 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橋接網卡bash
#!/bin/bash ipaddr=`ifconfig eth0 |awk '/inet addr:/{print $2}' |awk -F: '{print $2}'` brctl addbr br0 ifconfig eth0 0 up brctl addif br0 eth0 ifconfig br0 ${ipaddr}/16 up brctl stp br0 on
#virsh iface-bridge eth0 br0
配置文件建立橋接口服務器
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:50:56:39:11:f4 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none BRIDGE=br0
# vim /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=stitc IPADDR=192.168.100.101 GATEWAY=192.168.100.1 NETMASK=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