金鱼哥RHCA回忆录:CL210管理存储--实现块存储

举报
金鱼哥 发表于 2022/07/22 17:33:30 2022/07/22
【摘要】 第五章 管理存储--实现块存储

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


📜在红帽OPENSTACK平台的存储

Red Hat OpenStack平台支持广泛的存储选项,从简单的后端和直接连接存储(DAS)到最大的企业存储区域网络(SAN)和网络连接存储(NAS)设备和硬件。管理员可以根据成本、性能、可伸缩性、可扩展性、现有基础设施重用和配置的易用性来选择解决方案,配置范围从最小的概念验证配置到大规模分布式集群。

Red Hat OpenStack平台提供了三种类型的持久性存储:块存储、对象存储和基于文件的存储。本节将讨论块存储,后面将讨论基于对象和文件的存储。块存储提供块设备,它可以以多种方式构造使用,与传统企业计算中的实践相同。块设备可用于构建可挂载的文件系统、nfs共享卷、原始数据库设备文件,并用作可引导的系统磁盘。

在特定的用例中,计算节点可以与用于块存储的本地磁盘(DAS)相匹配。通常,对于大多数云用例,不推荐使用本地计算节点磁盘,因为它们不容易支持必需的云概念,比如可伸缩性、冗余,以及在计算节点之间执行动态迁移而不需要基于块的复制的能力。然而,直接附加计算节点存储也有很多重要的情况,特别是使用 ssd。一个例子是基于云的数据库,在这种数据库中,部署的应用程序变得冗余和有弹性,不是通过将实例连接到共享存储,而是通过跨连接到多个实例中的每个实例的ssd集群数据库。


注意:新的OpenStack管理员经常误解计算服务的临时存储等同于本地计算节点直接连接的磁盘存储。在OpenStack的早期版本中,本地磁盘存储是唯一支持临时存储的配置,但是现在几乎所有块存储选择都可以支持临时虚拟设备,当实例终止时,虚拟设备会被销毁。本章后面的章节将对临时存储和持久存储概念进行解释和比较。


📜块存储的选择

块存储是在OpenStack中由块存储服务(cinder)实现的,允许用户以卷的形式访问块存储设备。卷是持久性的,这意味着它们可以被附加、分离和重新附加到一个或另一个实例,而存储的数据保持不变。

块存储服务使用块存储驱动程序来支持不同的后端,每个后端都设计为支持共享的社区或特定于供应商的存储解决方案。许多企业硬件解决方案都得到其供应商的支持,从而允许实例直接访问。

后端物理块设备在读/写方面获得最高性能I/O。但是,现在很常见地支持将文件作为卷使用,常用NFS、GlusterFS和CephFS。

Red Hat OpenStack平台支持多种商品存储后端技术,可以通过多种不同的组合实现。


📑LVM和iSCSI

基于linux的逻辑卷管理器(Logical Volume Manager, LVM)将本地物理磁盘作为逻辑卷公开给操作系统。LVM后端将块存储实现为LVM逻辑分区。每个实现LVM的计算主机必须有一个专门用于块存储服务的卷组。尽管LVM是块存储服务的默认后端,但Red Hat不支持生产环境中的LVM,建议仅在测试环境中使用它。远程LVM设备通常使用iSCSI网络协议传输。尽管与其他存储后端技术相比,实现网络连接的成本更低,因为iSCSI不需要主机总线适配器(HBA)或特定存储的网络设备,但Red Hat不支持生产环境中的ISCSI。


📑红帽Ceph存储

红帽Ceph存储提供PB级存储,可以配置在一个高度弹性和冗余的架构中。Ceph支持对象存储API作为对象服务(swift),并且可以作为块存储服务(cinder)和镜像服务(glance)的后端。Ceph还支持通过NFS和分布式文件系统接口CephFS访问卷。


📑NFS

通过使用网络文件系统(NFS)文件系统协议,文件客户端可以挂载远程文件系统,并使用远程过程调用(RPC)访问内容,文件被用作块设备卷。通过使用共享的nic和传统的网络,NFS具有成本优势。这与其他云设计块服务后端(如Ceph或Gluster)相比,虽然更简单,但NFS可能并没有表现出最好的吞吐量或最低的延迟。


