RockyLinux 9 Install, 서버컴퓨터 포멧

Updated on

목차:

포멧 전에 디스크 정리

폴더 용량 확인

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시간 작업을 진행했다…. 후,, 역시 힘들다..