SMB 遇见 Squid:Ceph 中用于 SMB 服务管理的全新 Ceph SMB 管理器模块

SMB 遇见 Squid:Ceph 中用于 SMB 服务管理的全新 Ceph SMB 管理器模块 ¶
注意:部分描述的功能在 Squid 19.2.3 中仅部分可用。完整的支持将随 Tentacle 一起提供。
简介 ¶
SMB(服务器消息块)是一种广泛使用的网络协议,可促进网络上共享文件、打印机和其他资源。为了在 Ceph 环境中无缝集成 SMB 服务,Ceph 8.0 引入了功能强大的 SMB 管理器模块,该模块使用户能够部署、管理和控制用于访问 CephFS 的 Samba 服务。该模块提供了一个用户友好的界面,用于管理 Samba 服务和 SMB 共享的集群,并具有两种管理方法的灵活性:命令式和声明式。通过使用命令 ceph mgr module enable smb 启用 SMB 管理器模块,管理员可以有效地简化 SMB 服务操作,无论是通过命令行还是通过 YAML 或 JSON 资源描述进行编排。借助新的 SMB 管理器模块,Ceph 管理员可以轻松扩展文件服务,为 CephFS 提供强大的 SMB 访问权限,同时享受增强的控制和可扩展性。
管理 SMB 集群和共享 ¶
管理员可以使用以下方法与 Ceph Manager SMB 模块交互
命令式方法:Ceph 命令与 Ceph Manager SMB 模块交互。
声明式方法:YAML 或 JSON 格式的资源规范。
简单的 Ceph Squid 与 SMB 配置工作流程 ¶

命令式方法 ¶
创建 CephFS 卷/子卷
# ceph fs volume create cephfs
# ceph fs subvolumegroup create cephfs smb
# ceph fs subvolume create cephfs sv1 --group-name=smb --mode=0777
# ceph fs subvolume create cephfs sv2 --group-name=smb --mode=0777
启用 SMB 管理模块
# ceph mgr module enable smb
创建 SMB 集群/共享
# ceph smb cluster create smb1 user --define-user-pass=user1%passwd
# ceph smb share create smb1 share1 cephfs / --subvolume=smb/sv1
从 MS Windows 客户端映射网络驱动器
声明式方法 ¶
创建 CephFS 卷/子卷
# ceph fs volume create cephfs
# ceph fs subvolumegroup create cephfs smb
# ceph fs subvolume create cephfs sv1 --group-name=smb --mode=0777
# ceph fs subvolume create cephfs sv2 --group-name=smb --mode=0777
启用 SMB 管理模块
# ceph mgr module enable smb
创建 SMB 集群/共享
# ceph smb apply -i - <<'EOF'
# --- Begin Embedded YAML
- resource_type: ceph.smb.cluster
cluster_id: smb1
auth_mode: user
user_group_settings:
- {source_type: resource, ref: ug1}
placement:
count: 1
- resource_type: ceph.smb.usersgroups
users_groups_id: ug1
values:
users:
- {name: user1, password: passwd}
- {name: user2, password: passwd}
groups: []
- resource_type: ceph.smb.share
cluster_id: smb1
share_id: share1
cephfs:
volume: cephfs
subvolumegroup: smb
subvolume: sv1
path: /
- resource_type: ceph.smb.share
cluster_id: smb1
share_id: share2
cephfs:
volume: cephfs
subvolumegroup: smb
subvolume: sv2
path: /
# --- End Embedded YAML
EOF
从 MS Windows 客户端映射网络驱动器
基本的 SMB 管理器模块 CLI 命令 ¶
创建 SMB 集群 ¶
# ceph smb cluster create <cluster_id> {user} [--domain-realm=<domain_realm>] \
[--domain-join-user-pass=<domain_join_user_pass>] \
[--define-user-pass=<define_user_pass>] [--custom-dns=<custom_dns>]
示例
Auth_Mode:User ¶
# ceph smb cluster create smb1 user --define_user_pass user1%passwd --placement label:smb --clustering default
Auth_Mode: AD ¶
# ceph smb cluster create smb1 active-directory --domain_realm samba.qe --domain_join_user_pass Administrator%Redhat@123 --custom_dns 10.70.44.153 --placement label:smb --clustering default
使用声明式方法创建 SMB 集群 ¶
# ceph smb apply -i [--format <value>]
示例
# ceph smb apply -i resources.yaml
创建 SMB 共享 ¶
# ceph smb share create <cluster_id> <share_id> <cephfs_volume> <path> [<share_name>] [<subvolume>] [--readonly] [--format]
示例
# ceph smb share create smb1 share1 cephfs / --subvolume=smb/sv1
列出 SMB 共享
# ceph smb share ls <cluster_id> [--format <value>]
示例
# ceph smb share ls smb1
查看 SMB 集群详细信息 ¶
# ceph smb show [<resource_names>]
示例
# ceph smb show ceph.smb.cluster.smb1
删除 SMB 共享 ¶
# ceph smb share rm <cluster_id> <share_id>
示例
# ceph smb share rm smb1 share1
删除 SMB 集群 ¶
# ceph smb cluster rm <cluster_id>
示例
# ceph smb share rm smb1
结论 ¶
Ceph Squid 中的 Ceph SMB 管理器模块为管理 CephFS 文件系统的 SMB 服务提供了一种创新且高效的方式。无论通过命令式还是声明式方法,用户都可以轻松创建、管理和控制 SMB 集群和共享。这种集成简化了 Samba 服务的设置,增强了可扩展性,并为管理员提供了更大的灵活性。借助能够无缝管理对 CephFS 的 SMB 访问权限,用户现在可以拥有一个简化的流程,以提供安全且可扩展的文件服务。
作者谨此感谢 IBM 对社区的支持,通过促使我们有时间创建这些帖子。