📑特定于供应商的存储

受支持的存储硬件供应商为红帽OpenStack平台服务提供驱动程序,以使用他们的存储基础设施作为后端。“红帽”不提供对供应商特定存储的支持;合作存储提供商直接支持它们的产品。


📜红帽CEPH存储架构

Red Hat Ceph存储被设计为提供企业级的、软件定义的存储解决方案,可扩展到多PB级,使用基于行业标准硬件和存储设备的服务器。

Ceph基于模块化和分布式架构,包含以下元素:

  • 对象存储后端,称为RADOS (可靠自主分布式对象存储)

  • 多种与RADOS交互的访问方法

RADOS是一种自修复和自管理的基于软件的对象存储。

在这里插入图片描述

图5.1:Ceph集群RADOS后端


📜CEPH的术语

📑Ceph集群

一组节点,以确保红帽Ceph存储系统的持续可操作性。/etc/ceph/cephd.conf配置文件定义了集群设置。


📑节点

节点可以是任何机器,其中有任何活动的Ceph组件。节点是多种类型的节点,如管理节点、监控节点和存储节点。节点的角色取决于活动的组件。


📑池

池是Ceph存储集群的逻辑分区,用于在公共名称标记下存储对象。每个池被分配特定数量的散列桶,以将对象分组在一起进行存储。这些散列桶称为放置组Placement Groups (PGs)。


📑放置组Placement Groups

放置组(PG) 生成一系列对象到一个散列桶或组中,并映射到一组对象存储设备(osd)。一个对象只属于一个PG,属于同一PG的所有对象返回相同的散列结果。


📜CEPH存储后端组件

RADOS, Ceph存储后端,基于以下守护进程,可以扩展以满足架构部署的需求:

  • 监视器(MONs),维护集群状态的映射,用于帮助其他守护进程相互协调。

  • 对象存储设备(OSDs),用于存储数据并处理数据复制、恢复和再平衡。

  • 管理器(MGRs),它跟踪运行时指标并通过web Ul仪表板和REST API公开集群信息。

  • 元数据服务器(MDSs),存储CephFS使用的元数据(但不是对象存储或块存储),以允许客户端有效地执行POSIX命令。


下图显示了这些组件在overcloud节点上使用通用角色的分布情况。

在这里插入图片描述

图5.2:Ceph组件在overcloud节点上的布局


📜CEPHX身份验证

在Red Hat Ceph存储集群中,用户用于授权集群中的客户机、应用程序和守护进程之间的通信。为了安全地对这些用户进行身份验证,Ceph使用基于共享密钥的cephx身份验证协议。

安装过程默认启用cephx,因此Red Hat Ceph存储集群需要所有客户端应用程序进行身份验证和适当的授权。


Ceph使用用户帐户有几个目的:

  • 用于Ceph守护进程之间的内部通信

  • 用于通过librados库访问存储集群的客户端应用程序

  • Ceph管理员


Ceph守护进程使用的帐户具有与相关守护进程相匹配的名称:osd.1或mgr.serverc。Ansible Playbook在安装过程中创建它们。

使用librados的客户端应用程序使用的帐户名称以client开头。例如,当用ceph整合OpenStack时,通常会创建专用的client.openstack用户帐户。另外,当Ansible部署Ceph对象网关时,它会创建一个名为client.rgw.hostname的专用帐户。最后,如果您正在librados之上开发定制软件,您还应该为它创建一个具有适当功能的特定帐户。

管理员使用的帐户名称也以client开头。在运行ceph和rados等命令时使用。安装程序创建超级用户帐户客户端。管理员,具有允许访问所有内容和修改集群配置的功能。Ceph使用client.admin在没有显式指定带有–name或–id选项的用户名的情况下运行管理命令时。

支持Ceph的应用程序的最终用户在Red Hat Ceph存储集群上没有帐户。相反,他们访问应用程序,然后应用程序代表他们访问Ceph。

从Ceph的角度来看,应用程序就是客户端。应用程序可以通过其他机制提供自己的终端用户身份验证。


