前言:对于openstack我是一名小白,打算跟着CloudMan的《每天5分钟玩转openstack》进行学习,有兴趣的小伙伴可以跟着我一起,相互探讨,互相进步,该系列博文基本不涉及原理解读,因为不懂。基本上纯操作,跟着书籍走一遍,也不知道能不能走完。
一:虚拟化
1型虚拟化
- Hypervisor直接安装在物理机上,可以直接操作硬件资源,
Xen
和VMWare的ESXi
都属于这个类型
2型虚拟化
- Hypervisor作为OS上的一个
程序
模块运行,即Hypervisor运行在操作系统上,通过调用操作系统封装的接口,从使用得硬件资源,KVM
、VirtualBox
和VMWare Workstation
都属于这个类型
二:kvm:Kernel-Based Virtual Machine
1.基础概念:
要学习KVM
就需要了解Libvirt
,Libvirt是KVM的管理工具,Libvirt包含3个东西:后台daemon程序libvirtd
、API
库和命令行工具virsh
- libvirtd是服务程序,接收和处理API请求;
- API库使得其他人可以开发基于Libvirt的高级工具,比如virt-manager,这是个图形化的KVM管理工具,后面我们也会介绍;
- virsh是我们经常要用的KVM命令行工具,后面会有使用的示例。
- 作为KVM和OpenStack的实施人员,virsh和virt-manager是一定要会用的。
2.环境准本
- ubuntu18.04
3.依赖包安装(一下操作建议切换到root用户)
- 安装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
- 修改
/etc/ssh/sshd_config
,允许root通过ssh直接登录
PermitRootLogin yes
service ssh restart ssh
- 开启虚拟机ubuntu18.04的cpu虚拟化
- 用以下命令确认CPU支持虚拟化
fatpuffer@ubuntu:~$ egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
vmx
vmx
fatpuffer@ubuntu:~$
- 确认Libvirtd服务已经启动
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/
三:创建虚拟机方式一
- 通过命令virt-manager启动图形界面,然后创建虚拟机。
virt-manager
- 通过virsh查看虚拟机列表
root@ubuntu:~# virsh list
Id Name State
----------------------------------------------------
4 VM1 running
root@ubuntu:~#
- 我们来看一下该kvm虚拟机是否可以和ubuntu宿主机进行通信
- 我们发现二者是可以通信的
- 我们来看一下kvm虚拟机是否可以本地windows物理机通信
- 我们可以看到
kvm虚拟机
是可以和ubuntu宿主
机还有windows物理机
进行通信,ubuntu宿主机也可以和本地windows物理机进行通信,但是本地windows物理机只能和ubuntu宿主机进行通信,并不能和kvm虚拟机进行通信。 - 当然kvm虚拟机是可以进行上网的
四:创建虚拟机方式二
- 通过命令行,根据配置文件创建
1.复制VM1的磁盘映像文件
cd /var/lib/libvirt/images/
cp cirros-0.3.3-x86_64-disk.img cirros-0.3.3-x86_64-disk1.img
- 复制VM1的配置文件
cd /etc/libvirt/qemu/
cp VM1.xml VM2.xml
- 修改配置文件
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>
- 创建虚拟机
virsh define /etc/libvirt/qemu/VM2.xml
- 重启libvirt服务
systemctl restart libvirtd
- 开启宿主机路由转发
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
- 打开kvm图形管理界面查看我们刚刚创建的VM2是否成功了
virt-manager
- 启动VM2看是否可以正常使用
virsh start VM2
- 可以正常启动
- 可以正常登录
- 可以访问外网