lustre集群环境角色 | 节点 | 版本 | 磁盘 |
|---|---|---|---|
MGS/MDS | 10.211.55.16 | lustre 2.15 | /dev/sdb |
OSS | 10.211.55.17 | lustre 2.15 | /dev/sdb /dev/sdc |
Client | 10.211.55.18 | lustre 2.15 | nil |
核心参数说明
checksum_pages解说
llite内核模块中的llit.*.checksum_pages参数.设置完这个参数可以通过lctl get_param osc.*.checksums查看基于网络传输checksum开启状态//参数查看,在llite端checksum_pages是客户端super_block的一个标记
[root@CentOS-Lustre-Client ~]$ lctl list_param llite.*.* |grep checksum_pages
llite.bigfs-ffff8aac839ed800.checksum_pages
// 查看参数默认值
[root@CentOS-Lustre-Client ~]$ lctl get_param llite.*.checksum_pages
llite.bigfs-ffff8aac839ed800.checksum_pages=1
[root@CentOS-Lustre-Client ~]$ lctl get_param osc.*.checksums
osc.bigfs-OST0001-osc-ffff8aac839ed800.checksums=1
osc.bigfs-OST0002-osc-ffff8aac839ed800.checksums=1
/***********************执行更改*********************/
// mgs端执行关闭checksum_pages
[root@CentOS-Lustre-MDS ~]$ lctl set_param -P llite.bigfs-ffff8aac839ed800.checksum_pages=0
// 客户端查看2个osc的都关闭checksum
[root@CentOS-Lustre-Client ~]$ lctl get_param osc.*.checksums
osc.bigfs-OST0001-osc-ffff8aac839ed800.checksums=0
osc.bigfs-OST0002-osc-ffff8aac839ed800.checksums=0
//在客户端查看checksum_pages已经关闭
[root@CentOS-Lustre-Client ~]$ lctl get_param llite.*.checksum_pages
llite.bigfs-ffff8aac839ed800.checksum_pages=0max_rpcs_in_flight解说max_rpcs_in_flight是osc到ost通信或者mdc到mdt通信的rpc的并发数,默认设置的是8.针对IB环境可以设置到32;针对Ethernet以太网可以设置到256.// 参数列举
[root@CentOS-Lustre-Client ~]$ lctl list_param *.*.* |grep max_rpcs_in_flight
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_rpcs_in_flight
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_rpcs_in_flight
osc.bigfs-OST0002-osc-ffff9a8f9c67c000.max_rpcs_in_flight
// 查看参数默认值
[root@CentOS-Lustre-Client ~]$ lctl get_param mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_rpcs_in_flight
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_rpcs_in_flight=8
[root@CentOS-Lustre-Client ~]$ lctl get_param osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_rpcs_in_flight
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_rpcs_in_flight=8
// 测试环境是以太网,可以设置为256
[root@CentOS-Lustre-MDS ~]$ lctl set_param -P mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_rpcs_in_flight=256
[root@CentOS-Lustre-MDS ~]$ lctl set_param -P osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_rpcs_in_flight=256
max_dirty_mb参数解说max_dirty_mb这个参数是osc可以所在客户端写入到page cache的脏数据大小(单位是MB).如果触及到上限,这些写操作会被阻塞直到脏数据flush到后端服务器,r如果内存足够这个参数设置原则按照4倍的max_rpcs_in_flight来设置。// 参数列举
[root@CentOS-Lustre-Client ~]$ lctl list_param *.*.* |grep max_dirty_mb
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_dirty_mb
osc.bigfs-OST0002-osc-ffff9a8f9c67c000.max_dirty_mb
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_dirty_mb
// 查看默认值
[root@CentOS-Lustre-Client ~]$ lctl get_param osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_dirty_mb
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_dirty_mb=101
[root@CentOS-Lustre-Client ~]$ lctl get_param mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_dirty_mb
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_dirty_mb=101
// 设置参数
[root@CentOS-Lustre-MDS ~]$ lctl set_param -P mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_dirty_mb=1024
[root@CentOS-Lustre-MDS ~]$ lctl set_param -P osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_dirty_mb=1024
client_adjust_max_dirty实现max_dirty_mb自适应.max_dirty_mb对应的的是cl_dirty_max_pages这个变量

static inline void client_adjust_max_dirty(struct client_obd *cli)
{
/* */
if (cli->cl_dirty_max_pages <= 0) {
// PAGE_SHIFT定义为12,OSC_MAX_DIRTY_DEFAULT定义为2000
// cl_dirty_max_pages初始化值为 2000*1024*1024/4096
cli->cl_dirty_max_pages =
(OSC_MAX_DIRTY_DEFAULT * 1024 * 1024) >> PAGE_SHIFT;
} else {
// 动态计算单个客户端并发的rpc和,每个rpc能最大发送的pages来计算dirty_max
unsigned long dirty_max = cli->cl_max_rpcs_in_flight *
cli->cl_max_pages_per_rpc;
// dirty_max和当前的cl_dirty_max_pages比较,如果超了取dirty_max
if (dirty_max > cli->cl_dirty_max_pages)
cli->cl_dirty_max_pages = dirty_max;
}
// 如果当前的客户端的脏pages占用内存空间超过了节点的总的pages的八分之一,则设置最大的脏pages
if (cli->cl_dirty_max_pages > cfs_totalram_pages() / 8)
cli->cl_dirty_max_pages = cfs_totalram_pages() / 8;
// 向上取整设置cl_dirty_max_pages
cli->cl_dirty_max_pages = round_up(cli->cl_dirty_max_pages,
1 << (20 - PAGE_SHIFT));
}max_pages_per_rpc解说max_pages_per_rpc定义单个rpc能发送的最大的pages数。// 查看mdc/osc能发送的最大pages数
[root@CentOS-Lustre-Client ~]$ lctl list_param *.*.* |grep max_pages_per_rpc
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_pages_per_rpc
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_pages_per_rpc
osc.bigfs-OST0002-osc-ffff9a8f9c67c000.max_pages_per_rpc
// mdc默认是1M数据
[root@CentOS-Lustre-Client ~]$ lctl get_param mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_pages_per_rpc
mdc.bigfs-MDT0000-mdc-ffff9a8f9c67c000.max_pages_per_rpc=256
[root@CentOS-Lustre-Client ~]$ lctl get_param osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_pages_per_rpc
// osc默认是4M
osc.bigfs-OST0001-osc-ffff9a8f9c67c000.max_pages_per_rpc=1024
[root@CentOS-Lustre-Client ~]$