GPU 서버 환경 설정 — Rocky Linux 9.7
이 가이드는 폐쇄망 환경에서 DO-Solution 2.0 GPU 서버의 Rocky Linux 9.7 OS 환경 구축 방법을 제공합니다.
전제 조건
- 공개망 서버와 폐쇄망 서버의 OS 및 커널 버전 일치:
- OS Version: Rocky Linux 9.7
- Kernel Version:
5.14.0-611.41.1.el9_7.x86_64
- Root 권한 필요
1. 패키지 레포지토리 반입
SCP 또는 물리적 이동을 통해 폐쇄망 서버 /home/$USER에 do-repo-rocky9.7.tar.gz 파일을 반입합니다.
2. 로컬 레포지토리 등록
Repo명 지정
bash
export RPM_REPO_NAME="do-repo"파일 압축 해제 및 배치
bash
tar -xzvf ${RPM_REPO_NAME}-rocky9.7.tar.gz
sudo mv ${RPM_REPO_NAME} /opt/${RPM_REPO_NAME}로컬 .repo 파일 생성
bash
export RPM_REPO_NAME="do-repo"
sudo cp /opt/${RPM_REPO_NAME}/${RPM_REPO_NAME}.repo \
/etc/yum.repos.d/${RPM_REPO_NAME}.repo3. DNF 캐시 초기화 및 확인
bash
# DNF 캐시 초기화
sudo dnf clean all
sudo dnf makecache
# DNF 레포 목록 확인
sudo dnf repolist4. 시스템 패키지 설치
운영 유틸리티 설치
bash
export RPM_REPO_NAME="do-repo"
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
vim pv telnet net-tools nvtop sysstat htop iotop lsof tcpdump \
bind-utils curl unzip zip jq tree rsync python3-dnf-plugin-versionlock커널 설치 및 버전 고정
bash
# 커널 버전 변수 지정
export KERNEL_VER="5.14.0-611.41.1.el9_7.x86_64"
# 커널 설치
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
kernel-${KERNEL_VER} kernel-core-${KERNEL_VER} kernel-modules-${KERNEL_VER}
# 커널 버전 고정 (자동 업그레이드 방지)
sudo dnf versionlock add kernel-${KERNEL_VER}
sudo dnf versionlock add kernel-core-${KERNEL_VER}
sudo dnf versionlock add kernel-modules-${KERNEL_VER}
# 고정 확인
sudo dnf versionlock listGRUB 부팅 커널 변경
bash
# 커널 버전 변수 지정
export KERNEL_VER="5.14.0-611.41.1.el9_7.x86_64"
# 설치된 커널 목록 확인
sudo grubby --info=ALL | grep "^kernel\|^title"
# 설치한 커널을 기본 부팅 커널로 지정
sudo grubby --set-default /boot/vmlinuz-${KERNEL_VER}
# 설정 확인
sudo grubby --default-kernel서버 재부팅
bash
sudo reboot재부팅 이후 커널 버전 확인
bash
uname -r
# 기대 출력 (반드시 아래 버전이어야 함):
# 5.14.0-611.41.1.el9_7.x86_645. NVIDIA 패키지 설치 (GPU 서버만 진행)
CPU 서버: 6단계 — Docker 설치로 건너뜁니다.
NVIDIA 드라이버 및 CUDA 설치
bash
# 재부팅 후 변수 재등록
export RPM_REPO_NAME="do-repo"
export KERNEL_VER="5.14.0-611.41.1.el9_7.x86_64"
export KMOD_KERNEL_VER=$(echo ${KERNEL_VER} | sed 's/\.el[0-9_]*\.x86_64$//')
# NVIDIA 드라이버 설치
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
libnvidia-cfg libnvidia-fbc libnvidia-gpucomp libnvidia-ml \
nvidia-driver nvidia-driver-cuda nvidia-driver-cuda-libs nvidia-driver-libs \
nvidia-kmod-common nvidia-modprobe nvidia-persistenced nvidia-settings nvidia-xconfig \
xorg-x11-nvidia kmod-nvidia-590.48.01-${KMOD_KERNEL_VER}
# CUDA 13.2 및 cuDNN 9 설치
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
cuda-toolkit-13-2 cudnn9-cuda-13-2nouveau 비활성화 및 재부팅
RHEL 계열 리눅스에서는 기본 GPU 드라이버로 nouveau를 사용합니다. NVIDIA 드라이버를 실행하려면 이 단계에서 비활성화해야 합니다.
bash
# nouveau blacklist 처리
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
# initramfs 재생성
sudo dracut --force
# 재부팅
sudo rebootCUDA 환경변수 설정
bash
# CUDA 설치 경로 확인
ls /usr/local/ | grep cuda
# 환경변수 설정
sudo tee /etc/profile.d/cuda.sh <<EOF
export PATH=/usr/local/cuda/bin:\${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:\${LD_LIBRARY_PATH}
EOF
source /etc/profile.d/cuda.sh6. Docker 설치
bash
# 재부팅 후 변수 재등록
export RPM_REPO_NAME="do-repo"
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Docker 서비스 활성화
sudo systemctl enable --now docker
# Docker 권한 추가 (그룹 적용을 위해 재로그인 필요)
sudo usermod -aG docker $USER7. NVIDIA Container Toolkit 설치 (GPU 서버만 진행)
CPU 서버: 8단계 — 설치 검증으로 건너뜁니다.
bash
export RPM_REPO_NAME="do-repo"
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.19.0-1
sudo dnf install -y --disablerepo="*" --enablerepo=${RPM_REPO_NAME} \
nvidia-container-toolkit-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1-${NVIDIA_CONTAINER_TOOLKIT_VERSION}
# Docker Engine Runtime을 nvidia container toolkit으로 지정
sudo nvidia-ctk runtime configure --runtime=docker
# Docker Engine 재시작
sudo systemctl restart docker8. 설치 검증
NVIDIA 드라이버 확인 (GPU 서버만)
bash
# nvidia 모듈 로드 확인
lsmod | grep nvidia
# 기대 출력:
# nvidia_uvm 2129920 0
# nvidia_drm 131072 0
# nvidia_modeset 1462272 1 nvidia_drm
# nvidia 98975744 2 nvidia_uvm,nvidia_modeset
# nvidia-smi 확인: 전달 받은 GPU 스펙과 일치하는지 확인
nvidia-smi
# 기대 출력 예시:
# NVIDIA-SMI 590.48.01 Driver Version: 590.48.01 CUDA Version: 13.1
# NVIDIA RTX 4000 Ada GenerationCUDA 확인 (GPU 서버만)
bash
nvcc --version
# 기대 출력:
# Cuda compilation tools, release 13.2, V13.2.78cuDNN 확인 (GPU 서버만)
bash
ldconfig -p | grep cudnn
# 기대 출력: libcudnn.so.9, libcudnn_ops.so.9, libcudnn_adv.so.9 등Docker 확인
bash
sudo docker version
# 기대 출력: Docker Engine Community 버전 29.x.xNVIDIA Container Toolkit 적용 확인 (GPU 서버만)
bash
sudo nvidia-ctk runtime configure --runtime=docker --dry-run
# 기대 출력:
# {
# "runtimes": {
# "nvidia": { "path": "nvidia-container-runtime" }
# }
# }