前言:对于openstack我是一名小白,打算跟着CloudMan的《每天5分钟玩转openstack》进行学习,有兴趣的小伙伴可以跟着我一起,相互探讨,互相进步,该系列博文基本不涉及原理解读,因为不懂。基本上纯操作,跟着书籍走一遍,也不知道能不能走完。

一:虚拟化

1型虚拟化

  • Hypervisor直接安装在物理机上,可以直接操作硬件资源,Xen和VMWare的ESXi都属于这个类型

2型虚拟化

  • Hypervisor作为OS上的一个程序模块运行,即Hypervisor运行在操作系统上,通过调用操作系统封装的接口,从使用得硬件资源,KVMVirtualBoxVMWare Workstation都属于这个类型

每天5分钟openstack pdf下载 每天五分钟openstack_虚拟化

二:kvm:Kernel-Based Virtual Machine

1.基础概念:

要学习KVM就需要了解Libvirt,Libvirt是KVM的管理工具,Libvirt包含3个东西:后台daemon程序libvirtdAPI库和命令行工具virsh

  1. libvirtd是服务程序,接收和处理API请求;
  2. API库使得其他人可以开发基于Libvirt的高级工具,比如virt-manager,这是个图形化的KVM管理工具,后面我们也会介绍;
  3. virsh是我们经常要用的KVM命令行工具,后面会有使用的示例。
  4. 作为KVM和OpenStack的实施人员,virsh和virt-manager是一定要会用的。

2.环境准本

  1. ubuntu18.04

3.依赖包安装(一下操作建议切换到root用户)

  1. 安装KVM需要的包
$ sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan

qemu-kvm和qemu-system是KVM和QEMU的核心包,提供CPU、内存和IO虚拟化功能

libvirt-bin就是libvirt,用于管理KVM等Hypervisor。

virt-manager是KVM图形化管理工具。

bridge-utils和vlan,主要是网络虚拟化需要,KVM网络虚拟化的实现是基于linux-bridge和VLAN

  1. 修改/etc/ssh/sshd_config,允许root通过ssh直接登录
PermitRootLogin yes
service ssh restart ssh
  1. 开启虚拟机ubuntu18.04的cpu虚拟化
  2. 用以下命令确认CPU支持虚拟化
fatpuffer@ubuntu:~$ egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
vmx
vmx
fatpuffer@ubuntu:~$
  1. 确认Libvirtd服务已经启动
  2. 每天5分钟openstack pdf下载 每天五分钟openstack_虚拟化_02

4.下载镜像

wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
  • 将镜像移动到/var/lib/libvirt/images/目录下
mv cirros-0.3.3-x86_64-disk.img /var/lib/libvirt/images/

三:创建虚拟机方式一

  1. 通过命令virt-manager启动图形界面,然后创建虚拟机。
virt-manager

每天5分钟openstack pdf下载 每天五分钟openstack_虚拟化_03

  1. 通过virsh查看虚拟机列表
root@ubuntu:~# virsh list
 Id    Name                           State
----------------------------------------------------
 4     VM1                            running

root@ubuntu:~#
  1. 我们来看一下该kvm虚拟机是否可以和ubuntu宿主机进行通信
  • 我们发现二者是可以通信的
  1. 我们来看一下kvm虚拟机是否可以本地windows物理机通信
  • 我们可以看到kvm虚拟机是可以和ubuntu宿主机还有windows物理机进行通信,ubuntu宿主机也可以和本地windows物理机进行通信,但是本地windows物理机只能和ubuntu宿主机进行通信,并不能和kvm虚拟机进行通信。
  • 当然kvm虚拟机是可以进行上网的

四:创建虚拟机方式二

  1. 通过命令行,根据配置文件创建

1.复制VM1的磁盘映像文件

cd /var/lib/libvirt/images/
cp cirros-0.3.3-x86_64-disk.img cirros-0.3.3-x86_64-disk1.img
  1. 复制VM1的配置文件
cd /etc/libvirt/qemu/
cp VM1.xml VM2.xml
  1. 修改配置文件
vi VM2.xml

# 必须修改的地方
<name>VM2</name>
<uuid>e74f3e19-8bdf-4b8e-bb62-030cc0c98b11</uuid>
<source file='/var/lib/libvirt/images/cirros-0.3.3-x86_64-disk1.img'/>
<mac address='52:54:00:65:9f:df'/>  # 此处需注意:只能修改后三段(即后六位)

# 可选修改的地方
<memory unit='KiB'>51200</memory>
<currentMemory unit='KiB'>51200</currentMemory>
<vcpu placement='static'>1</vcpu>
  1. 创建虚拟机
virsh define /etc/libvirt/qemu/VM2.xml
  1. 重启libvirt服务
systemctl restart libvirtd
  1. 开启宿主机路由转发
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
  1. 打开kvm图形管理界面查看我们刚刚创建的VM2是否成功了
virt-manager

每天5分钟openstack pdf下载 每天五分钟openstack_ci_04

  1. 启动VM2看是否可以正常使用
virsh start VM2
  • 可以正常启动
  • 可以正常登录
  • 可以访问外网