manila 创建 share 测试

环境准备

  • 测试使用环境:
    • Ubuntu 16.04
    • Manila Q 版
    • Ceph L 版
  • manila 相关后端驱动及对应类型均已配置好,如要进行配置可参考 manila-configuration

generic 驱动测试

创建共享

  • 使用命令创建一个 generic 驱动的 share
1
  manila create --share-type default_share_type --name genericshare1 --share-network share-network1 NFS 1

1539164493831

  • 查看共享导出位置
1
  manila share-export-location-list genericshare1

1539164545692

访问许可

  • 允许访客使用 ip 访问类型访问共享

    • 允许可读可写
    1
    
    manila access-allow genericshare1 ip 123.0.0.10

    1539165993909

    • 只可读
    1
    
    manila access-allow --access-level ro genericshare1 ip 123.0.0.10

    1539172047797

  • 查看可访问列表

1
  manila access-list genericshare1

1539166021219

1539172069268

挂载测试

挂载共享

  • 登录到计算实例并创建一个放置挂载的文件夹,如下
1
  $ mkdir ~/test_folder

1539165413585

  • 使用共享的导出位置在计算实例中挂载 NFS 共享,如下
1
  $ sudo mount -vt nfs 10.254.0.4:/shares/share-7f97fc49-1110-4fe1-88a0-a7eecd1ac1a8 ~/test_folder

1539166065633

测试

  • 可读可写

    • 创建文件

    1539166297944

    • 写入超过额定容量文件

    手动使用 dd 命令写入超过额定容量大文件时将返回错误

    1539166495373

  • 只可读

    • 创建和读取文件

    进行只读权限限制后,root 用户也不能写入文件,对所有用户来说都拥有读权限

    1539172153921

调整大小

需要注意的是在进行 share 容量修改时,share 会暂时进入不可用状态,待修改完成后才可继续正常使用

  • 在前端界面或者使用命令 manila extend 可扩大 share 容量
1
  manila extend genericshare1 2

1539167097456

  • 在前端界面或者使用命令 manila shrink 可缩小 share 容量
1
  manila shrink genericshare1 1

1539167146184

快照

快照需要在 /etc/manila/manila.conf 文件中启用 cephfs_enable_snapshots = True ,对于每个 share-type 在创建时需要单独添加参数允许进行相关的 snapshot 操作,如 --snapshot_support--create_share_from_snapshot_support--revert_to_snapshot_support--mount_snapshot_support 等参数

相关用法如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
> usage: manila type-create [--description <description>]
>                           [--snapshot_support <snapshot_support>]
>                           [--create_share_from_snapshot_support <create_share_from_snapshot_support>]
>                           [--revert_to_snapshot_support <revert_to_snapshot_support>]
>                           [--mount_snapshot_support <mount_snapshot_support>]
>                           [--extra-specs [<key=value> [<key=value> ...]]]
>                           [--is_public <is_public>]
>                           <name> <spec_driver_handles_share_servers>
> 
> Create a new share type (Admin only).
> 
> Positional arguments:
>   <name>                Name of the new share type.
>   <spec_driver_handles_share_servers>
>                         Required extra specification. Valid values are
>                         'true'/'1' and 'false'/'0'.
> 
> Optional arguments:
>   --description <description>
>                         Filter results by description. Available only for
>                         microversion >= 2.41.
>   --snapshot_support <snapshot_support>, --snapshot-support <snapshot_support>
>                         Boolean extra spec used for filtering of back ends by
>                         their capability to create share snapshots.
>   --create_share_from_snapshot_support <create_share_from_snapshot_support>, --create-share-from-snapshot-support <create_share_from_snapshot_support>
>                         Boolean extra spec used for filtering of back ends by
>                         their capability to create shares from snapshots.
>   --revert_to_snapshot_support <revert_to_snapshot_support>, --revert-to-snapshot-support <revert_to_snapshot_support>
>                         Boolean extra spec used for filtering of back ends by
>                         their capability to revert shares to snapshots.
>                         (Default is False).
>   --mount_snapshot_support <mount_snapshot_support>, --mount-snapshot-support <mount_snapshot_support>
>                         Boolean extra spec used for filtering of back ends by
>                         their capability to mount share snapshots. (Default is
>                         False).
>   --extra-specs [<key=value> [<key=value> ...]], --extra_specs [<key=value> [<key=value> ...]]
>                         Extra specs key and value of share type that will be
>                         used for share type creation. OPTIONAL: Default=None.
>                         example --extra-specs thin_provisioning='<is> True',
>                         replication_type=readable.
>   --is_public <is_public>, --is-public <is_public>
>                         Make type accessible to the public (default true).
> ```

请确认创建的 `share-type` 已启用快照支持,如未启用快照支持,可参照下面的命令重新创建 `share-type`

```bash
manila type-create \
--snapshot_support True \
--create_share_from_snapshot_support True \
default_share_type True

