KVM 是基于虛拟化擴充(Intel VT 或者 AMD-V)的 X86 硬體的開源的 Linux 原生的全虛拟化解決方案。KVM 中,虛拟機被實作為正常的 Linux 程序,由标準 Linux 排程程式進行排程;虛機的每個虛拟 CPU 被實作為一個正常的 Linux 程序。這使得 KMV 能夠使用 Linux 核心的已有功能。
1、環境準備
[[email protected] ~]# grep -E 'vmx|svm' /proc/cpuinfo #(檢視是否支援虛拟化)
注意:intel為vmx,adm為svm
2、确定主控端相關參數
[[email protected] ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c #CPU型号
[[email protected] ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c #CPU核數
2*2 即4核cpu
[[email protected] ~]# dmidecode | grep -A16 "Memory Device" | grep Speed | sort -n | uniq -c #主頻
3、檢查相關Yum源
配置好公共yum源,推薦網易yum源。
關閉selinux
[[email protected]~]# vi /etc/sysconfig/selinux
SELINUX=disabled
4、部署KVM
- libvirt:操作和管理KVM虛機的虛拟化 API,使用 C 語言編寫,可以由 Python,Ruby, Perl, PHP, Java 等語言調用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
- virsh:基于 libvirt 的 指令行工具 (CLI)
- virt-Manager:基于 libvirt 的 GUI 工具
- virt-v2v:虛機格式遷移工具
- virt-* 工具:包括 Virt-install (建立KVM虛機的指令行工具), Virt-viewer (連接配接到虛機螢幕的工具),Virt-clone(虛機克隆工具),virt-top 等
- sVirt:安全工具
5、Yum安裝kvm
[[email protected] ~]# yum -y install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
[[email protected] ~]# lsmod | grep kvm #驗證kvm子產品是否添加
kvm_intel 162153 0
kvm 525259 1 kvm_intel #配置軟連接配接,便于管理。
6、設定libvirtd服務自啟
[[email protected] ~]# systemctl enable libvirtd
[[email protected] ~]# systemctl start libvirtd
[[email protected] ~]# virsh -c qemu:///system list #檢視虛拟機環境(virsh list --all)
Id Name State
----------------------------------------------------
[[email protected] ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
7、建立主控端相關目錄
[[email protected]~]#mkdir -p /data/images #存放kvm虛拟機目錄
[[email protected]~]#mkdir -p /data/iso # 存放ISO鏡像目錄
8、配置網橋
新增虛拟網橋
[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="Bridge"
BOOTPROTO=static
DEVICE="br0"
ONBOOT="yes"
DNS1=223.5.5.5
IPADDR=172.24.8.32
PREFIX=24
GATEWAY=172.24.8.2
DELAY="0"
[[email protected] ~]# vi /etc/sysctl.conf #修改sysctl.conf
net.ipv4.ip_forward=1
[[email protected] ~]# sysctl -p /etc/sysctl.conf
[[email protected] ~]# systemctl restart network #重新開機網卡服務
檢視網橋
[[email protected] ~]# brctl show
bridge name bridge id STP enabled interfavces
br0 8000.000c29dd8149 no eth0
virbr0 8000.525400a5f00a yes vurbr0-nic