Linux

From HPCWIKI
Revision as of 11:24, 17 July 2026 by Clara (talk | contribs) (A-0: Linux page — --- (수평선) 제거하여 깔끔하게 정리)
Jump to navigation Jump to search

Linux

Template:Status

Template:TOC

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


Related Pages

Knowledge Graph

Related

Linux Kernel TuningsystemdLVMiptablesUbuntufstabLinux KernelLinux File System TypesLinux ProcessLinux file permission