| 作者 | 时间 | QQ技术交流群 |
|---|---|---|
| perrynzhou@gmail.com | 2023/03/21 | 672152841 |

介绍

Lustre
中的HSM(Hierarchical Storage Management)
提供一种Lustre
文件系统和外部存储系统之间冷热数据分层的方案(这里可以类比mysql和redis在一般业务使用时候的关系)。假设我有一个纯NVMe
的Lustre
集群,后端是其他的存储系统比如S3
存储或者慢速的Lustre
文件系统,在这个时候可以把NVMe
的Lustre
集群当做慢速存储系统的Cache
,这样来加速后端慢速存储系统的访问速度。Lustre HSM
本质是为用户提供无感的快速存储系统和慢速存储系统之间数据移动,这里的提到的快速
和慢速
都是相对的。
HSM
系统架构


为了方便理解,架构中提到的
HSM World
可以简单的认为是慢速存储系统
HSM
支持的数据Move
模式
| 类型 | 说明 |
|---|---|
| ARCHIVE | 拷贝作为Cache的Lustre中的热数据到后端慢存储系统中 |
| RELEASE | 从Lustre文件系统中删除数据,这里可以理解为Cache中的淘汰 |
| RESTORE | 从后端慢速存储系统拷贝数据到作为Cache的Lustre文件系统 |
| REMOVE | 删除后端慢速存储系统中的数据 |
| CANCEL | 取消正在处理或者已经在处理队列中的请求 |
HSM
启用
Coordinator
设置
// MDS端设置coordinator的启用,设置enabled即可
$ lctl set_param mdt.$FSNAME-MDT0000.hsm_control=enabled
// corrdinator的启用状态查看
$ lctl get_param mdt.$FSNAME-MDT0000.hsm_control
Agent
设置
// 这个设置需要再Lustre客户端,其中$HSMPATH指向的是HSM后端cold的存储系统,$LUSTREPATH 是作为Cache的Lustre文件系统
$ lhsmtool_posix --daemon --hsm-root $HSMPATH --archive=1 $LUSTREPATH
// 在MDS端查看已经注册的agents信息,其中uuid是挂载后运行copytool的标识,archive_id可访问的copytool的archive id列表,requests是copytool已经处理的请求
$ lctl get_param -n mdt.$FSNAME-MDT0000.hsm.agents
HSM
调优思路
在实际的
HSM
方案中可能会遇到copytool
无法响应为了避免阻塞文件的访问,可以设置请求处理完成的最大上限时间
// 默认的active_request_timeout是3600s
$ lctl set_param -n mdt.lustre-MDT0000.hsm.active_request_timeout={自定义的请求完成时间}
针对多个
MDT
(这里是N个)可以设置每个MDT
处理的最大活跃请求的上限
// mdt端设置
$ lctl set_param mdt.$FSNAME-MDT0000.hsm.max_requests=100
文章转载自存储内核技术交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




