Skip to the content.

1. 处理不活动的OSTs

挂载时排除不活动的OSTs:

# 在客户端挂载 或者挂载MDT的时候执行,多个OST的时候使用冒号分割
client# mount -o exclude=testfs-OST0000 -t lustre uml1:/testfs /mnt/testfs
# 激活不活动的OST,在client上执行
lctl --device 7 activate  # 貌似不行,不确定

2. 找到lustre文件系统中的节点

有时候需要找到系统中所有OST的名字:

# 方法1,在mgs上执行:
MGS# lctl get_param mgs.MGS.live.*  # 该命令会显示所有的mdt和ost,不激活的也会显示
# 方法2,在client上运行:
client# lfs osts   # 列举所有osts
client# lfs mdts   # 列举所有mdts
# 方法3,在mds上执行
mds:/root# lctl get_param lov.*-mdtlov.target_obd # 显示所有在线osts

3. 不以lustre服务的方式挂载服务器

如果使用MGT/MDT混合使用的情况下,当只需要挂载MGS而不挂载MDS时候:

mount -t lustre /dev/mdt_partition -o nosvc /mount_point
# 举个例子,testfs-MDT0000同时包含了mgt和mdt
$ mount -t lustre -L testfs-MDT0000 -o nosvc /mnt/test/mdt

4. 重建lustre配置日志

如果lustre系统配置日志处在文件系统不能挂载的状态,需要使用tunefs.lustre –writeconf来重建他们。执行了writeconf之后配置日志会被重建(文件系统相当于一个全新的文件系统),并保存在MGS上。 只能在下面两种情况下执行writeconf:

writeconf配置会破坏部分配置,如ost 池信息和conf_param的调优配置,所以writeconf要谨慎使用。建议将ost池配置和conf_param做成执行脚本,在每次writeconf配置后执行配置脚本即可。另外,使用set_param -P执行的配置会被保留。

配置日志可以使用命令导出:

mgs# lctl --device MGS llog_print fsname-client
mgs# lctl --device MGS llog_print fsname-MDT0000
mgs# lctl --device MGS llog_print fsname-OST0000

重建lustre文件系统配置日志步骤如下:

psh cn1 umount /fs00
psh io2 umount /fs00/mdt000
psh io3 umount /fs00/*
psh io4 umount /fs00/*
psh cn1,io1-io4 df -ht lustre 
psh io2 tunefs.lustre --writeconf mdtpool/mdt000
psh io3 tunefs.lustre --writeconf ost0pool/ost000
psh io3 tunefs.lustre --writeconf ost1pool/ost001
psh io4 tunefs.lustre --writeconf ost2pool/ost002
psh io3 tunefs.lustre --writeconf ost3pool/ost003
psh io4 tunefs.lustre --writeconf ost3pool/ost003
psh io2 mount.lustre mdtpool/mdt000 /fs00/mdt000
psh io3 mount.lustre ost0pool/ost000 /fs00/ost000
psh io3 mount.lustre ost1pool/ost001 /fs00/ost001
psh io4 mount.lustre ost2pool/ost002 /fs00/ost002
psh io4 mount.lustre ost3pool/ost003 /fs00/ost003
psh cn1 mount.lustre io1@tcp:/fs00 /fs00

5. 修改服务器的nid

在2.4版本之前,只能使用writeconf的方式来更改,但是2.4版本之后,新增了一个replace_nids 的命令帮助快速的修改服务器的nid。writeconf的方式仍然可用。

步骤如下:


lctl replace_nids devicename nid1[,nid2,nid3 ...]

7. 新增一个mdt

额外的mdt可以增加到文件系统中:

增加mdt的方法如下:

client$ lctl dl | grep mdc 
mds# mkfs.lustre --reformat --fsname=testfs --mdt --mgsnode=mgsnode --index 4 /dev/sdd
mds# mount.lustre /dev/sdd /mnt/mdt4
client# lfs mkdir -i 3 /mnt/testfs/new_dir_on_mdt3  # 使用index=3的mdt
client# lfs mkdir -i 4 /mnt/testfs/new_dir_on_mdt4  # 使用mdt4
client# lfs mkdir -c 4 /mnt/testfs/new_directory_striped_across_4_mdts  # 创建一个4 mdt的条带化文件

8. 新增ost

为了保证性能的平衡,不建议在不同的OSS上设置不同的OST数量。

步骤:

oss# mkfs.lustre --fsname=testfs --mgsnode=mds16@tcp0 --ost --index=12 /dev/sda
oss# mkdir -p /mnt/testfs/ost12
oss# mount -t lustre /dev/sda /mnt/testfs/ost12 
# 文件系统中新增ost后,新建的文件会自动写到新的ost上,
# 如果需要手动移动这些文件到指定的ost上可以使用lfs_migrate命令
client# lfs_migrate /mnt/lustre/dir # 移动/mnt/lustre/dir 这个目录的文件
# 找到/test目录下且test-OST0004上,并且大于4G的文件,移动到别的ost上
client# lfs find /test --ost test-OST0004 -size +4G | lfs_migrate -y