📑钥匙环文件

为了进行身份验证,客户机必须与cephx用户名和包含用户密钥的密匙环文件相匹配。cephx用户需要这个密钥环文件来访问Red Hat Ceph存储集群。

Ceph自动为您创建的每个用户帐户生成密钥环文件。但是,您仍然需要将该文件复制到需要它的客户机系统或应用程序服务器。

在这些客户机系统上,librados使用来自/etc/ceph/ceph.conf配置文件的密匙环参数来定位密匙环文件。它的默认值是/etc/ceph/ c l u s t e r . cluster. name.keyring。例如,对于客户端。openstack帐户,密钥环文件是/etc/ceph/ceph.client.openstack.keyring。

密钥环文件将密钥存储为纯文本。必须使用适当的Linux文件权限来保护它,以便只有需要访问的Linux用户才能读取它。仅在需要进行身份验证的系统上为cephx用户部署密钥环文件。


注意:cephx协议不以纯文本的形式传输共享密钥。相反,客户机从监视器请求其用户的会话密钥,监视器将其提供给使用客户机的共享密钥加密的客户机。如果客户端知道它的秘密密钥。它可以解密会话密钥并使用会话密钥请求来自的凭据要对cluster守护进程进行身份验证的监视器。这类似于Kerberos协议的工作方式,cephx密钥环文件相当于Kerberos keytab文件。


命令行工具

使用命令行工具(如cephradosrbd),管理员可以指定用户帐户和密钥环文件,并使用–id和–keyring选项。没有它们,命令就被验证为client.admin用户。

例如,下面的ceph命令验证为客户端。operator3列出可用的池:

在这里插入图片描述

重要:使用–id选项时使用前缀时,你不能把客户端包括在内。–id选项自动假设使用了该前缀。作为一种替代方法,您可以使用–name选项,它需要client. 前缀。

如果将密钥环文件存储在其默认位置,则不需要–keyring选项。


📜CEPHX授权

当您创建一个新的用户帐户时,您需要授予它权限来控制该用户在Red Hat Ceph Storaqe集群中被授权做什么。cephx中的权限称为功能,您可以根据守护进程类型(mon、osd、mgr或mds)对其进行授权。

您可以使用功能来限制对池、池的命名空间或一组基于应用程序标记的池中的数据的访问。它们还允许Red Hat Ceph存储集群中的守护进程彼此交互


📑Cephx功能

在cephx中,对于每种守护进程类型,有几种功能可用:

  • r 授予读权限。每个用户帐户至少应该对监视器具有读访问权限,以便能够检索碾压图。

  • w授予写权限。客户端需要写访问权限来存储和修改OSDs上的对象。对于管理器(MGRs), w授予启用或禁用模块的权限。

  • x授予执行扩展对象类的授权。这允许客户端对对象执行额外的操作,比如使用rados lock get设置锁,或者使用dbd list列出RBD映像。

    • 允许完全访问。
  • class-read和class-write是x的子集。它们主要用于RBD使用的池。


📜用户管理

📑列出用户及其功能

要列出现有的用户帐户,使用ceph auth list命令:

在这里插入图片描述

要获得一个特定帐户的详细信息,使用ceph auth get命令:

在这里插入图片描述

您也可以打印密钥如下:

在这里插入图片描述


📑创建新用户帐户

ceph auth get-or-create命令创建一个新的用户帐户并生成它的密钥。

该命令默认情况下将此密钥打印到stdout,因此通常使用大于符号(>)重定向命令输出,以将其保存在一个密钥环文件中。

下面的示例创建具有对所有池读写访问权的application1用户帐户,并将密钥环文件存储为/etc/ceph/ ceph.client.application1.keyring。如果您省略了这些功能,用户将对任何池没有任何权限。它们仍然可以进行身份验证,但不能访问任何池。您可以稍后根据需要添加所需的功能。

在这里插入图片描述

记住,身份验证需要密钥环文件,因此必须将其复制到使用这个新用户帐户的所有客户机系统。


📜OPENSTACK镜像服务与红帽CEPH存储

