【镜像制作】OS云主机镜像的制作——以H3C为例

一、云主机镜像简介

1.云主机镜像

云主机镜像不同于容器镜像,是一个含有引导分区、操作系统以及必要应用的单一文件,可以理解成是对整个系统安装光盘所有数据的克隆文件。云用户在创建和申请云主机时可通过选择不同的镜像来快速获取相应操作系统的云主机。
在传统的IT环境中,对于每一台主机安装系统都需要系统的镜像文件从头开始安装。但这些方式都存在以下的一些问题:当需要安装的系统数较多时,需要的时间久且效率低下;安装完成后需要对每台主机此意进行配置,如配置IP等操作;备份与恢复系统不够灵活。云环境下提供了更加高效的解决方案,就是使用镜像(Image)。Image是一个模板,里面包含了基本的操作系统和其他的软件及配置信息等。

2.镜像格式

Cloud OS 兼容CAS、VMware等虚拟化平台,其中在适配CAS 虚拟化平台时支持使用QCOW2(QEMUcopy-on-write version 2)和RAW两种格式的镜像文件。raw格式是原始镜像,会直接当作一个块设备给虚拟机来使用,至于文件里面的空洞,则是由宿主机的文件系统来管理的。qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像,也可以用一个文件的形式来表示一块固定大小的块设备磁盘。
通常一个QCOW2格式的镜像文件具有头文件、L1表、refcount表、一个或者多个refcount块、快照头、L2表和数据簇。其中L1表、refcount表和快照偷偷的第一个头为簇对齐。对于QCOW2镜像格式,磁盘设备的内容保存在簇中。每一个簇包含多个512字节的扇区。为了将给定的地址定位到簇的地址,必须要遍历L1表和L2表。L1表中存储了一组到L2表的偏移值,而L2表中存储了一组到簇的偏移值。QCOW2相对于上一代QCOW有以下不同之处:QCOW2支持快照概念,QCOW1仅支持copy-on-write镜像的概念;QCOW2中引用了引用计数的概念,并引用计数用来支持快照的概念;QCOW2中L2表总是可以占据一个单独的簇,而之前簇的大小在头l2_bits中被指定;QCOW2压缩簇的大小以扇区为单位,而非字节为单位。
QCOW2和RAW两种格式可以互相转化。与普通的 raw 格式的镜像相比,QCOW2格式的镜像有以下特性:QCOW2更小的空间占用,但RAW相比QCOW2 格式的镜像具有I/O 效率高的特点;QCOW2支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;QCOW2支持快照(snapshot),镜像文件能够包含多个快照的历史;QCOW2可选择基于 zlib 的压缩方式;QCOW2可以选择 AES 加密。

二、 glance简介

1.OpenStack简介

云管理平台基于业界标准的OpenStack, OpenStack架构具体如图2.1所示。
在这里插入图片描述

图2.1 OpenStack基础架构图
OpenStack架构中有Nova、Neutron、Horizon、Ceilometer、Keystone、Swift。其中Nova为VM提供计算资源;Glance为VM提供镜像;Cinder为VM提供块存储资源;Neutron为VM提供网络资源及网络连接;Horizon(Dashboard)与其他主要模块的关联(包括Nova,Cinder,Glance,Swift,Neutron,Keystone);通过Ceilometer(监控功能)可以监控的模块(包括Nova,Glance,Cinder,Neutron);Keystone(身份验证功能)模块可以对其他模块进行相应操作进行身份及权限验证(包括Nova,Glance,Cinder,Swift,Neutron,Ceilometer); Swift对象存储保存Cinder连接VM后所产生的备份数据及Glance提供的镜像文件。

2.glance简介

在OpenStack架构中由Glance提供镜像服务(Image Service)。
Glance架构如图2.2所示。
在这里插入图片描述

图2.2 glance结构图
glance组件中主要有glance-api、glance-registry、glance的数据库和image store。
glance-api接收REST API的请求,在功能上与nova-api十分类似,都是接收REST API请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口为9292。
glance-registry用于与MySQL数据库交互,用于提供镜像元数据相关的REST接口,通过glance-registry可以向数据库中写入或获取镜像的各种数据,glance-registry监听端口为9191。
glance的数据库中有两张表,一张是image表,另一张是image property表。Image表保存了镜像格式、大小等信息;image property表则主要保存镜像的定制化信息。
image store是一个存储的接口层,是镜像保存与获取的接口,它仅仅是一个接口层,具体的实现需要外部的存储支持,目前,支持的接口有Amazon S3、GlusterFS、Swift,sheepdog,ceph分布式存储等。

三、制作云主机镜像

本文主要介绍适用于CAS虚拟化平台的H3Cloud OS3.0制作云主机镜像的方法,下文中的例子是镜像文件是安装Windows操作系统。

