Linux
디스크 관리
Linux 디스크 추가, LVM, RAID, 디스크 사용량 확인, 파일 시스템 복구 정리
1) 디스크 기반 파일 시스템
개요
- 파일과 디렉토리를 관리하려면 파일 시스템이 필요
- 초창기에는 Minix File System을 사용했으나 최근에는 ext라는 리눅스 고유 파일 시스템 사용
- 현재 ext4까지 제공되고 있으며 대용량 파일 시스템을 위한 XFS도 도입됨
종류
ext4
- 최대 1EB(1024 × 1024 TB)까지의 디스크 크기 제공
- 16TB까지의 파일 지원
- 디렉토리 개수는 64000개까지 가능
XFS
xfsprogs패키지를 설치해야 사용 가능- 최대 16EB까지 지원
리눅스에서 지원하는 파일 시스템
nfs: 원격 서버의 디스크를 연결할 때 사용ntfs: 윈도우 파일 시스템hfs: Mac 파일 시스템
특수한 용도의 파일 시스템
- swap: 가상 메모리 사용을 위한 파일 시스템
- tmpfs: 메모리에 임시 파일을 저장
- 시스템 재시작 시 내용 소멸
/tmp디렉토리가 대표적- 필요 시 swap 사용 가능
- ramfs: 디스크 대신 메모리를 저장 공간처럼 사용
- 임베디드 장치에서 사용
- tmpfs와 다른 점은 swap 사용 여부 (ramfs는 swap 사용 안 함)
- rootfs: 시스템 초기화 및 관리에 필요한 내용을 저장하는 루트 파일 시스템
- proc: 커널의 현재 상태를 나타내는 파일을 소유
- 실제 디스크에 저장되는 것이 아니고 메모리에 저장
/proc/cpuinfo
2) 리눅스에서 새로운 디스크 사용 방법
디스크 장착
- 물리적 디스크를 시스템에 장착
디스크 확인
sudo fdisk -l
- 디스크는
sd영문자형태로 이름 생성 →sda,sdb,sdc
파티션 생성
- 파티션: 데이터를 기록할 수 있는 논리적인 공간
sudo fdisk /dev/하드디스크이름
- 새로 만들기 →
n - 기존 파티션 삭제 →
d - 파티션 종류 선택 →
p- Primary(4개까지 가능)와 Extended
- 파티션 번호 → 1~4 사이
- First Sector: 시작 위치 (기본 2048부터)
- 하나의 물리적 디스크를 논리적으로 여러 개 생성 가능
- Last Sector: 기본값은 최대값 (사이즈나 섹터 번호로 설정)
- 마지막에
w를 입력해야 실제로 파티션 생성
포맷 및 파일 시스템 생성
sudo mke2fs -t ext4 /dev/sd디스크이름파티션번호
sudo mke2fs -t ext4 /dev/sdb1
마운트
sudo mount /dev/sd디스크이름파티션번호 마운트할디렉토리
- VirtualBox 같은 가상화 소프트웨어에서 디스크 크기를 늘린 경우 반드시 수행
3) LVM (Logical Volume Manager)
개요
- 리눅스의 저장 공간을 효율적이고 유연하게 관리하기 위한 커널의 한 부분
- 여러 개의 하드디스크를 한 개의 파티션으로 구성한 후 다시 필요에 따라 분할
- Volume이라는 개념을 도입해 저장 장치를 다룸
- 스토리지 확장/변경 시 유연하게 크기 변경 가능
- 기존 데이터의 이전이 필요 없음
기본 개념
| 개념 | 설명 |
|---|---|
| PV (Physical Volume) | 실제 하드디스크의 파티션 |
| VG (Volume Group) | 여러 개의 PV를 묶은 것 |
| LV (Logical Volume) | VG를 다시 적절한 크기의 파티션으로 분할한 것 |
| PE | PV가 가진 일정한 블록 |
| LE | LV가 가진 일정한 블록 |
과정
# 1. fdisk 명령으로 파일 시스템 생성
# 2. PV 생성
pvcreate
# 3. PV를 하나의 VG로 생성
vgcreate
# 4. VG 활성화
vgchange -a y
# 5. LV 생성
lvcreate
# 6. LV에 파일 시스템 생성
mke2fs
# 7. LV를 마운트해서 사용
mount
- 클라우드 환경의 저장소 제공 서비스에서 이 기능 사용
4) 디스크 사용량 확인
df (파일 시스템별 디스크 사용량)
- 형식:
df [옵션] [파일 시스템] - 옵션
a: 모든 파일 시스템 조회k: KB 단위m: MB 단위h: 알기 쉬운 단위t 파일시스템종류: 특정 파일 시스템 종류만 조회T: 파일 시스템 종류 출력
du (디렉토리나 사용자별 사용량)
- 형식:
du [옵션] [디렉토리] - 옵션 없이 사용 → 현재 디렉토리의 사용량 출력
- 옵션
-s 디렉토리: 해당 디렉토리의 사용량-h: 알기 쉬운 단위로 출력
5) 파일 시스템 검사 및 복구
fsck
- 형식:
fsck [옵션] [장치이름] - 옵션
f: 강제로 점검b: 백업 슈퍼블록 사용y: 모든 질문에 yes로 응답a: 문제 발생 시 자동 복구
e2fsck
- 디스크 검사 명령
badblocks
- 배드블록 검사 명령
6) RAID
개요
- RAID: Redundant Array of Independent Disks
- 여러 개의 하드 디스크를 하나의 하드 디스크처럼 사용하는 방식
- 비용 절감 + 신뢰성 향상 + 성능 향상 가능
방식
Hardware RAID
- 하드웨어 제조업체에서 여러 개의 하드 디스크를 연결한 장비를 만들어 공급
- 고가 → SA-SCSI 방식
- 중저가 → SATA 하드 디스크 이용
Software RAID
- 여러 개의 하드 디스크를 묶어 운영체제에서 지원
기대 효과
- 대용량의 단일 볼륨 사용 효과
- 디스크 I/O 병렬화로 성능 향상
- 데이터 복제로 안정성 향상
- 고가용성: 원하는 경우 언제든 사용 가능
RAID 레벨
| 레벨 | 설명 |
|---|---|
| Linear RAID | 여러 하드 디스크를 연결해 첫 번째부터 순차적으로 사용 |
| RAID 0 | 여러 하드 디스크를 연결해 병렬로 사용 (속도 가장 빠름), Stripping |
| RAID 1 | 2개의 하드 디스크에 동일한 내용 저장, 결함 허용 시스템, Mirroring |
| RAID 5 | 3개 이상의 하드디스크, 하나는 오류 검출용 디스크로 사용 |
| RAID 6 | 4개 이상의 하드디스크, 오류를 중첩해서 검출 |
댓글