Ceph使用cephx协议对客户端进行身份认证:
1.每个MON都可以对客户端进行身份验正并分发密钥, 不存在单点故障和性能瓶颈
2. MON会返回用于身份验正的数据结构, 其包含获取Ceph服务时用到的session key。
3.session key通过客户端密钥进行加密
4.客户端使用session key向MON请求所需的服务
5.MON向客户端提供一个ticket, 用于向实际处理数据的OSD等验正客户端身份
6.MON和OSD共享同一个secret, 因此OSD会信任由MON发放的ticket
7.ticket存在有效期限
注意:
CephX身份验正功能仅限制Ceph的各组件之间, 它不能扩展到其它非Ceph组件;它并不解决数据传输加密的问题;
无论Ceph客户端是何类型, Ceph都会在存储池中将所有数据存储为对象
Ceph用户需要拥有存储池访问权限才能读取和写入数据
Ceph用户必须拥有执行权限才能使用Ceph的管理命令
相关概念:
用户
授权
使能(Capabilities)
用户:
用户是指个人或系统参与者( 例如应用)
通过创建用户, 可以控制谁( 或哪个参与者) 能够访问Ceph存储集群、 以及可访问的存储池及存储池中的数据。
Ceph支持多种类型的用户, 但可管理的用户都属于Client类型
区分用户类型的原因在于, MON、 OSD和MDS等系统组件也使用cephx协议, 但它们非为客户端
通过点号来分隔用户类型和用户名, 格式为TYPE.ID, 例如client.admin等
Ceph基于“使能(caps)”来描述用户可针对MON、 OSD或MDS使用的权限范围或级别
通用语法格式: daemon-type 'allow caps' […]
MON使能:
包括r、 w、 x和allow profile cap
例如: mon 'allow rwx', 以及mon 'allow profile osd'等
OSD使能:
包括r、 w、 x、 class-read、 class-write和profile osd
此外, OSD 使能还允许进行存储池和名称空间设置
MDS使能:
只需要allow, 或留空
allow
需先于守护进程的访问设置指定
仅对MDS表示rw之意, 其它的表示字面意义
r:读取权限, 访问MON以检索CRUSH时依赖此使能
w:对象写入权限
x:调用类方法( 读取和写入) 的能力, 以及在MON上执行auth操作的能力
class-read: x能力的子集, 授予用户调用类读取方法的能力
class-write: x的子集, 授予用户调用类写入方法的能力
*: 授予用户对特定守护进程/存储池的读取、 写入和执行权限, 以及执行管理命令的能力。
profile osd:
授予用户以某个OSD身份连接到其他OSD或监视器的权限
授予OSD权限, 使OSD能够处理复制检测信号流量和状态报告
profile mds:
授予用户以某个MDS身份连接到其他MDS或监视器的权限
profile bootstrap-osd:
授予用户引导OSD的权限
授权给部署工具, 使其在引导OSD时有权添加密钥
profile bootstrap-mds:
授予用户引导元数据服务器的权限
授权给部署工具, 使其在引导元数据服务器时有权添加密钥
1.要使用cephx,管理员必须先设置用户,创建账号流程如下:
1.1 client.admin用户从命令行调用 以生成用户名和密钥。
1.2 Ceph 的子系统生成用户名和密钥,与监视器(mon)一起存储副本并将用户的密钥传输回用户
1.3 客户端收到并保存密钥,这意味着客户端和mon共享一个密钥。
ceph auth get-or-create-keyauthclient.admin
2.客户端向mon节点进行身份验证过程
2.1 客户端将用户名(比如:user01)传递给mon,mon生成会话密钥(session_key)并使用与用户名(user01)关联的密钥(创建用户user01时生成的共享密钥)对其进行加密,并将加密的数据发送回客户端。
2.2 客户端收到后使用共享密钥解密出会话密钥(session_key)。(会话密钥标识当前会话的用户)
2.3 客户端使用会话密钥签名的用户向mon请求票证。
2.4 模拟生成票证,用用户的密钥对其进行加密,然后将其发送回客户端。
2.5 客户端解密票证并使用它来签署对整个集群的 OSD 和元数据服务器的请求。
3.该cephx协议验证客户端机器和 Ceph 服务器之间正在进行的通信。
在初始身份验证之后,客户端和服务器之间发送的每条消息都使用票证进行签名,监视器、OSD 和元数据服务器可以使用它们的共享秘密进行验证。
这种身份验证提供的保护是在 Ceph 客户端和 Ceph 服务器主机之间。身份验证不会扩展到 Ceph 客户端之外。如果用户从远程主机访问 Ceph 客户端,则 Ceph 身份验证不会应用于用户主机和客户端主机之间的连接
用户管理功能为 Ceph 存储集群管理员提供了直接在 Ceph 存储集群中创建、更新和删除用户的能力。
当您在 Ceph 存储集群中创建或删除用户时,您可能需要将密钥分发给客户端,以便将它们添加到密钥环中。有关详细信息,请参阅密钥环管理。
要列出集群中的用户,请执行以下操作:
ceph auth ls
Ceph 将列出集群中的所有用户:
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth ls
请注意,TYPE.IDusers的表示法适用于osd.0用户类型osd,其 ID 为0,client.admin用户类型为 client,其 ID 为admin(即默认client.admin用户)。另请注意,每个条目都有一个条目,以及一个或多个 条目。key:
您可以使用with 选项将输出保存到文件中。-o {filename}ceph auth ls
要检索特定用户、密钥和功能,请执行以下操作:
ceph auth get {TYPE.ID}
例如:
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.admin
[client.admin] key = AQBy1x1hqZ/xEBAAMTbpjTvoOUJMLZw6YHB63A== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
您还可以使用-o {filename}选项将输出保存到文件中。开发人员还可以执行以下操作:
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.admin -o c.a.key
exported keyring for client.admin
cephuser@ceph-deploy:~/ceph-cluster$ cat c.a.key
[client.admin] key = AQBy1x1hqZ/xEBAAMTbpjTvoOUJMLZw6YHB63A== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
还可以使用 export选项 ceph auth export {TYPE.ID}
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth export client.admin
[client.admin] key = AQBy1x1hqZ/xEBAAMTbpjTvoOUJMLZw6YHB63A== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
export auth(key=AQBy1x1hqZ/xEBAAMTbpjTvoOUJMLZw6YHB63A==)
添加用户会创建用户名(即TYPE.ID)、密钥以及用于创建用户的命令中包含的任何功能。
用户的密钥使用户能够通过 Ceph 存储集群进行身份验证。用户的能力授权用户在 Ceph 监视器 ( mon)、Ceph OSD ( osd) 或 Ceph 元数据服务器 ( mds)上读取、写入或执行。
添加用户有以下几种方式:
创建客户端用户时,您可以创建一个没有能力的用户。一个没有能力的用户除了认证是没有用的,因为客户端无法从监视器检索集群映射。但是,如果您希望稍后使用该命令ceph auth caps推迟添加功能
一个典型的用户至少有 Ceph 监视器上的读取能力和 Ceph OSD 上的读写能力。此外,用户的 OSD 权限通常仅限于访问特定池。
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth add client.rbduser1 mon 'allow r' osd 'allow rw pool=rbd-test1'
added key for client.rbduser1
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create client.rbduser2 mon 'allow r' osd 'allow rw pool=rbd-test1'
[client.rbduser2] key = AQBP2SVhoQcHDxAAfmq8XkBVAxBCIBi6RHHWkw==
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create-key client.rbduser3 mon 'allow r' osd 'allow rw pool=rbd-test1' -o client.rbduser3.key
cephuser@ceph-deploy:~/ceph-cluster$ cat !$
cat client.rbduser3.key
AQCc2SVhNaFMChAAyz+OUTGLKrN9V8dP5BaVcQ==
重要的:如果您为用户提供 OSD 功能,但您不限制对特定池的访问,则该用户将有权访问集群中的所有池!
该命令允许您指定用户并更改用户的能力。设置新功能将覆盖当前功能。要查看当前功能,请运行ceph auth get USERTYPE.USERID
要添加功能,您还应该在使用表单时指定现有功能:
ceph auth caps USERTYPE.USERID {daemon} 'allow [r|w|x|*|…] [pool={pool-name}] [namespace={namespace-name}]' [{daemon} 'allow [r|w|x|*|…] [pool={pool-name}] [namespace={namespace-name}]']
例如:
# client.rbduser1 增加osd的x(执行)权限
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth caps client.rbduser1 mon 'allow r' osd 'allow rwx pool=rbd-test1'
updated caps for client.rbduser1
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser1
[client.rbduser1] key = AQAp2SVh/mg7BhAAUn1znkL/X9qmMtOW3fBDIg== caps mon = "allow r" caps osd = "allow rwx pool=rbd-test1"
exported keyring for client.rbduser1 # client.rbduser2
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth caps client.rbduser2 mon 'allow rw' osd 'allow rwx pool=rbd-test1'
updated caps for client.rbduser2
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser2
[client.rbduser2] key = AQBP2SVhoQcHDxAAfmq8XkBVAxBCIBi6RHHWkw== caps mon = "allow rw" caps osd = "allow rwx pool=rbd-test1"
exported keyring for client.rbduser2 # client.rbduser3
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth caps client.rbduser3 mon 'allow *' osd 'allow *'
updated caps for client.rbduser3
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser3
[client.rbduser3] key = AQCc2SVhNaFMChAAyz+OUTGLKrN9V8dP5BaVcQ== caps mon = "allow *" caps osd = "allow *"
exported keyring for client.rbduser3
要删除用户,请使用:ceph auth del
ceph auth del {TYPE}.{ID}
哪里{TYPE}是一个client,osd,mon,或mds,并且{ID}是用户名或守护进程的ID。
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth del client.rbduser3
要将用户的身份验证密钥打印到标准输出,请执行以下操作:
ceph auth print-key {TYPE}.{ID}
哪里{TYPE}是一个client,osd,mon,或mds,并且{ID}是用户名或守护进程的ID。
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth print-key client.rbduser1
AQAp2SVh/mg7BhAAUn1znkL/X9qmMtOW3fBDIg==
当您需要使用用户的密钥(例如,libvirt)填充客户端软件时,打印用户的密钥非常有用。
mount -t ceph serverhost:/ mountpoint -o name=client.user,secret=`ceph auth print-key client.user`
要导入一个或多个用户,请使用并指定一个密钥环:ceph auth import
ceph auth import -i /path/to/keyring
可以用于用户和权限的备份,即便账号被删除,也可以通过import文件将用户恢复,且key不变
# 查看用户client.rbduser2的key 和权限
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser2
[client.rbduser2] key = AQBP2SVhoQcHDxAAfmq8XkBVAxBCIBi6RHHWkw== caps mon = "allow rw" caps osd = "allow rwx pool=rbd-test1"
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser2 -o client.rbduser2.keyring
cephuser@ceph-deploy:~/ceph-cluster$ cat !$ cat client.ebduser2.keyring
[client.rbduser2] key = AQBP2SVhoQcHDxAAfmq8XkBVAxBCIBi6RHHWkw== caps mon = "allow rw" caps osd = "allow rwx pool=rbd-test1"
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth del client.rbduser2
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth import -i client.ebduser2.keyring
cephuser@ceph-deploy:~/ceph-cluster$ ceph auth get client.rbduser2
[client.rbduser2] key = AQBP2SVhoQcHDxAAfmq8XkBVAxBCIBi6RHHWkw== caps mon = "allow rw" caps osd = "allow rwx pool=rbd-test1"
$ ceph osd pool create rbd-test2 16 16
pool 'rbd-test2' created
$ ceph osd pool application enable rbd-test2 rbd
enabled application 'rbd' on pool 'rbd-test2'
$ rbd pool init -p rbd-test2
$ rbd create img-test3 --size 5G --pool rbd-test2 --image-format 2 --image-feature layering
$ rbd ls --pool rbd-test2
img-test3
$ ceph auth add client.rbd_user_01 mon 'allow r' osd 'allow rwx pool=rbd-test2'
added key for client.rbd_user_01
$ ceph auth get client.rbd_user_01 -o ceph.client.rbd_user_01.keyring
exported keyring for client.rbd_user_01
~# wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudo apt-key add -
~# echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main" >> /etc/apt/sources.list
~# apt install ceph-common
$ sscp ceph.conf ceph.client.admin.keyring ceph.client.rbd_user_01.keyring root@client1:/etc/ceph/
ceph.client.rbd_user_01.keyring
root@client1:~# rbd ls --pool rbd-test2
img-test3
root@client1:~# rbd --image img-test3 --pool rbd-test2 info
rbd image 'img-test3':
size 5 GiB in 1280 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: d65187c1e104
block_name_prefix: rbd_data.d65187c1e104
format: 2
features: layering
op_features:
flags:
create_timestamp: Wed Aug 25 16:25:22 2021
access_timestamp: Wed Aug 25 16:25:22 2021
modify_timestamp: Wed Aug 25 16:25:22 2021
root@client1:~# rbd --user rbd_user_01 --pool rbd-test2 map img-test3
/dev/rbd0
rbd: --user is deprecated, use --id
~# mkfs.xfs /dev/rbd0
~# mount /dev/rbd0 /mnt/rbd0/
~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/rbd0 5.0G 39M 5.0G 1% /mnt/rbd0
root@client1:~# umount /mnt/rbd0
root@client1:~# rbd --user rbd_user_01 --pool rbd-test2 unmap img-test3
rbd: --user is deprecated, use --id
cephuser@ceph-deploy:~/ceph-cluster$ rbd rm --pool rbd-test2 --image img-test3
Removing image: 100% complete…done.
Ceph FS 即ceph filesystem,可以实现文件系统共享功能,客户端通过ceph 协议挂载并使用ceph 集群作为数据存储服务器。
Ceph FS 需要运行Meta Data Services(MDS)服务,其守护进程为ceph-mds,ceph-mds 进程管理与cephFS 上存储的文件相关的元数据,并协调对ceph 存储集群的访问。
root@mds1:~# wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudo apt-key add -
root@mds1:~# echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main" >> /etc/apt/sources.list
root@mds1:~# apt install ceph-mds
root@mds1:~# groupadd -r -g 2023 cephuser && useradd -r -m -s /bin/bash -u 2023 -g 2023 cephuser && echo cephuser:sa@123.. | chpasswd
root@mds1:~# echo "cephuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
192.168.2.61 mds1
192.168.2.62 mds2
192.168.2.64 mds3
192.168.2.64 mds4
192.168.2.2 ceph-deploy
192.168.2.21 mon1
192.168.2.22 mon2
192.168.2.23 mon3
192.168.2.31 mgr1
192.168.2.32 mgr2
192.168.2.41 osd1
192.168.2.42 osd2
192.168.2.43 osd3
192.168.2.44 osd4
192.168.2.50 client1
192.168.2.61 mds1
192.168.2.62 mds2
192.168.2.64 mds3
192.168.2.64 mds4
$ ssh-copy-id cephuser@mds1
$ ssh-copy-id cephuser@mds2
$ ssh-copy-id cephuser@mds3
$ ssh-copy-id cephuser@mds4
$ scp ceph.conf ceph.client.admin.keyring root@mds1:/etc/ceph/
$ scp ceph.conf ceph.client.admin.keyring root@mds2:/etc/ceph/
$ scp ceph.conf ceph.client.admin.keyring root@mds3:/etc/ceph/
$ scp ceph.conf ceph.client.admin.keyring root@mds4:/etc/ceph/
# apt install python2.7 -y
$ ceph-deploy mds create mds1
$ ceph-deploy mds create mds2
$ ceph-deploy mds create mds3
$ ceph-deploy mds create mds4
$ ceph osd pool create cephfs-t1-metadata 32 32
pool 'cephfs-t1-metadata' created
$ ceph osd pool create cephfs-t1-data 64 64
pool 'cephfs-t1-data' created
$ ceph fs new cephfs-t1 cephfs-t1-metadata cephfs-t1-data
new fs with metadata pool 8 and data pool 9
$ ceph fs status cephfs-t1
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active mds1 Reqs: 0 /s 10 13 12 0
POOL TYPE USED AVAIL
cephfs-t1-metadata metadata 96.0k 629G
cephfs-t1-data data 0 629G
STANDBY MDS
mds2
mds3
mds4
MDS version: ceph version 16.2.5 (0883bdea7337b95e4b611c768c0279868462204a) pacific (stable)
$ ceph fs get cephfs-t1
Filesystem 'cephfs-t1' (1)
fs_name cephfs-t1
epoch 5
flags 12
created 2021-08-26T14:47:28.599590+0800
modified 2021-08-26T14:54:22.906615+0800
tableserver 0
root 0
session_timeout 60
session_autoclose 300
max_file_size 1099511627776
required_client_features {}
last_failure 0
last_failure_osd_epoch 0
compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
max_mds 1
in 0
up {0=4983}
failed
damaged
stopped
data_pools [8]
metadata_pool 7
inline_data disabled
balancer
standby_count_wanted 1
[mds.mds1{0:4983} state up:active seq 3 addr [v2:192.168.2.61:6800/1159603360,v1:192.168.2.61:6801/1159603360]]
cephuser@ceph-deploy:~/ceph-cluster$ ceph fs set cephfs-t1 max_mds 2
cephuser@ceph-deploy:~/ceph-cluster$ ceph fs status cephfs-t1
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active mds1 Reqs: 0 /s 10 13 12 0
1 active mds4 Reqs: 0 /s 10 13 12 0
POOL TYPE USED AVAIL
cephfs-t1-metadata metadata 168k 629G
cephfs-t1-data data 0 629G
STANDBY MDS
mds2
mds3
MDS version: ceph version 16.2.5 (0883bdea7337b95e4b611c768c0279868462204a) pacific (stable)
目前的状态是mds1 和mds4 分别是active 状态,mds2 和mds3 分别处于standby 状态.
可以将:
mds2 设置为mds1 的standby
mds3 设置为mds4 的standby
以实现每个主都有一个固定备份角色的结构,则修改配置文件如下
$ vim ceph.conf
[global]
fsid = 54ed6318-9830-4152-917c-f1af7fa1002a
public_network = 192.168.2.0/24
cluster_network = 172.1.0.0/24
mon_initial_members = mon1, mon2, mon3
mon_host = 192.168.2.21,192.168.2.22,192.168.2.23
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
[mds.mds1]
#mds_standby_for_fscid = cephfs-t1
mds_standby_for_name = mds2
mds_standby_replay = true
[mds.mds3]
mds_standby_for_name = mds4
mds_standby_replay = true
$ ceph-deploy --overwrite-conf config push mds1
$ ceph-deploy --overwrite-conf config push mds2
$ ceph-deploy --overwrite-conf config push mds3
$ ceph-deploy --overwrite-conf config push mds4
root@mds1:~# systemctl restart ceph-mds@mds1.service
root@mds2:~# systemctl restart ceph-mds@mds2.service
root@mds3:~# systemctl restart ceph-mds@mds3.service
root@mds4:~# systemctl restart ceph-mds@mds4.service
$ ceph fs status
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active mds4 Reqs: 0 /s 10 13 12 0
1 active mds3 Reqs: 0 /s 10 13 11 0
POOL TYPE USED AVAIL
cephfs-t1-metadata metadata 168k 629G
cephfs-t1-data data 0 629G
STANDBY MDS
mds2
mds1
MDS version: ceph version 16.2.5 (0883bdea7337b95e4b611c768c0279868462204a) pacific (stable)
问题:
根据配置,预期为mds1 <--> mds2, mds3 <--> md4,重启了mds服务多长,也没达到预期的效果。
而且mds服务默认30分钟内重启次数不能超过3次,否则需要修改参数。
vim /etc/systemd/system/ceph-mds.target.wants/ceph-mds@mds1.service
StartLimitBurst=3
StartLimitInterval=30min
# 创建账号并授权
$ ceph auth add client.cephfs_user02 mon 'allow r' mds 'allow rw' osd 'allow rwx pool=cephfs-t1-data'
added key for client.cephfs_user02
$ ceph auth get client.cephfs_user02 -o ceph.client.cephfs_user02.keyring
exported keyring for client.cephfs_user02
$ $ ceph auth print-key client.cephfs_user02 > cephfs_user02.key
~# wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudo apt-key add -
~# echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main" >> /etc/apt/sources.list
~# apt install ceph-common
$ scp ceph.conf ceph.client.cephfs_user02.keyring cephfs_user02.key root@client1:/etc/ceph/
root@client1's password:
ceph.conf 100% 461 141.0KB/s 00:00
ceph.client.cephfs_user02.keyring 100% 160 59.3KB/s 00:00
cephfs_user02.key 100% 40 16.3KB/s 00:00
客户端挂载有两种方式,一是内核空间一是用户空间,内核空间挂载需要内核支持ceph 模块,用户空间挂载需要安装ceph-fuse
~# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/ceph-fs-t1/ -o name=cephfs_user02,secretfile=/etc/ceph/cephfs_user02.key
root@client1:/etc/ceph# df -h
Filesystem Size Used Avail Use% Mounted on
…
192.168.2.21:6789,192.168.2.22:6789,192.168.2.23:6789:/ 629G 0 629G 0% /mnt/ceph-fs-t1
root@client1:/etc/ceph# cd /mnt/ceph-fs-t1/
root@client1:/mnt/ceph-fs-t1# dd if=/dev/zero of=/mnt/ceph-fs-t1/file1 bs=4MB count=200
200+0 records in
200+0 records out
800000000 bytes (800 MB, 763 MiB) copied, 0.925139 s, 865 MB/s
root@client1:/mnt/ceph-fs-t1# cp /var/log/syslog .
root@client1:/mnt/ceph-fs-t1# ll
total 781427
drwxr-xr-x 1 root root 3 Aug 26 17:14 ./
drwxr-xr-x 4 root root 36 Aug 26 16:48 ../
-rw-r--r-- 1 root root 800000000 Aug 26 17:14 file1
-rw-r----- 1 root root 180463 Aug 26 17:14 syslog
root@client1:~# umount /mnt/ceph-fs-t1
root@client1:~#
root@client1:~# cat /etc/ceph/cephfs_user02.key
AQCZWidhy8IpKBAA9W1tT45tflTM4bpAuT6mcw==
root@client1:~# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/ceph-fs-t1/ -o name=cephfs_user02,secret=AQCZWidhy8IpKBAA9W1tT45tflTM4bpAuT6mcw==
root@client1:~# cd /mnt/ceph-fs-t1/
root@client1:/mnt/ceph-fs-t1# rm -rf *
root@client1:~# vim /etc/fstab
root@client1:~# mon1:6789,mon2:6789,mon3:6789:/ /mnt/ceph-fs-t1 ceph defaults,name=cephfs_user02,secretfile=/etc/ceph/cephfs_user02.key,_netdev 0 0
root@client1:~# mount -a
手机扫一扫
移动阅读更方便
你可能感兴趣的文章