1.新建虚拟机

首先在CAS管理平台新建虚拟机,若安装Windows操作系统,则在新建虚拟机页面选择对应的Windows操作系统版本;若安装Linux操作系统,则在新建虚拟机页面选择对应的Linux操作系统版本。
在这里插入图片描述

图3.1 CAS虚拟化平台新建虚拟机

2.安装操作系统

上传操作系统镜像文件至主机本地存储或共享存储,修改虚拟机,选择光驱,选择连接要安装的操作系统镜像文件。启动虚拟机并进入虚拟机控制台安装操作系统。
在这里插入图片描述

图3.2 上传操作系统文件
在这里插入图片描述

图3.3 虚拟机挂载操作系统镜像文件
注意:安装完操作系统设置账号密码时不要设有特殊字符,当密码中有特殊字符时可能导致Cloud OS系统平台无法成功新建镜像。
修改虚拟机,选择光驱,断开与操作系统镜像文件的连接。选择文件类型为CASTools,连接CASTools安装文件,进入虚拟机控制台安装CASTools。
在这里插入图片描述

图3.4 虚拟机断开操作系统镜像文件的连接
在这里插入图片描述

图3.5 虚拟机连接CASTools安装文件
安装完CASTools后,在修改虚拟机界面断开与CASTools安装文件的连接。在下载虚拟机镜像或上传虚拟机镜像前要先关闭虚拟机,避免虚拟机镜像文件的md5值发生变化。

3.下载镜像文件

在虚拟机所在的主机的default存储池中下载对应的虚拟机镜像文件,虚拟机镜像文件的使用者为对应的虚拟机,并可以看到具体镜像文件的大小,文件类型。
在这里插入图片描述

图3.6 下载制作好的虚拟机镜像文件

4.上传云主机镜像

上传云主机镜像有两种方式:本地上传和服务器上传。对于超过5G的镜像,一般通过FTP进行服务器上传。

4.1本地上传镜像文件

 进入云服务中的镜像界面,选择新建镜像,填写镜像名,选择镜像的镜像格式和虚拟化类型,选择对应的操作系统类型和版本,填写的最小磁盘的值不可以小于镜像文件的大小。上传方式选择本地上传,并从本地选择镜像,界面会提示大于5G的文件需要通过服务器来上传。

4.2服务器上传镜像文件

使用root账号登录CAS主机后台,根据在CAS页面查看到的VIP02镜像文件的目录为/vms/images,进入到该目录下并通过ll命令检验镜像文件在这个目录下。
在这里插入图片描述

图3.8 查看虚拟机镜像文件目录
在这里插入图片描述

图3.9ssh远程登录到cvk主机后台进入镜像文件所在目录下
在/vms/images目录下ftp到Cloud OS的IP,并输入pass再回车,提示“Passive mode on.”进入被动模式,再通过put vip02将虚拟机镜像文件上传至Cloud OS后台。且ftp登录用户应该为admin用户,而不是后台(root用户),否则前台可能识别不到该文件。等待1-2min至镜像上传完毕。
在这里插入图片描述

图3.10 在镜像文件目录下ftp上传镜像文件至cloudos

5.Md5值计算

Cloud OS新建镜像选择服务器上传镜像为了避免文件上传不完整需要填写md5值进行校验。对镜像文件进行md5值的计算有两种种方式:在CAS本地目录下进行镜像文件的md5值校验;下载md5值计算工具,在本地对镜像文件进行md5值的计算。将计算得到的md5值填写到新建镜像页面。

5.1 CAS后台计算md5值

在CAS本地目录下进行镜像文件的md5值校验:先进入镜像文件所在的目录,“md5sum 文件名”命令计算镜像文件的md5值。注意,需要关闭虚拟机再计算md5值,开启状态的虚拟机的镜像文件的md5值会发生变化。
在这里插入图片描述

图3.12在cvk后台对镜像文件进行md5值计算

5.2 md5计算工具计算md5值

下载md5值计算工具,在本地对镜像文件进行md5值的计算。首先在新建镜像。服务器上传下图中下载md5值计算工具,在添加本地下载的镜像文件,计算出md5值。
在这里插入图片描述

图3.14通过md5值计算工具计算镜像文件的md5值

6.Cloud OS新建云主机镜像失败原因分析

在Cloud OS新建镜像文件有时会出现任务台新建镜像已执行,但是前台页面并没有新增镜像文件的情况的出现。出现这样问题的原因是新增云主机镜像失败,任务台只会显示动作是否执行,但是并不代表任务成功。失败的原因可能有md5值不正确,glance空间不足或者用户的登录密码含有特殊字符。
当新建云主机镜像失败后,可先检查操作系统的密码是否含有特殊字符,若有,则对密码进行修改;若没有在CloudOS后台查看文件的md5值,与本地镜像通过md5值计算工具和cvk后台计算得到的md5值进行对比,若不一致,则重新进行上传;若一致,则有可能是glance空间不足。