下表列出了镜像服务用于利用Red Hat Ceph存储作为后端存储提供者来存储其镜像的参数。这些参数出现在配置文件(/etc/glance/glance-api.conf)中的[glance-store] INI部分下。

参数 目的
default_store 默认的对象存储最初设置为file来存储本地文件系统上的镜像。将其设置为rbd,以使用Ceph作为镜像后端存储提供程序。
stores 列出镜像服务知道的存储后端。
rbd_store_user 指定用于集群身份验证的cephx用户。
rbd store_pool 设置Ceph池名称以适应实例镜像。
rbd_store_ceph_conf 设置Ceph配置文件的路径。
rbd_store_chunk_size 镜像以这种大小的块(以兆字节为单位)进行处理。默认值是8。

📜OPENSTACK块存储服务与红帽CEPH存储

下表列出了帮助块存储服务使用Red Hat Ceph存储作为后端存储提供者来存储其卷的参数。全局参数出现在配置文件(/etc/cinder/cinder.conf)中的 [DEFAULT] INI部分)。后端特定参数出现在与指定后端同名的INI部分下。

参数 目的
enabled_backends 为块存储服务启用一个或多个存储后端的全局参数。该参数的值应该与volume_backend_name参数的值匹配。可以指定以逗号分隔的后端名称列表。
volume_backend_name 将任意名称与存储系统的特定驱动程序绑定。在整个配置文件中使用相同的名称来寻址存储后端。
volume_driver 设置存储系统驱动程序。
rbd_ceph_conf 设置Ceph配置文件的路径。
rbd_user 将cephx设置为用户的身份验证。
rbd_pool 设置Ceph池的名称以容纳卷。

📜查看CEPH集群状态

本节描述了如何查看Ceph集群状态的各个方面。


📑查看管理组件的状态

在管理节点上运行以下命令,以查看Ceph集群的管理组件的状态。

在这里插入图片描述

前面的输出显示Ceph Manager和Ceph Monitor服务正在运行。Ceph Manager服务提供集群统计信息的收集。在Ceph的早期版本中,大多数这些统计数据是由监视器收集和维护的,这使得它们在大型集群部署中过载。为了解决这个问题,集群统计信息的收集现在由Ceph Manager处理。管理器守护进程集中访问从集群收集的所有数据,并可以TCP端口7000上的存储管理员提供一个简单的web仪表板(默认情况下)。

Ceph Monitor服务维护集群映射(记录)的主副本。集群映射提供关于集群状态及其配置的详细信息。大多数Ceph监视器节点应该在集群映射更新时达成一致,以建立关于集群状态的一致意见。以确保在监督员投票时获得绝对多数群集,群集必须配置奇数个监视器。这还意味着,要使Ceph存储集群可操作和可访问,半数以上配置的监视器必须是正常的。如果活动监控器的数量低于这个阈值,那么所有客户端都将无法访问整个集群。这对于保护集群数据的完整性是必要的。


📑查看存储组件的状态

在存储节点上运行以下命令,查看Ceph集群的存储组件的状态。

在这里插入图片描述

前面的输出显示,对于每个vdb、vdc和vdd存储设备,都有三个正在运行的对象存储设备(OSDs)实例。Ceph对象存储设备(osd)是Ceph存储集群的构建块。OSDs将存储设备(如硬盘或其他块设备)连接到Ceph存储集群。每个存储设备都使用标准的文件系统类型(如XFS)进行格式化。单个存储服务器可以在多个设备的基础上运行多个OSD守护进程,并向集群提供多个OSD。


📑查看Ceph集群的状态

在管理节点上运行以下命令以查看Ceph集群的状态。

在这里插入图片描述

请注意,集群具有唯一标识符817893a8-b2f5-11e8-8087-52540001fac8。运行状态OK表示Ceph集群的运行状况状态。其他可能的值是健康警告和健康错误。运行状况警告状态可能表明集群中的一个osd已经失败。但是,这并不意味着整个集群都是错误的。

