CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
리눅스마스터 1급 · 1급리눅스마스터 1급
  • Week 1
    • 1.운영체제와 리눅스: 커널이 하는 일
    • 2.자유 소프트웨어와 배포판: 라이선스가 만든 생태계
    • 3.설치와 부팅: 전원을 켜는 순간부터
    • 4.파일시스템 구조와 파일의 종류: 모든 것은 파일이다
    • 5.Week 1 종합 복습: 개념을 꿰뚫는 시간
  • Week 2
  • Week 3
  • Week 4
  • Week 5
    • 1.파일시스템 종류와 구조: ext2/3/4 · xfs · btrfs · 저널링 · inode와 블록
    • 2.파티션과 마운트: fdisk · gdisk · parted · mkfs · mount/umount · /etc/fstab 6필드
    • 3.LVM과 스왑: PV·VG·LV 계층 · pvcreate부터 lvextend·resize2fs · mkswap·swapon
    • 4.RAID와 쿼터, 디스크 점검: RAID 0/1/5/6/10 · mdadm · quota/edquota · fsck/df/du/lsblk/blkid
    • 5.Week 5 종합 복습: 파일시스템·파티션·LVM·스왑·RAID·쿼터 총정리와 실전 연습
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
  • Week 13
  • Week 14
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 1급/Week 5/Day 4

기준: 리눅스마스터 1급 출제 기준·오류 제보

리눅스마스터 1급· AssociateWeek 5 · Day 4읽기 약 10분
핵심 정리
  • RAID는 레벨별 표가 전부다 — 최소 디스크 0·1은 2장, 5는 3장, 6·10은 4장.
  • 패리티는 5·6만 쓴다. RAID 1은 단순 미러라 패리티가 없다. 6은 이중 패리티라 2장까지 견딘다.
  • 소프트웨어 RAID는 mdadm으로 만들고 상태는 /proc/mdstat로 본다(U=정상, _=결함).
  • 쿼터 순서: fstab 옵션 → remount → quotacheck → quotaon → edquota. soft는 유예·경고, hard는 즉시 차단.
  • 점검 도구는 역할로 나눈다 — df(FS 용량) · du(경로 용량) · lsblk(장치 트리) · blkid(UUID) · fsck(무결성, 언마운트 필수).

Day 4 - RAID와 쿼터, 디스크 점검: RAID 0/1/5/6/10 · mdadm · quota/edquota · fsck/df/du/lsblk/blkid

RAID 레벨별 특성 — 패리티·최소 디스크·내결함성

현실의 두 위협이 남아 있다. 디스크는 언젠가 고장 나고(단일 장애점), 사용자는 디스크를 무한정 점유할 수 있다. RAID가 앞의 문제를, 쿼터가 뒤의 문제를 푼다.

  • RAID(Redundant Array of Independent Disks)는 여러 디스크를 묶어 성능·안정성·용량 효율을 절충한다.
레벨방식최소 디스크내결함성(허용 고장)용량 효율특징
0스트라이핑20개 (하나 죽으면 전멸)100%가장 빠름, 안전성 없음
1미러링21개50%똑같이 복제, 읽기 빠름
5스트라이핑+분산 패리티31개(N-1)/N패리티 1개분 손실
6스트라이핑+이중 패리티42개(N-2)/N패리티 2개분 손실
101+0 (미러+스트라이프)4쌍당 1개50%빠르고 안전, 비쌈

패리티(parity) 는 "데이터의 XOR 합"이다. 데이터 블록들을 XOR한 값을 패리티로 저장해 두면, 디스크 한 장이 죽었을 때 나머지 데이터와 패리티를 다시 XOR해 잃은 블록을 복원할 수 있다. RAID 5는 패리티를 모든 디스크에 분산 저장하고, RAID 6은 서로 다른 두 패리티를 둬서 두 장이 동시에 죽어도 복구한다. RAID 0과 1은 패리티를 쓰지 않는다.

RAID 5의 용량 효율은 (N-1)/N이다 — 디스크 3장이면 2장분 용량(67%), 패리티가 1장분을 차지한다. RAID 6은 (N-2)/N — 4장이면 2장분(50%). RAID 1과 10은 절반(50%)이 복제본으로 소모된다. RAID 0은 100%지만 안전성이 0이라 단독으로는 데이터 보관용으로 절대 쓰지 않는다. "용량 효율 vs 안전성"의 트레이드오프가 레벨 선택의 본질이다.

