Linux: Difference between revisions
(A-0: Linux page improvement — HPCMATE 특화 내용 추가, Best Practices/Configuration/Examples 보강) |
(A-0: Linux page — --- (수평선) 제거하여 깔끔하게 정리) |
||
| Line 20: | Line 20: | ||
* 언제 사용하는가? — HPCMATE 서버 초기 설정, 성능 튜닝, 문제 해결, 모니터링 | * 언제 사용하는가? — HPCMATE 서버 초기 설정, 성능 튜닝, 문제 해결, 모니터링 | ||
== Purpose == | == Purpose == | ||
| Line 30: | Line 30: | ||
* Non-goals: 특정 배포판(Distribution)별 상세 설정은 하위 문서에서 다룸 | * Non-goals: 특정 배포판(Distribution)별 상세 설정은 하위 문서에서 다룸 | ||
== Key Concepts == | == Key Concepts == | ||
| Line 80: | Line 80: | ||
|} | |} | ||
== Architecture == | == Architecture == | ||
| Line 97: | Line 97: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Workflow == | == Workflow == | ||
| Line 131: | Line 131: | ||
|} | |} | ||
== Detailed Explanation == | == Detailed Explanation == | ||
| Line 175: | Line 175: | ||
journalctl은 systemd 시스템 로깅 데몬인 journald의 명령줄 인터페이스입니다. 서비스 로그를 실시간으로 모니터링하고, 에러를 분석하는 데 사용됩니다. | journalctl은 systemd 시스템 로깅 데몬인 journald의 명령줄 인터페이스입니다. 서비스 로그를 실시간으로 모니터링하고, 에러를 분석하는 데 사용됩니다. | ||
== Configuration == | == Configuration == | ||
| Line 209: | Line 209: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Examples == | == Examples == | ||
| Line 253: | Line 253: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Best Practices == | == Best Practices == | ||
| Line 269: | Line 269: | ||
* 정기 백업: rsync 또는 tar로 설정 파일 백업 | * 정기 백업: rsync 또는 tar로 설정 파일 백업 | ||
== Limitations == | == Limitations == | ||
| Line 278: | Line 278: | ||
* Ubuntu LTS 버전은 5년 지원 (Extended Security Maintenance 별도) | * Ubuntu LTS 버전은 5년 지원 (Extended Security Maintenance 별도) | ||
== References == | == References == | ||
| Line 287: | Line 287: | ||
* https://www.freedesktop.org/wiki/Software/systemd/ | * https://www.freedesktop.org/wiki/Software/systemd/ | ||
== Related Pages == | == Related Pages == | ||
| Line 302: | Line 302: | ||
* [[Setup logwatch on Ubuntu]] | * [[Setup logwatch on Ubuntu]] | ||
[[Category:Linux]] | [[Category:Linux]] | ||
Revision as of 11:24, 17 July 2026
Linux
Overview
Linux는 HPCMATE 서버의 기반 운영체제로, Ubuntu Server 기반의 안정적이고 고성능인 리눅스 환경입니다. AI/ML 워크로드, HPC 클러스터, 데이터센터 환경에 최적화된 커널 튜닝과 시스템 설정을 제공합니다.
Summary
- 무엇인가? — HPCMATE 서버의 기반 OS (Ubuntu Server 22.04/24.04 LTS 기반)
- 왜 필요한가? — AI/ML 워크로드 안정 실행, HPC 클러스터 관리, 수냉식 서버 제어
- 언제 사용하는가? — HPCMATE 서버 초기 설정, 성능 튜닝, 문제 해결, 모니터링
Purpose
이 문서가 존재하는 이유
- Goal: HPCMATE 서버 Linux 환경의 설정, 관리, 최적화를 한 곳에서 제공
- Scope: Ubuntu Server 기반 시스템 관리, 커널 튜닝, 서비스 설정, 모니터링, 보안
- Non-goals: 특정 배포판(Distribution)별 상세 설정은 하위 문서에서 다룸
Key Concepts
| Concept | Description | Related |
|---|---|---|
| Kernel | Linux의 핵심 — 하드웨어 추상화 및 자원 관리 (HPCMATE 서버용 커널 튜닝) | Linux Kernel Tuning |
| File System | 데이터 저장 및 조직화 구조 (ext4, XFS, ZFS 등) | Linux File System Types |
| Process | 실행 중인 프로그램 인스턴스 (systemd, cron 등 관리) | Linux Process |
| Permission | 파일/디렉토리 접근 제어 (rwx, ACL, SELinux) | Linux file permission |
| Network | 네트워킹 및 방화벽 (iptables, nftables) | Linux iptables |
| Sysctl | 커널 파라미터 런타임 조정 (네트워크, 메모리, 프로세스) | Linux kernel parameter |
| Package Manager | 소프트웨어 설치/관리 도구 (apt, yum/dnf) | Linux package manager |
| Signal | 프로세스 간 이벤트 알림 메커니즘 (SIGTERM, SIGKILL, SIGINT) | Linux signal |
| systemd | 시스템 및 서비스 관리자 (부팅, 서비스 시작/정지) | Systemd service and timer |
| journalctl | 시스템 로그 관리 (서비스 로그, 에러 확인) | Setup logwatch on Ubuntu |
Architecture
Linux 시스템은 다음과 같은 계층으로 구성됩니다:
graph TD
A[Hardware - CPU, GPU, RAM, Storage] --> B[Kernel - 커널, 드라이버]
B --> C[System Libraries - glibc, OpenSSL]
C --> D[System Utilities - systemd, sshd, nginx]
D --> E[Applications - AI/ML, HPC, Database]
B --> F[File System - ext4, XFS, ZFS]
B --> G[Process Manager - systemd, cron]
B --> H[Network Stack - TCP/IP, iptables]
Workflow
| Stage | Input | Output |
|---|---|---|
| Boot | Kernel image + initramfs | Running OS (Ubuntu Server) |
| Service Start | systemd unit file | Running process (sshd, nginx) |
| Package Install | .deb package (apt) | Installed software |
| Config Change | sysctl parameter | Runtime kernel tuning |
| Log Monitor | journalctl command | Service logs, error analysis |
| Backup | rsync/tar command | Configuration backup |
Detailed Explanation
Kernel
Linux 커널은 하드웨어와 소프트웨어 사이의 중재자입니다. 메모리 관리, 프로세스 스케줄링, 디바이스 드라이버, 네트워킹 스택을 담당합니다. HPCMATE 서버에서는 AI/ML 워크로드에 최적화된 커널 파라미터를 적용합니다.
File System
Linux는 다양한 파일 시스템 유형을 지원합니다 (ext4, XFS, Btrfs, ZFS 등). 각 파일 시스템은 특정 사용 사례에 최적화되어 있습니다. HPCMATE 서버에서는 데이터 무결성과 성능을 위해 ext4 또는 XFS를 권장합니다.
Process Management
Linux는 프로세스를 계층적으로 관리합니다. 각 프로세스는 고유한 PID를 가지며, 부모-자식 관계로 조직됩니다. HPCMATE 서버에서는 systemd를 통해 서비스를 관리합니다.
File Permissions
Linux 파일 권한은 소유자(owner), 그룹(group), 기타(others) 각각에 대해 읽기(r), 쓰기(w), 실행(x) 권한으로 구성됩니다. 민감한 파일은 600 권한, 실행 파일은 755 권한을 권장합니다.
Networking (iptables)
iptables는 Linux의 기본 방화벽 도구로, 패킷 필터링, NAT, 포트 포워딩을 지원합니다. HPCMATE 서버에서는 SSH(22), HTTP(80), HTTPS(443) 포트만 개방합니다.
Kernel Parameters (sysctl)
sysctl를 통해 런타임에 커널 파라미터를 조정할 수 있습니다. 재부팅 없이 네트워크, 메모리, 프로세스 관련 설정을 변경할 수 있습니다. HPCMATE 서버 특화 튜닝이 적용되어 있습니다.
Package Management
Debian/Ubuntu 계열은 `apt`, RHEL/CentOS 계열은 `yum`/`dnf`를 사용합니다. HPCMATE 서버는 Ubuntu Server LTS 버전을 기본으로 사용합니다.
Signals
Linux 시그널은 프로세스 간 이벤트 알림 메커니즘입니다 (SIGTERM, SIGKILL, SIGINT 등). 서비스 재시작, 프로세스 종료 시 사용됩니다.
systemd
systemd는 Linux의 초기 시스템 및 서비스 관리자입니다. 부팅 시 서비스를 시작하고, 서비스 상태를 모니터링하며, 로그를 관리합니다. HPCMATE 서버의 모든 서비스는 systemd로 관리됩니다.
journalctl
journalctl은 systemd 시스템 로깅 데몬인 journald의 명령줄 인터페이스입니다. 서비스 로그를 실시간으로 모니터링하고, 에러를 분석하는 데 사용됩니다.
Configuration
# === HPCMATE 서버 특화 sysctl 설정 ===
# 1. 현재 설정 확인
sysctl vm.swappiness net.core.somaxconn net.ipv4.tcp_tw_reuse
# 2. HPCMATE 최적화 설정 적용
cat << 'EOF' | sudo tee /etc/sysctl.d/99-hpcmate.conf
# 메모리 관리 — 스왑 최소화 (AI/ML 워크로드 최적화)
vm.swappiness=10
vm.min_free_kbytes=65536
# 네트워크 성능 — 커넥션 확장
net.core.somaxconn=65535
net.ipv4.tcp_max_syn_backlog=65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=15
# 파일 설명자 제한 증가
fs.file-max=2097152
fs.nr_open=2097152
EOF
# 3. 설정 적용
sudo sysctl --system
# 4. 변경 확인
sysctl -p /etc/sysctl.d/99-hpcmate.conf
Examples
Example 1: 시스템 상태 확인
uname -a # 커널 버전
hostnamectl # 시스템 정보
df -h # 디스크 사용량
free -h # 메모리 사용량
nvidia-smi # GPU 상태 (HPCMATE 서버)
Example 2: 서비스 관리
systemctl status sshd # SSH 상태
systemctl enable --now sshd # SSH 자동 시작
systemctl list-units --type=service --state=running # 실행 중인 서비스
Example 3: 로그 확인
journalctl -u sshd -n 50 # SSH 로그 최근 50줄
journalctl -p err --since "1 hour ago" # 최근 1시간 에러
Example 4: 패키지 관리 (Ubuntu)
sudo apt update && sudo apt upgrade -y # 시스템 업데이트
sudo apt install htop net-tools jq # 필수 도구 설치
Example 5: 파일 권한 설정
sudo chmod 755 /opt/hpcmate/scripts/ # 실행 파일
sudo chmod 600 /etc/shadow # 민감 파일 보호
sudo chown -R hpcmate:hpcmate /opt/hpcmate # 소유자 변경
Best Practices
- Ubuntu LTS 버전 사용 (22.04/24.04) — 안정성 보장
- apt update && apt upgrade 주기적으로 실행 (주 1회 권장)
- 불필요한 systemd 서비스 비활성화 (systemctl disable)
- 최소 권한 원칙: sudo 접근 최소화, SSH 키 기반 인증 사용
- sysctl 변경 전 백업: cp /etc/sysctl.conf /etc/sysctl.conf.bak
- HPCMATE 서버 특화 튜닝:
- vm.swappiness=10 (메모리 스왑 최소화) - net.core.somaxconn=65535 (네트워크 커넥션 확장) - net.ipv4.tcp_tw_reuse=1 (TCP 타임웨이스트 재사용)
- journalctl로 로그 모니터링: journalctl -u <service> -f
- 정기 백업: rsync 또는 tar로 설정 파일 백업
Limitations
- 특정 하드웨어에 대한 드라이버 지원 제한
- 실시간(Real-time) 커널 별도 설치 필요
- GUI 환경 설정 복잡성
- Ubuntu LTS 버전은 5년 지원 (Extended Security Maintenance 별도)
References
- https://ubuntu.com/server
- https://www.kernel.org/
- https://wiki.ubuntu.com/
- https://www.freedesktop.org/wiki/Software/systemd/
Related Pages
- Linux File System Types
- Linux Kernel Tuning
- Linux Process
- Linux file permission
- Linux iptables
- Linux kernel parameter
- Linux package manager
- Linux signal
- Systemd service and timer
- Setup logwatch on Ubuntu
Knowledge Graph
Related
→ Linux Kernel Tuning → systemd → LVM → iptables → Ubuntu → fstab → Linux Kernel → Linux File System Types → Linux Process → Linux file permission