(Centos7 安装KVM)

安装 KVM (实验环境:Ubuntu14.04 )

$ sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan
  1. qemu-kvm 和 qemu-system 是 KVM 和 QEMU 的核心包,提供 CPU、内存和 IO 虚拟化功能
  2. libvirt-bin 就是 libvirt,用于管理 KVM 等 Hypervisor
  3. virt-manager 是 KVM 图形化管理工具
  4. 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 中的us替换为cn即可

安装完成后重新启动自动进去图形化桌面

 

 启动Virt-Manager

 通过命令 virt-manager 启动图形界面

# virt-manager

 

openstack 管理 openstack 管理kvm_unix

    

openstack 管理 openstack 管理kvm_unix_02

 

给虚机命名为 kvm1,这里选择从哪里启动虚机。如果是安装新的 OS,可以选择第一项。如果已经有安装好的镜像文件,选最后一项(如上图)

接下来需要告诉 virt-manager 镜像的位置。

openstack 管理 openstack 管理kvm_图形化_03

点击 “Browser”

openstack 管理 openstack 管理kvm_unix_04

 

在我的系统中存放了一个 cirros-0.3.3-x86_64-disk.img 镜像文件 。cirros 是一个很小的 linux 镜像,非常适合测试用,大家可以到 http://download.cirros-cloud.net/ 下载,然后放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方。

 

openstack 管理 openstack 管理kvm_openstack 管理_05

为虚拟机分配 CPU 和内存

 

openstack 管理 openstack 管理kvm_ci_06

点击 “Forward”, 再确认一下信息,就可以启动虚机了。

openstack 管理 openstack 管理kvm_ci_07

irt-manager 会打开虚机 kvm1 的控制台窗口,可以看到启动情况

openstack 管理 openstack 管理kvm_ci_08

virt-manager 可以对虚机进行各种管理操作,界面直观友好,很容易上手。 同时我们也可以用命令 virsh 管理虚机,比如查看宿主机上的虚机 

root@ubuntu:~# virsh list
Id    Name              State
--------------------------------
8     kvm1              running

至此,第一个虚机已经跑起来了,采用的都是默认设置,后面我们会逐步讨论有关虚机更细节的内容,比如存储和网卡的设置。

 

KVM管理

上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机。其实 virt-manager 也可以管理其他宿主机上的虚机。只需要简单的将宿主机添加进来

openstack 管理 openstack 管理kvm_openstack 管理_09

填入宿主机的相关信息,确定即可。

openstack 管理 openstack 管理kvm_openstack 管理_10

接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了。

openstack 管理 openstack 管理kvm_ci_11

这里其实有一个要配置的地方。 因为 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

 

 

未完待续......