21 дек. 2009 г.

vxvm hang up

После некоторых действий  - таких, как vxdmpadm -f offline path=***, получаем ситуацию, когда любые команды veritas зависают.


Первым делом, смотрим процессы в памяти:
[ runner @ / ] # ps -ef|grep vx
root 314 1 0 Nov 30 ? 1:16 /sbin/vxesd
root 4627 1 0 Nov 30 ? 55:34 /opt/VRTSob/bin/vxsvc -r /opt/VRTSob/config/Registry -e
root 22257 1 1 13:39:50 ? 10:14 vxconfigd -m disable
root 23766 21627 0 13:50:49 pts/7 0:00 grep vx
root 18585 18584 0 13:07:47 pts/1 0:00 vxdmpadm getdmpnode enclosure=Disk
root 22558 22382 0 13:42:17 pts/8 0:00 man vxconfigd
root 23347 19229 0 13:47:48 pts/6 0:00 vxdctl enable
root 22559 22558 0 13:42:17 pts/8 0:00 sh -c less /opt/VRTS/man/cat1m/vxconfigd.1m
root 22560 22559 0 13:42:17 pts/8 0:00 less /opt/VRTS/man/cat1m/vxconfigd.1m
 [ runner @ / ] #


Если посмотреть трассом на vxconfigd, увидим кучу повторяющихся сообщений ENOENT == No such file or directory.
 [ runner @ / ] #  truss -p 22257
 stat("/dev/dsk/c14t60060E8004F236000000F23600000A27d0s1", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004F236000000F23600000A27d0s2", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004EB83000000EB8300000300d0s6", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004EB83000000EB8300000300d0s7", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004EB83000000EB8300003E02d0s0", 0xFFBFF1B4) = 0
stat("/dev/dsk/c14t60060E8004EB83000000EB8300003E02d0s1", 0xFFBFF1B4) = 0
stat("/dev/dsk/c14t60060E8004EB83000000EB8300003E02d0s2", 0xFFBFF1B4) = 0
stat("/dev/dsk/c14t60060E8004F236000000F23600000A28d0s7", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004F236000000F23600000A27d0s0", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004EB83000000EB8300000300d0s1", 0xFFBFF1B4) Err#2 ENOENT
stat("/dev/dsk/c14t60060E8004EB83000000EB8300000300d0s2", 0xFFBFF1B4) Err#2 ENOENT
 [ runner @ / ] #
Перезапуск vxconfigd не помогает.  В данном случае не понравились процессы vxesd и vxdmpadm. После их убийства и перезапуска vxconfigd все заработало нормально. Похоже, что один из этих процессов устанавливает какой-то семафор или другую блокировку, а vxconfigd  безуспешно ожидает освобождения ресурса.