LFCS 스토리지 실습
공식 Storage 7개 competency를 기준으로 한 독립 연습 시나리오
이 과제는 실제 시험문항이 아니다. LFCS 공식 범위를 기준으로 독자적으로 만든 연습 시나리오이다. 모든 실습은 테스트/폐기 가능한 디스크 전제에서 수행한다. 운영 OS 디스크(
/,/home, 데이터 볼륨 등)는 명시적으로unmounted/백업 확인 없이 건드리지 않는다.
작성·검증 상태: AI가 문제·풀이 구조화를 보조했다. NFS·iSCSI는 연결된 fixture가 필요하고, 전체 storage 시나리오를 동일 VM에서 연속 검증한 상태는 아니다.
NFS와 iSCSI를 실제로 연결하려면 먼저 2노드 실습 서비스를 준비한다. 아래 주소·IQN은 그 fixture와 일치하며, 다른 lab을 사용하면 제공된 값으로 치환한다.
1) LVM: PV/VG/LV 계층 구성과 검증
문제
비운영용 디스크 1개를 대상으로 PV를 만들고 VG/LV를 구성한 뒤 파일시스템을 마운트하고 해제한다.
완료 조건
pvs,vgs,lvs에서 각 객체가 정상 인식된다.lsblk에서LVM장치가 단일 LV로 연결되어 보인다.mount후findmnt에서 기대 마운트 지점이 확인된다.
안전 주의
lsblk -f로 대상이 실운영 파티션이 아닌지 확인한다.pvcreate,vgcreate,lvcreate전에 장치명·크기·기존 파일시스템을 다시 확인하고, 삭제 명령(lvremove,vgremove,pvremove)은 실습 완료 후 별도 정리 단계에서만 수행한다.
풀이 예시
lsblk -f
pvcreate /dev/sdb
vgcreate vg_lab /dev/sdb
lvcreate -L 2G -n lv_data vg_lab
mkfs.xfs /dev/vg_lab/lv_data
mkdir -p /mnt/lvm-lab
mount /dev/vg_lab/lv_data /mnt/lvm-lab
mount | grep "/mnt/lvm-lab"
findmnt -n /mnt/lvm-lab
pvs
vgs
lvs -a -o +devices
umount /mnt/lvm-lab
완료 판단:
- pvcreate/vgcreate/lvcreate 출력에 오류 없음
- /dev/vg_lab/lv_data가 /mnt/lvm-lab에 마운트
- pvs/vgs/lvs가 동일 객체 계층 보여줌
2) VFS와 마운트/UUID/fstab
문제
UUID 기반으로 마운트 항목을 준비하고 mount -a로 부팅성 전환 검증 과정을 실습한다.
완료 조건
- 장치 UUID를 기준으로
/etc/fstab에 항목을 추가한다. mount -a실행 시 에러 없이 동작한다.findmnt에서 대상 경로가 의도대로 UUID 기준으로 마운트된다.
안전 주의
- fstab 수정 전 반드시 현재 마운트 상태를 기록한다.
- 부팅 중 장애를 막기 위해
nofail,x-systemd.automount등 필요 시 보수적으로 사용한다.
풀이 예시
lsblk -o NAME,UUID,FSTYPE,SIZE,MOUNTPOINT
blkid /dev/vg_lab/lv_data
mkdir -p /srv/storage-lab
# /etc/fstab 보강 (실습 전/후 백업 필수)
cp /etc/fstab /etc/fstab.bak.$(date +%s)
cp /etc/fstab /etc/fstab.new
echo "UUID=$(blkid -s UUID -o value /dev/vg_lab/lv_data) /srv/storage-lab xfs defaults 0 0" >> /etc/fstab.new
mv /etc/fstab.new /etc/fstab
umount /mnt/lvm-lab 2>/dev/null || true
mount -a
findmnt -n /srv/storage-lab
완료 판단:
- blkid UUID와 fstab UUID가 일치
- mount -a에서 오류 없음
- findmnt에서 의도 마운트 경로 확인
3) 파일시스템: ext4/XFS 실무 차이 검증
문제
VG의 남은 공간에 ext4와 XFS용 512MiB LV를 각각 만든 뒤, 읽기 전용 점검·크기 확인·기본 메타데이터 확인 과정을 구분해 수행한다.
완료 조건
- ext4와 XFS 각각의 장치/타입이 구분되어 확인된다.
tune2fs와xfs_info결과를 통해 현재 타입/옵션 차이를 기술할 수 있다.- 실습 볼륨에서
fsck계열 점검을 읽기 전용으로 안전하게 수행한다.
안전 주의
- mounted 상태에서 강제 복구를 수행하지 않는다.
- XFS와 ext4를 섞어 적용하는 명령을 실수로 실행하지 않는다.
풀이 예시
lvcreate -L 512M -n lv_ext4 vg_lab
lvcreate -L 512M -n lv_xfs vg_lab
mkfs.ext4 /dev/vg_lab/lv_ext4
mkfs.xfs /dev/vg_lab/lv_xfs
blkid /dev/vg_lab/lv_ext4 /dev/vg_lab/lv_xfs
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT \
/dev/vg_lab/lv_ext4 /dev/vg_lab/lv_xfs
tune2fs -l /dev/vg_lab/lv_ext4 | head -n 20
xfs_info /dev/vg_lab/lv_xfs
fsck.ext4 -n /dev/vg_lab/lv_ext4
xfs_repair -n /dev/vg_lab/lv_xfs
완료 판단:
- 타입별 메타데이터 항목 차이 점검
- 읽기 전용 검사 성공
- 장치 선택 규칙을 명시적으로 설명 가능
4) 원격 파일시스템 / 네트워크 블록(NFS+iSCSI) 실습
문제
NFS 공유 마운트 절차와 iSCSI 대상 확인 절차를 분리해 연습한다. iSCSI target은 iqn.2026-08.example.lab:storage.lun0, portal은 192.168.56.12:3260으로 준비되어 있다고 가정한다.
완료 조건
- NFS의 대상 서버 export 목록을 조회하고, 마운트 상태를 확인한다.
- iSCSI 디스커버리/로그인/세션 목록 확인 절차를 문서화한다.
- 각 절차에서 실패 시점의 증거를 로그로 남긴다.
안전 주의
- 실습 서버 정보는 테스트 네트워크에서만 사용한다.
- 라벨/방화벽/네트워크 경로를 사전 점검하지 않은 채 마운트 강제 요청을 하지 않는다.
풀이 예시
showmount -e 192.168.56.12
mkdir -p /mnt/nfs-lab
mount -t nfs -o vers=4 192.168.56.12:/srv/nfs/projects /mnt/nfs-lab
mount | grep '/mnt/nfs-lab'
umount /mnt/nfs-lab
systemctl status iscsid
iscsiadm -m discovery -t sendtargets -p 192.168.56.12:3260
iscsiadm -m node -T iqn.2026-08.example.lab:storage.lun0 -p 192.168.56.12:3260 --login
iscsiadm -m session
lsblk
완료 판단:
- NFS showmount/수동 마운트/해제 흐름 정합성 확보
- iSCSI discovery/session이 정상 조회
- 마운트 실패 시 점검 포인트 로그 확보
5) swap 구성 및 운영
문제
swap 파티션(LV)/swapfile 중 한 가지로 swap를 등록하고, 부팅 후 영구 적용 여부를 확인한다.
완료 조건
swapon --show에서 등록 항목이 보인다.free -h에서 swap 총량이 반영된다./etc/fstab기반 자동 활성화가 동작한다.
안전 주의
- 스왑 설정 후
swapon -s/free -h를 통해 오남용 여부를 먼저 확인한다. - 루트 파티션 공간이 임계치일 때는 swapfile을 과도하게 늘리지 않는다.
풀이 예시
lvcreate -L 1G -n lv_swap vg_lab
mkswap /dev/vg_lab/lv_swap
swapon /dev/vg_lab/lv_swap
swapon --show --bytes
free -h
cp /etc/fstab /etc/fstab.bak.$(date +%s)
echo "UUID=$(blkid -s UUID -o value /dev/vg_lab/lv_swap) none swap defaults 0 0" >> /etc/fstab
swapoff /dev/vg_lab/lv_swap
swapon -a
swapon --show
완료 판단:
- swapon --show에 lv_swap 등록
- reboot 없이도 free -h 변화 확인
- fstab 반영 후 `swapoff`·`swapon -a` 재적용에도 활성화
6) automount 자동 마운트 구성
문제
autofs를 사용해 공유 경로를 필요 시 자동 마운트하도록 설정한다.
완료 조건
- autofs 서비스가 활성화/실행된다.
/etc/auto.master또는 대체 맵 변경 후systemctl reload autofs가 반영된다.- 접근 시점에 경로가 마운트되고 비활성 시점에서 분리되는 동작을 확인한다.
안전 주의
- 민감 경로를 공용 맵에 넣지 않는다.
- 맵 파일에서 와일드카드 패턴/문자열 인코딩을 엄격히 확인한다.
풀이 예시
systemctl enable --now autofs
systemctl status autofs
grep -n 'auto.master.d' /etc/auto.master
install -d -m 755 /etc/auto.master.d
cat > /etc/auto.master.d/lfcs.autofs <<'EOF'
/net /etc/auto.lfcs --timeout=60
EOF
cat > /etc/auto.lfcs <<'EOF'
lab -fstype=nfs4,ro 192.168.56.12:/srv/nfs/projects
EOF
systemctl reload autofs
findmnt /net/lab || true
ls /net/lab
findmnt /net/lab
# 60초 이상 사용하지 않은 뒤 findmnt /net/lab로 자동 해제 확인
/etc/auto.master에 auto.master.d include가 없다면 원본을 백업하고 /net /etc/auto.lfcs --timeout=60 항목을 기존 master에 추가한다. 파일 전체를 덮어쓰지 않는다.
완료 판단:
- autofs 서비스 active
- auto.master.d include와 전용 맵 파일 구문 반영
- 접근 시점에 경로가 자동 마운트/해제되는 동작 관측
7) storage 성능·용량·inode/I/O 분석
문제
디스크 병목의 원인을 용량/ inode / I/O 지표 / 프로세스 사용량으로 분리해 판별한다.
완료 조건
df -hT와df -i로 block/inode 상태를 분리 기록한다.iostat -xz로 대상 디바이스 지연/활용률/처리량을 확인한다.pidstat -d또는lsof +L1로 고부하 프로세스 또는 삭제된 열린 파일 후보를 확인한다.
안전 주의
- 분석 직후 강제 캐시 삭제나 대량 파일 삭제를 하지 않는다.
df/du출력이 불일치해도 즉시 조치하지 말고 마운트 경계부터 확인한다.
풀이 예시
date
hostname
df -hT / /var /srv/storage-lab
df -i / /var /srv/storage-lab
findmnt -o TARGET,SOURCE,FSTYPE /srv/storage-lab
du -xhd1 /srv/storage-lab | sort -h | tail -n 10
iostat -xz 1 5
vmstat 1 5
pidstat -d 1 5
lsof +L1
완료 판단:
- 블록 부족/ inode 부족 구분
- await/util 조합으로 I/O 병목 근거 제시
- 프로세스별 사용량과 삭제 파일 잔존 여부를 함께 제시
공통 안전 규칙
- 실습은 모두 임시 디스크/볼륨에서만 수행하고, OS 디스크는 백업·마운트 확인 후 건드린다.
- 각 과제는 시작 전에
date,hostname,lsblk, 대상 명령 출력 1회 이상 캡처한다. - 실패한 명령은 즉시 재실행하지 말고 에러 텍스트를 분석한 뒤 다음 단계로 넘어간다.