3.2. 基本网络故障排除
红帽 Ceph 存储很大程度上依赖于可靠的网络连接。红帽 Ceph 存储节点使用网络相互通信。网络问题可能会导致 Ceph OSD 出现很多问题,如断路,或者错误地报告为 down
。网络问题也可能导致 Ceph monitor 的时钟偏移错误。此外,数据包丢失、高延迟或有限带宽可能会影响集群性能和稳定性。
先决条件
- 节点的根级别访问权限。
流程
在对 Ceph 存储集群中可能发生的网络问题进行故障排除时,安装
net-tools
和telnet
软件包会有所帮助:Red Hat Enterprise Linux 7
[root@mon ~]# yum install net-tools [root@mon ~]# yum install telnet
Red Hat Enterprise Linux 8
[root@mon ~]# dnf install net-tools [root@mon ~]# dnf install telnet
验证 Ceph
配置文件中的 cluster
参数是否包含正确的值:_network
和 public_network示例
[root@mon ~]# cat /etc/ceph/ceph.conf | grep net cluster_network = 192.168.1.0/24 public_network = 192.168.0.0/24
验证网络接口是否已启动:
示例
[root@mon ~]# ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp22s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 40:f2:e9:b8:a0:48 brd ff:ff:ff:ff:ff:ff
验证 Ceph 节点能够使用它们的短主机名互相访问。在存储集群的每个节点上验证它:
语法
ping SHORT_HOST_NAME
示例
[root@mon ~]# ping osd01
如果使用防火墙,请确保 Ceph 节点能够在其适当的端口上访问其他节点。
firewall-cmd
和telnet
工具可以验证端口状态,以及端口是否分别打开:语法
firewall-cmd --info-zone=ZONE telnet IP_ADDRESS PORT
示例
[root@mon ~]# firewall-cmd --info-zone=public public (active) target: default icmp-block-inversion: no interfaces: enp1s0 sources: 192.168.0.0/24 services: ceph ceph-mon cockpit dhcpv6-client ssh ports: 9100/tcp 8443/tcp 9283/tcp 3000/tcp 9092/tcp 9093/tcp 9094/tcp 9094/udp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@mon ~]# telnet 192.168.0.22 9100
验证接口计数器上没有错误。验证节点之间的网络连接具有预期的延迟,并且没有数据包丢失。
使用
ethtool
命令:语法
ethtool -S INTERFACE
示例
[root@mon ~]# ethtool -S enp22s0f0 | grep errors NIC statistics: rx_fcs_errors: 0 rx_align_errors: 0 rx_frame_too_long_errors: 0 rx_in_length_errors: 0 rx_out_length_errors: 0 tx_mac_errors: 0 tx_carrier_sense_errors: 0 tx_errors: 0 rx_errors: 0
使用
ifconfig
命令:示例
[root@mon ~]# ifconfig enp22s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.8.222.13 netmask 255.255.254.0 broadcast 10.8.223.255 inet6 2620:52:0:8de:42f2:e9ff:feb8:a048 prefixlen 64 scopeid 0x0<global> inet6 fe80::42f2:e9ff:feb8:a048 prefixlen 64 scopeid 0x20<link> ether 40:f2:e9:b8:a0:48 txqueuelen 1000 (Ethernet) RX packets 4219130 bytes 2704255777 (2.5 GiB) RX errors 0 dropped 0 overruns 0 frame 0 1 TX packets 1418329 bytes 738664259 (704.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 2 device interrupt 16
使用
netstat
命令:示例
[root@mon ~]# netstat -ai Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg docker0 1500 0 0 0 0 0 0 0 0 BMU eno2 1500 0 0 0 0 0 0 0 0 BMU eno3 1500 0 0 0 0 0 0 0 0 BMU eno4 1500 0 0 0 0 0 0 0 0 BMU enp0s20u13u5 1500 253277 0 0 0 0 0 0 0 BMRU enp22s0f0 9000 234160 0 0 0 432326 0 0 0 BMRU 1 lo 65536 10366 0 0 0 10366 0 0 0 LRU
对于性能问题,除了延迟检查和验证存储集群所有节点之间的网络带宽外,使用
iperf3
工具。iperf3
工具在服务器和客户端之间进行简单的点对点网络带宽测试。在您要检查带宽的 Red Hat Ceph Storage 节点上安装
iperf3
软件包:Red Hat Enterprise Linux 7
[root@mon ~]# yum install iperf3
Red Hat Enterprise Linux 8
[root@mon ~]# dnf install iperf3
在 Red Hat Ceph Storage 节点上启动
iperf3
服务器:示例
[root@mon ~]# iperf3 -s ----------------------------------------------------------- Server listening on 5201 -----------------------------------------------------------
注意默认端口为 5201,但可使用
-P
命令参数设置。在不同的 Red Hat Ceph Storage 节点上,启动
iperf3
客户端:示例
[root@osd ~]# iperf3 -c mon Connecting to host mon, port 5201 [ 4] local xx.x.xxx.xx port 52270 connected to xx.x.xxx.xx port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 114 MBytes 954 Mbits/sec 0 409 KBytes [ 4] 1.00-2.00 sec 113 MBytes 945 Mbits/sec 0 409 KBytes [ 4] 2.00-3.00 sec 112 MBytes 943 Mbits/sec 0 454 KBytes [ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec 0 471 KBytes [ 4] 4.00-5.00 sec 112 MBytes 940 Mbits/sec 0 471 KBytes [ 4] 5.00-6.00 sec 113 MBytes 945 Mbits/sec 0 471 KBytes [ 4] 6.00-7.00 sec 112 MBytes 937 Mbits/sec 0 488 KBytes [ 4] 7.00-8.00 sec 113 MBytes 947 Mbits/sec 0 520 KBytes [ 4] 8.00-9.00 sec 112 MBytes 939 Mbits/sec 0 520 KBytes [ 4] 9.00-10.00 sec 112 MBytes 939 Mbits/sec 0 520 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver iperf Done.
此输出显示红帽 Ceph 存储节点之间的网络带宽 1.1 Gbits/秒,测试期间不会再传输(
Retr
)。红帽建议您验证存储集群中所有节点之间的网络带宽。
确保所有节点具有相同的网络互连速度。连接较慢的节点可能会减慢连接速度更快的节点。另外,确保间隔交换机链接可以处理附加节点的聚合带宽:
语法
ethtool INTERFACE
示例
[root@mon ~]# ethtool enp22s0f0 Settings for enp22s0f0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s 1 Duplex: Full 2 Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: off Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) drv probe link timer ifdown ifup rx_err tx_err Link detected: yes 3
其它资源
- 详情请查看客户门户网站中 的基本网络故障排除 解决方案。
- 请参阅《 红帽 Ceph 存储配置指南 》中的 验证和配置 MTU 值 部分。
- 请参阅《 红帽 Ceph 存储安装指南》 中的 配置防火墙 章节。
- 请参阅 "ethtool"命令,以及如何使用它来获取关于我的网络设备和接口的信息,了解详细信息。
- 详情请查看 RHEL 网络接口在客户门户网站中丢弃数据包 解决方案。
- 详情请查看客户门户上 可用于红帽 Ceph 存储的性能基准测试工具是什么?
- 红帽企业 Linux 7 的网络指南.
- 如需更多信息,请参阅客户门户网站中的与网络问题故障排除相关的 知识库文章和解决方案。