我在上篇博文部署mfsmaster的高可用的时候,在iscsi的一个客户端server1挂载了/dev/sda1(mount /dev/sda1 /var/lib/mfs),并且提前配置了/dev/sda1的所属用户,所属组及/dev/sda1中的所有内容的所属用户,所属组都为mfs。这样在iscsi的另外一个客户端server4挂载/dev/sda1(mount /dev/sda1 /var/lib/mfs)的时候,/var/lib/mfs目录中的所有内容都是server1端配置的内容。不过因为之前安装完软件后自动生成的mfs用户的用户uid、gid都是系统自动生成的,server1端和server4端mfs用户的uid、gid可能不一样,所以现在需要把这个uid、gid都设置成统一某个值。
从上图我们可以看到server4端挂载/dev/sda1(mount /dev/sda1 /var/lib/mfs)之后,启动moosefs-master服务失败。这是什么原因呢?
很有可能是/var/lib/mfs目录中的内容某些地方出现问题,所导致的。
我们查看/var/lib/mfs目录中的内容,查看结果如下:
从上图我们看到/var/lib/mfs目录中所有内容的所属用户是994,所属用户是990。我们在server1端明明是配置过的呀,怎么会出现这种问题呢?
很有可能是server1端,和server4端的mfs用户的uid和gid不同导致的。
自然而然的,我们要查看server1端mfs用户的uid,gid和server4端mfs用户的uid,gid。查看结果如下:
从上图,我们可以看到server1端mfs用户的uid是994,gid是990;而server4端mfs用户的uid是997,gid是995。
那我们就可以断定原因是,uid,gid不一致导致的。
我们server1端和server4端安装的是同样的软件,为什么系统自动生成的mfs用户的uid和gid会出现不一致的呢?
我们查看server1端和server4端存放用户uid和gid的文件(/etc/passwd)
- server1端
我们看到是因为之前做zabbix实验时,安装zabbix软件后自动生成的zabbix用户的uid是997,gid是995。
所以我们在修改mfs用户的uid和gid之前,先删除zabbix用户,释放uid997和gid995。
那么我们接下来的任务就是,修改一端的uid,gid。我们这里修改server1端mfs用户的uid,gid。
修改用户uid和组gid的命令分别是usermod和groupmod,思路很简单。先使用usermod修改用户的uid,然后使用groupmod修改组的gid,最后使用chown和chgrp命令修改原来用户文件和目录的属主属组。
例如测试用户mfs和测试组mfs。
mfs old UID: 994
mfs new UID: 997
mfs old GID: 990
mfs new GID: 995命令:
1、修改mfs用户的uid [root@server1 mfs]# usermod -u 997 mfs #修改mfs用户的uid为997 2、修改mfs组的gid [root@server1 mfs]# groupmod -g 995 mfs #修改mfs用户的gid为995 3、mfs用户的家目录下面的文件属主和属组会在1、2命令执行后自动修改成新的uid、gid对应的属主属组,但是其他文件目录需要手动修改。手动修改的命令也比较简单。 [root@server1 mfs]# find / -user 994 -exec chown -h mfs {} \; [root@server1 mfs]# find / -group 997 -exec chgrp -h mfs {} \; 在这里最主要的是/var/lib/mfs目录中的内容,上述只是修改了/下内容,并没有修改/var/lib/mfs目录中的内容 [root@server1 ~]# chown -R mfs.mfs /var/lib/mfs #此时/dev/sda1挂载在/var/lib/mfs目录下。(相当于修改的是/dev/sda1的所属用户和所属组) [root@server1 ~]# umount /dev/sda1 [root@server1 ~]# chown -R mfs.mfs /var/lib/mfs #修改/var/lib/mfs目录本身及其内部内容的所属用户和所属组 这样用户和组的uid、gid就修改好了。可以用id命令看下是否修改的如我们所愿。 # id -u mfs # id -g mfs # grep mfs /etc/passwd # grep mfs /etc/group 下面以id为例 [root@server1 mfs]# id mfs #查看mfs用户的uid和gid,以确保修改成功 uid=997(mfs) gid=995(mfs) groups=995(mfs)
然后server4端重新挂载即可。