分类: LINUX
2011-06-22 10:18:34
昨天,机器全部停机重启,所有的client都无法挂载文件系统了。 于是就按照前些天在网上找到的方法去解决问题。
umount所有的Client、OST以及MDS,登陆MDS节点f114n23f
mount -t ldiskfs /dev/sdb1 /lustre/mds
cp /lustre/mds/last_rcvd /lustre/mds/last_rcvd.sav
cp /lustre/mds/last_rcvd /tmp/last_rcvd.sav
dd if=/lustre/mds/last_rcvd.sav of=/lustre/mds/last_rcvd bs=8k count=1
umount /lustre/mds
mount -t lustre /dev/sdb1 /lustre/mds
以上的方法主要是把last_rcvd里面的client信息清除掉, 这样mds启动时就不会再recovery。
重新启动后发现client仍然不能mount。
心里隐隐有种不好的感觉,这下可麻烦了,因为这些数据急着要用。
mount时错误信息如下:
[root@f111n04f ~]# mount -a
mount.lustre: mount at /l2data1 failed: Invalid argument
This may have multiple causes.
Is 'data' the correct filesystem name?
Are the mount options correct?
Check the syslog for more info.
再看dmesg的信息:有这么几条值得注意
LustreError: 10129:0:(obd_config.c:897:class_process_proc_param()) data-client-000001011c093800: unknown param stripecount=1
LustreError: 10129:0:(obd_config.c:1062:class_config_llog_handler()) Err -22 on cfg command:
Lustre: cmd=cf00f 0:data-client 1:llite.stripecount=1
LustreError: 15b-f: : The configuration from log 'data-client' failed (-22). Make sure this client and the MGS are running compatible versions of Lustre.
LustreError: 15c-8: : The configuration from log 'data-client' failed (-22). This may be the result of communication errors between this node and the MGS, a bad configuration, or other errors. See the syslog for more information.
LustreError: 10129:0:(llite_lib.c:1021:ll_fill_super()) Unable to process log: -22
看了以上的信息,又咨询了科大周老师,估计是MDS的参数配置有问题。 因此有必要把MDS重新配置一下。
于是,在MDS节点做如下设置:
tunefs.lustre --erase-params --writeconf --mgs --mdt --fsname=data /dev/sdb1
(注:与当时mkfs.lustre时的参数基本一致,多了 --erase-params --writeconf,意思是要删除以前的参数,重写新参数)
执行tunefs.lustre只是改变配置参数,不会影响MDS和OST的数据。
然后重启MDS, 这次Client端终于能挂载上了,心里一阵欢喜。
但是,经过试验,写数据特别慢,读数据的速度基本正常。所有的OST上都发现了不少以下的信息
slow commitrw commit 176s
slow i_mutex 121s
slow brw_start 121s
slow direct_io 121s
没办法了,只好把所有的OST参数也重新配置一下(按说不会是OST参数的问题,看来只能活马当死马医了)。只用tunefs.lustre对OST设置时,命令提示e2fsprogs版本不对,RHEL4上自带的tune2fs是1.35,必须使用1.40以上版本才行。去cfs网站下载了e2fsprogs-1.40.4.tar.gz,解压,执行./configure;make;make install, 后再使用tune2fs命令查看其版本,终于是1.40了。
于是对所有的OST进行参数重新设置(假如MDS的地址变化了,也必须用此命令重新配置),以f114n23f上的两个OST为例:
tunefs.lustre --erase-params --writeconf --ost --fsname=data /dev/sdb2
tunefs.lustre --erase-params --writeconf --ost --fsname=data /dev/sdc1
然后再对mds进行一下设置,解决一下1.6.4.3的一个bug
lctl conf_param data.llite.statahead_max=0
如果要对条带进行设置,执行以下命令即可(默认是单条带)
lctl conf_param data-MDT0000.lov.stripecount=条带数 (-1为写所有条带)
经过以上设置, 重新启动Lustre文件系统,挂载了两个client, 经过多次试验, 刚开始时写速度还是不很稳定,经过一段时间的测试, 后来速度基本稳定,仅有一个节点的OST报出slow的信息,可以交付使用了。
接下来再查查那个单独的OST的有没有什么异常。