0. 현재 상황 + 실습 시나리오 설명

/dev 안에 상황

  • 물리적 디스크 세 개 : sdb, sdc, sdd
  • 디스크 세 개로 만든 RAID 5 구성 한 개 : md0 (32G)
  • md0으로 만든 VG 한 개 : vg_data
  • vg_data 안에 LV 두 개 : lv_main (24G), lv_sub (약 8G)

실습 시나리오

  • lv_main을 키워야 하는 상황임
  • lv_sub를 줄이고 (-4G), 그만큼 남은 공간을 lv_main에게 줄 것임 (+4G)

그러나…

  • 참고 : 파일 시스템이 ext4가 아니라면 줄일 수 없음.
  • 그래서, 여기서는 lv_sub를 아예 삭제하고 lv_main에게 4G를 준 다음, 남은 PE를 lv_sub에게 할당하는 식으로 할 것임
  • 따라서 lv_sub는 어딘가에 백업이 되어 있다는 전제 하에 진행됨

1. lv_sub 지우기

1-1. 언마운트

umount <디스크_혹은_폴>
  • 예시
umount /dev/vg_data/lv_sub

1-2. LV 삭제

lvremove <LV_위>
  • 예시
lvremove /dev/vg_data/lv_sub

1-3. (선택) 마운트 되어있던 폴더 삭제

rm -r <마운트_되어있던_폴>
  • 예시
rm -r /data/sub

1-4. 삭제 후 상태 확인

vgs # VG들의 상태 확인
lvs # LV들의 상태 확인

  • vg_data에서 8G 정도를 차지하던 lv_sub를 삭제했기 때문에, VFree가 약 8G 정도로 찍힘

2. lv_main 에게 4G 더 지급하기

2-1. LV 확장하기

  • lvcreate 와 유사하게, 고정크기와 자동크기가 있음.
lvextend -L <고정크> <LV_이> # 수동 크기
lvextend -l <PE_갯> <LV_이> # 자동 크기
  • 자동 크기에 들어갈 수 있는 명령어들
PE_갯수 자리에 들어가는 명령어설명
숫자그 숫자 만큼의 PE로 LV을 만듬
n%FREE남아있는 전체 PE만큼의 n%로 LV를 만듬
n%VGVG 전체 PE만큼의 n%로 LV를 만듬
n%PVS지정한 PV들의 PE 합의 n%로 LV를 만듬
  • 참고 : 크기나 갯수 앞에 + 가 있으면 그만큼 증가하라는 뜻이고, 그게 없으면 크기나 갯수만큼 크기를 맞추라는 의미임

  • 예시

lvextend -L +4G /dev/vg_data/lv_main # 기존 크기에서 4G 증가하라

2-2. 파일 시스템 확장하기

  • LV의 크기가 늘었다고 해서 사용 가능한 크기가 바로 늘어나는건 아니고, 그만큼 파일 시스템도 확장을 해줘야 인식한다.
  • 파일 시스템마다 확장 명령어가 다르기 때문에, 상황에 따라 검색 해 볼 필요 있음
  • 여기서는 xfs 시스템의 확장 명령어를 설명함
xfs_growth <마운트포인>
  • 예시
xfs_growfs /data/main
  • 아래처럼 데이터 블록 수가 변경되었다 (data blocks change from …) 고 나오면 성공

3. lv_sub 새로 만들기

  • 이전 글에서 한 것 처럼 lvcreate를 사용해서 lv를 만든 후에 파일 시스템 입히면 됨.
  • 전 글에 자세하게 써놨으니 여기서는 실제 사용한 명령어만 정리함

3-1. LV 만들기

lvcreate -l 100%Free -n lv_sub vg_data
  • 여분 전체를 써서 lv_sub라는 이름의 lv 를 vg_data 라는 vg 안에 만듬

3-2. 파일 시스템 설정하기

mkfs.xfs /dev/vg_data/lv_sub

3-3. 마운트

mount /dev/vg_data/lv_sub /data/sub

3-4. 자동 마운트 설정

  • UUID 확인
blkid /dev/vg_data/lv_sub

  • /etc/fstab 수정
vi /etc/fstab

  • 확인
mount -a
lsblk
  • 아래처럼 lv_main이 24G에서 28G가 되었고 lv_sub가 생겨있으면 됨

  • 재부팅 후에 lsblk 한 번 더 해서 위랑 같이 나오면 성공