当运行正常的OSD替换错误的OSD时,在执行下一次运行状况检查时,状态返回到运行正常状态OK。运行状况ERR状态表明Ceph集群是错误的。在这种状态下,集群不允许进一步的l/0操作。管理员必须进行干预并诊断错误的原因。网络中断、集群达到最大容量以及其他问题都可能导致这种状态

前面的输出显示集群中只有一个监视器节点(控制器)。因此,它选择自己作为集群的主要监控节点。在理想情况下,您将看到至少有三个监视器节点,其中大多数都同意选择一个特定的监视器节点作为集群的主要监视器节点。注意,前面的输出提到Ceph Manager服务在controller中处于活动状态。Ceph元数据服务在控制器中处于活动状态。还要注意,有三个OSD实例表明集群可以识别三个存储设备,而且它们都是活动的。


重要:红帽Ceph Storage 3只支持在一个时间一个活动MDS。所有其他的部署MDSes必须处于备用模式才能提供高可用性。如果活动MDS失败。一个备用MDSes接管。同时激活多个MDSes是一种实验性特性,不建议用于生产。要验证活动MDS守护进程的数量,可以使用ceph fs status命令。下面的命令验证名为CephFS的CephFS文件系统的活动MDS守护进程的数量:

在这里插入图片描述

eph -s命令的输出显示了ceph集群的状态,显示了集群中有7个池和416个放置组。放置组的干净状态有助于集群的健康状态。请注意对象的数量及其占用的空间。您可能还会注意到Ceph集群的使用统计数据。


📜管理ceph支持的持久卷

本节描述Ceph支持的持久卷的管理。


📑检查运行状况和配置设置

如果您想使用Red Hat Ceph存储系统作为块存储服务的后端存储提供者,您应该首先检查Ceph集群的运行状况。如果Ceph集群是健康的,那么您应该检查块存储服务的配置设置。块存储服务的配置设置应该类似如下:

在这里插入图片描述

如果您同时有多个活动的块存储服务后端,那么您需要创建一个卷类型并将其绑定到适当的存储后端。租户用户可以通过设置volume_backend_name键将卷类型与特定存储后端绑定到该后端块存储服务配置设置中的相同值。在设置volume_backend_name属性之前,检查块存储服务的设置,以确定参数的值。这种将卷类型与存储后端绑定的方式允许租户用户在创建卷以使用特定存储后端时选择卷类型。要创建卷类型,请以管理用户身份运行以下命令。

在这里插入图片描述

运行以下命令创建一个cephvoltype卷类型的空持久卷。

在这里插入图片描述

运行以下命令来验证卷的可用性。

在这里插入图片描述

确认Ceph池中存在一个对象,该对象具有匹配的惟一标识符作为卷。

在这里插入图片描述

运行以下命令创建另一个持久卷,作为使用现有rhel7映像的实例的根文件系统。

在这里插入图片描述

重要:卷的大小取决于镜像请求。在创建卷之前,始终检查镜像磁盘的需求。使用openstack image show <image_name>命令来查看镜像细节。


验证是否在Ceph池中创建了一个新对象来表示新卷。

在这里插入图片描述


📜介绍CINDER MULTI-ATTACH

Red Hat OpenStack平台支持使用读写附件或只读附件同时将持久块存储卷附加到多个实例。卷multi-attach允许多个实例连接到一个卷,从而更快地将故障转移到备用实例。具有两个节点(一个是活动节点,一个是被动节点)的集群应用程序。两者都需要访问相同的卷,尽管只有一个是主动访问的。当主动的人倒下时,被动的人可以迅速接管并访问数据。

尽管块设备可以配置为multi-attach访问,但这些卷上的文件系统一次只能挂载到一个系统,以避免文件系统损坏。在实例之间的故障转移期间,必须在挂载到第二个实例之前在失败的实例上卸载文件系统。OpenStack不支持使用GFS集群文件系统等遗留解决方案。


📑创建一个支持multi-attach的卷

创建一个支持多连接的卷涉及三个步骤。

作为管理用户,创建卷类型。

在这里插入图片描述

作为管理用户,将卷类型multiattach键设置为“<is> True”。

在这里插入图片描述

为定义的类型创建一个卷。

在这里插入图片描述


