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 准备就绪,下一节我们将创建虚拟机
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