或者直接通过以下命令进行相关值的更新

1
2
3
manila type-key default_share_type \
set snapshot_support=True \
create_share_from_snapshot_support=True
创建快照
  • 使用以下命令创建快照
1
  manila snapshot-create --name genericsnapshot --description "genericshare snapshot" genericshare1

1539168093861

  • 列出所有快照
1
  manila snapshot-list

1539168115743

从快照创建 share
  • 从快照创建 share
1
2
3
4
  manila create NFS 3 \
  --snapshot-id 10344ce8-1bb2-4103-8e20-30f15bf18dd4 \
  --share-network share-network1 \
  --name mysharefromsnap

1539171416741

删除快照
  • 删除创建的快照
1
  manila snapshot-delete genericsnapshot

1539171830044

卸载共享

使用以下命令可卸载共享

1
sudo umount mountpoint

1539166644299

CephFS native 驱动测试

创建共享

  • 使用命令创建一个 CephFS native share
1
  manila create --share-type cephfsnativetype --name cephnativeshare1 cephfs 1

1538989517622

  • 查看共享的导出位置
1
  manila share-export-location-list cephnativeshare1

1538989613099

访问许可

  • 允许 Ceph auth ID alice使用cephx访问类型访问共享

    • 允许可读可写
    1
    
    manila access-allow cephnativeshare1 cephx alice

    1538990095406

    • 只可读
    1
    
    manila access-allow --access-level ro cephnativeshare1 cephx alice

    1538992970185

  • 查看可访问列表

1
  manila access-list cephnativeshare1

1538990163437

1538993005997

挂载测试

挂载共享

  • 使用授权 ID alice的密钥创建密钥环文件 alice.keyring,如下
1
2
  [client.alice]
          key = AQDJH7tb0C7MGBAAj9U8cGtcW3lB6ReJoMdRdw==
  • 使用共享导出位置中的 mon IP 地址,创建配置文件 ceph.conf,如下
1
2
3
  [client]
          client quota = true
          mon host = 192.168.1.7:6789, 192.168.1.8:6789, 192.168.1.9:6789
  • 最后,挂载文件系统,使用刚刚创建的密钥环和配置文件替换对应的文件名,并用对应共享的导出位置替换要挂载的路径
1
2
3
4
5
  sudo ceph-fuse test \
  --id=alice \
  --conf=./ceph.conf \
  --keyring=./alice.keyring \
  --client-mountpoint=/volumes/_nogroup/b288bab7-28f1-463e-84c8-4f224ea8bc9a

1538998209372

测试

  • 可读可写

    • 创建文件

    因为挂载后的所属用户和所属组都为 root,普通用户只有读和执行权限,无法写入文件,root 用户拥有读、写和执行所以权限,所以 root 能正常写入文件

    1538998282730

    • 写入超过额定容量文件

    手动使用 dd 命令写入超过额定容量大文件时将返回错误

    1538991243782

  • 只可读

    • 创建和读取文件

    进行只读权限限制后,root 用户也不能写入文件,对所有用户来说都拥有读权限

    1538993432498

调整大小

  • 在前端界面或者使用命令 manila extend 可扩大 share 容量
1
  manila extend cephnativeshare1 2

1539057606987

  • 在前端界面或者使用命令 manila shrink 可缩小 share 容量
1
  manila shrink cephnativeshare1 1

1539061447499

快照

