创建和使用共享文件系统¶
根据在安装共享节点时选择的选项(带有共享服务器管理和不带的选项),创建和使用共享文件系统的步骤会有所不同。当共享文件系统服务处理共享服务器的创建和管理时,您需要在创建共享的请求中指定 share network。两种模式在各自的共享类型定义上会有所不同。在使用具有自动处理共享服务器的驱动程序模式时,需要根据您的配置指定服务镜像。以下说明列举了两种驱动程序模式的步骤。请根据您的安装情况选择合适的步骤。
使用共享文件系统选项 1 创建共享 (DHSS = False)¶
创建共享类型¶
在使用 LVM 驱动程序创建共享之前,禁用 DHSS (driver_handles_share_servers)。
获取管理员凭据以访问仅管理员可用的 CLI 命令
$ . admin-openrc
创建一个默认共享类型,禁用 DHSS。默认共享类型允许您使用此驱动程序创建共享,而无需在创建共享时显式指定共享类型。
$ 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 | - | | ID | 3df065c8-6ca4-4b80-a5cb-e633c0439097 | | optional_extra_specs | snapshot_support : True | +----------------------+--------------------------------------+
在
manila.conf的[DEFAULT]部分设置此默认共享类型,并在继续之前重启manila-api服务。否则,默认共享类型将不会生效。注意
创建和配置默认共享类型是可选的。如果您希望使用共享文件系统服务和各种共享类型,并且每个创建共享的请求都可以指定类型,请参阅共享类型用法文档 此处。
创建共享¶
获取
demo凭证,以非管理项目身份执行以下步骤$ . demo-openrc
创建一个 NFS 共享。由于已创建并配置了默认共享类型,因此无需在请求中指定它。
$ manila create NFS 1 --name share1 +-----------------------------+--------------------------------------+ | Property | Value | +-----------------------------+--------------------------------------+ | status | creating | | share_type_name | default_share_type | | description | None | | availability_zone | None | | share_network_id | None | | share_group_id | None | | host | | | access_rules_status | active | | snapshot_id | None | | is_public | False | | task_state | None | | snapshot_support | True | | id | 55c401b3-3112-4294-aa9f-3cc355a4e361 | | size | 1 | | name | share1 | | share_type | 3df065c8-6ca4-4b80-a5cb-e633c0439097 | | has_replicas | False | | replication_type | None | | created_at | 2016-03-30T19:10:33.000000 | | share_proto | NFS | | project_id | 3a46a53a377642a284e1d12efabb3b5a | | metadata | {} | +-----------------------------+--------------------------------------+
一段时间后,共享状态应从
creating变为available$ manila list +--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+ | ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone | +--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+ | 55c401b3-3112-4294-aa9f-3cc355a4e361 | share1 | 1 | NFS | available | False | default_share_type | storage@lvm#lvm-single-pool | nova | +--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+
确定共享的导出 IP 地址
$ manila show share1 +-----------------------------+------------------------------------------------------------------------------------+ | Property | Value | +-----------------------------+------------------------------------------------------------------------------------+ | status | available | | share_type_name | default_share_type | | description | None | | availability_zone | nova | | share_network_id | None | | share_group_id | None | | export_locations | | | | path = 10.0.0.41:/var/lib/manila/mnt/share-8e13a98f-c310-41df-ac90-fc8bce4910b8 | | | id = 3c8d0ada-cadf-48dd-85b8-d4e8c3b1e204 | | | preferred = False | | host | storage@lvm#lvm-single-pool | | access_rules_status | active | | snapshot_id | None | | is_public | False | | task_state | None | | snapshot_support | True | | id | 55c401b3-3112-4294-aa9f-3cc355a4e361 | | size | 1 | | name | share1 | | share_type | c6dfcfc6-9920-420e-8b0a-283d578efef5 | | has_replicas | False | | replication_type | None | | created_at | 2016-03-30T19:10:33.000000 | | share_proto | NFS | | project_id | 3a46a53a377642a284e1d12efabb3b5a | | metadata | {} | +-----------------------------+------------------------------------------------------------------------------------+
允许访问共享¶
在尝试通过网络挂载它之前,配置对新共享的访问。计算实例(其 IP 地址由下面的 INSTANCE_IP 引用)必须具有与共享网络中指定的网络的网络连接。
$ manila access-allow share1 ip INSTANCE_IP +--------------+--------------------------------------+ | Property | Value | +--------------+--------------------------------------+ | share_id | 55c401b3-3112-4294-aa9f-3cc355a4e361 | | access_type | ip | | access_to | 10.0.0.46 | | access_level | rw | | state | new | | id | f88eab01-7197-44bf-ad0f-d6ca6f99fc96 | +--------------+--------------------------------------+
在计算实例上挂载共享¶
登录到您的计算实例,并创建一个将要挂载的文件夹
$ mkdir ~/test_folder
使用共享的导出位置在计算实例中挂载 NFS 共享
# mount -vt nfs 10.0.0.41:/var/lib/manila/mnt/share-8e13a98f-c310-41df-ac90-fc8bce4910b8 ~/test_folder
使用共享文件系统选项 2 创建共享 (DHSS = True)¶
在能够创建共享之前,启用 DHSS (driver_handles_share_servers) 模式的 manila 和通用驱动程序需要定义至少一个镜像、一个网络和一个共享网络,用于创建共享服务器。对于这种 后端 配置,共享服务器是一个提供 NFS 共享的实例。
注意
此配置会自动为每个共享创建一个 cinder 卷。cinder 卷将根据共享网络的定义附加到共享服务器。
获取管理员凭据以访问仅管理员可用的 CLI 命令
$ . admin-openrc.sh
创建一个启用 DHSS 的默认共享类型。默认共享类型允许您使用此驱动程序创建共享,而无需在创建共享时显式指定共享类型。
$ manila type-create default_share_type True +----------------------+--------------------------------------+ | Property | Value | +----------------------+--------------------------------------+ | required_extra_specs | driver_handles_share_servers : True | | Name | default_share_type | | Visibility | public | | is_default | - | | ID | 8a35da28-0f74-490d-afff-23664ecd4f01 | | optional_extra_specs | snapshot_support : True | +----------------------+--------------------------------------+
在
manila.conf的[DEFAULT]部分设置此默认共享类型,并在继续之前重启manila-api服务。否则,默认共享类型将不会生效。注意
创建和配置默认共享类型是可选的。如果您希望使用共享文件系统服务和各种共享类型,并且每个创建共享的请求都可以指定类型,请参阅共享类型用法文档 此处。
在 Image 服务中创建一个 manila 共享服务器镜像。您可以跳过此步骤并使用任何现有的镜像。但是,为了挂载共享,服务镜像必须包含适用于操作系统的适当的 NFS 包。无论您选择哪个镜像作为服务镜像,请务必在
manila.conf中设置配置值service_image_name、service_instance_flavor_id、service_instance_user和service_instance_password。注意
在
manila-share服务运行时对manila.conf进行的任何更改都需要重启服务才能生效。注意
作为指定
manila.conf中的纯文本service_instance_password的替代方案,可以使用选项path_to_public_key和path_to_private_key指定密钥对,以配置并允许 共享节点 和创建的共享服务器之间的无密码 SSH 访问。$ curl -L \ https://tarballs.opendev.org/openstack/manila-image-elements/images/manila-service-image-master.qcow2 | \ glance image-create \ --name "manila-service-image" \ --disk-format qcow2 \ --container-format bare \ --visibility public --progress % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3008k 100 3008k 0 0 1042k 0 0:00:02 0:00:02 --:--:-- 1041k +------------------+----------------------------------------------------------------------------------+ | Property | Value | +------------------+----------------------------------------------------------------------------------+ | checksum | 48a08e746cf0986e2bc32040a9183445 | | container_format | bare | | created_at | 2016-01-26T19:52:24Z | | direct_url | rbd://3c3a4cbc-7331-4fc1-8cbb-79213b9cebff/images/ff97deff-b184-47f8-827c- | | | 16c349c82720/snap | | disk_format | qcow2 | | id | 1fc7f29e-8fe6-44ef-9c3c-15217e83997c | | locations | [{"url": "rbd://3c3a4cbc-7331-4fc1-8cbb-79213b9cebff/images/ff97deff-b184-47f8 | | | -827c-16c349c82720/snap", "metadata": {}}] | | min_disk | 0 | | min_ram | 0 | | name | manila-service-image | | owner | e2c965830ecc4162a002bf16ddc91ab7 | | protected | False | | size | 306577408 | | status | active | | tags | [] | | updated_at | 2016-01-26T19:52:28Z | | virtual_size | None | | visibility | public | +------------------+----------------------------------------------------------------------------------+
列出可用的网络,以获取私有网络的 ID 和子网
$ neutron net-list +--------------------------------------+---------+----------------------------------------------------+ | id | name | subnets | +--------------------------------------+---------+----------------------------------------------------+ | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad | public | 5cc70da8-4ee7-4565-be53-b9c011fca011 10.3.31.0/24 | | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | private | 3482f524-8bff-4871-80d4-5774c2730728 172.16.1.0/24 | +--------------------------------------+---------+----------------------------------------------------+
获取
demo凭证,以非管理项目身份执行以下步骤$ . demo-openrc.sh
$ manila share-network-create --name demo-share-network1 \ --neutron-net-id PRIVATE_NETWORK_ID \ --neutron-subnet-id PRIVATE_NETWORK_SUBNET_ID +-------------------+--------------------------------------+ | Property | Value | +-------------------+--------------------------------------+ | name | demo-share-network1 | | segmentation_id | None | | created_at | 2016-01-26T20:03:41.877838 | | neutron_subnet_id | 3482f524-8bff-4871-80d4-5774c2730728 | | updated_at | None | | network_type | None | | neutron_net_id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | | ip_version | None | | cidr | None | | project_id | e2c965830ecc4162a002bf16ddc91ab7 | | id | 58b2f0e6-5509-4830-af9c-97f525a31b14 | | description | None | +-------------------+--------------------------------------+
创建共享¶
使用共享网络创建一个 NFS 共享。由于已创建并配置了默认共享类型,因此无需在请求中指定它。
$ manila create NFS 1 --name demo-share1 --share-network demo-share-network1 +-----------------------------+--------------------------------------+ | Property | Value | +-----------------------------+--------------------------------------+ | status | None | | share_type_name | default_share_type | | description | None | | availability_zone | None | | share_network_id | 58b2f0e6-5509-4830-af9c-97f525a31b14 | | share_group_id | None | | host | None | | snapshot_id | None | | is_public | False | | task_state | None | | snapshot_support | True | | id | 016ca18f-bdd5-48e1-88c0-782e4c1aa28c | | size | 1 | | name | demo-share1 | | share_type | 8a35da28-0f74-490d-afff-23664ecd4f01 | | created_at | 2016-01-26T20:08:50.502877 | | export_location | None | | share_proto | NFS | | project_id | 48e8c35b2ac6495d86d4be61658975e7 | | metadata | {} | +-----------------------------+--------------------------------------+
一段时间后,共享状态应从
creating变为available$ manila list +--------------------------------------+-------------+------+-------------+-----------+-----------+------------------------+-----------------------------+-------------------+ | ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone | +--------------------------------------+-------------+------+-------------+-----------+-----------+------------------------+-----------------------------+-------------------+ | 5f8a0574-a95e-40ff-b898-09fd8d6a1fac | demo-share1 | 1 | NFS | available | False | default_share_type | storagenode@generic#GENERIC | nova | +--------------------------------------+-------------+------+-------------+-----------+-----------+------------------------+-----------------------------+-------------------+
确定共享的导出 IP 地址
$ manila show demo-share1 +-----------------------------+------------------------------------------------------------------------------------+ | Property | Value | +-----------------------------+------------------------------------------------------------------------------------+ | status | available | | share_type_name | default_share_type | | description | None | | availability_zone | nova | | share_network_id | 58b2f0e6-5509-4830-af9c-97f525a31b14 | | share_group_id | None | | export_locations | | | | path = 10.254.0.6:/shares/share-0bfd69a1-27f0-4ef5-af17-7cd50bce6550 | | | id = e525cbca-b3cc-4adf-a1cb-b1bf48fa2422 | | | preferred = False | | host | storagenode@generic#GENERIC | | access_rules_status | active | | snapshot_id | None | | is_public | False | | task_state | None | | snapshot_support | True | | id | 5f8a0574-a95e-40ff-b898-09fd8d6a1fac | | size | 1 | | name | demo-share1 | | share_type | 8a35da28-0f74-490d-afff-23664ecd4f01 | | has_replicas | False | | replication_type | None | | created_at | 2016-03-30T19:10:33.000000 | | share_proto | NFS | | project_id | 48e8c35b2ac6495d86d4be61658975e7 | | metadata | {} | +-----------------------------+------------------------------------------------------------------------------------+
允许访问共享¶
在尝试通过网络挂载它之前,配置对新共享的访问。计算实例(其 IP 地址由下面的 INSTANCE_IP 引用)必须具有与共享网络中指定的网络的网络连接。
$ manila access-allow demo-share1 ip INSTANCE_IP +--------------+--------------------------------------+ | Property | Value | +--------------+--------------------------------------+ | share_id | 5f8a0574-a95e-40ff-b898-09fd8d6a1fac | | access_type | ip | | access_to | 10.0.0.46 | | access_level | rw | | state | new | | id | aefeab01-7197-44bf-ad0f-d6ca6f99fc96 | +--------------+--------------------------------------+
在计算实例上挂载共享¶
登录到您的计算实例,并创建一个将要挂载的文件夹
$ mkdir ~/test_folder
使用共享的导出位置在计算实例中挂载 NFS 共享
$ mount -vt nfs 10.254.0.6:/shares/share-0bfd69a1-27f0-4ef5-af17-7cd50bce6550 ~/test_folder
有关如何管理共享的更多信息,请参阅 OpenStack 最终用户指南