简介
cephfs支持配置file layout,可以控制file分配到指定的ceph rados objects上,这些信息是写在file/dir的xattrs上。
- 文件的layout xattrs为:ceph.file.layout
- 目录的layout xattrs为:ceph.dir.layout
目录中的文件和子目录默认继承父目录的layout配置
支持的layout配置项有:
- pool
file的数据存储在哪个RADOS pool里 - namespace
file的数据存储在RADOS pool里的哪个namespace里,但现在rbd/rgw/cephfs都还不支持 - stripe_unit
条带的大小,以Bytes为单位 - stripe_count
条带的个数
比如,stripe_unit=524288
,stripe_count=2
,默认object size是4MB,则file写10MB的数据分配如下:
1 | --- object set 0 --- --- object set 1 --- |
配置file stripe
以admin的user登录,配置dir的attribute
1 | # mount -t ceph 10.10.2.1:6789:/ /mnt/tstfs2/ |
配置目录的attribute,默认其子目录和文件都会集成该目录的
1 | # touch /mnt/tstfs2/mike512K/tstfile |
验证file stripe
查看file的location
1 | # dd if=/dev/zero of= /mnt/tstfs2/mike512K/tstfile bs=4M count=100 |
查看osd上的object
1 | # cd /var/lib/ceph/osd/ceph-0/current/ |
参考
http://docs.ceph.com/docs/jewel/architecture/#data-striping
http://docs.ceph.com/docs/jewel/cephfs/file-layouts/