CephFS权限管理
Posted 半仙运维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CephFS权限管理相关的知识,希望对你有一定的参考价值。
CephFS权限管理
身份认证原理
- 用户通过客户端向 MON 发起请求。
- 客户端将用户名传递到 MON。
- MON 对用户名进行检查,若用户存在,则通过加密用户密钥生成一个 session key 并返回客户端。
- 客户端通过共享密钥解密 session key,只有拥有相同用户密钥环文件的客户端可以完成解密。
- 客户端得到 session key 后,客户端持有 session key 再次向 MON 发起请求
- MON 生成一个 ticket,同样使用用户密钥进行加密,然后发送给客户端。
- 客户端同样通过共享密钥解密得到 ticket。
- 往后,客户端持有 ticket 向 MON、OSD 发起请求。
创建CephFS
ceph osd pool create cephfs_data 64 64 # 创建存数据的pool
ceph osd pool create cephfs_metadata 32 32 #创建存储元数据的pool
ceph fs new lwq-fs cephfs_metadata cephfs_data #把2个pool关联起来创建cephfs
ceph fs ls #查看cephfs
查看用户
eph auth ls #查看已经存在的用户
ceph auth list #可以查看用户权限以及 key string
ceph auth get client.admin #列出用户的权限信息
创建用户
ceph auth get-or-create client.bruce mon 'allow r' mds 'allow r, allow rw path=/bruce' osd 'allow rw pool=cephfs_data' #创建bruce用户,只能在bruce目录下面操作 其他目录有读权限
ceph auth get-or-create client.lzy mon 'allow r ' mds ' allow rw path=/test' osd 'allow rw pool=cephfs_data' #创建lzy用户只能在test目录下面操作 其他目录没有权限
ceph auth get-or-create client.trade mon 'allow r' mds 'allow r, allow rw path=/trade' osd 'allow rw pool=cephfs_data'
# mds caps 可以针对路径进行授权。
# osd caps 可以针对 pool 进行授权, 这个还是比较好使的, 但是要注意与前面的 path 保持一致.
授权类型
allow:在守护进程进行访问设置之前就已经具有特定权限,常见于管理员和守护进程用户。
r:授予用户读的权限,读取集群各个组件(MON/OSD/MDS/CRUSH/PG)的状态,但是不能修改。
w:授予用户写对象的权限,与 r 配合使用,修改集群的各个组件的状态,可以执行组件的各个动作指令。
x:授予用户调用类方法的能力,仅仅和 ceph auth 操作相关。
class-read:授予用户调用类读取方法的能力,是 x 的子集。
class-write:授予用户调用类写入方法的能力,是 x 的子集。
*:授予用户 rwx 权限。
客户端挂载
ceph auth print-key client.bruce > bruce.key #导出密钥
scp密钥到客户端的/etc/ceph/ 目录下面
mount -t ceph 10.4.7.18:6789:/bruce /mnt/bruce -o name=bruce,secret=AQBpi8FhWy2gBxAAKUNrlRnDqMTL7V9ejo+oKg== #明文挂载
mount -t ceph 10.4.7.18:6789:/bruce /mnt/bruce -o name=bruce,secretfile=/etc/bruce.key #这样历史记录里面就没有密钥的明文信息了
以上是关于CephFS权限管理的主要内容,如果未能解决你的问题,请参考以下文章