Partition
1️⃣ 디스크 파티셔닝: fdisk
, parted
개념
-
파티셔닝: 하나의 물리 디스크를 논리적 단위로 나누어 OS와 데이터를 분리.
-
MBR vs GPT
- MBR: 최대 2TB, Primary 4개 제한
- GPT: 9ZB까지 지원, Primary 제한 없음, EFI 부트 지원
아키텍처 이미지
[Physical Disk /dev/sdb]
┌─────────────┐
│ Partition 1 │ -> /boot
├─────────────┤
│ Partition 2 │ -> /
├─────────────┤
│ Partition 3 │ -> /home
└─────────────┘
명령어 예시
# 파티션 확인
sudo fdisk -l
# 디스크 파티셔닝 (fdisk)
sudo fdisk /dev/sdb
# parted로 GPT 파티션 생성
sudo parted /dev/sdb mklabel gpt
sudo parted -a opt /dev/sdb mkpart primary ext4 0% 50%
sudo parted -a opt /dev/sdb mkpart primary ext4 50% 100%
실습 시나리오
- Ubuntu 22 VM에 2개의 추가 디스크
/dev/sdb
,/dev/sdc
연결 fdisk
로 각각 2개의 파티션 생성parted
로 GPT 라벨 적용 및 파티션 생성lsblk
로 구조 확인
2️⃣ LVM (Logical Volume Manager)
개념
- PV (Physical Volume) → VG (Volume Group) → LV (Logical Volume) 구조
- 장점: 디스크 추가, 확장/축소 유연
아키텍처 이미지
[Physical Disks: /dev/sdb, /dev/sdc]
│
▼
[Physical Volumes: PV1, PV2]
│
▼
[Volume Group: vg_data]
│
├─────────► [Logical Volume: lv_root]
├─────────► [Logical Volume: lv_home]
└─────────► [Logical Volume: lv_var]
명령어 예시
# PV 생성
sudo pvcreate /dev/sdb /dev/sdc
# VG 생성
sudo vgcreate vg_data /dev/sdb /dev/sdc
# LV 생성
sudo lvcreate -L 20G -n lv_root vg_data
sudo lvcreate -L 10G -n lv_home vg_data
# 파일시스템 생성
sudo mkfs.ext4 /dev/vg_data/lv_root
sudo mkfs.xfs /dev/vg_data/lv_home
# 마운트
sudo mkdir /mnt/root /mnt/home
sudo mount /dev/vg_data/lv_root /mnt/root
sudo mount /dev/vg_data/lv_home /mnt/home
실습 시나리오
- 위에서 만든 파티션을 PV로 초기화
- VG 생성 후 LV 생성
- 각각 마운트하여 읽기/쓰기 테스트
- LV 확장/축소 실습
sudo lvextend -L +5G /dev/vg_data/lv_home
sudo resize2fs /dev/vg_data/lv_home
3️⃣ RAID (mdadm
)
RAID 종류
RAID | 설명 | 장점 | 단점 |
---|---|---|---|
0 | 스트라이핑 | 속도 증가 | 데이터 보호 없음 |
1 | 미러링 | 데이터 안전 | 용량 반감 |
5 | 스트라이프 + 패리티 | 안전 + 속도 | 최소 3개 디스크 필요 |
아키텍처 이미지
RAID 1 (미러링)
[Disk1] ┐
│→ /dev/md0 → /mnt/raid
[Disk2] ┘
명령어 예시
# RAID 1 생성
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# 상태 확인
cat /proc/mdstat
# 파일시스템 생성 및 마운트
sudo mkfs.ext4 /dev/md0
sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid
실습 시나리오
- 2~3개의 추가 디스크 준비
- RAID0, RAID1, RAID5 각각 생성 후 테스트
mdadm --detail /dev/mdX
로 상태 확인
4️⃣ 파일시스템 비교
FS | 장점 | 단점 | 실무 사용 사례 |
---|---|---|---|
ext4 | 안정적, 널리 사용 | 일부 최신 기능 부족 | Ubuntu, 일반 서버 |
xfs | 대용량 파일 효율적, 저널링 | 작은 파일 성능 낮음 | 로그, 빅데이터 |
zfs | 스냅샷, 압축, RAID-Z | 메모리 사용량 많음 | 스토리지 서버, 백업 |
# 파일시스템 생성 예시
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.xfs /dev/sdb1
sudo zpool create zp1 /dev/sdb
5️⃣ fstab & mount 옵션
주요 옵션
옵션 | 설명 |
---|---|
noexec | 실행 금지 |
nosuid | setuid/setgid 금지 |
nodev | 특수 파일 장치 접근 금지 |
defaults | 기본값 (rw,suid,dev,exec,auto,nouser,async) |
예시
# /etc/fstab
/dev/vg_data/lv_home /mnt/home ext4 defaults,noexec 0 2
# 마운트
sudo mount -a
실습 시나리오
- 새 LV 생성 후
/mnt/home
마운트 noexec
,nosuid
,nodev
옵션 적용- 스크립트 실행 테스트 → 실패 확인
- 옵션 제거 후 재실행 → 성공 확인
✅ 종합 실습 시나리오 (Ubuntu 22)
- VM 생성: Ubuntu 22 LTS, 2개의 추가 디스크
/dev/sdb
,/dev/sdc
fdisk
/parted
로 파티션 생성- PV → VG → LV 구조로 LVM 구성
- RAID1 또는 RAID5 생성
- ext4, xfs 파일시스템 생성 및 마운트
/etc/fstab
에 mount 옵션 적용 후 테스트- LV 확장 및 파일시스템 확장 실습
마지막 수정일자