当前特征的multi-attach卷特征包括:

  • 当多附加卷处于使用(in-use)状态时,您不能更改它的类型。在更改卷的类型之前,卷状态必须是可用的。

  • 红帽Ceph存储目前不支持多附加功能,但它正在开发中。其他块存储后端已经支持多连接。

  • 辅助卷附件还不能使用附加模式。默认情况下,所有辅助附件都是读/写模式,这可能会导致卷迁移问题。


📜课本练习

[student@workstation ~]$ lab storage-backend setup 
Setting up workstation for lab exercise work:

 • Verifying project: finance..................................  SUCCESS
 • Creating user env file: developer1-finance-rc...............  SUCCESS
 . Creating flavor: default....................................  SUCCESS
 . Creating internal network: finance-network1.................  SUCCESS
 . Creating subnet: finance-subnet1............................  SUCCESS
 . Creating security group: default............................  SUCCESS
 . Adding ICMP rule to default.................................  SUCCESS
 . Backing up original configuration files.....................  SUCCESS

📑1. 作为根用户,从controller0验证ceph-mon服务是否处于活动状态并正在运行。

[root@controller0 ~]# systemctl list-units -t service ceph\*
UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
ceph-mds@controller0.service loaded active running Ceph MDS
ceph-mgr@controller0.service loaded active running Ceph Manager
ceph-mon@controller0.service loaded active running Ceph Monitor

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

3 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

📑2. 查看Ceph集群在课堂环境中的状态。运行ceph -s命令来查看ceph集群的状态。

[root@controller0 ~]# ceph  -s
  cluster:
    id:     fe8e3db0-d6c3-11e8-a76d-52540001fac8
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum controller0
    mgr: controller0(active)
    mds: cephfs-1/1/1 up  {0=controller0=up:active}
    osd: 6 osds: 6 up, 6 in
 
  data:
    pools:   7 pools, 416 pgs
    objects: 2176 objects, 11970 MB
    usage:   12494 MB used, 101 GB / 113 GB avail
    pgs:     416 active+clean
 
  io:
    client:   4599 B/s rd, 5 op/s rd, 0 op/s wr

📑3. 验证Ceph设置是否使用正确的池名进行了适当的定义,这样OpenStack镜像服务就可以使用Ceph存储作为后端存储提供程序来容纳镜像。

[root@controller0 ~]# docker exec -it glance_api /bin/bash
()[glance@controller0 /]$ egrep -E 'rbd|ceph' /etc/glance/glance-api.conf | grep -v ^#
stores=http,rbd
default_store=rbd
rbd_store_pool=images
rbd_store_user=openstack
rbd_store_ceph_conf=/etc/ceph/ceph.conf

📑4. 验证所需的镜像Ceph池和cephx用户帐户客户端。openstack可以将Ceph存储配置为openstack镜像服务的后端存储提供程序。

在controllero上,验证图像池是否可以使用ceph osd Ispools命令。

[root@controller0 ~]# ceph osd lspools
1 images,2 metrics,3 backups,4 vms,5 volumes,6 manila_data,7 manila_metadata,
[root@controller0 ~]# ceph auth list
mds.controller0
	key: AQCzM89blEMOJBAAiFp/PFV9IRB0sv5tea7srg==
	caps: [mds] allow
	caps: [mon] allow profile mds
	caps: [osd] allow rwx
osd.0
	key: AQBCM89b1fgXGxAA9xG4PyIt+0ZcVvTwFBUOBQ==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.1
	key: AQBEM89bQ0R1FhAAnsRbeOaEj3GhLx2w5aFLEg==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.2
	key: AQBHM89bhmBDHxAAbcOx+x17kYKm5Laj3q6alA==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.3
	key: AQBJM89b9/oxDBAArXu1SXAHXHrKWN9+bn/6Rg==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.4
	key: AQBMM89b7HFPLhAAB5iQBvnZFz7pOWb6SePDRw==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.5
	key: AQBOM89bUiTYNxAAJCpgcT5tMWrWXS78noMi0g==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
