在 Linux 中，你可以根据自己的需要创建高级网络设置，如 网络绑定 Network Bonding 或 网卡聚合 NIC teaming 、VLAN 标记和桥接。这些高级功能可以提高网络连接的效率和可靠性。你可以在以太网、绑定、聚合或桥接设备等其他接口上创建 VLAN 接口。在本文中，我们将学习如何在 RHEL 系统中通过网络绑定配置 VLAN 标记，它允许来自不同网络的流量共享共同的物理链接。通过绑定对 VLAN 进行标记的先决条件网络聚合需要在网络交换机端口上启用 LACP（802.3ad），以聚合链路。网络聚合需要将网络端口配置为中继端口，这样可以在同一端口上添加多个 VLAN。此外，还要从它们那里获取 VLAN ID，以便在操作系统层面进行配置。Linux 系统应该有两个接口。如果是物理服务器，我们建议在板载接口和 PCI 接口之间配置绑定，以避免主机端的网卡出现单点故障。绑定内核模块使用 lsmod 命令检查 Linux 系统是否已加载绑定模块。lsmod | grep -i bonding bonding 12451 0 默认情况下已加载。否则，请使用 modprobe 命令加载它。modprobe bonding 1) LACP 绑定配置我们将配置基于 LACP（Mode 4 – 802.3ad）的链路聚合绑定，通过组合名为 em1 和 p7p1 的两个接口，为绑定接口提供更大的带宽。1a) 创建 Bond 接口在目录 /etc/sysconfig/network-scripts/ 下创建绑定接口文件 ifcfg-bond0。vi /etc/sysconfig/network-scripts/ifcfg-bond0 TYPE=Bond DEVICE=bond0 NAME=bond0 BONDING_MASTER=yes BOOTPROTO=none ONBOOT=yes BONDING_OPTS="mode=4 miimon=100 lacp_rate=1" NM_CONTROLLED=no 1b) 配置第一个从接口配置你想要进行绑定的第一个从属接口 em1。请根据你的环境使用正确的接口名称。vi /etc/sysconfig/network-scripts/ifcfg-em1 TYPE=Ethernet BOOTPROTO=none DEVICE=em1 ONBOOT=yes MASTER=bond0 SLAVE=yes 1c) 配置第二个从接口配置你想要进行绑定的第二个从属接口 p7p1。 请根据你的环境使用正确的接口名称。vi /etc/sysconfig/network-scripts/ifcfg-p7p1 TYPE=Ethernet BOOTPROTO=none DEVICE=p7p1 ONBOOT=yes MASTER=bond0 SLAVE=yes 重启网络服务重启网络服务以启用绑定接口或使用 ifup 命令启动它们。systemctl restart network 2) 通过绑定接口进行 VLAN 标记LACP 绑定配置已完成，所有接口现已启动并运行。让我们按照以下步骤配置绑定接口上的 VLAN 标记。正如先决条件中所讨论的，以下是映射到相应以太网卡端口（em1 和 p7p1）和网络交换机端口的 VLAN。VLAN ID (221), VLAN N/W = 192.168.10.0/24VLAN ID (331), VLAN N/W = 192.168.20.0/242a) 将 VLAN 221 配置到 Bond0为 VLAN id 221 创建标记接口文件 /etc/sysconfig/network-scripts/ifcfg-bond0.221 并添加以下内容。vi /etc/sysconfig/network-scripts/ifcfg-bond0.221 DEVICE=bond0.221 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 VLAN=yes NM_CONTROLLED=no 2b) 将 VLAN 331 配置到 Bond0为 VLAN id 331 创建标记接口文件 /etc/sysconfig/network-scripts/ifcfg-bond0.331 并添加以下内容。vi /etc/sysconfig/network-scripts/ifcfg-bond0.331 DEVICE=bond0.331 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.20.100 NETMASK=255.255.255.0 GATEWAY=192.168.20.1 VLAN=yes NM_CONTROLLED=no 重启网络服务重启网络服务以启用绑定接口或使用 ifup 命令启动它们。systemctl restart network 验证 VLAN 标记配置最后使用 ip 命令 验证 VLAN 标记接口是否已配置并启动和运行。是的，我可以看到 bondo.221@bond0 和 bon0.331@bond0 有两个不同的 IP，并且能够通过 ssh 访问系统，没有任何问题。因此，VLAN 标记按预期工作。结论恭喜，你已经了解了如何在 RHEL 系统上通过 LACP 绑定配置 VLAN 标记，该系统监听两个 VLAN。VLAN 标记不限于两个 VLAN，支持多个 VLAN，你可以根据该 VLAN 的网络配置添加 VLAN 标记。（题图：DA/2854516d-4d19-4008-a421-05f9a2a78368）via: https://www.2daygeek.com/configure-vlan-tagging-over-network-bonding-rhel/作者：Jayabal Thiyagarajan 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
扩展 VxFX 文件系统是 Linux/Unix 管理员的一项日常任务，可以通过以下文章中描述的几个步骤在线完成此任务：在此，磁盘组没有足够的可用空间，因此我们将在现有磁盘组（DG）中添加新磁盘，然后调整其大小。相关文章：如何在 Linux 中创建 VxVM 卷和文件系统如何在 Linux 上创建共享 VxFS 文件系统步骤 1：识别文件系统使用 df 命令 检查要增加/扩展的文件系统，并记下以下输出中的磁盘组（DG）和卷名称，稍后在运行 vxdg 和 vxresize 命令时将使用这些名称。# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/vx/dsk/testdg/testvol 9.0G 8.4G 0.6G 95% /data 根据上面的输出，VxFS 文件系统大小为 9.0 GB，我们希望额外扩展 5 GB 并发布此活动，VxFS 大小将为 14 GB。在本例中，DG 名称为 testdg，卷名称为 testvol。步骤 2：获取新磁盘/LUN新磁盘必须由存储团队映射到主机，这可能需要 CR 批准，因此提出 CR 并向相关团队添加必要的任务，并且还包括此活动的回滚计划。步骤 3：扫描磁盘/LUN存储团队将新 LUN 映射到主机后，获取 LUN id 并将其保存。使用以下命令扫描 LUN 以在操作系统级别发现它们。for disk_scan in `ls /sys/class/scsi_host`; do echo "Scanning $disk_scan…Completed" echo "- - -" > /sys/class/scsi_host/$disk_scan/scan done Scanning host0...Completed Scanning host1...Completed . . Scanning host[N]...Completed 扫描完成后，使用以下命令查看是否在操作系统级别找到给定的 LUN。lsscsi --scsi | grep -i [Last_Five_Digit_of_LUN] 步骤 4：在 VxVM 中查找磁盘默认情况下，所有可用磁盘对 Veritas 卷管理器（VxVM）都是可见的，可以使用 vxdisk 命令列出这些磁盘，如下所示。# vxdisk -e list DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR emc_01 auto:cdsdisk disk1 testdg online sdd - emc_02 auto:cdsdisk disk2 testdg online sde - emc_03 auto:none - - online invalid sdf - sda auto:LVM - - LVM sda - sdb auto:LVM - - LVM sdb - 磁盘 sdf 的状态显示为 Online invalid 表示该磁盘不受 VxVM 控制。但是，请使用 smartctl 命令仔细检查 LUN id，以确保你选择了正确的磁盘。smartctl -a /dev/sd[x]|grep -i unit 如果磁盘未填充到 VxVM，请执行以下命令扫描操作系统设备树中的磁盘设备。vxdisk scandisks 步骤 5：在 VxVM 中初始化磁盘当磁盘在步骤 4 中对 VxVM 可见，那么使用 vxdisksetup 命令初始化磁盘，如下所示：vxdisksetup -i sdf 上面的命令将磁盘 sdf 带到 Veritas 卷管理器（VxVM），并且磁盘状态现在更改为 online。步骤 6：将磁盘添加到 VxVM 中的磁盘组（DG）vxdg 命令对磁盘组执行各种管理操作。在此示例中，我们将使用它向现有磁盘组（DG）添加新磁盘。vxdg -g [DG_Name] adddisk [Any_Name_to_Disk_as_per_Your_Wish=Device_Name] vxdg -g testdg adddisk disk3=emc_03 运行上述命令后，磁盘名称为 disk3 且磁盘组名称为 testdg 已针对 emc_03 设备进行更新 如下所示：# vxdisk -e list DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR emc_01 auto:cdsdisk disk1 testdg online sdd - emc_02 auto:cdsdisk disk2 testdg online sde - emc_03 auto:none disk3 testdg online sdf - sda auto:LVM - - LVM sda - sdb auto:LVM - - LVM sdb - 步骤 7：检查磁盘组（DG）中的可用空间要确定连接卷有多少可用空间，请运行：vxassist -g testdg maxsize 步骤 8：扩展 VxVM 卷和 VxFS 文件系统我们为此活动添加了 5GB LUN，因此额外扩展了 VxVM 卷和 VxFS 文件系统 5GB，如下所示：vxresize -b -g [DG_Name] [Volume_Name] +[Size_to_be_Increased] vxresize -b -g testdg testvol +5g 这里：vxresize：命令-b：在后台执行调整大小操作（可选）。-g：将命令的操作限制为给定磁盘组，由磁盘组 ID 或磁盘组名称指定。testdg：我们的磁盘组（DG）名称testvol`：我们的卷名称+5g：此卷将额外增加 5GB。步骤 9：检查扩展 VxFS 文件系统最后，使用 df 命令检查 /data 的扩展 VxFS：# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/vx/dsk/testdg/testvol 14G 8.4G 5.6G 68% /data 总结在本教程中，我们向你展示了如何向现有磁盘组（DG）添加新磁盘，以及如何通过几个简单步骤在 Linux 中扩展 VxVM 卷和 VxFS 文件系统。如果你有任何问题或反馈，请随时在下面发表评论。（题图：MJ/3fe4fdb7-99da-4b8f-a818-0ae232e6fbcc）via: https://www.2daygeek.com/extend-increase-vxvm-volume-vxfs-filesystem-linux/作者：Jayabal Thiyagarajan 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
网络 绑定 Bonding （ 成组 Teaming ） 是 Linux 的一项内核特性，它让我们可以将多个网络接口（例如 ens192、ens224）聚合为一个专有的虚拟网络接口，被称为通道绑定（bond0）。这样做能够提升吞吐量并增加冗余备份。网络绑定一共支持 7 种模式，你可以根据实际需求进行设置。 链接聚合控制协议 Link Aggregation Control Protocol （LACP）， 即模式 4（802.3ad）因其支持链接聚合与冗余而被广泛应用。在本篇文章中，我们将引导你学习如何在 RHEL 系统中配置网卡（网络）绑定。LACP 绑定的前置条件网络团队需要在网络交换机的端口上开启 LACP（802.3ad）来实现链接的聚合。一个 Linux 系统应该配备至少两个网络接口。对于物理服务器，我们推荐在板载接口与 PCI 接口间进行绑定配置，以避免在主机端的网络卡出现单点故障。Bonding 模块你可以使用 lsmod 命令来确认你的 Linux 系统是否已经加载了 bonding 模块。lsmod | grep -i bonding bonding 12451 0 系统应该默认已加载。如果未看到，可以运用 modprobe 命令进行加载。modprobe bonding 创建绑定接口在 /etc/sysconfig/network-scripts/ 路径下，创建一个名为 ifcfg-bond0 的绑定接口文件。依据你的网络情况，你可能需要修改诸如 IP、MASK 以及 GATEWAY 等值。vi /etc/sysconfig/network-scripts/ifcfg-bond0 TYPE=Bond DEVICE=bond0 NAME=bond0 BONDING_MASTER=yes BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BONDING_OPTS="mode=4 miimon=100 lacp_rate=1" 参数描述BONDING_MASTER=yes表示设备是一个绑定主设备。mode=4绑定模式是 IEEE 802.3ad 动态链接聚合（LACP）。miimon=100定义以毫秒单位的 MII 链路监测频率，这决定了多久检查每个从属链路的状态一次以寻找失败的链路。0 值将禁用 MII 链路监测。100 是个不错的初始值。lacp_rate=1一个设置项，规定我们将以何种频率要求我们的链路伙伴每秒钟发送 LACPDU。默认为慢，即 0。配置第一个子接口修改你希望添加到绑定中的第一个子接口。请根据你的实际环境使用合适的接口名。vi /etc/sysconfig/network-scripts/ifcfg-ens192 TYPE=Ethernet BOOTPROTO=none DEVICE=ens192 ONBOOT=yes MASTER=bond0 SLAVE=yes 配置第二个子接口修改你希望添加到绑定中的第二个子接口。请根据你的实际环境使用合适的接口名。vi /etc/sysconfig/network-scripts/ifcfg-ens224 TYPE=Ethernet BOOTPROTO=none DEVICE=ens224 ONBOOT=yes MASTER=bond0 SLAVE=yes 重启网络服务重启网络服务以激活绑定接口。systemctl restart network 验证绑定配置你可以借助 ip 命令 来查看绑定接口以及其子接口的情况。可以看到，bond0 现在已启动并在运行。查阅绑定接口状态检查以下文件，你可以看到绑定接口及其子接口的详细信息。输出结果应该看起来很不错，我们能看到诸如绑定模式，MII 状态，MII 轮询间隔，LACP 速率，端口数量等信息。cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer (0) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 802.3ad info LACP rate: fast Min links: 0 Aggregator selection policy (ad_select): stable System priority: 65535 System MAC address: c8:5b:76:4d:d4:5c Active Aggregator Info: Aggregator ID: 1 Number of ports: 2 Actor Key: 15 Partner Key: 32773 Partner Mac Address: e4:a7:a0:32:fc:e9 Slave Interface: ens192 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: c8:5b:76:4d:d4:5c Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: none Partner Churn State: none Actor Churned State: 0 Partner Churned State: 0 details actor lacp pdu: system priority: 65535 system mac address: c8:5b:76:4d:d4:5c port key: 15 port priority: 255 port number: 1 port state: 63 details Partner lacp pdu: system priority: 32667 system mac address: e4:a7:a0:32:fc:e9 oper key: 32773 port priority: 32768 port number: 290 port state: 61 Slave Interface: ens224 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: e4:a7:a0:32:fc:e9 Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: none Partner Churn State: none Actor Churned State: 0 Partner Churned State: 0 details actor lacp pdu: system priority: 65535 system mac address: e4:a7:a0:32:fc:e9 port key: 15 port priority: 255 port number: 2 port state: 63 details Partner lacp pdu: system priority: 32667 system mac address: c8:5b:76:4d:d4:5c oper key: 32773 port priority: 32768 port number: 16674 port state: 61 容错/冗余测试为了验证容错性和连接速度，你可以逐个断开接口，然后检查服务器是否仍旧可达。测试用例-1：当两个子接口都启动并运行时，使用 ethtool 命令 检查链路速度。测试用例-2：断开第一个子接口，然后尝试访问系统。测试用例-3：断开第二个子接口，然后尝试访问系统。测试用例-1：如果你想检测下连接速度：没错，我在 bond0 上看到了 20 Gbps 的速度，因为每个子接口支持 10 Gbps。ethtool bond0 Settings for bond0: Supported ports: [ ] Supported link modes: Not reported Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 20000Mb/s Duplex: Full Port: Other PHYAD: 0 Transceiver: internal Auto-negotiation: off Link detected: yes 测试用例-2：现在我们将关闭第一个子接口。ifdown ens192 Device 'ens192' successfully disconnected. 通过 ssh 尝试访问系统。没问题，系统现在是可以访问的。ssh [email protected] 由于已经有一个子接口关闭，你现在在 bond0 上只能看到 10 Gbps 的速度。ethtool bond0 | grep -i speed Speed: 10000Mb/s 现在，我们再次查看绑定接口的状态。可以看出，只有一个子接口处于活跃状态。cat /proc/net/bonding/bond0 测试用例-3：我们来关闭第二个子接口，并进行类似测试用例-2 的测试：ifdown ens224 Device 'ens224' successfully disconnected. 结语我希望你已经掌握了在 RHEL 上配置 LACP 绑定的方法。在本教程中，我们为你展示了在 RHEL 系统配置网络绑定或网卡聚合的最简单方式。如果你有任何疑问或者反馈，欢迎在下面留言。（题图：MJ/939f6ba6-eb46-480d-8879-3a422c7425d2）via: https://www.2daygeek.com/configure-network-bonding-nic-teaming-rhel/作者：Jayabal Thiyagarajan 选题：lujun9972 译者：ChatGPT 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出