LVM의 활성화와 비활성화란, 현재 시스템에서 사용중인 임의의 볼륨그룹을 시스템에서 인식하지 못하도록 하거나 또는 그 반대의 역 할을 하는 것을 말하며, import와 export는 볼륨그룹을 시스템에서 인식하거나 인식하지 못하는것에서 더 나아가 시스템에서 완전히 떼어내어 보관하거나 볼륨그룹을 다른 시스템에 붙여서 사용할 수 있는 것이다. 예를 들어, 현재 사용하는 시스템의 하드웨어 사양이 부족하여 업그레이드가 필요한 경우 시스템 업그레이드 후 시스템을 기존의 환경과 최대한 동일하게 구성 후 최종적으로 데이터가 들어있는 볼륨그룹만 이동하여 시스템 중단시간을 최소화 할 수 있고, 장애가 발생하여 데이터를 다른 시스템으로 이동해야 할 경우 LVM을 비활성화한 후 export하여 다른 시스템으로 옮기거나 시스템 장애 처리 후 안전하게 다시 사용이 가능하도록 할 수 있다. 1. LVM의 활성화/비활성화 LVM의 활성화/비활성화는 vgchange명령으로 수행이 가능하다. vgchange명령의 옵션은 -a [y|n]로 'y'는 활성화를, 'n'는 비활성 화를 뜻한다. 그림 12.1은 볼륨그룹의 비활성화 작업을 하기 전 볼륨그룹의 상태를 확인하는 것이다. 볼륨그룹을 비활성화 하는 경우 시스템이 볼 륨그룹을 인식할 수 없게하는 작업이므로 비활성화할 볼륨그룹이 사용중인 경우 에러메세지와 함께 비활성화 작업이 이루이지 않는 다. 따라서 비활성화를 하기 전에 사용하는 볼륨그룹에 깔려있는 파일시스템이 사용중이라면 umount하여, 사용하는 User가 없도록 해야한다. ㉠ bdf : 현재 비활성화 작업을 하려는 /dev/vg01/lvol1이 /test01로 마운트 되어있는 것을 확인할 수 있다. ㉡ fuser -ck /test01 : /test01파일시스템을 umount하기 위해 현재 /test01 파일시스템을 사용하고 있는 User를 kill 시킨다. ㉢ strings /etc/lvmtab : 비활성화 작업을 하기 전 볼륨그룹의 구성을 확인한 결과 vg01 볼륨그룹은 하나의 디스크로 구성되어 있음을 알 수 있다. ㉣ vgdisplay -v |grep 'VG Name' : 시스템에서 사용중인 볼륨그룹을 확인한 결과 vg00과 vg01 두 개임을 알 수 있다.
<그림 12.1> 비활성화할 VG의 상태확인
볼륨그룹을 비활성화 할 준비가 되었으므로 비활성화 작업을 한다.
㉠ vgchange -a n vg01 : vgchange명령을 이용하여 vg01 볼륨그룹을 비활성화 한다.
㉡ vgdisplay -v vg01 : vg01에 대한 정보를 출력하려고 했으나 비활성화를 하여, 시스템이 볼륨그룹을 인식하지 못하기 때문에
볼륨그룹에 대한 정보를 볼 수 없다는 메세지를 출력하고 종료된다.
㉢ strings /etc/lvmtab : /etc/lvmtab의 LVM볼륨그룹 정보를 출력한 결과 vg01이 존재하고 하나의 디스크가 할당되어 있는 것
을 볼 수 있다. 이것은 볼륨그룹이 비활성화가 되어 시스템은 vg01을 인식하지 못하지만, 실제로 vg01
이 비활성화되어 인식이 안될 뿐, 시스템에 구성되어 있음을 나타낸다.
<그림 12.2> 볼륨그룹 비활성화의 예제
비활성화한 볼륨그룹을 활성화하는 경우에는 -a 옵션에 'n'대신 'y'를 주면 간단히 볼륨그룹을 활성화 시킬 수 있다.
㉠ vgchange -a y vg01 : vg01 볼륨그룹을 -a 옵션에 y를 주어 활성화 시킨다.
㉡ vgdisplay -v |grep 'VG Name' : 시스템에서 사용중인 볼륨그룹의 정보를 디스플레이한 결과 vg01이 활성화되어 시스템
에서 인식할 수 있기때문에 vg00과 vg01 두 개의 볼륨그룹이 출력된다.
<그림 12.3> 볼륨그룹 활성화의 예제
2. LVM의 Export
앞에서 말한 바와 같이 볼륨그룹의 export작업은 볼륨그룹이 비활성화된 상태에서 볼륨그룹을 시스템과 별개의 독립된 볼륨그룹으로
분리하 것을 말하며, 시스템에서 export된 볼륨그룹은 현재 시스템의 가동여부와 관계없이 독립되어 있는 볼륨이므로 이 볼륨그룹에
속해있는 디스크는 물리적으로 설치/제거가 가능하다.
볼륨그룹의 export는 vgexport명령으로 가능하며, 명령에 -m map_filename 옵션을 주어 import에 쓰일 map파일을 생성한다. map파
일은 볼륨그룹에 속해있는 논리볼륨의 개수와 이름등의 정보가 저장되어 있으며, 볼륨그룹의 논리볼륨 이름을 default 값(lvol1,2…n)
으로 사용한 경우에는 map파일이 없어도 import가 가능하다.
그림 12.4는 vg01 볼륨그룹을 export하는 작업의 예이다.
㉠ vgexport -v -m vg01.map /dev/vg01 : vg01 볼륨그룹을 -v, -m map_filename의 옵션으로 export한다. 그러나 vg01이 현재
사용중이라는 에러 메세지와 함께 export되지 않는다. (-v는 export과정을 보여주는
옵션이며, -m은 앞서 말한 바와 같이 map 파일을 생성하는 것이다)
㉡ vgchange -a n vg01 : vg01을 export하기 위해 볼륨그룹을 비활성화 한다. 물론 비활성화 하기 전에는 볼륨그룹에 할당 된 논
리볼륨이 사용중이면 안되므로 미리 조치를 취한다.
㉢ vgexport -v -m vg01.map /dev/vg01 : vg01 볼륨그룹을 export한다. 볼륨그룹이 비활성화 되어있으므로 이상 없이 export
작업이 이루어 진다. 그리고 볼륨그룹이 export되고나면 /dev 디렉토리에 존재하는
볼륨그룹의 디렉토리와 group는 삭제되기때문에 import시 다시 생성해 주어야 한다.
㉣ vgdisplay -v|grep 'VG Name' : vg01이 export되어 vgdisplay결과 현재 시스템이 사용중인 볼륨그룹은 vg00 하나인 것을 알
수 있다.
㉤ strings /etc/lvmtab : /etc/lvmtab파일의 LVM 구성정보를 출력한 결과 vgchange명령과는 달리 lvmtab 파일에도 vg01이 존재
하지 않는 것을 알 수 있다. 이것은 이미 vg01은 export되어 현재 시스템에서 분리되었기 때문이다. 따라
서 물리적으로 제거해도 무방하다.
<그림 12.4> vgexport명령의 예제
3. LVM의 Import
볼륨그룹의 import는 export되어있는 볼륨그룹을 삽입하는 것이다. 볼륨그룹을 시스템에 삽입하기 위해서는 vgcreate로 설치할 때와
마찬가지로 /dev 디렉토리에 볼륨그룹의 디렉토리와 group파일을 만들어 주어야 하고, 삽입된 볼륨그룹은 비활성화되어있는 상태이
므로 vgchange명령으로 활성화한 뒤에 사용이 가능하다.
볼륨그룹의 import는 vgimport 명령으로 가능하며, -m map_filename 옵션으로 볼륨그룹을 export할 때 만들어놓은 map파일을 사용
하여 import작업을 수행한다. vgimport명령의 형식은 vgimport -m map_filename /dev/vg_name /dev/dsk/c#t#d# 이다.
볼륨그룹이 여러 개의 디스크로 구성된 경우에는 vgimport명령의 마지막에 기술하는 디스크의 Path(/dev/dsk/c#t#d#)란에 주욱 나
열하여 기록하면 된다. (예: vgimport -v -m vg01.map /dev/vg01 /dev/dsk/c0t3d0 /dev/dsk/c0t4d0) 만약 복수 개로 구성된 볼륨그
룹 import 시 볼륨그룹을 구성하는 디스크를 모두 기록하지 않거나 빠트린 경우에는 vgimport는 정상적으로 되지만 볼륨그룹 활성화
시 에러가 발생하게 된다. 이러한 경우에는 "vgscan -v"명령을 사용하여 볼륨그룹을 구성하는 디스크가 무엇인지 확인하고, 해당 볼
륨그룹을 다시 vgexport한 후 다시 import하면 된다.
㉠ mkdir /dev/vg01 : vg01의 디렉토리를 생성한다.
㉡ mknod /dev/vg01/group c 64 0x010000 : 볼륨그룹을 생성할 때와 마찬가지로 vg01 볼륨그룹의 group 파일을 생성한다.
㉢ ll /dev/vg01 : group 파일이 생성되었는지 확인한다.
㉣ vgimport -v -m vg01.map /dev/vg01 /dev/dsk/c0t3d0 : vgimport명령으로 export되어있던 vg01 볼륨그룹을 import한다.
㉤ vgdisplay -v|grep 'VG Name' : 시스템의 볼륨그룹 정보를 출력했으나 vg01이 비활성화 되어 있으므로 vg00만 출력된다.
㉥ vgchange -a y /dev/vg01 : vgchange명령으로 vg01을 활성화 시킨다.
㉦ vgdisplay -v|grep 'VG Name' : 시스템의 볼륨그룹 정보를 출력한 결과 vg01이 추가되었음을 알 수 있다.
㉧ strings /etc/lvmtab : lvmtab파일에도 정상적으로 반영되었음을 알 수 있다.
<그림 12.5> vgimport 명령의 예제