본문으로 바로가기

디스크 관리 및 파일시스템

category MLOps/Linux 2022. 1. 25. 16:21

1. 디스크 파티션 (Disk Partition)

- 디스크 내의 섹터 (디스크 블록으로 플래터에서 가장 작은 단위)들을 일정 범위의 구역으로 나누어 공간 구획

 

1) MBR (Master Boot Record) Partitioning

- BIOS 펌웨어가 탑재된 시스템

- Primary Partition 4개 지원

- 최대 2TB 지원

 

2) GPT (GUID Partition Table) Partitioning

- EFI / UEFI 펌웨어가 탑재된 시스템

- 128개의 Partition 지원

- 최대 8ZB 지원

BIOS (Basic Input Output System)
- 시스템 보드의 칩에 포함된 아주 작은 코드
- 컴퓨터 시작할 때 하드웨어와 운영 체제 이의 펌웨어 인터페이스 ex) cpu와 주변 장치 활성화 여부 등

UEFI (Unified Extensible Firmware Interface)
- BIOS와 유사하지만 2TB 크기 이상의 디스크로 부팅 가능
- 네트워크 연결이 가능한 GUI 보유
출처: https://support.lenovo.com/us/ko/videos/vid100790

2. 리눅스 시스템 스토리지 장치명

- 하드웨어 장치는 /dev 디렉토리 내에 파일로 생성 -> 생성된 장치 파일명 사용하여 파티셔닝 수행

인터페이스별 장치며 + 장치 번호 + [파티션번호(숫자)]

1) E-IDE 인터페이스 (현재는 sd로 통일)

- 'hd' 장치명 사용 ex) /dev/hda, /dev/hdb

- 파티션 예시 ex) /dev/hda1, /dev/hd2

 

2) SATA/SCSI/SA-SCSI

- 'sd' 장치명 사용 ex) /dev/sda, /dev/sdb


3. 파일 시스템

- 파티션 구성 후 파일 시스템을 생성해야함

- 파일시스템이 생성된 파티션에 디렉토리 형태로 접근할 수 있도록 연결하는 작업 수행 (mount)

- 구조화된 일련의 정보를 구성하는 파일과 디렉토리의 집합 (디스크에 데이터를 논리적으로 저장하고 관리하는 방식)

 

1) 디스크 기반 파일 시스템 (Disk-based File System)

- MINIX: Minix에서 사용하는 파일 시스템

- EXT (ext2, ext3, ext4): 리눅스 파일 시스템으로 리눅스 운영체제의 표준 파일시스템

- XFS: RHEL7, CentOS, Oracle Linux 등에서 기본 파일시스템으로 사용하는 파일시스템

- FAT, VFAT: DOS, Windows 운영체제에서 사용하는 파일시스템

- NTFS: Windows NT 계열에서 사용하는 파일시스템

- ISO9660: CD-R에서 사용되는 파일시스템

- UDFS: UDF 규격의 파일시스템

 

2) 분산 파일시스템 (Distributed File System)

- NFS (Network Filesystem): Unix/Linux 시스템에서 파일을 공유하기 위한 파일시스템

- SMB (Server Message Block): Windows 시스템에서 파일을 공유하기 위한 파일시스템

 

3) Pseudo 파일시스템

- swapfs, tmpfs, fdfs, procfs, devfs


4. 디스크 장착 후 사용하기까지 과정

1) fdisk (fixed disk) - Partitioning

- 설치한 디스크를 장착한다는 의미

xvdb: amazon cloud

# 파티션 구성
fdisk /dev/<disk-name>

# 정보 확인
p

# 파티션 생성
# primary parition: MBR은 4개까지 가능
# extended partition: 4개만 나눌 수 있는 파티션을 추가로 나눔 가능
# logical parition: extended partition을 원하는 만큼 나눌 수 있으며 번호는 5번부터 배정됨.
n

 

2) mkfs (make file system)

# mkfs 명령어
mkfs -t [filesystem-type] <partition>
# or
mkfs.[filesystem-type] <partition>

# 파일시스템 초기화
mkfs -t <filesystem-type> <partition>

 

3-1) mount (일회성)

# mount
mount [option] {partition|UUID} <mount-point>

# 예시
mount /dev/sdb1 myworkspace/

# mount 해제
unmount <parition or mounted directory>

 

3-2) /etc/fstab (영구)

- mount 명령을 사용해 파일시스템을 마운트하면 시스템이 부팅될 때 마운트하지 않음

# /etc/fstab
vi /etc/fstab

# 순서
[disk name or disk UUID] [mount point] [filesystem] [mount option] [dump 유무][fsck검사순서]

DEVICE     MOUNT_POINT	FSTYPE	MOUNT_OPTION	DUMP	FSCK
/dev/sdb1   /mnt/data	ext3	defaults		0	0

# UUID로 사용하는 것이 권장됨
# UUID 확인
blkid <disk partition>

5. Swap memory

1) 가상 메모리

- RAM의 용량 제약을 해결하기 위해 운영체제가 사용

- Swap은 디스크 장치에 생성되는 영역

- CPU가 데이터에 접근하기 위해 프로세스가 반드시 물리 메모리 영역에 존재해야 함

   -> paging을 통해 물리메모리와 스왑의 데이터 교환이 일어남 (디스크 성능 저하로 인해 최소한으로 둠)

 

2) 스왑 영역 구성

# 메모리 용량 확인
free -h

# 스왑 영역 확인
swapon -s

# 스왑 파티션 생성
fdisk <DEVICE>

# 생성 후 스왑 장치용 파티션으로 변경
t

# 커널에 파티션 테이블 변경 사항 적용
partprobe <DEVICE>

# 스왑 영역으로 파일시스템 초기화
mkswap <partition device>

# 스왑 영역을 시스템에 연결 (swapon 명령어; 1회성)
swapon <partition device>

# 스왑 영역 확인
swapon -s

# 스왑 영역 연결 해제
swapoff <partition device>

# 스왑 영역을 영구적으로 시스템에 연결
vim /etc/fstab

DEVICE     MOUNT_POINT	FSTYPE	MOUNT_OPTION	DUMP	FSCK
/dev/sdc1   swap		swap	defaults		0	0

'MLOps > Linux' 카테고리의 다른 글

Systemd  (0) 2022.01.26
논리 볼륨(Logical Volume) 관리  (0) 2022.01.26
작업 스케줄링  (0) 2022.01.25
고급 권한 관리  (0) 2022.01.24
사용자 및 그룹 관리  (0) 2022.01.24