KVM 是 OpenStack 使用最廣泛的 Hypervisor,本節介紹如何搭建 KVM 實驗環境
安裝 KVM
上一節說了,KVM 是 2 型虛擬化,是運行在操作系統之上的,所以我們先要裝一個 Linux。Ubuntu、Redhat、CentOS 都可以,這里我們以 Ubuntu14.04 為例。
基本的 Ubuntu 操作系統裝好之后,安裝 KVM 需要的包
$ sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan
通過這些安裝包我們順便復習一下上一節介紹的 KVM 的相關知識。
-
qemu-kvm 和 qemu-system 是 KVM 和 QEMU 的核心包,提供 CPU、內存和 IO 虛擬化功能
-
libvirt-bin 就是 libvirt,用於管理 KVM 等 Hypervisor
-
virt-manager 是 KVM 圖形化管理工具
-
bridge-utils 和 vlan,主要是網絡虛擬化需要,KVM 網絡虛擬化的實現是基於 linux-bridge 和 VLAN,后面我們會討論。
Ubuntu 默認不安裝圖形界面,手工安裝一下
sudo apt-get install xinit sudo apt-get install gdm sudo apt-get install kubuntu-desktop
apt 默認會到官網上去下載安裝包,速度很慢,我們可以使用國內的鏡像站點。
配置/etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
然后執行下面命令更新安裝包 index
# apt update
Redhat 和 CentOS 安裝相對簡單,安裝過程中選擇虛擬化和圖形組件就可以了。
小竅門:Ubuntu 默認是不允許 root 通過 ssh 直接登錄的,可以修改 /etc/ssh/sshd_config,設置
PermitRootLogin yes
然后重啟 ssh 服務即可
# service ssh restart ssh stop/waiting ssh start/running, process 27639
在虛擬機上做實驗
作為 2型虛擬化的 KVM,是支持虛擬化嵌套,這使得我們可以在虛擬機中實驗 KVM。 比如我在 VMWare Workstation 中安裝了一個 Ubuntu14.04 的虛擬機,為了能讓 KVM 能創建 嵌套的虛機,要把 CPU 的虛擬化功能打開。如下圖在 VMWare 中設置以下 CPU 的模式
Ubuntu 啟動后,用以下命令確認 CPU 支持虛擬化
# egrep -o '(vmx|svm)' /proc/cpuinfo # vmx
確認 Libvirtd 服務已經啟動
# service libvirt-bin status libvirt-bin start/running, process 1478
KVM 准備就緒,下一節我們將創建虛擬機