client.admin
	key: AQBhMs9bANcVCxAA3ZHYooO3wi1p0hW90kApyw==
	auid: 0
	caps: [mds] allow
	caps: [mgr] allow *
	caps: [mon] allow *
	caps: [osd] allow *
…………

📑5. 在工作站中,作为developer1在finance项目中创建一个OpenStack glance镜像。镜像文件可以从http://materials.example.com/osp-small.qcow2获得。

[student@workstation ~(developer1-finance)]$  wget http://materials.example.com/osp-small.qcow2
[student@workstation ~(developer1-finance)]$ openstack image create --disk-format qcow2 --file osp-small.qcow2 finance-image
+------------------+------------------------------------------------------------------+
| Field            | Value                                                
+------------------+------------------------------------------------------------------+
| checksum         | 9300685c8287e30b967ca4cb71057b3b
| container_format | bare
| created_at       | 2020-10-24T09:46:53Z
| disk_format      | qcow2 
| file             | /v2/images/a070d3d0-5297-4d8e-8a43-a3e3c044a7ac/file
| id               | a070d3d0-5297-4d8e-8a43-a3e3c044a7ac
| min_disk         | 0           
| min_ram          | 0
| name             | finance-image
| owner            | 3c003f65d8d64914a053f178fbbf953c      
| properties       | direct_url='rbd://fe8e3db0-d6c3-11e8-a76d-52540001fac8/images/a070d3d0-5297-4d8e-8a43-a3e3c044a7ac/snap', locations='[{u'url': u'rbd://fe8e3db0-d6c3-11e8-a76d-52540001fac8/images/a070d3d0-5297-4d8e-8a43-a3e3c044a7ac/snap', u'metadata': {}}]' |
| protected        | False             
| schema           | /v2/schemas/image  
| size             | 1632174080                          
| status           | active                 
| tags             |              
| updated_at       | 2020-10-24T09:48:20Z    
| virtual_size     | None  
| visibility       | shared              
+------------------+------------------------------------------------------------------+
[student@workstation ~(developer1-finance)]$ openstack image list
+--------------------------------------+-----------------+--------+
| ID                                   | Name            | Status |
+--------------------------------------+-----------------+--------+
| a070d3d0-5297-4d8e-8a43-a3e3c044a7ac | finance-image   | active |
| ec9473de-4048-4ebb-b08a-a9be619477ac | octavia-amphora | active |
| 6b0128a9-4481-4ceb-b34e-ffe92e0dcfdd | rhel7           | active |
| 5f7f8208-33b5-4f17-8297-588f938182c0 | rhel7-db        | active |
| 14b7e8b2-7c6d-4bcf-b159-1e4e7582107c | rhel7-web       | active |
+--------------------------------------+-----------------+--------+

📑6. 查看镜像Ceph池的内容,以验证池中的镜像ID是否与OpenStack镜像服务显示的内容相匹配。

[root@controller0 ~]# rados -p images ls |grep a070d3d0-5297-4d8e-8a43-a3e3c044a7ac
rbd_id.a070d3d0-5297-4d8e-8a43-a3e3c044a7ac

📑7. 在finance项目中以developer1的形式启动一个新实例,该实例具有以下属性:

在这里插入图片描述

[student@workstation ~(developer1-finance)]$ openstack server create --flavor default  --nic net-id=finance-network1 --security-group default --image finance-image --wait finance-server1
+-----------------------------+-------------------------------------------------------+
| Field                       | Value                                                            |
+-----------------------------+-------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL
| OS-EXT-AZ:availability_zone | nova 
| OS-EXT-STS:power_state      | Running 
| OS-EXT-STS:task_state       | None 
| OS-EXT-STS:vm_state         | active 
| OS-SRV-USG:launched_at      | 2020-10-24T10:25:16.000000 
| OS-SRV-USG:terminated_at    | None 
| accessIPv4                  |      
| accessIPv6                  |  
| addresses                   | finance-network1=192.168.1.8
| adminPass                   | kaqUvS6BpCjp  
| config_drive                |     
| created                     | 2020-10-24T10:19:15Z 
| flavor                      | default (e04380ed-b027-4a72-a697-4307bc014b6c)
| hostId                      | 3eb57302ddddc3af1fdc763eee541c699f0866f6458e3b5c9a722611  
| id                          | c60d1b0e-a489-4519-a235-4db3b2c65905
| image                       | finance-image (a070d3d0-5297-4d8e-8a43-a3e3c044a7ac)
| key_name                    | None 
| name                        | finance-server1 
| progress                    | 0  
| project_id                  | 3c003f65d8d64914a053f178fbbf953c
| properties                  | 
| security_groups             | name='default'
| status                      | ACTIVE 
| updated                     | 2020-10-24T10:25:16Z 
| user_id                     | e4035d555f6b88cf42ca4cacb9fa9999dca9787392222d2eb0875e4e34e6d76f
| volumes_attached            | 
+-----------------------------+-------------------------------------------------------+

