KVM 是 OpenStack 使用最廣泛的 Hypervisor,本節介紹如何搭建 KVM 實驗環境
安裝 KVM
上一節說了,KVM 是 2 型虛擬化,是運行在操作系統之上的,所以我們先要裝一個 Linux。Ubuntu、Redhat、CentOS 都可以,這里我們以 Ubuntu14.04 為例。
基本的 Ubuntu 操作系統裝好之后,安裝 KVM 需要的包
1
|
$
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 默認不安裝圖形界面,手工安裝一下
1
2
3
|
sudo
apt-get
install
xinit
sudo
apt-get
install
gdm
sudo
apt-get
install
kubuntu-desktop
|
apt 默認會到官網上去下載安裝包,速度很慢,我們可以使用國內的鏡像站點。
配置/etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
|
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
1
|
# apt update
|
Redhat 和 CentOS 安裝相對簡單,安裝過程中選擇虛擬化和圖形組件就可以了。
小竅門:Ubuntu 默認是不允許 root 通過 ssh 直接登錄的,可以修改 /etc/ssh/sshd_config,設置
1
|
PermitRootLogin
yes
|
然后重啟 ssh 服務即可
1
2
3
|
# service ssh restart
ssh
stop
/waiting
ssh
start
/running
, process 27639
|
在虛擬機上做實驗
作為 2型虛擬化的 KVM,是支持虛擬化嵌套,這使得我們可以在虛擬機中實驗 KVM。 比如我在 VMWare Workstation 中安裝了一個 Ubuntu14.04 的虛擬機,為了能讓 KVM 能創建 嵌套的虛機,要把 CPU 的虛擬化功能打開。如下圖在 VMWare 中設置以下 CPU 的模式
Ubuntu 啟動后,用以下命令確認 CPU 支持虛擬化
1
2
|
# egrep -o '(vmx|svm)' /proc/cpuinfo
# vmx
|
確認 Libvirtd 服務已經啟動
1
2
|
# service libvirt-bin status
libvirt-bin start
/running
, process 1478
|
KVM 准備就緒,下一節我們將創建虛擬機
KVM 是 OpenStack 使用最廣泛的 Hypervisor,本節介紹如何搭建 KVM 實驗環境
安裝 KVM
上一節說了,KVM 是 2 型虛擬化,是運行在操作系統之上的,所以我們先要裝一個 Linux。Ubuntu、Redhat、CentOS 都可以,這里我們以 Ubuntu14.04 為例。
基本的 Ubuntu 操作系統裝好之后,安裝 KVM 需要的包
1
|
$
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 默認不安裝圖形界面,手工安裝一下
1
2
3
|
sudo
apt-get
install
xinit
sudo
apt-get
install
gdm
sudo
apt-get
install
kubuntu-desktop
|
apt 默認會到官網上去下載安裝包,速度很慢,我們可以使用國內的鏡像站點。
配置/etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
|
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
1
|
# apt update
|
Redhat 和 CentOS 安裝相對簡單,安裝過程中選擇虛擬化和圖形組件就可以了。
小竅門:Ubuntu 默認是不允許 root 通過 ssh 直接登錄的,可以修改 /etc/ssh/sshd_config,設置
1
|
PermitRootLogin
yes
|
然后重啟 ssh 服務即可
1
2
3
|
# service ssh restart
ssh
stop
/waiting
ssh
start
/running
, process 27639
|
在虛擬機上做實驗
作為 2型虛擬化的 KVM,是支持虛擬化嵌套,這使得我們可以在虛擬機中實驗 KVM。 比如我在 VMWare Workstation 中安裝了一個 Ubuntu14.04 的虛擬機,為了能讓 KVM 能創建 嵌套的虛機,要把 CPU 的虛擬化功能打開。如下圖在 VMWare 中設置以下 CPU 的模式
Ubuntu 啟動后,用以下命令確認 CPU 支持虛擬化
1
2
|
# egrep -o '(vmx|svm)' /proc/cpuinfo
# vmx
|
確認 Libvirtd 服務已經啟動
1
2
|
# service libvirt-bin status
libvirt-bin start
/running
, process 1478
|
KVM 准備就緒,下一節我們將創建虛擬機
首先通過命令 virt-manager 啟動圖形界面
1
|
# virt-manager
|
點上面的圖標創建虛機
給虛機命名為 kvm1,這里選擇從哪里啟動虛機。如果是安裝新的 OS,可以選擇第一項。如果已經有安裝好的鏡像文件,選最后一項(如上圖)
接下來需要告訴 virt-manager 鏡像的位置。
點擊 “Browser”
在我的系統中存放了一個 cirros-0.3.3-x86_64-disk.img 鏡像文件 。cirros 是一個很小的 linux 鏡像,非常適合測試用,大家可以到 http://download.cirros-cloud.net/ 下載,然后放到 /var/lib/libvirt/images/ 目錄下,這是 KVM 默認查找鏡像文件的地方。
為虛擬機分配 CPU 和內存
點擊 “Forward”, 再確認一下信息,就可以啟動虛機了。
virt-manager 會打開虛機 kvm1 的控制台窗口,可以看到啟動情況
virt-manager 可以對虛機進行各種管理操作,界面直觀友好,很容易上手。 同時我們也可以用命令 virsh 管理虛機,比如查看宿主機上的虛機
1
2
3
4
|
root@ubuntu:~
# virsh list
Id Name State
--------------------------------
8 kvm1 running
|
至此,第一個虛機已經跑起來了,采用的都是默認設置,后面我們會逐步討論有關虛機更細節的內容,比如存儲和網卡的設置。
上一節我們通過 virt-manager 在本地主機上創建並管理 KVM 虛機。其實 virt-manager 也可以管理其他宿主機上的虛機。只需要簡單的將宿主機添加進來
填入宿主機的相關信息,確定即可。
接下來,我們就可以像管理本地虛機一樣去管理遠程宿主機上的虛機了。
這里其實有一個要配置的地方。 因為 KVM(准確說是 Libvirt)默認不接受遠程管理,需要按下面的內容配置被管理宿主機中的兩個文件
/etc/default/libvirt-bin
start_libvirtd="yes" libvirtd_opts="-d -l"
/etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"
然后重啟 Libvirtd 服務就可以遠程管理了。
service libvirt-bin restart