前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转企业云计算平台系列(十二):Openstack 文件共享服务 Manila

玩转企业云计算平台系列(十二):Openstack 文件共享服务 Manila

作者头像
民工哥
发布2024-01-18 15:56:50
1770
发布2024-01-18 15:56:50
举报

Manila 服务介绍

OpenStack共享文件服务 Manila 是一个用于提供共享文件存储的组件。它允许用户在OpenStack云环境中创建和管理共享文件系统,以供多个实例或虚拟机之间共享数据。

Manila就像是一个云存储服务,你可以将它想象成一个“共享文件夹”。它的作用是让你可以在云环境中创建一个文件夹,并且允许多个虚拟机或实例同时访问这个文件夹中的文件。

使用Manila,你可以创建一个共享文件系统,就像在你的电脑上创建一个文件夹一样。然后,你可以选择将这个文件夹共享给其他虚拟机或实例。这样,这些虚拟机或实例就可以通过网络连接到这个共享文件系统,读取和写入其中的文件。这样就实现了多个虚拟机或实例之间共享数据的需求。

Manila的好处是它提供了一种灵活而方便的方式来管理共享文件系统。你可以根据需要创建、删除和调整共享文件系统的大小。同时,Manila还提供了权限控制和安全性功能,以确保只有有权限的用户可以访问共享文件系统。

Manila 逻辑架构

Manila 的逻辑架构如下图所示:

共享文件系统的总体服务是通过以下具体服务实现的:

manila-api

一个 WSGI 应用程序,用于对整个共享文件系统服务进行身份验证和路由请求。它支持 OpenStack API。

manila-data

一个独立的服务,其目的是接收请求,处理具有潜在长时间运行时间的数据操作,例如复制、共享迁移或备份。

manila-scheduler

安排并将请求路由到适当的共享服务。调度程序使用可配置的过滤器和权重来路由请求。过滤器调度器是默认的,可以对诸如容量,可用性区,共享类型和功能以及自定义过滤器进行过滤。

mania-share

管理提供共享文件系统的后端设备。Manila 共享服务通过使用共享后端驱动程序作为接口与后端设备进行通信。共享驱动程序可以以两种模式之一操作,无论是否处理共享服务器。共享服务器通过共享网络导出文件共享。如果共享文件系统服务中的共享服务器没有由驱动程序管理时,应该在共享文件系统服务的带之外处理网络需求。

可运行于有共享服务器和无共享服务器两种模式。前者需要 Manila 关注组网,使用 nova、neutron 和 cinder 服务管理共享服务器;后者则不处理任何组网问题,使用 LVM 驱动和 NFS 共享,由用户保证云主机和 NFS 服务器之间的网络连接。

  • Shared File Systems Option 1: No driver support for share servers management

选项1部署服务不包含对共享管理的驱动支持。这种模式下,服务不需要任何和网络有关的部署。操作者必须确保实例和NFS服务器之间的连接。本选项使用需要包含LVM和NFS包以及一个额外的命名为manila-share的LVM卷组的LVM驱动器。

  • Shared File Systems Option 2: Driver support for share servers management

选项2部署服务包含对共享管理的驱动支持。这种模式下,服务需要计算(nova),网络(neutron),块存储(cinder)服务来管理共享服务器。这部分信息用于创建共享服务器,就像创建共享网络一样。本选项使用支持共享服务处理的generic驱动器,并且需要一个连接到路由的私网selfservice

messaging Queue

在共享文件系统进程之间路由信息。

Backend Storage devices

共享文件服务需要某种形式的后端共享文件系统提供程序,引用实现使用块存储服务( Cinder ) 和服务虚拟机( VM ) 来提供共享。 其他驱动程序用于从各种供应商解决方案中访问共享文件系统。

后端对应着一个共享文件系统实例的提供者。后端在 manila.conf 中进行定义。一个实例必然对应一个后端,而一个后端有且只有一个驱动。通过采用多个后端的方式,可以提供数据服务以保障高可用。

UserS and Tenants(Projects)