⚠️ 함정: 최소 디스크 수가 함정이 되기 쉽다 — RAID 0·1은 2장, RAID 5는 3장, RAID 6·10은 4장. "RAID 5 최소 디스크"를 2로 착각하게 만드는 보기가 흔하다. 패리티 분산을 위해 최소 3장이 필요하다. 또 "RAID 1은 패리티를 쓴다" 같은 틀린 진술도 오답으로 쓰인다 — RAID 1은 단순 복제(미러)라 패리티가 없다.

RAID 10과 RAID 0+1은 다르다. RAID 10(1+0)은 "먼저 미러링한 쌍들을 스트라이핑"이고, RAID 0+1은 "먼저 스트라이프한 세트들을 미러링"이다. 장애 복구 시 RAID 10이 더 견고하다 — RAID 10은 각 미러 쌍에서 한 장씩 죽어도 살아남지만, RAID 0+1은 한 스트라이프 세트가 통째로 깨지면 위험하다. 실무에서 "RAID 10"이라 하면 보통 1+0을 가리킨다.

mdadm — 소프트웨어 RAID 구성

리눅스는 하드웨어 RAID 컨트롤러 없이도 mdadm으로 소프트웨어 RAID를 만든다. 결과 장치는 /dev/md0, /dev/md1 형태다.

# RAID 5 생성 (디스크 3장)
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
 
# 상태 확인
mdadm --detail /dev/md0        # 배열 상세 (상태, 디스크 역할)
cat /proc/mdstat               # 모든 md 배열 요약 + 동기화 진행률
 
# 디스크 고장 처리
mdadm /dev/md0 --fail /dev/sdb1     # 디스크를 고장(fault)으로 표시
mdadm /dev/md0 --remove /dev/sdb1   # 배열에서 제거
mdadm /dev/md0 --add /dev/sde1      # 새 디스크 추가 → 자동 재구축(rebuild)
 
# 설정 영구화
mdadm --detail --scan >> /etc/mdadm.conf   # 배열 정보 저장

--level로 RAID 레벨을, --raid-devices로 디스크 개수를 지정한다. 만든 RAID 장치(/dev/md0)는 일반 블록 장치처럼 mkfs.ext4 /dev/md0로 포맷하고 마운트해서 쓴다. 즉 RAID는 파일시스템 아래 계층이다. LVM과 함께 쓸 때는 보통 RAID 위에 LVM을 올린다(md → PV → VG → LV).

⚠️ 함정: /proc/mdstat는 RAID 상태를 보는 가장 빠른 창이다. 디스크 교체 후 재구축(rebuild)이 진행되면 여기에 진행률 막대와 [UU_] 같은 상태가 표시된다. U=정상, _=결함/재구축 중. "소프트웨어 RAID 상태 확인 파일은?" → /proc/mdstat가 정답.

# 직접 쳐보기 — RAID 관찰 (md 배열이 있을 때)
cat /proc/mdstat              # 배열 상태/동기화
mdadm --detail /dev/md0       # 상세
lsblk                         # 디스크-md 관계 트리

디스크 쿼터 — 사용자·그룹별 사용량 제한

  • 쿼터(quota) 는 사용자나 그룹이 쓸 수 있는 디스크 용량(블록)과 파일 수(inode)에 상한을 거는 메커니즘이다.
  • 공유 서버에서 한 사용자가 디스크를 독식하는 걸 막는다.
한계의미
soft limit초과해도 즉시 막지 않고 경고. 유예기간(grace period) 동안 허용
hard limit절대 상한. 이 이상은 쓰기 자체가 거부됨

쿼터 적용 흐름:

# 1) fstab에 쿼터 옵션 추가 후 재마운트
#    /dev/sdb1  /home  ext4  defaults,usrquota,grpquota  0  2
mount -o remount /home
 
# 2) 쿼터 DB 파일 생성(검사)
quotacheck -cugm /home         # -c 생성 -u 사용자 -g 그룹 -m 강제
 
# 3) 쿼터 활성화
quotaon /home                  # quotaoff로 비활성화
 
