2.10. 临时固定策略
临时固定是一个子树的静态分区,可以使用扩展属性来设置策略。策略可以自动将临时固定到目录。当将临时固定设置为某个目录时,它会自动分配到一个特定等级,因为在所有 Ceph MDS 等级间统一分布。确定分配哪些等级由一致的哈希和目录的索引节点编号完成。当目录的内节点从文件系统缓存中丢弃时,临时固定不会保留。当 Ceph 元数据服务器(MDS)出现故障时,临时固定将记录在日志中,因此 Ceph MDS 备用服务器不会丢失此信息。使用临时固定的策略有两种:
注意
必须为临时固定策略安装 attr
和 jq
软件包。
- 分布式
-
此策略强制所有目录的即时子对象都必须临时固定。例如,使用分布式策略将用户的主目录分散到整个 Ceph 文件系统集群中。通过设置
ceph.dir.pin.distributed
扩展属性来启用此策略。
语法
setfattr -n ceph.dir.pin.distributed -v 1 DIRECTORY_PATH
示例
[root@host01 mount]# setfattr -n ceph.dir.pin.distributed -v 1 dir1/
- 随机
-
此策略强制实施一个机会,任何子子目录都可能会被临时固定。您可以自定义可临时固定的目录百分比。通过设置
ceph.dir.pin.random
并设置百分比来启用此策略。红帽建议将此百分比设置为小于 1% 的值(0.01
)。太多子树分区可能会导致性能下降。您可以通过设置mds_export_ephemeral_random_max
Ceph MDS 配置选项来设置最大百分比。已启用mds_export_ephemeral_distributed
和mds_export_ephemeral_random
参数。
语法
setfattr -n ceph.dir.pin.random -v PERCENTAGE_IN_DECIMAL DIRECTORY_PATH
示例
[root@host01 mount]# setfattr -n ceph.dir.pin.random -v 0.01 dir1/
启用固定后,您可以通过运行以下命令来 验证 :
语法
getfattr -n ceph.dir.pin.random DIRECTORY_PATH getfattr -n ceph.dir.pin.distributed DIRECTORY_PATH
示例
[root@host01 mount]# getfattr -n ceph.dir.pin.distributed dir1/ # file: dir1/ ceph.dir.pin.distributed="1" [root@host01 mount]# getfattr -n ceph.dir.pin.random dir1/ # file: dir1/ ceph.dir.pin.random="0.01"
示例
[ceph: root@host01 /]# ceph tell mds.a get subtrees | jq '.[] | [.dir.path, .auth_first, .export_pin]'
如果目录已被固定,则 export_pin
的值为
0 (如果它固定到排名 0
),
(如果它固定到排名 1),以此类推。如果目录没有固定,则值为 1
-1
。
要删除 分区策略,请删除扩展属性或将值设为 0。
语法
setfattr -n ceph.dir.pin.distributed -v 0 DIRECTORY_PATH
示例
[root@host01 mount]# setfattr -n ceph.dir.pin.distributed -v 0 dir1/
您可以通过 运行以下命令来验证。Syntax
getfattr -n ceph.dir.pin.distributed DIRECTORY_PATH
示例
[root@host01 mount]# getfattr -n ceph.dir.pin.distributed dir1/
对于导出固定,请删除扩展属性,或者将扩展属性设置为 -1
。
语法
setfattr -n ceph.dir.pin -v -1 DIRECTORY_PATH
示例
[root@host01 mount]# setfattr -n ceph.dir.pin -v -1 dir1/
其它资源
- 有关手动设置固定的详细信息,请参阅 Red Hat Ceph Storage 文件系统指南中的手动固定目录树 部分。