共享文件系统服务可以被许多不同的云计算消费者或客户(共享系统上的租户) 使用基于角色的访问任务。 角色控制了允许用户执行的操作。 在默认配置中,大多数操作不需要特定的角色,除非他们只限于管理员,但是这可以由维护规则的适当的 policy.json 文件中的系统管理员来配置。 用户管理特定权限受到租户的限制。 通过 IP 或用户访问规则,可以保证访客登录和使用的权限。 用于控制可用硬件资源的资源消耗的配额是每个租户。

对租户而言,配额管制可以限制:

  • 可以创建的共享数量
  • 可供分享的千兆字节数
  • 可以创建的共享快照数量
  • 可以为共享快照提供的千兆字节数
  • 可以创建的共享网络的数量
  • 可以创建的共享组的数量
  • 可以创建的共享组快照的数量

您可以使用共享文件系统 CLI 修改默认配额值,因此配额设置的限制是由管理员用户编辑的。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

Shares, snapshots, and share networks
Shares

共享实例是一个指定了协议、大小和可访问列表的存储单元,是 Manila 提供的基础原语单元。 所有的共享实例都存在于后端, 一些共享实例与共享网络和共享服务器相关联。 文件系统实例可被多个虚拟机并发访问,支持的主要协议是 NFS 和 CIFS,但也支持其他协议。

Snapshots

快照是一个共享实例在某一时刻的只读镜像。快照只能用于创建新的共享实例(包含快照数据)。只有在所有相关快照被删除时,共享实例才能被删除。

Share networks

共享网络描述与文件系统实例相关的网络实现,告知 Manila 一组共享文件系统实例使用的安全和网络配置。一个共享网络包括安全服务( Security Service )和涉及的网络及子网( Network/Subnet )。共享网络是一个面向多租户定义的对象,Manila 通过共享网络支持多租户,网络多租户通过标准特性如 VLAN 和 VXLAN 实现。一个共享文件系统实例只能属于一个共享网络。

Share type

共享类型是一个由管理员定义的“服务类型”,它包括一个租户可见的描述和一组租户不可见的键值对列表。Manila 调度器利用此键值对信息进行调度决策。

Extra Spec

额外规格即共享类型中的一组键值对。额外规格由 Manila 和后端驱动定义。

安全服务

安全服务指 LDAP、Active Directory、Kerberos 等用户安全服务。安全服务包含 Manila 创建一个服务器加入指定安全域必需的所有信息。一个共享文件系统实例可以被关联到多个安全服务。

Share Drivers

共享驱动的概念很明确。共享驱动是后端文件共享服务的具体实现,如 Clustered ONTAP、EMC VNX、GlusterFS 等。

Generic Share Driver
  • Manila 为每个共享网络创建一个 Nova 计算实例
  • Nova 计算实例通过 Cinder 的 Volume 来提供 NFS/CIFS 共享服务
  • 通过 Neturon 连接到现有网络及子网
  • 创建 Nova 实例所必需的 Nova 的 Flavor 、Glance 的镜像、SSH Keypair 均通过 Manila 进行配置
  • Manila 则通过 SSH 对 Nova 实例进行配置
Share Access Rule

Manila 通过共享访问规则定义哪些客户端可以访问共享文件系统实例。目前 Manila 支持的访问控制类型包括 IP 地址、用户名和 SSL 认证。

Manila 实例生命周期管理

Manila 提供完整的共享文件系统实例生命周期管理,包括:

  • 创建、删除实例;
  • 列出所有实例;
  • 获得实例细节信息;
  • 生成实例快照;
  • 修改实例访问信息;
  • 挂载和卸载文件系统实例。

Manila 使用场景

以下是 Manila 的部分关键使用场景:

  • 替代自主开发(home-grown)的 NAS 部署工具。
  • 支持传统企业应用。
  • 按需的开发和构建环境。
  • 通过 REST API 或命令与现有自动化框架集成。
  • 支持云原生工作负载,如 DBaaS。
  • 支持大数据,例如通过 Manila 的 HDFS 原生驱动插件。
  • 提供安全的跨租户文件共享。
  • 混合云间共享文件系统。