快照需要在 /etc/manila/manila.conf 文件中启用 cephfs_enable_snapshots = True ,同时后端 Ceph 也需要启用快照功能

另外,对于每个 share-type 在创建时需要单独添加参数允许进行相关的 snapshot 操作,如 --snapshot_support--create_share_from_snapshot_support--revert_to_snapshot_support--mount_snapshot_support 等参数

请确认创建的 share-type 已启用快照支持,如未启用快照支持,可参照下面的命令重新创建 share-type

1
2
3
manila type-create \
--snapshot_support True \
cephfsnativetype False

或者直接通过以下命令进行相关值的更新

1
2
manila type-key cephfsnativetype \
set snapshot_support=True
创建快照
  • 使用以下命令创建快照
1
  manila snapshot-create --name cephnativesnapshot --description "cepnnativeshare snapshot" cephnativeshare1

1539220788487

  • 列出所有快照
1
  manila snapshot-list

1539220856529

删除快照
  • 删除创建的快照
1
  manila snapshot-delete cephnativesnapshot

1539221659861

卸载共享

使用以下命令可卸载共享

1
sudo fusermount -u mountpoint

1538992248094

CephFS NFS 驱动测试

创建共享

  • 使用命令创建一个 CephFS NFS share
1
  manila create --share-type cephfsnfstype --name cephnfsshare1 nfs 1

1538995158213

  • 查看共享的导出位置
1
  manila share-export-location-list cephnfsshare1

1538995189342

访问许可

  • 允许访客使用 ip 访问类型访问共享

    • 允许可读可写
    1
    
    manila access-allow cephnfsshare1 ip 10.0.217.225

    1538999049199

    • 只可读
    1
    
    manila access-allow --access-level ro cephnfsshare1 ip 10.0.217.225

    1539002400884

  • 查看可访问列表

1
  manila access-list cephnfsshare1

1538999082311

1539002423830

挂载测试

挂载共享

  • 在 guest 虚拟机中,根据具体挂载点使用 NFS 客户端挂载共享
1
  sudo mount -t nfs 10.0.217.156:/volumes/_nogroup/81471a27-acfe-4631-831f-76216e76fd90 test

1538999669990

测试

  • 可读可写

    • 创建文件

    因为挂载后的所属用户和所属组都为 root,普通用户只有读和执行权限,无法写入文件,root 用户拥有读、写和执行所以权限,所以 root 能正常写入文件

    1538999747433

    • 写入超过额定容量文件

    手动使用 dd 命令写入超过额定容量大文件时会报如下错误

    1540283075266

  • 只可读

    • 创建和读取文件

    进行只读权限限制后,root 用户也不能写入文件,对所有用户来说都拥有读权限

    1539002549869

调整大小

  • 在前端界面或者使用命令 manila extend 可扩大 share 容量
1
  manila extend cephnfsshare1 2

1539079281021

  • 在前端界面或者使用命令 manila shrink 可缩小 share 容量
1
  manila shrink cephnfsshare1 1

1539079320334

快照

快照需要在 /etc/manila/manila.conf 文件中启用 cephfs_enable_snapshots = True ,同时后端 Ceph 也需要启用快照功能

另外,对于每个 share-type 在创建时需要单独添加参数允许进行相关的 snapshot 操作,如 --snapshot_support--create_share_from_snapshot_support--revert_to_snapshot_support--mount_snapshot_support 等参数

请确认创建的 share-type 已启用快照支持,如未启用快照支持,可参照下面的命令重新创建 share-type

1
2
3
manila type-create \
--snapshot_support True \
cephfsnfstype False

或者直接通过以下命令进行相关值的更新

1
2
manila type-key cephfsnfstype \
set snapshot_support=True
创建快照
  • 使用以下命令创建快照
1
  manila snapshot-create --name cephnfssnapshot --description "cepnnfsshare snapshot" cephnfsshare1

1539221821996

  • 列出所有快照
1
  manila snapshot-list

1539221848219

删除快照
  • 删除创建的快照
1
  manila snapshot-delete cephnfssnapshot

1539221992822

卸载共享

使用以下命令可卸载共享

1
sudo umount mountpoint

1539002613250

参考链接