LFCS 스토리지 단계별 실전

장치 식별부터 LVM, filesystem, fstab, 확장, swap, NFS와 autofs까지 안전하게 연습


실제 시험문항이 아니다. pvcreate, mkfs, mkswap은 기존 데이터를 파괴할 수 있다. 문제에서 지정한 빈 보조 디스크를 lsblk -f, findmnt, pvs로 확인한 뒤 실행한다.

작성·검증 상태: AI가 영문 task·힌트·풀이의 구조화를 보조했다. device 이름과 filesystem 기능은 실습 환경에서 재확인한다.

공통 계층

disk/partition → PV → VG → LV → filesystem → mount point → fstab
요구명령·파일
장치·filesystem 확인lsblk -f, blkid, findmnt
LVM 상태pvs, vgs, lvs
filesystem UUIDblkid /dev/VG/LV
영구 mount/etc/fstab
설정 검증findmnt --verify, mount -a

문제를 풀기 전 안전 규칙

  1. lsblk -f, findmnt, pvs 세 가지로 대상 장치가 비어 있는지 확인한다.
  2. 문제에서 지정하지 않은 OS disk에는 pvcreate, mkfs, mkswap을 실행하지 않는다.
  3. 현재 mount와 재부팅 후 mount를 별개로 검증한다.
  4. LVM 크기와 filesystem 크기를 모두 확인한다.

명령 이름을 모르면 man lvm, apropos logical.volume, man fstab, man mount, man xfs_growfs에서 찾는다. --help에서 -L은 크기, -l은 extent라는 대소문자도 확인한다.

문제 1 — LVM과 UUID 영구 마운트

English

Using the provided empty disk /dev/sdb, create VG examvg and a 1 GiB LV named data. Format it with XFS, mount it at /mnt/examdata, and make the mount persistent using the filesystem UUID. Do not modify other disks.

한국어

빈 /dev/sdb로 examvg/data 1GiB LV와 XFS를 만들고 /mnt/examdata에 filesystem UUID로 영구 마운트한다.

1차 가이드

대상 확인 → VG/LV → filesystem → mount point
→ filesystem UUID → fstab → mount -a → findmnt
풀이 예시
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
pvs; vgs; lvs
vgcreate examvg /dev/sdb
lvcreate -L 1G -n data examvg
mkfs.xfs /dev/examvg/data
install -d /mnt/examdata
blkid /dev/examvg/data

/etc/fstab:

UUID=<blkid에서-확인한-filesystem-UUID> /mnt/examdata xfs defaults 0 0
systemctl daemon-reload
findmnt --verify
mount -a
findmnt /mnt/examdata

빈 장치라면 일부 LVM2 환경에서 vgcreate VG DEVICE가 PV 초기화까지 처리한다. 개념은 여전히 PV → VG → LV이고, 이미 다른 VG에 속한 장치에는 pvcreate를 다시 실행하지 않는다.

lvdisplay의 LV UUID가 아니라 filesystem 위에서 실행한 blkid의 UUID를 fstab에 사용한다.

문제 2 — LV와 filesystem 확장

English

Extend /dev/examvg/data by 512 MiB and grow its filesystem online without losing existing data.

한국어

기존 데이터를 보존하면서 LV를 현재 크기에서 512MiB만큼 증가시키고, 그 위 filesystem도 online 확장한다.

연결표

층XFSext4
LV 확장lvextendlvextend
filesystem 확장xfs_growfs MOUNTPOINTresize2fs DEVICE
한 번에 확장lvextend -rlvextend -r
풀이 예시
lvs
df -hT /mnt/examdata
lvextend -r -L +512M /dev/examvg/data
lvs /dev/examvg/data
df -hT /mnt/examdata

+512M과 최종 크기 512M은 다르다. 문제의 by는 증가량이고 to는 최종 크기다.

문제 3 — persistent swap

English

Create a 512 MiB logical volume named swap9 in examvg, configure it as swap, activate it now, and ensure activation after reboot using UUID.

한국어

examvg에 512MiB swap9 LV를 만들고 swap signature, 현재 활성화, UUID 기반 부팅 후 활성화까지 구성한다.

풀이 예시
lvcreate -L 512M -n swap9 examvg
mkswap /dev/examvg/swap9
blkid /dev/examvg/swap9

/etc/fstab:

UUID=<swap-UUID> none swap defaults 0 0
swapon -a
swapon --show
findmnt --verify