安装准备

在安装和配置共享文件系统服务之前,您必须创建数据库、服务凭证和API 端点。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

创建数据库

①在操作系统终端连接数据库

代码语言:javascript
复制
[root@controller ~]# mysql -u root -p000000

②创建manila数据库

代码语言:javascript
复制
MariaDB [(none)]> CREATE DATABASE manila;

③授权

代码语言:javascript
复制
MariaDB [(none)]> GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' IDENTIFIED BY '000000' ;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%'  IDENTIFIED BY '000000';

④退出数据库

加载 admin user 的环境变量
代码语言:javascript
复制
[root@controller ~]# source admin-openrc.sh
创建服务凭证

①创建manila用户

代码语言:javascript
复制
[root@controller ~]# openstack user create --domain default --password 000000 manila
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 2d6b2600158e430e8fdaaaab332e6203 |
| name                | manila                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

admin为用户添加角色manila

代码语言:javascript
复制
[root@controller ~]# openstack role add --project service --user manila admin

③创建manilamanilav2服务实体

代码语言:javascript
复制
[root@controller ~]# openstack service create --name manila --description "OpenStack Shared File Systems" share
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Shared File Systems    |
| enabled     | True                             |
| id          | 132a4a9113af497cb65553f5eb75463d |
| name        | manila                           |
| type        | share                            |
+-------------+----------------------------------+

[root@controller ~]# openstack service create --name manilav2 --description "OpenStack Shared File Systems V2" sharev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Shared File Systems V2 |
| enabled     | True                             |
| id          | c52f309714a9410f833207442aebff09 |
| name        | manilav2                         |
| type        | sharev2                          |
+-------------+----------------------------------+
创建共享文件系统服务 API 端点
代码语言:javascript
复制
[root@controller ~]# openstack endpoint create --region RegionOne share public http://controller:8786/v1/%\(tenant_id\)s
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | e1a46d73168f45e3b0d6a4f5b55983ed |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 132a4a9113af497cb65553f5eb75463d |
| service_name | manila                           |
| service_type | share                            |
| url          | http://:8786/v1/%(tenant_id)s    |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne share internal http://controller:8786/v1/%\(tenant_id\)s
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 243bdc7db29b428080018957c6d79862 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 132a4a9113af497cb65553f5eb75463d |
| service_name | manila                           |
| service_type | share                            |
| url          | http://:8786/v1/%(tenant_id)s    |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne share admin http://controller:8786/v1/%\(tenant_id\)s
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 9816a474ae4a419fb8211cfc6d0f64da |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 132a4a9113af497cb65553f5eb75463d |
| service_name | manila                           |
| service_type | share                            |
| url          | http://:8786/v1/%(tenant_id)s    |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne sharev2 public http://controller:8786/v2/%\(tenant_id\)s
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | d19d550ddc944a529de9db9e25d8926c |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | c52f309714a9410f833207442aebff09 |
| service_name | manilav2                         |
| service_type | sharev2                          |
| url          | http://:8786/v2/%(tenant_id)s    |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  sharev2 internal http://controller:8786/v2
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | c8cacf15e72c443cb28b00bead4be4a4 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 36b06f7d3af54475ba0a2eed55dc33a4 |
| service_name | manilav2                         |
| service_type | sharev2                          |
| url          | http://controller:8786/v2        |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  sharev2 admin http://controller:8786/v2
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | df0a6cb2995b4fac8fed4bc325c8cc92 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 36b06f7d3af54475ba0a2eed55dc33a4 |
| service_name | manilav2                         |
| service_type | sharev2                          |
| url          | http://controller:8786/v2        |
+--------------+----------------------------------+

安装和配置Manila组件

安装软件包
代码语言:javascript
复制
[root@controller ~]#  yum install  -y openstack-manila python3-manilaclient
配置文件

编辑/etc/manila/manila.conf文件并完成以下操作

①在[database]部分中,配置数据库访问:

代码语言:javascript
复制
[root@controller ~]# vim /etc/manila/manila.conf 
[database]
connection = mysql+pymysql://manila:000000@controller/manila

②在[DEFAULT]部分中,配置RabbitMQ 消息队列访问

代码语言:javascript
复制
[DEFAULT]
transport_url = rabbit://openstack:000000@controller

③在[DEFAULT]部分中,设置以下配置值:

代码语言:javascript
复制
[DEFAULT]
transport_url = rabbit://openstack:000000@controller
state_path = /var/lib/manila
default_share_type = default_share_type
share_name_template = share-%s
rootwrap_config = /etc/manila/rootwrap.conf
api_paste_config = /etc/manila/api-paste.ini
auth_strategy = keystone
my_ip = 192.168.200.10

④在[DEFAULT][keystone_authtoken]部分中,配置身份服务访问

代码语言:javascript
复制
[DEFAULT]
auth_strategy = keystone

[keystone_authtoken]
memcached_servers = controller:11211
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = manila
password = 000000

⑤在[oslo_concurrency]部分中,配置锁定路径

代码语言:javascript
复制
[oslo_concurrency]
lock_path = /var/lib/manila/manila
同步数据库
代码语言:javascript
复制
[root@controller ~]# su -s /bin/sh -c "manila-manage db sync" manila
完成安装
代码语言:javascript
复制
[root@controller ~]# systemctl enable openstack-manila-api.service openstack-manila-scheduler.service && systemctl restart openstack-manila-api.service openstack-manila-scheduler.service

安装和配置共享节点

安装软件包
代码语言:javascript
复制
[root@compute ~]# yum -y install openstack-manila-share python2-PyMySQL libtalloc python-manilaclient MySQL-python
配置文件

编辑/etc/manila/manila.conf文件并完成以下操作

①在[database]部分中

代码语言:javascript
复制
[database]
connection = mysql+pymysql://manila:000000@controller/manila

②在[DEFAULT][keystone_authtoken]部分中,配置身份服务访问

代码语言:javascript
复制
[DEFAULT]
transport_url = rabbit://openstack:000000@controller
my_ip = 192.168.200.20
api_paste_config = /etc/manila/api-paste.ini
rootwrap_config = /etc/manila/rootwrap.conf
state_path = /var/lib/manila
auth_strategy = keystone
default_share_type = default_share_type
enabled_share_protocols = NFS,CIFS

[keystone_authtoken]部分

代码语言:javascript
复制
[keystone_authtoken]
memcached_servers = controller:11211
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = manila
password = 000000

④在[oslo_concurrency]部分中,配置锁路径

代码语言:javascript
复制
[oslo_concurrency]
lock_path = /var/lib/manila/tmp

⑤创建目录并设置属主

代码语言:javascript
复制
[root@compute ~]# mkdir /var/lib/manila
[root@compute ~]# chown manila. /var/lib/manila

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

两种驱动模式

共享节点可以支持两种模式,有和没有共享服务器的处理。该模式取决于驱动程序支持。

  • 选项一

在没有驱动程序支持的情况下部署服务以进行共享服务器管理。在此模式下,服务不执行任何与网络相关的操作。运营商必须确保实例和基于NAS协议的服务器之间的网络连接。

本教程演示如何设置 LVM 驱动程序,该驱动程序在共享节点上创建 LVM 卷,并在共享节点本地安装的 NFS 服务器的帮助下导出它们。因此,它需要 LVM 和 NFS 软件包以及用于manila-shareLVM 卷组的附加磁盘。

  • 选项二

部署具有共享服务器管理驱动程序支持的服务。在此模式下,服务与创建和管理共享服务器的后端驱动程序一起运行。本教程演示了如何设置Generic驱动程序。该驱动程序需要计算服务(nova)、图像服务(glance)和网络服务(neutron)来创建和管理共享服务器;用于创建共享的块存储服务(cinder)。

我们选择第一种。