[student@workstation ~(developer1-finance)]$ openstack server list
+--------------------------------------+-----------------+--------+------------------------------+---------------+---------+
| ID                                   | Name            | Status | Networks                     | Image         | Flavor  |
+--------------------------------------+-----------------+--------+------------------------------+---------------+---------+
| c60d1b0e-a489-4519-a235-4db3b2c65905 | finance-server1 | ACTIVE | finance-network1=192.168.1.8 | finance-image | default |
+--------------------------------------+-----------------+--------+------------------------------+---------------+---------+

📑8. 作为developer1,在finance项目中创建一个1GB的卷,称为finance-volume1。将finance-volume1卷附加到finance-server1实例。

[student@workstation ~(developer1-finance)]$ openstack volume create --size 1 finance-volume1
+---------------------+---------------------------------------------------------------+
| Field               | Value
+---------------------+---------------------------------------------------------------+
| attachments         | []
| availability_zone   | nova
| bootable            | false   
| consistencygroup_id | None  
| created_at          | 2020-10-24T10:34:09.000000
| description         | None  
| encrypted           | False  
| id                  | 0acc491d-66bd-491c-af80-011be958c15f
| multiattach         | False 
| name                | finance-volume1 
| properties          |   
| replication_status  | None 
| size                | 1  
| snapshot_id         | None 
| source_volid        | None
| status              | creating
| type                | None        
| updated_at          | None   
| user_id             | e4035d555f6b88cf42ca4cacb9fa9999dca9787392222d2eb0875e4e34e6d76f
+---------------------+---------------------------------------------------------------+

[student@workstation ~(developer1-finance)]$ openstack volume list
+--------------------------------------+-----------------+-----------+------+---------+
| ID                                   | Name            | Status    | Size | Attached to |
+--------------------------------------+-----------------+-----------+------+---------+
| 0acc491d-66bd-491c-af80-011be958c15f | finance-volume1 | available |    1 | 
| 8c59a442-bb8b-423a-8802-94429cf9262d |                 | available |   10 |
| ca4b5ca5-14f9-4022-ab74-5c4f3dab22c8 |                 | available |   10 | 
| 0df7076d-3430-4963-a21e-d4bde0a36573 |                 | available |   10 | 
+--------------------------------------+-----------------+-----------+------+---------+

在这里插入图片描述

[student@workstation ~(developer1-finance)]$ openstack server add volume finance-server1 finance-volume1

在这里插入图片描述


📑9. 验证卷finance-volume1作为对象存在于卷Ceph池中。

[root@controller0 ~]# rados -p volumes ls | grep  0acc491d-66bd-491c-af80-011be958c15f
rbd_id.volume-0acc491d-66bd-491c-af80-011be958c15f

📑10. 验证Ceph设置是否正确定义了池名,这样OpenStack块存储服务就使用Ceph存储作为后端存储提供程序来容纳一个卷。

[root@controller0 ~]# docker exec -it cinder_api egrep -E 'rbd|ceph' /etc/cinder/cinder.conf | grep -v ^#
enabled_backends=tripleo_ceph
[tripleo_ceph]
volume_backend_name=tripleo_ceph
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=openstack
rbd_pool=volumes

📑清除实验

[student@workstation ~]$ lab storage-backend cleanup 

💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第五章 管理存储–实现块存储 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。