今天在esxi下将一个虚拟机clone下,进行到大概40%的时候,忽然不动了,esxi上面的虚拟机远程桌面也连接不上了。说明下我的环境:

    xenserver主机

                         ----------某存储厂商低端存储(利用NFS共享存储给xenserver和esxi主机使用)

    ESXi4.1主机

登陆到存储上,发现wait特别高

12

查看了下log,发现如下一些信息

Oct 10 09:03:03 ustor kernel: Filesystem "dm-2": corrupt dinode 3298012660, (btree extents).  Unmount and run xfs_repair.
Oct 10 09:03:03 ustor kernel: Filesystem "dm-2": XFS internal error xfs_bmap_read_extents(1) at line 4552 of file fs/xfs/xfs_bmap.c.  Caller 0xffffffff803ad3bc
Oct 10 09:03:03 ustor kernel: Pid: 3156, comm: nfsd Not tainted 2.6.26.2-ustor20091016 #1
Oct 10 09:03:03 ustor kernel:
Oct 10 09:03:03 ustor kernel: Call Trace:
Oct 10 09:03:03 ustor kernel:  [<ffffffff803ad3bc>] xfs_iread_extents+0xac/0xc9
Oct 10 09:03:03 ustor kernel:  [<ffffffff8038fcaa>] xfs_bmap_read_extents+0x337/0x367
Oct 10 09:03:03 ustor kernel:  [<ffffffff803ad3bc>] xfs_iread_extents+0xac/0xc9
Oct 10 09:03:03 ustor kernel:  [<ffffffff80391ead>] xfs_bmapi+0x2c2/0x10c1
Oct 10 09:03:03 ustor kernel:  [<ffffffff803e6035>] blk_recount_segments+0x30/0x5b
Oct 10 09:03:03 ustor kernel:  [<ffffffff805ee67c>] _spin_lock_irqsave+0x18/0x34
Oct 10 09:03:03 ustor kernel:  [<ffffffff805ee67c>] _spin_lock_irqsave+0x18/0x34
Oct 10 09:03:03 ustor kernel:  [<ffffffff805ee3c5>] __down_write_nested+0x34/0xa5
Oct 10 09:03:03 ustor kernel:  [<ffffffff803af815>] xfs_iomap+0x147/0x286
Oct 10 09:03:03 ustor kernel:  [<ffffffff803c5e38>] __xfs_get_blocks+0x58/0x145
Oct 10 09:03:03 ustor kernel:  [<ffffffff802a075f>] block_read_full_page+0x139/0x284
Oct 10 09:03:03 ustor kernel:  [<ffffffff803c5f36>] xfs_get_blocks+0x0/0xe

之前也出现过类似的情况,这次是由于XFS文件系统,而上次是由于NFS hung住了,导致系统的wait非常高。

针对这次xfs的情况,可以有2个方法:

   (1)、暂时不要动存储,让它自动“run xfs_repair”

  (2)、重启,但是重启后还是要xfs_repair,我试过

如果是NFS hung住的情况,可以手动重启服务器。试过强制kill掉nfsd进程,但是不成功。只有手动重启。

总结:xenserver或esxi上的虚拟机连接不上,但是能ping通;或者既不能ping通也不能远程连接。可能是由于你xenserver或esxi服务器通过iscsi或nfs挂接的存储iscsi或nfs进程hung住了,因为你虚拟机的文件毕竟是存在远程存储上的。nfs遇到过很多次,但是iscsi至今也没有遇到过。