我读了一些与这个问题相关的答案。 如果系统分区短时间内无法访问,操作系统会崩溃吗? 但我无法解决这个问题。
在 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 应该是可能的,如果没有 - 我会尝试向开发人员提交功能请求。