# 4) 사용자별 한계 편집 (에디터 열림)
edquota -u user1               # user1의 soft/hard 한계 편집
edquota -g group1             # 그룹 쿼터 편집
edquota -t                    # 유예기간(grace period) 설정
 
# 5) 확인
quota -u user1                # 특정 사용자 사용량/한계
repquota /home                # 파일시스템 전체 쿼터 보고서

쿼터를 쓰려면 먼저 fstab(또는 mount)에 usrquota/grpquota 옵션을 줘야 한다. 옵션 없이 quotaon만 하면 활성화되지 않는다. 그 다음 quotacheck로 쿼터 DB(aquota.user, aquota.group)를 만들고 quotaon으로 켠다. 순서: fstab옵션 → remount → quotacheck → quotaon → edquota. 이 순서가 시험에 나온다.

soft와 hard의 차이를 명확히. soft limit은 넘어도 유예기간(grace period) 동안은 쓰기가 되지만 경고가 뜨고, 유예기간이 지나면 soft가 hard처럼 작동해 차단된다. hard limit은 유예 없이 즉시 차단한다. "유예기간을 두고 경고만 하는 한계는?" → soft limit.

쿼터는 블록(용량) 한계와 inode(파일 개수) 한계를 따로 건다. edquota로 열면 blocks 칼럼과 inodes 칼럼이 각각 soft/hard로 나뉜다. 즉 "용량은 남아도 파일 개수 쿼터에 걸려" 더 못 만드는 상황도 가능하다. repquota -a로 모든 파일시스템의 쿼터 현황을 한 번에 본다.

디스크 점검 도구 — fsck · df · du · lsblk · blkid

저장 장치의 상태를 진단하는 핵심 도구 다섯을 "무엇을 보여주는가"로 구분한다.

도구보여주는 것단위/관점
df파일시스템별 전체/사용/여유 용량마운트된 FS 단위
du디렉터리·파일이 실제 차지하는 용량경로 단위
lsblk블록 장치 트리(디스크-파티션-마운트)장치 계층
blkid장치의 UUID·타입·라벨장치 식별
fsck파일시스템 무결성 검사·복구FS 일관성
# df — 파일시스템 용량
df -h                  # 사람이 읽는 단위(G/M)
df -i                  # inode 사용량
df -T                  # 파일시스템 타입까지
 
# du — 경로별 실제 사용량
du -sh /var/log        # 디렉터리 총합(summary)
du -h --max-depth=1 /  # 1단계 하위별 용량
du -ah /tmp | sort -rh | head   # 큰 것부터
 
# lsblk / blkid — 장치 식별
lsblk -f               # FSTYPE, UUID, 마운트포인트
blkid /dev/sdb1        # UUID와 TYPE
 
# fsck — 무결성 검사 (반드시 언마운트 상태에서!)
umount /dev/sdb1
fsck /dev/sdb1         # 검사 (대화형 복구)
fsck -y /dev/sdb1      # 모든 질문에 yes (자동 복구)
fsck -f /dev/sdb1      # 깨끗해 보여도 강제 검사

df와 du의 차이는 헷갈리기 쉽다. df는 파일시스템 메타데이터를 읽어 "FS 전체에 용량이 얼마나 남았나"를 빠르게 보고하고, du는 디렉터리를 직접 순회해 "이 경로가 실제 얼마를 차지하나"를 계산한다. 둘의 합계가 어긋날 때가 있는데(삭제됐지만 프로세스가 연 파일 등), 이 불일치 자체가 진단 단서다.

fsck는 반드시 언마운트(또는 읽기전용) 상태에서 돌려야 한다. 마운트된 채로 검사하면 검사 도중 파일시스템이 변해 오히려 손상시킬 수 있다. 루트 파일시스템은 평소 언마운트가 불가능하므로, 부팅 시점이나 복구 모드에서 검사한다(fstab 6번째 필드의 pass가 이 검사 순서). "마운트된 FS에 fsck 하면?" → 손상 위험.

fsck는 fsck.<타입>(예: fsck.ext4=e2fsck, fsck.xfs)을 호출하는 프론트엔드다. 흥미롭게도 xfs의 fsck.xfs는 아무것도 하지 않는다(즉시 정상 반환) — xfs는 마운트 시 저널 재생으로 일관성을 잡고, 실제 복구는 xfs_repair라는 별도 도구를 쓰기 때문이다. "xfs를 검사·복구하는 도구는?" → xfs_repair.