mkswap은 swap 형식을 만들 뿐 활성화하지 않는다. swapon은 현재 kernel에만 활성화하며 /etc/fstab이 재부팅 후 영속성을 담당한다.

문제 4 — NFS 영구 마운트

English

Persistently mount the provided export node2:/exports/team at /mnt/team. Do not invent the server or export path if they are not provided.

한국어

제공된 NFS export를 /mnt/team에 지금 mount하고 재부팅 후에도 유지한다. 서버와 export 경로는 문제에서 주어진 값을 사용한다.

가이드

install -d /mnt/team
showmount -e node2

/etc/fstab의 기본 형태:

node2:/exports/team /mnt/team nfs defaults,_netdev 0 0
mount -a
findmnt /mnt/team

remote filesystem에서는 server 도달성, export 존재, client package, firewall를 구분한다.

전체 풀이와 검증
getent hosts node2
showmount -e node2
install -d /mnt/team

/etc/fstab:

node2:/exports/team /mnt/team nfs defaults,_netdev 0 0
systemctl daemon-reload
findmnt --verify
mount -a
findmnt -no SOURCE,FSTYPE,OPTIONS /mnt/team
touch /mnt/team/.lfcs-write-test
rm /mnt/team/.lfcs-write-test

마지막 쓰기 검사는 export가 read-write로 제공됐을 때만 수행한다.

문제 5 — autofs on-demand mount

English

Configure an indirect automount so that accessing /shares/team mounts node2:/exports/team, and the mount is released after inactivity.

한국어

/shares/team에 접근할 때만 NFS가 mount되고 일정 시간 사용하지 않으면 해제되는 indirect autofs map을 만든다.

연결표

/etc/auto.master.d/*.autofs → 상위 mount map 연결
/etc/auto.*                 → key, options, remote target
automount -m                → map 해석 확인
systemctl enable --now autofs

접근 전후 findmnt를 비교하고 ls /shares/team으로 실제 trigger를 발생시킨다.

풀이 예시

/etc/auto.master.d/shares.autofs:

/shares /etc/auto.shares --timeout=60

/etc/auto.shares:

team -fstype=nfs,rw node2:/exports/team
chmod 644 /etc/auto.master.d/shares.autofs /etc/auto.shares
automount -m
systemctl enable --now autofs
systemctl reload autofs
findmnt /shares/team || true
ls /shares/team
findmnt /shares/team

/shares를 직접 NFS target으로 쓰는 direct mount와 /shares 아래 key가 붙는 indirect map을 구분한다. 문제에서 /shares/team처럼 하위 key를 요구하면 위 형태가 자연스럽다.

문제 6 — storage performance 진단

English

Without changing the system, identify the busiest block device, I/O latency, queue pressure, and the processes producing I/O.

한국어

시스템 설정을 바꾸지 않고 가장 바쁜 block device, I/O 지연·queue 압력, I/O를 발생시키는 process를 찾는다.

iostat -xz 1 5
vmstat 1 5
pidstat -d 1 5

도구가 없으면 무작정 저장소를 추가하지 말고 설치 가능 여부와 제공된 환경을 확인한다.

지표읽는 법
%util장치가 요청 처리로 바빴던 시간 비율
await요청 하나의 평균 대기·처리 시간
aqu-sz평균 queue 길이
r/s, w/s초당 read/write 요청
vmstat의 waCPU 관점의 I/O wait
pidstat -dprocess별 read/write 활동

한 번의 snapshot만 보고 결론 내리지 않고 여러 interval을 관찰한다. %util=100만으로 항상 병목이라고 단정하지 말고 지연과 workload를 함께 본다.

조건 변형 대비

문제 표현선택
extend by 512 MiB-L +512M
extend to 2 GiB-L 2G
XFS growmount point에 xfs_growfs
ext4 growblock device에 resize2fs
mount persistently/etc/fstab과 현재 mount 둘 다
mount on demandautofs
filesystem UUIDblkid의 UUID, LV UUID가 아님
swap filefallocate/dd → chmod 600 → mkswap → swapon → fstab

최종 검증

pvs
vgs
lvs
lsblk -f
findmnt --verify
findmnt /mnt/examdata
swapon --show
  • OS 디스크와 연습 디스크를 구분했다.
  • filesystem UUID를 사용했다.
  • 이미 mount된 상태만 보고 fstab 성공으로 오판하지 않았다.
  • findmnt --verify와 mount -a에서 오류가 없다.
  • 확장 후 LV 크기와 filesystem 크기를 모두 확인했다.