LVM cache 사용하기

참고: Logical Volume Manager의 cache 기능은 아직 커널에서 위험한 기능으로 되어있다. writeback 모드를 사용하면 데이터 손실 가능성이 크고 writethrough 모드를 사용하면 바로바로 디스크에도 기록하기때문에 추가적으로 발생하는 데이터 손실은 없는것으로 보인다.

아래 내용은 대부분 이곳에서 가져온 글이며, 개인적으로 좀 더 편리하게 찾기위해 하는 포스팅이다.

1. 캐시용 미디어 초기화 (sdc가 캐시용 미디어 일 경우를 기준)
parted /dev/sdc
– mklabel gpt (or mklabel msdos)
– mkpart ext2 1M 100%
– set 1 lvm on
– quit

2. 볼륨 그룹 확장 및 캐쉬용 볼륨 생성 (기존의 VG는 lv 일 경우를 기준)
pvcreate /dev/sdc1
vgextend lv /dev/sdc1

lvcreate -L 2G -n lv_cache lv /dev/sdc1 (lv_cache 볼륨을 /dev/sdc1 미디어만 사용하도록 지정하여 생성)
lvcreate -L 12M -n lv_cache_meta lv /dev/sdc1 (lv_cache_meta 볼륨을 /dev/sdc1 미디어만 사용하도록 지정하여 생성, metadata는 최소 8MiB 필요, metadata 영역없이 cache pool을 생성하면 data의 1000배 적은 용량으로 자동 생성된다.)

lvconvert –type cache-pool –cachemode writethrough –poolmetadata lv/lv_cache_meta lv/lv_cache

3. 기존의 볼륨에 캐시 할당
lvconvert –type cache –cachepool lv/lv_cache lv/home (기존의 home이라는 볼륨에 캐시 할당)

4. 캐시 할당 제거
lvconvert –uncache lv/home (cache pool도 함께 지워진다.)
lvconvert –splitcache lv/home (cache pool은 유지된다.)

5. 기타
물리장치가 고장나거나 사라지면 아래처럼 [unknown]으로 표시되며 경고 메시지가 출력된다.

$ pvs
WARNING: Device for PV qxYE8y-ale2-QPxN-tN01-8k3W-HgL3-29l1RR not found or rejected by a filter.
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg lvm2 a-- 12.00g 0
[unknown] vg lvm2 a-m 1.89g 1.89g

이런 경우는 vgreduce –removemissing –force vg 와같이 명령을 실행하면 강제로 제거할 수 있다.

2 Comments

    cheong

    원문 보고 하는게 더 쉽게 이해 됨.
    님이 써놓은 내용 한국 말인데 무슨 말인지 모르겠슴.

      iruis

      나중에 lvm을 사용할 때 구글링을 줄이기 위해 제가 보기위해 쓴 글이라고 미리 명시한 머리 글 내용을 참조하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*
*

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.