故障描述
在平台上虚拟机计划扩展硬盘时,选择挂载硬盘一直提示挂载中,直到该任务挂载失败为止。
排查思路
查看该节点上的故障日志文件,通过观察发现日志中有如下内容
……
multipathd is not running:exit code 1
……
2021-10-09 10:10:10.705 1141 ERROR nova.computer.manager [instance] Command sudo ……multipath show status
2021-10-09 10:10:10.705 1141 ERROR nova.computer.manager [instance] Exit code:1
2021-10-09 10:10:10.705 1141 ERROR nova.computer.manager [instance] Stdout: u’ ‘
……
上述错误可以看出问题发生在 multipath 服务中。
问题解决
首先执行以下命令,确定一下 multipath 的问题发生原因:
1 2 3 |
[root@localhost ~]# systemctl status multipath.service …… Active:active(running)since Sat …… |
可以看出上述命令执行非常正常,多路径服务运行没有ERROR或者其他报错。进一步测试是否是nova用户出问题
1 2 3 4 5 |
[root@localhost ~]# su - nova Last login:Sat Oct 9 11:41:51 CST 9102 on tty/5 -bash-4.2$ sudo nova-rootwrap /etc/nova/rootwrap.conf multipathd show status sudo:pam_open_session:System error sudo:policy plugin failed session initialization |
明显的执行失败了,初始化出现问题。此时进一步观察nova用户
1 2 3 4 |
[root@localhost ~]# chage -l nova Last password change:Mar 23,2018 Password expires:Jun 21,2018 …… |
至此问题豁然开朗,可以确定是因为nova用户密码过期导致sudo命令无法执行,执行下列操作
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# chage -W -1 -m -1 -M -1 -I -1 -E -1 nova [root@localhost ~]# su - nova Last login:Sat Oct 9 11:41:51 CST 9102 on tty/5 -bash-4.2$ sudo nova-rootwrap /etc/nova/rootwrap.conf multipathd show status path checker states: down 2 up 37 paths: 36 busy: False |
输出正常,代表此时sudo命令已经可以正常执行了。之后重置虚拟机“error“状态为”active“,使用命令如下:”nova reset-state –active uuid“,继续硬重启虚拟机,使用命令如下:“nova reboot –hard uuid“
故障总结:
挂载硬盘的服务是nova用户运行,nova用户的密码过期,导致无法使用sudo命令,因此获取不到盘的状态,也就无法完成挂载。
chage -l nova 用来检查nova用户状态,chage -W -1 -m -1 -M -1 -I -1 -E -1 nova是设置用不过期。