問題
CentOS/RHEL 7 マシンで RDMA サービスを開始できません。 「journalctl -r」コマンドで次のエラーが表示されます:
Oct 11 11:01:15 geeklab systemd-modules-load: Failed to insert 'rds_rdma': Address family not supported by protocol Oct 11 11:01:15 geeklab systemd-modules-load: Failed to insert 'rds_rdma': Address family not supported by protocol Oct 11 11:01:15 geeklab systemd-modules-load: Failed to insert 'resilient_rdmaip': Address family not supported by protocol Oct 11 11:01:15 geeklab systemd-modules-load: Failed to insert 'resilient_rdmaip': Address family not supported by protocol Oct 11 11:01:15 geeklab systemd: [email protected]: main process exited, code=exited, status=1/FAILURE Oct 11 11:01:15 geeklab systemd: [email protected]: main process exited, code=exited, status=1/FAILURE Oct 11 11:01:15 geeklab systemd: Failed to start Load RDMA modules from /etc/rdma/modules/rdma.conf. Oct 11 11:01:15 geeklab systemd: Failed to start Load RDMA modules from /etc/rdma/modules/rdma.conf. Oct 11 11:01:15 geeklab systemd: Unit [email protected] entered failed state. Oct 11 11:01:15 geeklab systemd: Unit [email protected] entered failed state.
解決策
この問題は、rds_rdma の次の設定が原因で発生します 「ipv6.disable=1」が原因で、モジュールがカーネルにロードされていませんでした ” /etc/default/grub/ のパラメータ および /boot/grub2/grub.cfg で
/etc/default/grub 構成ファイル:
########### BEGIN DO NOT REMOVE Added by Oracle Exadata ########### GRUB_DEFAULT=0 GRUB_DISABLE_OS_PROBER=true GRUB_DISABLE_RECOVERY=true GRUB_DISABLE_SUBMENU=y GRUB_DISTRIBUTOR="Oracle Linux" GRUB_TIMEOUT=5 GRUB_TIMEOUT_STYLE=menu GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" export EXADATA_IMAGE_TYPE=BareMetal GRUB_CMDLINE_LINUX_DEFAULT="root=LABEL=DBSYS bootarea=dbsys bootfrom=BOOT ro loglevel=7 panic=60 pci=noaer log_buf_len=1m nmi_watchdog=0 transparent_hugepage=never rd_NO_PLYMOUTH audit=1 console=tty1 console=ttyS0,115200n8 crashkernel=448M processor.max_cstate=1 clocksource=tsc nohpet nopmtimer hda=noprobe hdb=noprobe ide0=noprobe pci=nocrs ifnames_skip=100 biosdevname=0 net.ifnames=0 " ########### END DO NOT REMOVE Added by Oracle Exadata ########### #OS hardening start GRUB_CMDLINE_LINUX='ipv6.disable=1' #OS hardening end
/boot/grub2/grub.cfg 構成ファイル:
linux16 /vmlinuz-4.14.35-1902.301.1.el7uek.x86_64 root=/dev/mapper/VGExaDb-LVDbSys1 ro ipv6.disable=1 root=LABEL=DBSYS bootarea=dbsys bootfrom=BOOT ro loglevel=7 panic=60 pci=noaer log_buf_len=1m nmi_watchdog=0 transparent_hugepage=never rd_NO_PLYMOUTH audit=1 console=tty1 console=ttyS0,115200n8 crashkernel=448M processor.max_cstate=1 clocksource=tsc nohpet nopmtimer hda=noprobe hdb=noprobe ide0=noprobe pci=nocrs ifnames_skip=100 biosdevname=0 net.ifnames=0 initrd16 /initramfs-4.14.35-1902.301.1.el7uek.x86_64.img
RDMA は、このパラメーター「ipv6.disable=1」によって防止されている使用可能な ipv6 コードに依存しています。この問題を解決するには、以下の手順に従ってください:
1. /etc/default/grub をバックアップしてください 変更前。 /boot/grub2/grub.cfg から次のオプション (または行) を削除してください 起動コマンドライン:
# vi /boot/grub2/grub.cfg
以下の行を削除してください:
ipv6.disable=1
これは、RDMA が使用できる IPv6 コードに依存しているためですが、これにより、まったくロードできなくなります。
2. /boot/grub2/grub.cfg をバックアップしてください .次のコマンドを実行して grub ファイルを再構築してください。
# grub2-mkconfig -o /boot/grub2/grub.cfg
3. 現在の initramfs ファイルをバックアップしてください。その後、initramfs を再構築します。
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img # dracut -f
4. サーバーを再起動して結果を確認してください。
CentOS/RHEL の /var/log/dmesg でより多くのログをキャプチャする方法
CentOS/RHEL 7 で「max_report_luns」と「max_luns」を設定して 16,383 を超える LUN をスキャンする方法