虚拟化可以使一台物理机上跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但是逻辑上虚拟机之间是相互隔离的。
物理机又叫宿主机(Host),宿主机上的虚拟机又叫客户机(Guest)。
虚拟化主要是通过Hypervisor实现的。Hypervisor是所有虚拟化技术的核心。
根据Hypervisor所在的位置和实现方式,虚拟化可以分为两种,1型虚拟化和2型虚拟化。
一、1型虚拟化
Hypervisor安装在物理机上,多个虚拟机在Hypervisor上运行,Hypervisor实现方式一般是一个特殊定制的Linux系统。
二、2型虚拟化
Hypervisor安装在物理机操作系统中,如Ubuntu系统、Windows系统。Hypervisor作为系统中的一个程序运行。
三、KVM安装
1. KVM基本概念
KVM的全称是Kernel-Based Virtual Machine。
KVM有一个内核模块叫kvm.ko,只用于管理虚拟CPU和内存。至于IO外设,是由Linux内核和Qemu处理。
2. Libvirt基本概念
Libvirt是KVM管理工具。同时也可以管理Xen,VirtualBox等。
Libvirt包含:
- 后台daemon程序libvirtd。Libvirtd服务进程,接受和处理API请求
- API库
- 命令行工具virsh
3. 安装KVM
玩转OpenStack的测试环境均为Ubuntu 14.04系统。使用VMware虚拟机。
安装KVM需要的软件包
# apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan
软件包简单说明:
软件包安装名称 | 说明 |
---|---|
qemu-kvm | KVM软件包,提供CPU,内存虚拟化 |
qemu-system | QEMU核心包,提供IO虚拟化 |
libvirt-bin | libvirt软件包,管理KVM |
virt-manager | KVM图形化管理工具 |
bridge-utils | Linux网桥管理工具 |
vlan | 虚拟局域网包 |
4. 检查环境
-
如果使用虚拟机安装需要打开Intel VT-x/EPT的支持。如下图VMware:
检查虚拟机是否支持虚拟化。
# egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
有返还内容说明支持虚拟化。
- 确认 Libvirtd 服务是否启动
# service libvirt-bin status
libvirt-bin start/running, process 1531
5. 安装Ubuntu图形界面
从virt-manager开始介绍KVM会比较明了,所以安装Ubuntu图形界面。
# apt-get install xinit
# apt-get install gdm
# apt-get install kubuntu-desktop
重新启动即可进入图形界面。
6. 启动ssh远程root登录
Ubuntu 默认ssh是禁止远程使用root登录的。修改/etc/ssh/sshd_config。
PermitRootLogin yes
四、创建第一个虚拟机
* 启动virt-manager
# virt-manager
* 点击1-1图中图标创建虚拟机
* 给虚拟机命名,设置启动方式,如图1-2
安装新的镜像选择第一个,一有img选择第四个。
* 选择镜像,如图1-3
可以把镜像放到/var/lib/libvirt/images/目录下,这样KVM默认查找镜像的目录
* 点击 “Forward” 进入虚拟机CPU和内存分配页面, 如图1-4
* 分配内存和CPU,如图1-5
* 分配完点击“Forward”后可以看到确认页面。如图1-6
* 最后点击“Finish”等待即可,如图1-7
至此虚拟机已经可以运行了。
使用命令virsh list
可以查看的到运行中的虚拟机
# virsh list
Id Name State
----------------------------------------------------
2 kvm running
关于virsh命令可以查看KVM的安装和使用
下一节将介绍KVM的虚拟化原理玩转OpenStack(二)虚拟化原理简介