Citrix XenServer 上的 VM Linux 文件系统崩溃或只读

Citrix XenServer 上的 VM Linux 文件系统崩溃或只读

我读了一些与这个问题相关的答案。 如果系统分区短时间内无法访问,操作系统会崩溃吗? 但我无法解决这个问题。

在 XenServer 上使用 ISCSI 作为存储库时,DomU (VM) 的磁盘 I/O 量很大,如果 ISCSI 连接丢失(主要是网络连接问题/存储故障转移),DomU 文件系统(特别是 ext3 linux 文件系统)就会崩溃。在这种情况下,DomU 的 ext3 文件系统将变为只读或不可恢复。

如果 Dom0 上的 ISCSI 连接丢失,我该如何保护 VM 的文件系统?

这是我的 XenServer 环境。

[root@cnode01-m ~]# iscsiadm -m session
tcp: [1] 10.32.1.240:3260,2 iqn.1986-03.com.sun:02:c5544ae6-9715-6f38-f83b-a446896ac614
tcp: [3569] 10.32.1.240:3260,2 iqn.1986-03.com.sun:02:5c41ce31-3fbb-c6aa-d479-947e85515ac7

[root@cnode01-m ~]# vgs
  VG                                                 #PV #LV #SN Attr   VSize   VFree  
  VG_XenStorage-1aeee13b-2a87-1d0d-1834-7b8c868009b0   1  40   0 wz--n-   6.35T   4.93T
  VG_XenStorage-28e2c663-dae5-9504-9733-e05063ff081d   1  57   0 wz--n-   6.35T   4.52T
  VG_XenStorage-365d6e13-5caa-1fea-9940-e1bb553e3513   1  42   0 wz--n-   6.35T   5.13T
  VG_XenStorage-4ea23f9a-f945-5d45-cbd2-f3eab3fe75b3   1  42   0 wz--n-   6.35T   5.40T
  VG_XenStorage-54d69165-2eed-c058-d587-1b84d488adea   1  37   0 wz--n-   6.35T   5.01T
  VG_XenStorage-598b7237-282b-ea61-8edc-5101a70ea001   1  63   0 wz--n-   6.35T   5.01T
  VG_XenStorage-6a063762-26de-a3f8-f18c-734fce25433a   1  49   0 wz--n-   6.35T   5.56T
  VG_XenStorage-6b7bea84-7269-fa88-7b95-23dce431e1aa   1  71   0 wz--n-   6.35T   4.80T
  VG_XenStorage-6d6d263b-243c-fb24-4f0c-28b226a22bab   1  47   0 wz--n-   6.35T   4.94T
  VG_XenStorage-76fe6d6d-a37a-698d-9af2-50ea3f55e127   1  44   0 wz--n-   6.35T   5.37T
  VG_XenStorage-80e2df33-268c-b8a6-cc02-71f27ebe3326   1  39   0 wz--n-   6.35T   5.80T
  VG_XenStorage-886070b7-34e8-eb96-0931-2c31952608a6   1  13   0 wz--n- 457.65G 369.31G
  VG_XenStorage-97136f70-cf33-2593-38e0-b8c09785a754   1  60   0 wz--n-   6.35T   5.14T
  VG_XenStorage-c910e9fd-8817-0b99-8c8d-1ee0883705de   1  37   0 wz--n-   6.35T   5.67T
  VG_XenStorage-cd709bcb-d46a-8483-acbf-49b2b0c59c06   1  58   0 wz--n-   6.35T   4.80T
  VG_XenStorage-e153d09a-716a-9764-8967-f704278d55bd   1  43   0 wz--n-   6.35T   4.45T
  VG_XenStorage-f8574b51-31d4-7b0e-c71e-8253e1cdd230   1  61   0 wz--n-   6.35T   4.20T

[root@cnode01-m ~]# ls -la /dev/sd[a-z]
brw-r----- 1 root disk  8,   0 Jun  8 17:37 /dev/sda
brw-r----- 1 root disk  8,  16 Aug  1 10:14 /dev/sdb
brw-r----- 1 root disk  8,  32 Jun  8 17:38 /dev/sdc
brw-r----- 1 root disk  8,  48 Jul 31 14:49 /dev/sdd
brw-r----- 1 root disk  8,  64 Jul 31 14:46 /dev/sde
brw-r----- 1 root disk  8,  80 Jul 31 14:51 /dev/sdf
brw-r----- 1 root disk  8,  96 Aug  3 13:52 /dev/sdg
brw-r----- 1 root disk  8, 112 Aug  3 10:53 /dev/sdh
brw-r----- 1 root disk  8, 128 Aug  2 13:40 /dev/sdi
brw-r----- 1 root disk  8, 144 Jul 30 00:17 /dev/sdj
brw-r----- 1 root disk  8, 160 Jul 30 00:17 /dev/sdk
brw-r----- 1 root disk  8, 176 Jul 30 00:17 /dev/sdl
brw-r----- 1 root disk  8, 192 Jul 30 00:17 /dev/sdm
brw-r----- 1 root disk  8, 208 Jul 30 00:17 /dev/sdn
brw-r----- 1 root disk  8, 224 Jul 30 00:17 /dev/sdo
brw-r----- 1 root disk  8, 240 Jul 30 00:17 /dev/sdp
brw-r----- 1 root disk 65,   0 Jul 30 00:17 /dev/sdq

这是我的 DomU (VM) 环境。

[root@i-58-7172-VM ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       16G  1.5G   14G  11% /
/dev/xvda1             99M   30M   65M  32% /boot
tmpfs                 512M     0  512M   0% /dev/shm

当我将大量 I/O 负载放到 VM 上的 / 分区时,ISCSI 连接会出现一些问题(网络问题、ISCSI 目标故障转移事件)/ 分区崩溃。

我该如何解决这个问题?提前谢谢您。

添加

这是我在 Dom0 的 iscsid.conf

[root@cnode01-m ~]# 更多 /etc/iscsi/iscsid.conf
node.startup = manual
node.session.timeo.replacement_timeout = 86400
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
节点.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
node.session.initial_login_retry_max = 4
node.session.cmds_max = 128
节点.会话.队列深度 = 32
node.session.iscsi.InitialR2T = 否
node.session.iscsi.ImmediateData = Yes
节点.会话.iscsi.FirstBurstLength = 262144
节点.会话.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 131072
发现.发送目标.iscsi.MaxRecvDataSegmentLength = 32768
node.session.iscsi.FastAbort = 否

10G 以太网和巨型帧是在存储层实现的。Citrix XenServer 也有用于在存储服务出现问题时暂停虚拟机的命令,但暂停和取消暂停虚拟机操作会导致虚拟机系统时钟不完整。所以它可能会有副作用,通常是在应用层。我想。

答案1

首先,您应该解决问题的根源 - 存储访问。使用 iscsi,您可以调整 iscsi.conf,并增加队列长度、缓冲区大小和超时,这样连接将能够承受更长的中断。此外,实施多路径、10G 以太网(如果 SAN 支持)和巨型帧也是一个好主意。

我不是 Xen 专家,但使用 KVM 时,有一个选项可以在存储层返回 EIO 或 ENOSPACE 时暂停虚拟机,如果您深入研究 IMO 选项,使用 Xen 应该是可能的,如果没有 - 我会尝试向开发人员提交功能请求。

相关内容