CephFS

Ceph 文件系统(Ceph FS)是个 POSIX 兼容的文件系统1),它使用 Ceph 存储集群来存储数据。 Ceph 文件系统与 Ceph 块设备、同时提供 S3 和 Swift API 的 Ceph 对象存储、或者原生库( librados )一样都使用着相同的 Ceph 存储集群系统。

ceph-deploy mds create ceph-1 ceph-2 ceph-3
  • 在ceph-deploy端操作;

A Ceph filesystem requires at least two RADOS pools, one for data and one for metadata.

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
# enable pools
ceph fs new cephfs cephfs_metadata cephfs_data
# show list
ceph fs ls 
ceph mds stat
  • 安全考虑,不用admin用户来挂载CephFS,单独新建用户并指派权限;
  • 在ceph-deploy端操作;

创建用户 user07,限制其只能访问/user07 目录,不能挂载/:

采用低于kernel 3.9 驱动进行cephfs进行挂载,只能使CephFS的/为只读,指定要挂载的目录为rw.通过kernel patch或者升级kernel3.9+ 可完全限定用户只能读写特定目录.

kernel 3.9- 注意添加mds “allow r,:

# /=r /bar=rw
ceph fs authorize cephfs client.user07 / r /user07 rw
 
# 或者通过caps设置
ceph auth get-or-create client.user07 \
	mon "allow r" \
	mds "allow r, allow rw path=/user07" \
	osd "allow rw pool=cephfs_data"

6.1. 获取ceph.mon上的用户信息

登录ceph.mon以获取用户key:

ssh admin@ceph-1 "sudo ceph auth print_key client.user07" > client.user07.key
chmod 600 client.user07.key

6.2. 挂载CephFS

# 创建挂载点
mkdir /user07
# 使用key
mount -t ceph ceph-1:6789:/user07 /user07 -o name=user07,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
# 上面方式会把密匙遗留在 Bash 历史里,更安全的方法是从文件读密匙
mount -t ceph ceph-1:6789:/user07 /user07 -o name=user07,secretfile=client.user07.key
df -h

6.3. 开机挂载CephFS

添加至/etc/fstab:

ceph-1:6789:/user07    /mnt/user07    ceph    name=user07,secretfile=/etc/ceph/client.user07.key,noatime    0 0
umount /mnt/user07


1)
Ceph 文件系统要求存储集群内至少有一个 Ceph 元数据服务器。
2)
也就是有用户,密匙
  • storage/ceph/cephfs.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)