1.はじめに
同社のサーバーには、10Gネットワークカードとnvmeが新たにインストールされ、cephクラスターを構築する準備が整いました。しかし、DellR620はそれを心配するのに十分古いです。ここに踏まれた穴を記録します。
2、elrepoのインストール
当初、ネットワークチェックの結果は同じで、elrepoを使用してカーネルを更新しました。しかし、elrepoのltバージョンは4.4にしか達していないため、cephfsのカーネル要件を満たしていません。
mlバージョン5.9.8を試してみてください。その結果、レイドは認識できますが、igbと10Gは認識できません。カーネルのみを変更できます。
elrepoのアップグレード方法を記録する
elrepoソースとGPGキーをインストールします
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
Elrepoには、kernel-mlとkernel-ltの2つのバージョンのカーネルが含まれています。
-
kernel-mlはメインラインバージョンであり、最新バージョン(現在は5.9.8)に準拠しています。
- kernel-ltは長期バージョン、長期サポート、現在4.4.243です。
CephFSでは最小カーネルが4.17である必要があるため、kernel-mlのインストールを選択してください
注:ドライバーのインストールの問題に関して、elrepoは関連するパッケージとメソッドも提供しています:http://elrepo.org/tiki/DeviceIDs 。でも練習してみたらダメだったので、公式サイトで最新のドライバーを探しましょう。
3、centosの公式アルターチソース
centos7の公式カーネルバージョンは3.10で、大きなバージョンをどのように更新しても、3.10です。このとき、私はセントのアルターチソースについて考えました。このソースのパッケージは比較的新しいものです。当局はこれを使用して以前の実験を置き換えます。そして、その安定性と互換性は、elrepoよりも優れているはずです。
カーネルをダウンロードしてインストールします
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/kernel/x86_64/Packages/kernel-5.4.65-200.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/kernel/x86_64/Packages/kernel-core-5.4.65-200.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/kernel/x86_64/Packages/kernel-devel-5.4.65-200.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/kernel/x86_64/Packages/kernel-modules-5.4.65-200.el7.x86_64.rpm
yum install kernel-*
カーネルパッケージ構造の説明
- カーネル
- カーネルコアカーネルコア機能
- kernel-modulesカーネルの基本モジュール(最も一般的に使用されるドライバーはここにあります)
もちろん、yumレポの形で作ることもできます。
altarch.repo
[altarch]
name=CentOS-$releasever - altarch
baseurl=http://mirror.centos.org/altarch/$releasever/kernel/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
カーネルのブートシーケンスを設定します
現在のブートカーネルを表示する
grub2-editenv list
指定したカーネルを選択して開始します
grub2-set-default 0
新しいカーネルをインストールした後、通常は最初に起動する場所に配置されます。上記のコマンドを実行して、最初のカーネルを起動するように設定する必要があります。次のコマンドを使用して、順序を表示できます。
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
システムを再起動します
拡張コンテンツ
5のカーネルを交換した後、サーバーのネットワークカード名が変更されます。次の方法で、正しいネットワークカード名を見つけてください。
NICウェイクオン
ウェイクオンを使用して、サーバーのネットワークカードのどのギガビットポートがネットワークケーブルで接続されているかを確認します。電源を入れた後、ethtoolはネットワークカードに速度があるかどうかを確認できます。速度がある場合は、ネットワークケーブルが接続されています。
ネットワークカードがWOLをサポートしているかどうかを確認します
ethtool eth0
wake-onの値がdの場合、それはwake on lan
が無効であることを意味し、値はgであり、これはwake onlanが有効であることを意味します。
次のコマンドを使用して、lanでウェイクを有効にします
ethtool -s eth0 wol g
10Gネットワークカードはdmesgから見つけることができます
[root@]# grep Up dmesg
[ 2.549298] microcode: Microcode Update Driver: v2.2.
[ 3.859307] i40e 0000:04:00.1 eth2: NIC Link is Up, 10 Gbps Full Duplex, Flow Control: Non
使用しているネットワークカードドライバを確認してください
ネットワークカードのモデルとドライバーのバージョンを表示できます
lspci -nn|grep Eth
01:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
01:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
01:00.2 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
01:00.3 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
04:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 02)
04:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 02)
ドライブパスを表示
このコマンドを使用して、2つのカーネルのレイドがネットワークカードドライバーと一致しているかどうかを比較します
]# lsinitrd -k 5.4.65-200.el7.x86_64|grep igb
-rw-r--r-- 1 root root 3618 Oct 31 2018 usr/lib/kbd/keymaps/xkb/ng-igbo.map.gz
drwxr-xr-x 2 root root 0 Nov 16 11:41 usr/lib/modules/5.4.65-200.el7.x86_64/kernel/drivers/net/ethernet/intel/igb
-rw-r--r-- 1 root root 94760 Sep 16 22:30 usr/lib/modules/5.4.65-200.el7.x86_64/kernel/drivers/net/ethernet/intel/igb/igb.ko.xz
BBRをオンにする
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
検証
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
出力あり
tcp_bbr 20480 880
それは成功したことを意味します。
成功しなかった場合はuname -r
、カーネルのバージョンを実行して確認します。4.9より大きいと判断された場合は、マシンを再起動して確認します。