du로 큰 디렉터리를 찾을 때 du -ah /var | sort -rh | head -20 패턴을 실무에서 흔히 쓴다. 디스크가 가득 찼을 때(df로 확인) → 어디가 범인인지(du로 추적) → 정리하는 흐름은 운영자의 기본기다. 단, du는 디렉터리를 전부 순회하므로 대용량에서는 느릴 수 있다.

다음 Day 5는 Week 5 전체를 종합 복습하고 연습문제로 마무리한다.

📖 용어

  • RAID : 여러 디스크를 묶어 속도·안정성·용량 효율을 절충하는 구성.
  • 스트라이핑(RAID 0) : 데이터를 여러 디스크에 쪼개 분산. 가장 빠르지만 한 장이 죽으면 전멸한다.
  • 미러링(RAID 1) : 같은 데이터를 통째로 복제. 용량 효율은 50%지만 패리티 계산이 없다.
  • 패리티(parity) : 데이터 블록들의 XOR 합. 죽은 디스크의 내용을 되계산해 복원하는 근거다.
  • RAID 5 / RAID 6 : 분산 패리티로 1장까지 / 이중 패리티로 2장까지 고장을 견디는 구성.
  • RAID 10 vs 0+1 : 미러 쌍을 스트라이프한 것과, 스트라이프 세트를 미러한 것. 복구 견고성은 10이 낫다.
  • mdadm : 하드웨어 컨트롤러 없이 소프트웨어 RAID를 만드는 명령. 결과 장치는 /dev/md0.
  • /proc/mdstat : 소프트웨어 RAID 배열의 상태와 재구축 진행률을 보여주는 파일. U=정상, _=결함.
  • 재구축(rebuild) : 고장 디스크를 교체한 뒤 패리티·미러로 데이터를 다시 채우는 과정.
  • 쿼터(quota) : 사용자·그룹별로 디스크 용량과 파일 개수에 상한을 거는 기능.
  • soft limit / hard limit : 유예기간 동안 경고만 하는 한계와, 즉시 쓰기를 차단하는 절대 상한.
  • grace period : soft limit을 넘긴 뒤 아직 차단되지 않는 유예 기간. edquota -t로 설정한다.
  • quotacheck / quotaon : 쿼터 DB를 만드는 명령과 쿼터를 활성화하는 명령.
  • repquota : 파일시스템 전체의 쿼터 사용 현황 보고서를 출력하는 명령.
  • df vs du : 파일시스템 메타데이터로 전체 용량을 보는 것과, 경로를 순회해 실제 점유량을 세는 것.
  • fsck : 파일시스템 무결성을 검사·복구하는 프론트엔드. 반드시 언마운트 상태에서 돌린다.
  • xfs_repair : xfs 전용 복구 도구. fsck.xfs는 아무 일도 하지 않는다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

RAID 5를 구성하기 위한 최소 디스크 수와 허용 가능한 동시 고장 디스크 수로 옳은 것은?

문제 2

RAID 레벨에 대한 설명으로 옳지 않은 것은?

문제 3

소프트웨어 RAID 배열의 현재 상태와 동기화 진행률을 확인할 수 있는 것은?

문제 4

디스크 쿼터의 soft limit과 hard limit의 차이로 옳은 것은?

문제 5

df와 du 명령의 차이로 가장 정확한 것은?

문제 6

디스크 쿼터를 적용하기 위한 올바른 절차 순서는?

문제 7

ext4 파일시스템 /dev/sdb1을 fsck로 검사할 때 반드시 지켜야 할 사항으로 옳은 것은?

이전LVM과 스왑: PV·VG·LV 계층 · pvcreate부터 lvextend·resize2fs · mkswap·swaponWeek 5 · Day 3다음 Week 5 종합 복습: 파일시스템·파티션·LVM·스왑·RAID·쿼터 총정리와 실전 연습Week 5 · Day 5

참고 공식 자료

  • 리눅스마스터 1급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • RAID 레벨별 특성 — 패리티·최소 디스크·내결함성
  • mdadm — 소프트웨어 RAID 구성
  • 디스크 쿼터 — 사용자·그룹별 사용량 제한
  • 디스크 점검 도구 — fsck · df · du · lsblk · blkid
  • 용어
  • 연습 문제