安装软件包
代码语言:javascript
复制
[root@compute ~]# yum -y install lvm2 nfs-utils nfs4-acl-tools portmap targetcli
启动LVM并设置开机自启
代码语言:javascript
复制
[root@compute ~]# systemctl enable lvm2-lvmetad.service target.service && systemctl restart lvm2-lvmetad.service target.service
创建LVM物理卷和卷组
代码语言:javascript
复制
[root@compute ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.
[root@compute ~]# vgcreate manila-volumes /dev/sdd
  Volume group "manila-volumes" successfully created
配置组件

编辑/etc/manila/manila.conf文件并完成以下操作。

[DEFAULT]部分中,启用 LVM 驱动程序。

代码语言:javascript
复制
[root@compute ~]# vim /etc/manila/manila.conf
[DEFAULT]
enabled_share_backends = lvm

[lvm]部分中,配置 LVM 驱动程序

代码语言:javascript
复制
[lvm]
share_backend_name = LVM
share_driver = manila.share.drivers.lvm.LVMShareDriver
driver_handles_share_servers = False
lvm_share_volume_group = manila-volumes
lvm_share_export_ips = 192.168.200.20
完成安装
代码语言:javascript
复制
[root@compute ~]# systemctl restart lvm2-lvmetad.service target.service openstack-manila-share nfs-server

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

验证

加载环境变量

代码语言:javascript
复制
[root@controller ~]# source admin-openrc.sh 

列出服务组件以验证每个进程是否成功启动

代码语言:javascript
复制
[root@controller ~]# manila service-list
+----+------------------+-------------+------+---------+-------+----------------------------+
| Id | Binary           | Host        | Zone | Status  | State | Updated_at                 |
+----+------------------+-------------+------+---------+-------+----------------------------+
| 1  | manila-scheduler | controller  | nova | enabled | up    | 2023-07-02T08:51:58.000000 |
| 2  | manila-share     | compute@lvm | nova | enabled | up    | 2023-07-02T08:52:00.000000 |
+----+------------------+-------------+------+---------+-------+----------------------------+

Manila的使用

创建共享类型
代码语言:javascript
复制
[root@controller ~]# manila type-create default_share_type False
+----------------------+--------------------------------------+
| Property             | Value                                |
+----------------------+--------------------------------------+
| required_extra_specs | driver_handles_share_servers : False |
| Name                 | default_share_type                   |
| Visibility           | public                               |
| is_default           | YES                                  |
| ID                   | ed4ac5e1-55eb-459c-a859-00825b017049 |
| optional_extra_specs |                                      |
| Description          | None                                 |
+----------------------+--------------------------------------+
[root@controller ~]# manila type-list
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| ID                                   | Name               | visibility | is_default | required_extra_specs                 | optional_extra_specs | Description |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| ed4ac5e1-55eb-459c-a859-00825b017049 | default_share_type | public     | YES        | driver_handles_share_servers : False |                      | None        |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
创建 NFS 共享
代码语言:javascript
复制
[root@controller ~]# manila create NFS 2 --name test-nfs-csq
+---------------------------------------+--------------------------------------+
| Property                              | Value                                |
+---------------------------------------+--------------------------------------+
| status                                | creating                             |
| share_type_name                       | default_share_type                   |
| description                           | None                                 |
| availability_zone                     | None                                 |
| share_network_id                      | None                                 |
| share_server_id                       | None                                 |
| share_group_id                        | None                                 |
| host                                  |                                      |
| revert_to_snapshot_support            | False                                |
| access_rules_status                   | active                               |
| snapshot_id                           | None                                 |
| create_share_from_snapshot_support    | False                                |
| is_public                             | False                                |
| task_state                            | None                                 |
| snapshot_support                      | False                                |
| id                                    | b4ad1964-45a3-4fa7-9233-9cee3b24bb11 |
| size                                  | 2                                    |
| source_share_group_snapshot_member_id | None                                 |
| user_id                               | fef5f8c16d3d4b9d849bc1488bf50a21     |
| name                                  | test-nfs-csq                         |
| share_type                            | ed4ac5e1-55eb-459c-a859-00825b017049 |
| has_replicas                          | False                                |
| replication_type                      | None                                 |
| created_at                            | 2023-07-02T09:01:11.000000           |
| share_proto                           | NFS                                  |
| mount_snapshot_support                | False                                |
| project_id                            | 0769b940829c4078a4aa573e83d6520c     |
| metadata                              | {}                                   |
+---------------------------------------+--------------------------------------+
查看共享状态

注意共享状态必须为available

代码语言:javascript
复制
[root@controller ~]# manila list
+--------------------------------------+--------------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+
| ID                                   | Name         | Size | Share Proto | Status    | Is Public | Share Type Name    | Host                        | Availability Zone |
+--------------------------------------+--------------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+
| b4ad1964-45a3-4fa7-9233-9cee3b24bb11 | test-nfs-csq | 2    | NFS         | available | False     | default_share_type | compute@lvm#lvm-single-pool | nova              |
+--------------------------------------+--------------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+

确定共享的导出IP地址

代码语言:javascript
复制
[root@controller ~]# manila show test-nfs-csq
+---------------------------------------+--------------------------------------------------------------------------------------+
| Property                              | Value                                                                                |
+---------------------------------------+--------------------------------------------------------------------------------------+
| status                                | available                                                                            |
| share_type_name                       | default_share_type                                                                   |
| description                           | None                                                                                 |
| availability_zone                     | nova                                                                                 |
| share_network_id                      | None                                                                                 |
| export_locations                      |                                                                                      |
|                                       | path = 192.168.200.20:/var/lib/manila/mnt/share-90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e |
|                                       | preferred = False                                                                    |
|                                       | is_admin_only = False                                                                |
|                                       | id = cad5e351-2cd0-411e-bcfc-16f25bae35ff                                            |
|                                       | share_instance_id = 90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e                             |
| share_server_id                       | None                                                                                 |
| share_group_id                        | None                                                                                 |
| host                                  | compute@lvm#lvm-single-pool                                                          |
| revert_to_snapshot_support            | False                                                                                |
| access_rules_status                   | active                                                                               |
| snapshot_id                           | None                                                                                 |
| create_share_from_snapshot_support    | False                                                                                |
| is_public                             | False                                                                                |
| task_state                            | None                                                                                 |
| snapshot_support                      | False                                                                                |
| id                                    | b4ad1964-45a3-4fa7-9233-9cee3b24bb11                                                 |
| size                                  | 2                                                                                    |
| source_share_group_snapshot_member_id | None                                                                                 |
| user_id                               | fef5f8c16d3d4b9d849bc1488bf50a21                                                     |
| name                                  | test-nfs-csq                                                                         |
| share_type                            | ed4ac5e1-55eb-459c-a859-00825b017049                                                 |
| has_replicas                          | False                                                                                |
| replication_type                      | None                                                                                 |
| created_at                            | 2023-07-02T09:01:11.000000                                                           |
| share_proto                           | NFS                                                                                  |
| mount_snapshot_support                | False                                                                                |
| project_id                            | 0769b940829c4078a4aa573e83d6520c                                                     |
| metadata                              | {}                                                                                   |
+---------------------------------------+--------------------------------------------------------------------------------------+
允许访问共享
代码语言:javascript
复制
[root@controller ~]#  manila access-allow test-nfs-csq ip 192.168.200.0/24  --access-level rw
+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| access_key   | None                                 |
| share_id     | b4ad1964-45a3-4fa7-9233-9cee3b24bb11 |
| created_at   | 2023-07-02T09:04:03.000000           |
| updated_at   | None                                 |
| access_type  | ip                                   |
| access_to    | 192.168.200.0/24                     |
| access_level | rw                                   |
| state        | queued_to_apply                      |
| id           | 7f82c995-5e67-465d-afce-6af62479b8dc |
| metadata     | {}                                   |
+--------------+--------------------------------------+
[root@controller ~]#  manila access-list test-nfs-csq
+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
| id                                   | access_type | access_to        | access_level | state  | access_key | created_at                 | updated_at |
+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
| 7f82c995-5e67-465d-afce-6af62479b8dc | ip          | 192.168.200.0/24 | rw           | active | None       | 2023-07-02T09:04:03.000000 | None       |
+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
挂载共享
代码语言:javascript
复制
[root@controller ~]# mount -t nfs 192.168.200.20:/var/lib/manila/mnt/share-90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e /mnt/
[root@controller ~]# df -HT
文件系统                                                                      类型      容量  已用  可用 已用% 挂载点
devtmpfs                                                                      devtmpfs  4.1G     0  4.1G    0% /dev
tmpfs                                                                         tmpfs     4.1G     0  4.1G    0% /dev/shm
tmpfs                                                                         tmpfs     4.1G   13M  4.1G    1% /run
tmpfs                                                                         tmpfs     4.1G     0  4.1G    0% /sys/fs/cgroup
/dev/mapper/centos-root                                                       xfs        54G  3.6G   51G    7% /
/dev/mapper/centos-home                                                       xfs        45G   34M   45G    1% /home
/dev/sda1                                                                     xfs       1.1G  205M  860M   20% /boot
tmpfs                                                                         tmpfs     819M     0  819M    0% /run/user/0
192.168.200.20:/var/lib/manila/mnt/share-90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e nfs4      2.1G  6.3M  2.0G    1% /mnt
在挂载的目录中创建文件
代码语言:javascript
复制
[root@controller ~]# cd /mnt/
[root@controller mnt]# dd if=/dev/zero of=csq bs=1M count=20
记录了20+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,2.91808 秒,7.2 MB/秒
[root@controller mnt]# df -h
文件系统                                                                       容量  已用  可用 已用% 挂载点
devtmpfs                                                                       3.8G     0  3.8G    0% /dev
tmpfs                                                                          3.9G     0  3.9G    0% /dev/shm
tmpfs                                                                          3.9G   12M  3.8G    1% /run
tmpfs                                                                          3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root                                                         50G  3.3G   47G    7% /
/dev/mapper/centos-home                                                         42G   33M   42G    1% /home
/dev/sda1                                                                     1014M  195M  820M   20% /boot
tmpfs                                                                          781M     0  781M    0% /run/user/0
192.168.200.20:/var/lib/manila/mnt/share-90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e  2.0G   26M  1.8G    2% /mnt
[root@controller ~]# umount /mnt/
[root@controller ~]# ls /mnt/
[root@controller ~]# mount -t nfs 192.168.200.20:/var/lib/manila/mnt/share-90987ec8-8ec6-4a3f-bbd7-0ae2dd3c822e /mnt/
[root@controller ~]# ls /mnt/
csq  lost+found

参考文章:https://blog.csdn.net/sj349781478/ article/details/106999893 https://blog.csdn.net /qq_52089863/article/details/131502980

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Manila 服务介绍
    • manila-api
      • manila-data
        • manila-scheduler
          • mania-share
            • messaging Queue
              • Backend Storage devices
                • UserS and Tenants(Projects)
                  • Shares, snapshots, and share networks
                    • Share type
                      • Extra Spec
                        • 安全服务
                          • Share Drivers
                            • Generic Share Driver
                              • Share Access Rule
                              • Manila 实例生命周期管理
                              • Manila 使用场景
                              • 安装准备
                                • 创建数据库
                                  • 加载 admin user 的环境变量
                                    • 创建服务凭证
                                      • 创建共享文件系统服务 API 端点
                                      • 安装和配置Manila组件
                                        • 安装软件包
                                          • 配置文件
                                            • 同步数据库
                                              • 完成安装
                                              • 安装和配置共享节点
                                                • 安装软件包
                                                  • 配置文件
                                                  • 验证
                                                  • Manila的使用
                                                    • 创建共享类型
                                                      • 创建 NFS 共享
                                                        • 查看共享状态
                                                          • 允许访问共享
                                                            • 挂载共享
                                                              • 在挂载的目录中创建文件
                                                              相关产品与服务
                                                              云数据库 MariaDB
                                                              腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
                                                              领券
                                                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档