RockyLinux 9 Install, 서버컴퓨터 포멧
Updated on
목차:
- 포멧 전에 디스크 정리
-
ISO USB에 구운 다음에 boot 로 실행.
-
sshd_config 파일 수정 (포트 변경, 외부접속 허용)
-
저장소 추가
-
기본 패키지 설치
-
기본 패키지 업그레이드
-
현재 리눅스 및 커널 버전 확인
-
nvidia driver 설치
- 추가 디스크 마운트
-
cron.d 에 추가
-
/etc/sysctl.conf 에 추가
-
docker 설치
-
nvidia-toolkit 설치
-
후기
포멧 전에 디스크 정리
폴더 용량 확인
ncdu
디스크 정보 확인
lsblk lsblk -f
SSD 최적화
fstrim -v / fstrim -v /db
포멧 진행
hdd - ext4 포멧 형태 ssd - xfs 포멧 형태
디스크 ID 값을 먼저 확인해야 한다. fdisk -l
HDD 포멧
umount /dev/sda wipefs -a /dev/sda mkfs -t ext4 -F /dev/sda
SDD 포멧
umount /dev/nvme1n1 wipefs -a /dev/nvme1n1 mkfs -t xfs -f /dev/nvme1n1
디스크 사용중인지 확인 방법
fuser -m /dev/nvme1n1p1 위 명령어를 입력하면, 사용중인지 확인할 수 있다.
/dev/nvme1n1: 4975c 5431 5522c 5911 6212c 6834c 6901c 6908c 7125c 7820c 7857c 7858c 7861c 7862c 7863c 8524c 8526c 8527c 8579c 8580c 8582c 2351932c 2351998c 2352089c
사용중이라면, 사용중인 프로세스를 꺼야 한다.
ISO USB에 구운 다음에 boot 로 실행.
오랜만에 linux gui 에 접속한것 같은데, 예전보다 엄청 친절하고, 편해진거같다… 예전에는 설치할때만해도 복잡해서 굉장히 어려웠었는데… 아무튼, 설치 이후에 설명을 한다.
(frankenphp 에서 2MB 이상 업로드 안되는 문제 발견했음, https://github.com/dunglas/frankenphp/pull/122)
sshd_config 파일 수정 (포트 변경, 외부접속 허용)
Port 22960
systemctl restart sshd dnf install policycoreutils-python-utils semanage port -a -t ssh_port_t -p tcp 22960 systemctl restart sshd
SELinux 보안 때문에 안되는데, 도대체 명령어는 왜 설치가 안되어있는지 의문이다. 위 패키지 설치 후 포트 등록해주면 된다.
그러고 나면, 역시 또 연결이 안될텐데 firewalld 때문이다. firewalld 는 disabled 해줄 예정이다. 일일히 포트를 열어주고 하는 행위 자체가 너무 번거롭기 때문이다.
systemctl disable firewalld
이로서, winscp 와 putty를 통해서 원격접속이 가능해졌다.
저장소 추가
dnf install dnf-plugins-core dnf install epel-release dnf config-manager –set-enabled crb
기본 패키지 설치
dnf install vim htop net-tools iputils dnsutils curl wget rsync lsof ncdu which tcpdump unzip lsscsi bash-completion lm_sensors sensors-detect
기본 패키지 업그레이드
dnf upgrade
현재 리눅스 및 커널 버전 확인
hostnamectl Static hostname: (unset) Transient hostname: server.local Icon name: computer-desktop Chassis: desktop 🖥️ Machine ID: ef0aec2ff5ac4a399deb6993fbf760d8 Boot ID: 03c2689afcbe4827b41241c7b8570fc1 Operating System: Rocky Linux 9.3 (Blue Onyx) CPE OS Name: cpe:/o:rocky:rocky:9::baseos Kernel: Linux 5.14.0-362.8.1.el9_3.x86_64 Architecture: x86-64 Hardware Vendor: ASUS Hardware Model: ROG ZENITH II EXTREME ALPHA Firmware Version: 1802
nvidia driver 설치
(https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-9-rocky-9) => (https://github.com/NVIDIA/gds-nvidia-fs/issues/34)
위 주소를 따라서 설치하면 절대 안된다… nvidia_fs: module using GPL-only symbols uses symbols from proprietary module nvidia.
에러가 발생한다..
혹시 설치했다면, https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#removing-cuda-toolkit-and-driver 주소를 통해서 제거한다.
그리고 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#nvidia-open-gpu-kernel-modules 여기 주소를 통해서 설치한다.
dnf install tar bzip2 wget make automake gcc gcc-c++ pciutils elfutils-libelf-devel libglvnd-devel bind-utils kernel-headers kernel-devel freeglut-devel libX11-devel libXi-devel libXmu-devel mesa-libGLU-devel freeimage-devel glfw-devel lspci | grep VGA dnf module install nvidia-driver:open-dkms reboot nvidia-smi nvidia-smi nvlink --status
여기서 nvidia Persistence 모드 활성화를 해준다.
systemctl enable nvidia-persistenced systemctl start nvidia-persistenced
추가 디스크 마운트
추가로 HDD 와 SSD 를 마운트 시켜줘야 한다.
lsblk -f fdisk -l /dev/nvme1n1
폴더 생성하기
mkdir /db mkdir /data
폴더에 디스크 마운트 하기
mount /dev/nvme1n1 /db mount /dev/sda /data lsblk -f
만약에 에러로 인해 안될 경우에는 아래 명령어로 포멧 진행
HDD 포멧
wipefs -a /dev/sda mkfs -t ext4 -F /dev/sda
SDD 포멧
wipefs -a /dev/nvme1n1 mkfs -t xfs -f /dev/nvme1n1
lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ext4 1.0 b1f8274b-8367-46a3-af7a-9cc6415cebf8 8.6T 0% /data nvme1n1 xfs 62a1faab-d641-4bc3-bacf-627f1f291c71 922G 1% /db nvme0n1 ├─nvme0n1p1 vfat FAT32 5329-2977 1015M 1% /boot/efi ├─nvme0n1p2 xfs ae7ca155-3a8a-47c8-b971-bcf22da8ac65 1.7G 13% /boot └─nvme0n1p3 LVM2_member LVM2 001 4SPRzM-DWfn-6ZPo-R7Zf-el9R-pgEX-2bnONK ├─rl_server-root xfs 3c26352e-d02e-4797-acb5-4336ba5d1548 853.3G 1% / └─rl_server-swap swap 1 96c61fbd-649d-4dec-8a85-c866fff175d3 [SWAP]
/etc/fstab 수정 (자동 마운트)
# auto-mount > 추가 설정 UUID=62a1faab-d641-4bc3-bacf-627f1f291c71 /db xfs defaults 0 0 UUID=b1f8274b-8367-46a3-af7a-9cc6415cebf8 /data ext4 defaults 0 0
재부팅 후 auto mount 잘 적용됬는지 아래 명령어로 확인
reboot lsblk -f
cron.d 에 추가
0 0 * * * /bin/sync && echo 1 > /proc/sys/vm/drop_caches
/etc/sysctl.conf 에 추가
net.core.netdev_max_backlog=4096 net.core.somaxconn=65535 net.core.rmem_max=3145728 net.core.wmem_max=3145728
docker 설치
dnf erase podman buildah dnf update dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin systemctl --now enable docker docker compose version docker --version docker network create frontend docker network create backend
nvidia-toolkit 설치
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \ sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo dnf config-manager --set-enabled nvidia-container-toolkit-experimental dnf install -y nvidia-container-toolkit nvidia-ctk runtime configure --runtime=docker systemctl restart docker reboot
후기
centOS 설치 후 약 9 ~ 10년만에 처음으로 리눅스 서버를 포멧한거 같다. 리눅스 서버는 대부분 한번 포멧하면 거의 포멧 할 일이 없기는 한데, 이번에 AlamLinux 8버전이 24년 5월에 업데이트 지원 중단이 된다고 하더라, 물론 보안 업데이트는 계속 있긴 하겠지만, 업데이트 할 때가 됬다 생각이 들었다. 포멧 안하고도 업데이트는 충분히 할 수 있지만, 너무 오래되기도 했고, 이전에 docker 를 사용하기 전에 세팅한 iptables 등이 있기도 하고, 그냥 한번 포멧하는게 좋을 것 같아서 이번에 큰 맘 먹고 진행했다.
데이터 백업은 항상 필수이긴 하지만 !! 항상 포멧 할때는 데이터에 문제가 생기진 않을까 두려움이 있다.
아무튼, 나머지 데이터 백업 다시 넣고, 서비스 서버 켜면 될 것 같다.
후 ~ 처음에 AlmaLinux 로 설치했다가, nvidia driver 설치하는 과정에서 안되길래, RockyLinux 로 변경해서 설치했다. (사실 안되던 문제는 AlmaLinux 때문은 아니였음)
에휴, 그냥 앞으로 alma 말고 rocky 로 설치해서 써야겠다..
리눅스 서버 컴 포멧 작업 완료까지 걸린 시간이 거의 12시간 작업을 진행했다…. 후,, 역시 힘들다..