AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 30657
Accepted
Kamil Kisiel
Kamil Kisiel
Asked: 2009-06-24 14:41:34 +0800 CST2009-06-24 14:41:34 +0800 CST 2009-06-24 14:41:34 +0800 CST

Xen DomU 根文件系统在 iSCSI 虚拟 IP 故障转移上变为只读

  • 772

我的 Xen 服务器是 openSUSE 11.1,带有 open-iscsi 到我们的 iSCSI SAN 集群。SAN 模块位于启动器连接到的虚拟 IP 后面的 IP 故障转移组中。

如果主 SAN 服务器出现故障,则辅助 SAN 服务器将扮演目标角色。这一切都由 LeftHand SAN/iQ 软件处理,并且在大多数情况下都能正常工作。

我遇到的问题是,有时我的一些 Xen DomU 在 IP 故障转移后会使其根文件系统变为只读。它并不一致,并且每次发生故障转移时都会发生在不同的子集上。它们都运行相同的 openSUSE 11.1 软件映像。

每个 DomU 的根文件系统由 Dom0 中的 open-iscsi 挂载,然后 Xen 使用标准块设备驱动程序将其公开给 DomU。

确切的症状是作为 root 运行touch /test返回错误“只读文件系统”。但是, 的输出mount显示它正在以读写方式安装。当然,此时 domU 上的所有其他 I/O 也出现故障,因此机器严重停机。只需xm从 Dom0 重新启动它,甚至无需重新连接 iSCSI 会话,就可以让一切恢复正常。

在 Dom0 端,故障转移期间的 syslog 消息类似于以下内容:

kernel: connection1:0: iscsi: detected conn error (1011)
iscsid: Kernel reported iSCSI connection 1:0 error (1011) state (3)
iscsid: connection1:0 is operational after recovery (1 attempts) 

我很难弄清楚在哪一层调试这个问题,它是 DomU 内核中的东西吗?还是在 Dom0 或 Xen 级别?我认为某处可能有一些参数需要调整以增加某种超时,但我不确定在哪里看。

我真的不认为 open-iscsi 有问题,因为连接的块设备仍然可以从 Dom0 读取和写入。

xen linux iscsi
  • 4 4 个回答
  • 9873 Views

4 个回答

  • Voted
  1. Best Answer
    Kamil Kisiel
    2009-10-20T08:05:02+08:002009-10-20T08:05:02+08:00

    我最终通过使用 open-iscsi 文档中的以下建议和设置解决了这个问题:

    8.2 iSCSI settings for iSCSI root
    ---------------------------------
    
    When accessing the root parition directly through a iSCSI disk, the
    iSCSI timers should be set so that iSCSI layer has several chances to try to
    re-establish a session and so that commands are not quickly requeued to
    the SCSI layer. Basically you want the opposite of when using dm-multipath.
    
    For this setup, you can turn off iSCSI pings by setting:
    
    node.conn[0].timeo.noop_out_interval = 0
    node.conn[0].timeo.noop_out_timeout = 0
    
    And you can turn the replacement_timer to a very long value:
    
    node.session.timeo.replacement_timeout = 86400
    

    如上所述设置与每个 LUN 的连接后,故障转移就像一个魅力,即使它需要几分钟才能发生。

    • 6
  2. Scott Dodson
    2009-08-09T09:29:10+08:002009-08-09T09:29:10+08:00

    这听起来像是在 dom0 上运行的 iSCSI 启动器的问题。发起方不应该那么快地将 SCSI 故障发送到堆栈。您可能希望在 iscsi.conf 中设置 ConnFailTimeout,该设置确定在多长时间之前将连接失败视为错误并将该错误发送到 SCSI 堆栈。

    我还会研究故障转移实际需要多长时间,它可能比您预期的要长。如果是这样,由于 ARP 相关问题,VIP 故障转移可能会花费太长时间。

    • 2
  3. MikeyB
    2009-06-24T18:04:54+08:002009-06-24T18:04:54+08:00

    dom0 中是否有任何消息指示故障转移时出现任何类型的读/写错误或 scsi 错误?如果是这样,看起来这个写入错误正在传递给 domU。domU 不“知道”它是一个 iSCSI 设备,因此它的行为就好像底层磁盘已经消失并以只读方式重新挂载文件系统(参见 mount(1) 手册页 - errors=continue / errors=remount-ro / errors=panic)

    从 dom0 的角度来看,它不会变成只读的——这种只读行为是文件系统语义,而不是块设备语义。

    您此时提到“所有其他 I/O 都失败了”-您是指 domU 还是 dom0?

    通常在设置 HA iSCSI 解决方案时,我使用多路径而不是虚拟 IP 接管 - 它允许对主机有更大的可见性,并且您没有 iSCSI 会话突然消失然后需要重新启动 - 它总是在那里,只有其中两个. 在这种环境下这是一个选项吗?

    • 0
  4. Miguel
    2011-05-18T14:19:41+08:002011-05-18T14:19:41+08:00

    嗯...部分问题还在于您没有以 RO 身份运行/。安全方面的最佳实践表明您应该安装“/” ro,并且任何需要 rw 的文件系统都应该单独安装(即 /var 和 /tmp)。如果 /etc 下有需要写入的目录,则应将它们移动到 /var/etc/path 并符号链接到 /etc。

    “/”只能在单用户模式下挂载 RW。

    与其他建议结合使用时,以这种方式设置可以防止上述情况下的段错误。

    • -1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve