리눅스 설치
서버 운영을 위한 리눅스로 Rocky Linux를 선택.
CentOS 지원 종료로 패키지를 업그레이드 하지 못하게 되어,
엔터프라이즈급 리눅스 중 오라클, 로키 두 종으로 압축 로키 선택.
CentOS 개발자들이 만든 배포판이고, RHEL 과 호환성이 높고, 거의 동일한 업데이트 지원이 있다고 하니까.
다음의 위키 독스 참고
1. USB 설치 파일 제작
2. UEFI 설치
3. 파티션
~]# blkid
/dev/nvme0n1p4: LABEL="/" UUID="57dd2906*******" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="*******"
/dev/nvme0n1p2: LABEL="boot" UUID="251516c2-*******" BLOCK_SIZE="4096" *******
/dev/nvme0n1p1: SEC_TYPE="msdos" LABEL_FATBOOT="EFI" LABEL="EFI" *******
/dev/nvme0n1p6: LABEL="swap" UUID="a9fbdaa5-fdcf-4401-b28f-a0f57992abc5" *******
/dev/nvme0n1p5: LABEL="mysql" UUID="23e2a659-b321-4038-98af-39137e128e0c" *******
/dev/nvme0n1p3: LABEL="host" UUID="982d78eb-3451-43ae-af71-1c66c7955b83" *******
~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jul 18 05:17:56 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=57dd2906-******* / ext4 defaults 1 1
UUID=251516c2-******* /boot ext4 defaults 1 2
UUID=9006-D1FC /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=982d78eb-******* /host ext4 defaults 1 2
UUID=23e2a659-******* /var/lib/mysql ext4 defaults 1 2
UUID=a9fbdaa5-******* none swap defaults 0 0
~]# df -h
파일 시스템 크기 사용 가용 사용% 마운트위치
/dev/nvme0n1p4 118G 1.9G 110G 2% /
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
efivarfs 256K 69K 183K 28% /sys/firmware/efi/efivars
tmpfs 13G 16M 13G 1% /run
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
/dev/nvme0n1p2 974M 314M 593M 35% /boot
/dev/nvme0n1p5 118G 24K 112G 1% /var/lib/mysql
/dev/nvme0n1p3 671G 28K 637G 1% /host
/dev/nvme0n1p1 200M 8.4M 192M 5% /boot/efi
tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service
tmpfs 6.3G 4.0K 6.3G 1% /run/user/1000
~]# fdisk -l
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: SHPP41-1000GM
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9CECEA64-A50C-4156-8824-F4B3F08F0511
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 411647 409600 200M EFI System
/dev/nvme0n1p2 411648 2508799 2097152 1G Linux extended boot
/dev/nvme0n1p3 2508800 1433430015 1430921216 682.3G Linux filesystem
/dev/nvme0n1p4 1433430016 1685088255 251658240 120G Linux root (x86-64)
/dev/nvme0n1p5 1685088256 1936746495 251658240 120G Linux filesystem
/dev/nvme0n1p6 1936746496 1953523711 16777216 8G Linux swap
Bash4. 설치 옵션 최소 설치
5. 네트워크 본딩
6. 설치 시 wheel 그룹 유저 추가
7. 설치 완료 후 네트워크 상태 확인
~]# ip addr # 네트워크 인터페이스 정보 확인
~]# ip route # 라우팅 테이블 정보 확인
~]# ss # 소켓 상태 정보 확인 (netstat 대체)
~]# ss -antp | grep EST # 열린 서비스 등 확인
### ss 장점 ###
더 빠름: netstat보다 속도가 빠릅니다.
더 많은 정보 제공: 다양한 옵션을 통해 더 많은 정보를 얻을 수 있음.
netstat 대체: netstat 대신 사용을 권장
### ss 옵션 ###
모든 소켓 보기: ss -a (LISTEN, ESTABLISHED 등 모든 소켓 상태 표시)
TCP 소켓 보기: ss -t
UDP 소켓 보기: ss -u
LISTEN 상태의 소켓 보기: ss -l
프로세스 정보와 함께 보기: ss -p
숫자 형식으로 보기: ss -n (호스트명, 포트번호 대신 숫자 표시)
특정 포트 확인: ss -tulnp 'sport = :80' (80번 포트 확인)
### 예시 ###
ss -ant : 모든 TCP 소켓을 숫자 형식으로 표시
ss -tulnp : 모든 소켓 (TCP, UDP)을 프로세스 정보와 함께 표시
Bash8. fstrim.service, fstrim.timer 확인
fstrim 은 리눅스 시스템에서 사용하지 않는 디스크 블록을 스토리지 장치에 알려줌.
일반적으로 리눅스에서 파일을 삭제하면 파일의 데이터는 실제로 디스크에서 완전히 제거되지 않고, 단순히 파일 시스템에서 해당 파일의 레퍼런스 만 제거 – 이로 인해 스토리지 장치에서는 여전히 해당 공간을 사용 중으로 인식할 수 있음.
SSD는 데이터를 페이지 단위로 읽고 쓰지만, 삭제나 덮어쓰기는 블록 단위로 이루어짐.
페이지(page)
SSD에서 데이터를 저장할 수 있는 가장 작은 단위, 일반적으로 4KB
데이터를 읽고 쓰는 작업은 페이지 단위로 수행
SSD의 셀(cell)에 직접 데이터를 저장, 여러 페이지가 모여서 하나의 블록을 형성
블록(block)
여러 페이지가 모인 더 큰 데이터 저장 단위, 일반적으로 128KB~256KB 정도의 크기
데이터를 삭제할 때는 블록 단위로 삭제
하나의 블록은 여러 페이지(예: 32개~64개의 페이지)로 구성
BashSSD는 한 번 데이터를 썼던 블록을 덮어 쓰기 전에 초기화하는 과정이 필요하기 때문에 사용되지 않는 공간을 정리하지 않으면 성능 저하가 발생할 수 있음.
또한, Thin Provisioning을 사용하는 스토리지 시스템에서는 논리적으로 할당된 공간이 실제로 해제 되지 않기 때문에, 삭제된 파일의 공간이 시스템 상에서 즉시 회수 되지 않음.
이럴 때 fstrim 명령어를 사용하면 실제 사용하지 않는 공간을 스토리지 장치에 알려주어 물리적 공간이 해제.
~]# systemctl status fstrim.timer # 주기적인 수행확인 fstrim.service 트리거 수행
~]# systemctl status fstrim.service # 주기적인 수행확인
~]# systemctl list-timers fstrim.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2025-08-18 00:41:48 KST 2 days Mon 2025-08-11 12:52:10 KST 4 days ago fstrim.timer fstrim.service
# 다음 실행은 2일 후 8월 18일 00시 41분 48 초 수행 에정.
# 4일 전 (4 days ago) 8월 11일 12시 52분 10초에 수행됨.
Bash시간 동기화 확인 – 바이오스 시간 동기화
ssh 튜닝 – 로컬 내부 포트만 개방
방화벽 설정 – 인터페이스, 서비스 내부 용, 외부 용 구분
웹 서비스 기본 디렉토리 커스텀 위치 변경 – selinux 커스텀 컨텍스트 추가
웹 서비스와 삼바 서비스를 혼용 – context 는 httpd, boolean 은 삼바 설정