一、镜像封装
目前我们只有一个测试镜像,接下来我们去构建一个镜像
点击虚拟机镜像指导手册:点击
点击centOS镜像
通过图像化方式virt-manager管理虚拟机;
通过ISO安装
封装的是7.6版本的
选择内存和CPU
选择磁盘镜像
起名为nova,点击运行
进入后修改时区,禁用KDUMP
选择自定义分区
只需要一个根分区即可
7.6版本默认是xfs文件系统
赋予超户密码,点击安装
按e,进行以下设定(禁用selinux),之后按ctrl-x开始引导
编辑selinux配置文件
禁用selinux
可以看到selinux已经被禁用,还需要关闭防火墙(systemctl disable --now firewalld)
编辑网卡配置文件(dhcp网络协议)
手动添加一个ip地址
宿主机可以进行远程连接
rhel7.6的镜像在宿主机的Apache发布目录下
配置yum源文件
安装ACPID服务,要使hypervisor能够重新启动或关闭实例(云主机);
并配置其在系统启动时自动启动。
配置以获取元数据实例必须与元数据服务交互,以便在启动时执行几个任务。例如,实例必须获取ssh公钥并运行用户数据脚本。要确保实例执行这些任务,需要安装:
1、cloud-init (云主机初始化),它是Ubuntu cloud-init包的一个端口;
2、cloud-utis-growpart,允许分区调整大小为了正确调整根分区的大小,其中包含允许使用cloud-init调整磁盘大小的适当工具。
编辑/etc/cloud/cloud. cfg文件
禁用zero conf路由对于访问元数据服务的实例
修改grub
加入以下控制台参数,可以看到云主机的引导日志
关机,一旦关机就不要再启动
在宿主机清理虚拟机临时及缓存文件
可以看到此时母镜像为5.1G
继续对母镜像进行压缩操作,输出到宿主机Apache默认发布目录
此时压缩后的母镜像只有538M,便于推送到openstack云计算平台
以admin用户身份登陆,点击创建镜像
设置如下(表示在运行nova镜像时至少需要5G的磁盘和512M内存),点击创建镜像
之后点击云主机类型,选择创建云主机类型
创建成功
接下来用demo用户身份登陆,点击云主机,选择创建云主机
选择镜像
选择类型
选择网络
选择安全组
导入密钥对
创建成功,点击最右侧的倒三角,选择控制台
可以看到云主机的启动日志
进入系统,root用户登陆,可以看到分配到的ip是10.0.0.4
点击绑定浮动ip,自动分配一个公共网络的ip
使用cloud-user用户身份登陆云主机;
su 切换到root用户
可以看到磁盘被动态拉伸了(封装的时候是5G–> 10G)
二、块存储服务
1.简介
OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷。此服务也会激活管理卷的快照和卷类型的功能。
块存储服务通常包含下列组件:
- cinder-api
接受API请求,并将其路由到cinder-volume
执行。 - cinder-volume
与块存储服务和例如cinder-scheduler
的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。cinder-volume
服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。 - cinder-scheduler守护进程
选择最优存储提供节点来创建卷。其与nova-scheduler
组件类似。 - cinder-backup守护进程
cinder-backup
服务提供任何种类备份卷到一个备份存储提供者。就像cinder-volume
服务,它与多种存储提供者在驱动架构下进行交互。 - 消息队列
在块存储的进程之间路由信息。
2.环境部署
新创建一个虚拟机server7,再添加一块20G的虚拟磁盘
重新设置主机名,为块存储节点
加入域名解析
3.安装并配置控制节点
接下来,首先在控制节点上安装和配置块设备存储服务,即 cinder。这个服务需要至少一个额外的存储节点,以向实例提供卷。在安装和配置块存储服务之前,必须创建数据库、服务证书和API端点。
完成下面的步骤以创建数据库:
控制节点使用admin用户身份,用数据库连接客户端以 root 用户连接到数据库服务器;
创建 cinder 数据库;
允许 cinder 数据库合适的访问权限
要创建服务证书,完成这些步骤:
创建一个 cinder 用户
添加 admin 角色到 cinder 用户上;
创建 cinder 和 cinderv2 服务实体(块设备存储服务要求两个服务实体)
创建块设备存储服务的 API 入口点
安全并配置组件:
安装软件包
编辑 /etc/cinder/cinder.conf
在 [database] 部分,配置数据库访问
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
在 [DEFAULT 部分,配置my_ip
来使用控制节点的管理接口的IP 地址
在 [oslo_concurrency] 部分,配置锁路径:
初始化块设备服务的数据库
配置计算节点以使用块设备存储,编辑文件 /etc/nova/nova.conf
重启计算API 服务;
启动块设备存储服务,并将其配置为开机自启:
4.安装并配置一个存储节点
安装支持的工具包:
安装 LVM 包(存储节点通过LVM方式创建卷),启动LVM的metadata服务并且设置该服务随系统启动:
查看磁盘信息
创建LVM 物理卷;
创建 LVM 卷组 ;
vgs命令用于显示有关卷组的信息
编辑/etc/lvm/lvm.conf
文件
在devices
部分,添加一个过滤器,只接受/dev/vda,/dev/vdb
设备(只有vda,vdb设备可以使用lvm),拒绝其他所有设备
为块存储节点配置yum源
更新包
安装时间同步服务
与宿主机时间同步
启动服务
同步成功
安装软件包
编辑 /etc/cinder/cinder.conf
在 [database] 部分,配置数据库访问
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问
在 [DEFAULT] 部分,配置 my_ip 选项
在[lvm]
部分(文件最后),配置LVM后端以LVM驱动结束,卷组cinder-volumes
,iSCSI 协议和正确的 iSCSI服务
在 [DEFAULT] 部分,启用 LVM 后端;
配置镜像服务 API 的位置
在 [oslo_concurrency] 部分,配置锁路径
启动块存储卷服务及其依赖的服务,并将其配置为随系统启动
5.验证操作
列出服务组件以验证是否每个进程都成功启动
通过demo用户身份登陆,此时可以看到有卷出现
点击创建云硬盘
点击管理连接
连接到云主机vm3
连接成功
打开云主机vm3,可以看到2G的云磁盘
可以在块存储节点上看到,已经从卷组中动态划分出2G,然后通过ISSCIS协议连接到云主机上
将磁盘格式化
创建目录/data,进行挂载
在目录中导入一些文件
首先卸载/data
点击分离云硬盘
点击扩展云硬盘
扩展到6G
可以看到已经扩展成6G
点击管理连接
进行连接
可以看到磁盘已经扩展成6G
进行挂载,但是挂载后还是2G(拉伸的只是逻辑大小,格式化后文件系统并没有被拉伸,拉伸的只是lvm(逻辑卷))
进行文件系统拉伸
此时挂载后也是6G