※昨今のトレンドである「GPU前提のLinuxサーバ」つまり、AI環境に必須の
- データセンタークラスのGPU
- それをRHEL系Linuxに認識させ
- 更にDockerというトレンドでも動かす
という難易度が高く――そして、インフラ屋にとって極上の素材を得る経験がありました。
そのときのメモです。(氷見の本マグロを捌くことになった調理師のような気分でした)
“逸般”の誤家庭的な環境
まず、これを一般家屋に置くと言うことはないでしょう。
- OS:
- Rocky Linux 9.x (Minimal Install)
- Kernel:
- 5.14.0-x (RHEL 9 Standard)
- GPU:
- NVIDIA RTX 6000 Ada Generation x 1
- →2025/12/06時点でもちょっとした軽自動車が買えるやつです
- NVIDIA RTX 6000 Ada Generation x 1
- Driver:
- NVIDIA Driver 590.xx (Open Kernel Module)
- Container Runtime:
- Docker CE 27.x + NVIDIA Container Toolkit
前提環境の整備
- OSインストールを行います。(Rocky Linux Minimal)
- ネットワークの設定を行います。
- dnf updateを済ませます。
NetworkManagerによるネットワーク設定
固定IP化および自動接続設定を行う。
- 接続プロファイル名の正規化 (デバイス名と合わせる)
sudo nmcli connection modify "Wired connection 1" connection.id eno2
- 固定IP設定
sudo nmcli connection modify eno2 ipv4.addresses xx.xx.x.x/16
sudo nmcli connection modify eno2 ipv4.gateway Gateway IP
sudo nmcli connection modify eno2 ipv4.dns "DNS1 DNS2"
sudo nmcli connection modify eno2 ipv4.method manual
sudo nmcli connection modify eno2 connection.autoconnect yes
→ これをやっておかないと、再起動したときにNW設定が消えます。
- 設定反映
sudo nmcli connection up eno2
システム更新とリポジトリ適用
RHEL 9 系でサードパーティ製パッケージを入れるため、これは必須です。特に、CRB (CodeReady Builder) の有効化を忘れると依存解決ができず、高性能GPUを認識させることができません。
- dnf全更新
sudo dnf update -y
- サーバ再起動
sudo reboot
→ カーネルアップデートも含まれるため。
- CRB有効化 (旧 PowerTools)
sudo dnf config-manager --set-enabled crb
- EPEL導入
sudo dnf install epel-release -y
NVIDIA Driver の導入
ここまで来たらいよいよ本命。(先のマグロの例に例えると、いよいよマグロの身に刃を当てていきます)
【重要】 RTX 6000 Ada はプロプライエタリ版ドライバではなく、Open Kernel Module (open-dkms) を要求します。これに気づかずハマりかけました。
依存関係の解決とリポジトリの導入。
- 開発ツールの導入
sudo dnf groupinstall "Development Tools" -y
- カーネルヘッダの導入
sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
- NVIDIA公式リポジトリ (RHEL9用) 追加
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
旧ドライバ/競合の排除
以前のインストール試行や(ハマったところ)、OSに入っているであろうGPUドライバを取り除かないと詰まります。
- nvidia dkmsドライバのアンインストール
sudo dnf remove nvidia-driver kmod-nvidia-latest-dkms -y
- nvidia dkmsドライバのリセット
sudo dnf module reset nvidia-driver -y
Open Kernel Module 版のインストール
- dnf module機能を使って open-dkms ストリームを指定してインストール
sudo dnf module install nvidia-driver:open-dkms -y
- サーバ全体を再起動してカーネルモジュールをロード
sudo reboot
ドライバ動作確認
nvidia-smi
-> `Driver Version: 590.xx / GPU Name: RTX 6000 Ada / VRAM: xxGB が表示されることを確認します。
コンテナ基盤の構築
筆者はコンテナが好みではないのですが、それはそれです。相手のオーダーに答えるのもまたお仕事。
Docker CE のインストール
ここではpodman ではなく Docker CE を採用しました。
- Docker CEレポジトリ追加
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Docker CEインストール
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
- Docker 自動起動有効化
sudo systemctl enable --now docker
- 現在のユーザをDockerグループに加える
sudo usermod -aG docker $USER
NVIDIA Container Toolkit の導入
DockerコンテナでGPUが見えないと、せっかく「Dockerを入れろ」というオーダーが無になります。
- Toolkitインストール
sudo dnf install nvidia-container-toolkit -y
- Dockerランタイム設定 (daemon.jsonの更新)
sudo nvidia-ctk runtime configure --runtime=docker
- Tookit/ランタイム反映
sudo systemctl restart docker
動作確認 (パススルーテスト)
コンテナ内部から GPU が見えるか確認します。
sudo docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
成功時、コンテナ内からホスト同様の nvidia-smi 結果が出力されれば動作完了です。
追加要素:最新トレンドに合わせた開発環境の用意。
言語ランタイム (Modern Runtime)の導入
OS標準を汚さず、最新の開発環境を整備する。
- Node.js 22+:
- NodeSourceリポジトリより導入。これは割愛です。(どっかしら探せば出てくるので)
- Python 3.12:
- Rocky Linuxは3.9。しかも、OSの核となっているプログラムなので、ソースコードを用いて
altinstall(共存インストール) しないとサーバそのものが吹っ飛びます。
- Rocky Linuxは3.9。しかも、OSの核となっているプログラムなので、ソースコードを用いて
※実行例
- 開発環境導入
sudo dnf install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel tk-devel xz-devel
- ソースコードダウンロード
wget https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz
- ソースコード展開
tar xzf Python-3.12.8.tgz && cd Python-3.12.8
- ソースコードconfigure(最適化オプション)
./configure --enable-optimizations
- CPUコアフルに用いての高速メイク
make -j $(nproc)
- altinstall
sudo make altinstall
altinstallを入れないと上述したようにサーバが吹っ飛びます。
トラブルシューティング (Tips)
以下のエラーに出くわしたときの原因と対策です。
- NVRM: requires use of the NVIDIA open kernel modules:
- 原因: Ada世代のGPUに対し、従来のプロプライエタリドライバを入れたため。
- 対策:
dnf module install nvidia-driver:open-dkmsを使用しました。
- Secure Boot:
- ドライバ導入前に BIOS/UEFI で Disabled になっていることを確認すること(署名周りのトラブル回避)。









