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 / 问题 / 808398
Accepted
mveroone
mveroone
Asked: 2016-10-12 07:12:11 +0800 CST2016-10-12 07:12:11 +0800 CST 2016-10-12 07:12:11 +0800 CST

systemd 在停止网络之前不会卸载 NFS 共享

  • 772

语境 :

  • 截至 2016 年 10 月的 RHEL 7.2
  • 物理系统
  • 网络管理器已禁用
  • 通过将 2x10G NIC(eth0 和 eth1)组合为 lacp0 配置的网络
  • (不相关)在 VLAN 子接口 lacp0.XXX 和 lacp0.YYY 上配置 IP 地址
  • (也无关紧要)这些系统注定是Oracle 12c节点

网络连接 100% OK,基准测试确认 LACP 功能齐全,接近 20 GBps 的理论最大值。

问题 :

systemd 不会检测到网络堆栈在关机期间停止,并一直等到为时已晚才卸载 NFS 共享,因此无法卸载它们,这导致它无限期地挂起以等待 NFS 服务器响应。

症状) :

运行“systemctl stop network.service”后,network.target 和 network-online.target 仍然被认为是活动的。

到目前为止我所做的:

通过文件添加的 NFS 挂载/etc/fstab被转换为*.mountsystemd 单元。这些单元自动取决于remote-fs.target哪个取决于 `network-online.target。

从文档来看,network*.target 似乎依赖于网络管理工具来检测网络是否正常等。这可以是NetworkManager,systemd-nerworkd或其他任何东西(但什么?)。我认为我的问题可能在这里,因为我们的 jumpstart 模板似乎依赖于旧的 init 脚本来管理接口。而且我怀疑 systemd 是否可以与它交互以获知网络正在启动或关闭(尽管被用来停止网络堆栈systemctl stop network)

我的第二个假设是即使通过 ifcfg-* 文件使用 libteam/teamd 的网络组合不在 systemd network.target 范围内。teamd systemd 单元(包括 [email protected])和网络单元之间似乎没有依赖关系。这可以解释为什么显示此问题的唯一系统是那些启用了 LACP 的系统,而我们之前在使用典型绑定时没有遇到此问题。

所以我的问题是:在我的网络堆栈被关闭之前,通常在重新启动系统时,我必须确保我的 NFS 共享被卸载?

PS:如果上述解决方案不是来自创建 NFS 挂载的方式会更好,这样必须向该服务器添加共享的人不必被告知要采取的特殊步骤。考虑到我们的生产过程,这似乎几乎是不可能的。

nfs redhat systemd linux-networking lacp
  • 1 1 个回答
  • 2776 Views

1 个回答

  • Voted
  1. Best Answer
    mveroone
    2016-10-21T04:46:43+08:002016-10-21T04:46:43+08:00

    不幸的是,这个问题的唯一“正确”答案似乎是使用网络管理工具,目前是NetworkManager(红帽最佳实践)或systemd-networkd.

    为了避免使用 NetworkManager,我们使用的解决方法是:

    编辑/etc/systemd/system/[email protected]/override.conf

    [Unit]
    Before=remote-fs.target
    
    [Install]
    WantedBy=network-online.target
    
    [Service]
    ExecStop=/bin/bash -c "while grep ' nfs ' /proc/mounts; do sleep 5; done"
    TimeoutStopSec=30
    

    此文件将连接到任何系统模板,teamd@<teamname>.service因为/etc/systemd/system/*文件优先于/usr/lib/systemd/system/

    停止时,systemd 将首先启动 NFS 卸载,但默认情况下不等待它们完成。然后,我们强制负责网络连接的 [email protected] 最多等待 30 秒以卸载 NFS 共享,然后再杀死 teamd 守护程序并继续关闭过程。

    参考 :

    • 红帽文档
    • systemd.unit 手册页
    • 1

相关问题

  • 在 NFS 文件服务器上获取不规则时间戳

  • 过时的 NFS 句柄

  • sh 脚本:如果未安装远程文件系统,如何安装它?

  • 分析 Linux NFS 服务器性能

  • NFS 缓存导致间歇性滞后

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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