7.Cloud OS后台文件的md5值计算

可以通过在Cloud OS的目录下找到ftp上传的文件存储路径,进入到该路径下进行md5值校验:在Cloud OS的目录下先通过“find / -name vip02 ”找到ftp上传的文件存储路径为/var/lib/ftp_server/admin,进入到该路径下进行md5值计算。若镜像上传完整,计算得到的md5值应该与前面两种方式计算得到的md5值一致。另,若是给集群模式的Cloud OS环境,在通过ftp传镜像文件到Cloud OS后台时,文件会存放在运行glance服务的节点的文件路径/var/lib/ftp_server/admin下,并不一定会存放在master节点下。
先运行source /opt/bin/common/tool.sh命令,再通过命令pod | grep glance 查看glance容器所在节点的IP。
在这里插入图片描述

图3.15 查找glance容器运行所在的节点IP
在这里插入图片描述

图3.16CloudOS后台查找ftp上传的文件并计算md5值

8.查看镜像文件的存放

完成新建镜像之后,可以在Cloud OS后台查看到在/var/lib/glance/images/目录下有了新的镜像文件,文件名即为该镜像的ID。
在这里插入图片描述

图3.17 在CloudOS后台查看新建云主机镜像信息

四、总结

本文主要介绍了云主机镜像是一个含有引导分区、操作系统以及必要应用的单一文件,是为了解决传统IT环境中需要给每台虚拟机安装操作系统,耗费时间久、效率低的背景下提出的,也介绍了镜像文件常用的格式为QCOW2,其具有占用磁盘空间小的特点。介绍了OpenStack和为虚拟机提供镜像文件的组件glance基础架构及各组件的作用。主要详细介绍了云主机镜像的制作过程及过程中的注意事项,例如在给虚拟机安装完操作系统和CASTools后,在确定CASTools运行的前提下关闭虚拟机,防止出现镜像文件的md5值发生变化而造成新增云主机镜像失败的情况;将镜像文件通过ftp上传至Cloud OS时,需要先用root账户ssh登录cvk主机,用CloudOS的前台账号(admin)进行ftp连接登录,否则前台页面可能识别不到上传上去的文件,不要混淆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux创建文件

创建文件夹: mkdir folder_name其中,folder_name是想要创建的文件夹的名称。 例如,如果想在当前目录下创建一个名为 "my_folder" 的文件夹,可以运行以下命令: mkdir my_folder如果想在特定路径下创建文件…

llvm pass

pass们组合在一起,处理IR 而最后的目标代码生成阶段,会生成另一种MIR(Machine IR) PassManager管理这些pass pass处理IR之后会改变分析的情况,这些关于IR的信息由 AnalysisManager处理 1、pass (1&…

Android studio RecyclerView 应用设计

一、创建empty activity项目: 二、打开activity_main.xml布局文件: 添加RecyclerView控件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/…

基于拓扑图与领导跟随法的编队控制算法

matlab2020可运行 https://download.csdn.net/download/ljjjjjjjjjjj/88750436

C++多线程学习[四]:多线程的通信和同步、互斥锁、超时锁、共享锁

一、多线程的状态 初始化 &#xff08;Init&#xff09;&#xff1a;该线程正在被创建。就绪 &#xff08;Ready&#xff09;&#xff1a;该线程在就绪列表中&#xff0c;等待CPU的调度。运行 &#xff08;Running&#xff09;&#xff1a;该线程正在运行。阻塞&#xff08;Bl…

[Docker] Docker为什么出现

Docker为什么出现 一款产品&#xff1a; 开发–上线 -->两套环境 | 应用配置 开发即运维&#xff01; 环境配置十分麻烦&#xff0c;每一个机器都要部署环境&#xff08;Redis, ES, Hadoop&#xff09; 费时费力 项目带上配置环境安装打包。 传统&#xff1a; 开发jar&…

spark中Rdd依赖和SparkSQL介绍--学习笔记

1&#xff0c;RDD的依赖 1.1概念 rdd的特性之一 相邻rdd之间存在依赖关系&#xff08;因果关系&#xff09; 窄依赖 每个父RDD的一个Partition最多被子RDD的一个Partition所使用 父rdd和子rdd的分区是一对一&#xff08;多对一&#xff09; 触发窄依赖的算子 map()&…

suse ha集群多节点异常重启故障案例一则

关键词 suse linux hae 、pacemakeroracle、nfs crm_failcount、timeout、trace 一、问题现象 接故障反馈&#xff0c;某业务几套suse ha集群系统&#xff0c;在某天不同时间点&#xff0c;分别发生了oracle数据库及主机异常切换重启的故障现象&#xff0c;数据库切换重启期…

(亲测可行)关于提高IDEA运行速度的方案

1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版IDEA&#xff0c;计算机内存为12GB 2.修改配置以提高IDEA运行速度的误区-调高堆内存 很多文章会教调配置的内存&#xff0c;但大多是让你调高堆内存&#xff0c;比如会让你调高-Xms -Xmx &#xff0c;这两种对应的是最…

Java实现城市桥梁道路管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统&#xff0c;支持…

LabVIEW在金属铜大气腐蚀预测评价系统中的应用

为了应对电子设备和仪器中金属铜因大气腐蚀带来的挑战&#xff0c;开发一种基于LabVIEW平台的先进预测评价系统。这个系统的设计宗旨是准确预测并评估在不同室内外环境中金属铜的腐蚀状况。我们团队在LabVIEW的强大数据处理和图形化编程支持下&#xff0c;结合实际的大气腐蚀数…

Vue实战:两种方式创建Vue项目

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 &#xff08;二&#xff09;命令行方式构建…

Linux 入门命令大全汇总 + Linux 集锦大全 【20240115】

文章目录 Linux 入门命令大全汇总Linux 集锦大全更多信息 Linux 入门命令大全汇总 别有一番风趣的alias 刚刚好合适的 apropos 命令 迷你计算器 bc 可看黄道吉日的 cal 全文可查看&#xff1a; Linux入门命令大全全文 Linux 集锦大全 linux终端中最漂亮的几款字体介绍及…

计算机网络安全教程(第三版)课后简答题答案大全[6-12章]

目录 第 6 章 网络后门与网络隐身 第 7 章 恶意代码分析与防治 第 8 章 操作系统安全基础 第 9 章 密码学与信息加密 第 10 章 防火墙与入侵检测 第 11 章 IP安全与Web安全 第 12 章 网络安全方案设计 链接&#xff1a;计算机网络安全教程(第三版)课后简答题答案大全[1-5…

设计模式 代理模式(静态代理 动态代理) 与 Spring Aop源码分析 具体是如何创建Aop代理的

代理模式 代理模式是一种结构型设计模式&#xff0c;它通过创建一个代理对象来控制对真实对象的访问。这种模式可以用于提供额外的功能操作&#xff0c;或者扩展目标对象的功能。 在代理模式中&#xff0c;代理对象与真实对象实现相同的接口&#xff0c;以便在任何地方都可以使…

系统性学习vue-组件及脚手架

书接上文 Vue组件及脚手架 初始化脚手架说明步骤 分析脚手架结构render函数修改默认配置ref属性props配置mixin 混入/混合定义混合局部混合全局混合 插件scoped样式安装less-loader 浏览器的本地存储 webStoragelocalStroage 本地存储sessionStorage 会话存储 组件自定义事件绑…

【方案】世微AP5127平均电流型LED降压恒流IC 12-50V /6V2.5A双色LED灯

这是一款双色切换的LED灯方案&#xff0c;12-50V 降压恒流,输出&#xff1a;6V 2.5A ​ 这是一款PWM工作模式 , 高效率、 外围简单、内置功率管&#xff0c;适用于 输入的 高 精度降压 LED 恒流驱动芯片。输出大功率可 达 25W&#xff0c;电流 2.5A。 可实现全亮/半亮功能切换…

重新认识Word——页眉页脚

重新认识Word——页眉页脚 节设置页脚第X页&#xff0c;共Y页 奇偶页不同页眉包含章节号清除页眉横线 我们之前已经全面的构建了我们的文章&#xff0c;现在我们来了解一下&#xff0c;我们毕业论文的页眉&#xff08;页面信息&#xff09;页脚&#xff08;页码&#xff09;的设…

遥测终端机选择要点:功能、稳定性与成本的综合考量

在当今的智能化时代&#xff0c;遥测终端机作为数据采集、传输和处理的关键设备&#xff0c;广泛应用于水利、气象、环保等领域。然而&#xff0c;面对市场上琳琅满目的遥测终端机产品&#xff0c;如何选择一款性能优良、稳定性高且成本合理的设备成为摆在用户面前的一大难题。…

Dockerfile的ADD和COPY

文章目录 环境ADD规则校验远程文件checksum添加Git仓库添加私有Git仓库ADD --link COPYCOPY --parent 使用ADD还是COPY&#xff1f;参考 环境 RHEL 9.3Docker Community 24.0.7 ADD ADD 指令把 <src> 的文件、目录、或URL链接的文件复制到 <dest> 。 ADD 有两种…