KVM 是基於虛擬化擴展(Intel VT 或者 AMD-V)的 X86 硬件的開源的 Linux 原生的全虛擬化解決方案。KVM 中,虛擬機被實現爲常規的 Linux 進程,由標準 Linux 調度程序進行調度;虛機的每個虛擬 CPU 被實現爲一個常規的 Linux 進程。這使得 KMV 能夠使用 Linux 內核的已有功能。
1、環境準備
[root@kvm-host ~]# grep -E 'vmx|svm' /proc/cpuinfo #(查看是否支持虛擬化)
注意:intel爲vmx,adm爲svm
2、確定宿主機相關參數
[root@kvm-host ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c #CPU型號
[root@kvm-host ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c #CPU核數
2*2 即4核cpu
[root@kvm-host ~]# dmidecode | grep -A16 "Memory Device" | grep Speed | sort -n | uniq -c #主頻
3、檢查相關Yum源
配置好公共yum源,推薦網易yum源。
關閉selinux
[root@kvm-host~]# 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
[root@kvm-host ~]# yum -y install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
[root@kvm-host ~]# lsmod | grep kvm #驗證kvm模塊是否添加
kvm_intel 162153 0
kvm 525259 1 kvm_intel #配置軟連接,便於管理。
6、設置libvirtd服務自啓
[root@kvm-host ~]# systemctl enable libvirtd
[root@kvm-host ~]# systemctl start libvirtd
[root@kvm-host ~]# virsh -c qemu:///system list #查看虛擬機環境(virsh list --all)
Id Name State
----------------------------------------------------
[root@kvm-host ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
7、創建宿主機相關目錄
[root@kvm-host~]#mkdir -p /data/images #存放kvm虛擬機目錄
[root@kvm-host~]#mkdir -p /data/iso # 存放ISO鏡像目錄
8、配置網橋
新增虛擬網橋
[root@kvm-host ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
[root@kvm-host ~]# 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"
[root@kvm-host ~]# vi /etc/sysctl.conf #修改sysctl.conf
net.ipv4.ip_forward=1
[root@kvm-host ~]# sysctl -p /etc/sysctl.conf
[root@kvm-host ~]# systemctl restart network #重啓網卡服務
查看網橋
[root@kvm-host ~]# brctl show
bridge name bridge id STP enabled interfavces
br0 8000.000c29dd8149 no eth0
virbr0 8000.525400a5f00a yes vurbr0-nic