OpenStack平台镜像优化

news/2024/7/18 13:39:22 标签: openstack, 云计算

OpenStack平台镜像优化

OpenStack平台镜像优化

案例准备

1. 规划节点

根据云平台分配的主机。节点规划见表1。

表1 节点规划

IP主机名节点
192.168.200.11controller控制节点
2. 基础准备

使用云平台分配的All in one作为实验节点,本案例只讲述如何优化通过打快照方式制作的镜像。

案例实施

1. OpenStack平台制作镜像

在OpenStack平台的使用过程中,镜像是一个不可或缺的组件与服务,一般来说,使用最多的是基础镜像,比如CentOS7.5、CentOS7.6、CentOS7.9等,获取这些基础镜像的方式也很简单,可以通过官网直接下载。

当用户想使用自定义镜像的时候,可以使用OpenStack平台中打快照的方式,去制作镜像,比如想制作一个带有数据库服务的镜像,可以按照如下步骤操作:(具体操作不再演示)

(1)启动一个基础的CentOS镜像;

(2)连接虚拟机,配置Yum源;

(3)安装数据库服务;

(4)初始化数据库;

(5)设置开机自启;

(6)在OpenStack平台中将该虚拟机实例打成快照;

(7)在控制节点的镜像和快照存放目录/var/lib/glance/images目录下找到这个镜像文件,改名成mysql.qcow2;

通过上述的方法打快照制作镜像,可以获得一个mysql.qcow2的镜像文件,使用该文件上传至其他云平台中,今后使用该镜像启动的虚拟机,就带有数据库服务了。

2. OpenStack平台镜像优化

在使用打快照方式制作镜像后,镜像的大小会变得非常大,比如一个基础的CentOS镜像大小为400M左右,但是使用打快照方式制作的镜像大小会有1个G左右,具体的大小还要根据安装的东西来实际情况实际分析。

qemu-img命令中提供一个可用于镜像转换与压缩的选项,即qemu-img convert。接下来使用该命令,对已经打快照完成的镜像进行压缩操作。

使用提供的镜像CentOS7.5-compress.qcow2,下载至controller节点的/root目录下,查看镜像的大小,命令如下:

[root@controller ~]# curl -O #下载链接
[root@controller ~]# du -sh CentOS7.5-compress.qcow2
892M  CentOS7.5-compress.qcow2

可以看到当前的镜像大小为892M,接下来使用命令,对镜像进行压缩,命令如下:

[root@controller ~]# qemu-img convert -c -O qcow2 CentOS7.5-compress.qcow2 CentOS7.5-compress2.qcow2

该命令参数的解释如下:

● -c:压缩。

● -O qcow2:输出格式为 qcow2。

● CentOS7.5-compress.qcow2:被压缩的文件。

● CentOS7.5-compress2.qcow2:压缩完成后文件。

等待一小段时间后,压缩完成,查看当前目录下CentOS7.5-compress2.qcow2镜像文件的大小,命令如下:

[root@controller ~]# du -sh CentOS7.5-compress2.qcow2 
405M  CentOS7.5-compress2.qcow2

可以看到镜像大概被压缩到了一半的大小。使用qemu-img convert命令可以压缩QCW2镜像,在日常的工作中,经常会用到此命令进行镜像压缩。


http://www.niftyadmin.cn/n/5359104.html

相关文章

论文阅读-一个用于云计算中自我优化的通用工作负载预测框架,

论文标题:A Self-Optimized Generic Workload Prediction Framework for Cloud Computing 概述 准确地预测未来的工作负载,如作业到达率和用户请求率,对于云计算中的资源管理和弹性非常关键。然而,设计一个通用的工作负载预测器…

字节二面:Spring Boot Redis 可重入分布式锁实现原理?

我是码哥,可以叫我靓仔。 书接上回,码哥上一篇《纠正误区:这才是 SpringBoot Redis 分布式锁的正确实现方式》分享了分布式锁如何从错误到残缺,再到青铜版本的高性能 Redis 分布式锁代码实战,让你一飞冲天。 这是我们最…

倒计时67天

复习。 一.倒计时79天-CSDN博客 1. #include<bits/stdc.h> using namespace std; #define int long long const int N3e45; const int inf0x3f3f3f3f; int month[13]{0,31,28,31,30,31,30,31,31,30,31,30,31}; void solve() {int a[110]{},cn0;for(int i0;i<100;i)…

使用 netty实现一个简单的聊天室

具体原理&#xff1a; 登录之后服务端把channel和用户名绑定放到集合中&#xff0c; 之后聊天等请求都根据用户名发送到对应的chaael 以下仅展示部分源码&#xff0c;详情请下载以上文件 这里写目录标题 登录接口会话管理接口聊天组会话管理接口服务端和客户端聊天室业务-单聊登…

vue3-深入组件-插槽

插槽 Slots 组件用来接收模板内容 插槽内容与出口 <slot> 元素是一个插槽出口 (slot outlet),&#xff0c;标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。 插槽内容可以是任意合法的模板内容&#xff0c;不局限于文本。例如我们可以传入多个元素&#xff0…

《区块链简易速速上手小册》第10章:区块链的未来与趋势(2024 最新版)

文章目录 10.1 区块链的未来展望10.1.1 基础知识10.1.2 主要案例&#xff1a;区块链在金融领域的发展10.1.3 拓展案例 1&#xff1a;区块链在供应链管理中的应用10.1.4 拓展案例 2&#xff1a;区块链在身份管理和隐私保护中的应用 10.2 新兴技术与区块链的融合10.2.1 基础知识1…

【golang】13、viper 配置库 | 配置文件读写 | 使用方式 | 源码逻辑分析

文章目录 一、使用方式1.1 特性1.2 优势1.3 设置1.3.1 默认值1.3.2 配置文件1.3.3 写配置文件1.3.4 监听配置文件变化1.3.5 从 io.Reader 读配置1.3.6 Setting Overrides1.3.7 使用 Alias1.3.8 环境变量1.3.9 命令行 Flags1.3.8.1 Flag 接口 1.3.9 配置中心1.3.9.1 未加密1.3.9…

【LVGL源码移植】

LVGL源码移植 ■ LVGL源码移植一&#xff1a;下载LVGL源码二&#xff1a;修改LVGL文件夹1: 将这5个文件&#xff0c;复制到一个新的文件夹2: 简化文件&#xff0c;减少内存消耗&#xff08;去除不必要的文件&#xff09;3: 为了规范化&#xff0c;我们将下列文件进行重命名 三&…