1. Disk partitioning


   disk partitioning이란, 말 그대로 파티션을 나누는 것을 말한다. 흔히 우리가 집에서 사용하는 PC에 운영체제를 설치하기 위해 fdisk


   라는 Tool로 물리적인 하드디스크의 공간을 논리적으로 분할하는 것이 Partitioning이고, 이렇게 분할되어진 논리적인 공간들을 파티


   션 이라 부른다.



 


   HP-UX 역시 운영체제를 설치하기 위해서는 하나의 디스크를 통째로 사용하던지 분할하여 사용하던지 파티션을 나누고 어느 파티션


   에 운영체제를 설치할 것인지 결정하여 설치해야 하며, 파티션을 나누는 방법에는 Whole Disk Partitioning 과 LVM (Logical


   Volume Manager)의 두 가지 방법이 있다.


 


   Whole Disk Partitioining은 각각의 물리적인 디스크에  대하여 동일한 목적의 영역으로 전체를 사용하거나 다른 목적을 위한 여러 개


   의 영역의 조합으로 사용하는 방법으로, 초기 설치 시 간편하다는 장점이 있으나 여러 개의 디스크를 하나의 파티션으로 사용할 수


   없고 하나의 디스크에는 한 가지의 파일시스템만 설치가 가능하며, 시스템 운영 중 추가적인 용량 증설이 필요한 경우 확장이 불가능


   하다는 단점이 있다.


 


   따라서 데이터의 단위와 건수 가 커진 현재에는 데이터의 용량 증감에 좀 더 탄력있게 대처할 수 있는 기술이 요구되었고, 이에 따라


   개발된 것이 LVM이다. LVM은 물리적인 디스크를 논리적 볼륨그룹으로 구성해서 이 논리적인 볼륨그룹 내에 사용자가 원하는 크기


   만큼의 논리볼륨을 할당하여 사용하는 방법으로, 그림 8.9에서 보는 바와 같이 여러 개의 디스크를 하나의 논리적인 볼륨그룹(VG)으


   로 구성할 수 있으며, 각 논리볼륨(LV)는 독립적이므로, 하나의 디스크에도 여러 가지의 파일 시스템을 설치할 수 있다. 또한 디스크


   의 용량증설이 요구 될 경우에도 볼륨그룹에 물리볼륨(PV)만 추가하여 용량증설이 가능하고, 데이터량이 감소하여 더 이상 많은 양


   의 저장공간이 필요 없는 경우, 볼륨그룹에 속한 물리볼륨 개수를 축소하여 용량 감소가 가능하다.


 


   HP-UX는 9.x 버전부터 OS에 LVM이 Bundle되어 있으므로, OS설치 시 LVM을 이용하여 설치/사용하고 있으며, 더 이상 Whole


   Disk Partitioning는 사용되지 않는다.


 




<그림 9.1> Whole disk partitioning과 LVM



2. LVM의 구성요소


    LVM은 PV(Physical Volume), VG(Volume Group), LV(Logical Volume)으로 구성된다


















구성요소


Description


Physical Volume


- PV는 하나의 물리적인 Disk에 LVM을 사용할 수 있도록 LVM 데이터 구조를 생성한 것


   을 말한다.


 


- 디스크에 PV가 생성되면 LVM은 디스크를 하나의 물리볼륨으로 간주하게 되고, 볼륨


   그룹에 포함시킬 수 있게 된다. 따라서 하나의 디스크를 몇 개의 섹션은 논리볼륨으로,


   몇 개의 섹션은 전체디스크로 관리하는 등의 방법은 적용 할 수 없다.


Volume Group


- VG는 하나 또는 그 이상의 PV에 속하며, LV를 생성할 수 있는 Volume Group의 집합이다.


 


- vg00은 부팅정보와 OS가 있는 root Volume Group으로 변경이 불가능하다.


 


-관리자가 관리상의 편의를 위해 DB의 경우에는 vgdb##, 일반적인 파일시스템의 경우에는


  vgfil##등으로 VG이름을 지정하여 사용한다.


Logical Volume


- LV는 하나 또는 그 이상의 PV로 구성되어 있는 VG 공간을 전체 또는 분할하여 일반


   파일시스템, swap or dump area, raw disk로 사용할 수 있도록 논리적으로 할당한


   공간이다.


 


- 운영 중 공간이 부족할 경우 볼륨그룹에 속해 있는 또 다른 물리볼륨을 사용하여 확


   장이 가능하고, 필요하다면 크기를 변경하거나 다른 디스크로 데이터를 옮길 수 있다.


 


- Volume Group vg00에 속한 Logical Volume lvol1,lvol2,lvol3은 각각 /stand, primary


   swap, / 디렉토리로 변경이 불가능 하다.


 <표 9.1> LVM의 구성요소

3. LVM의 구조


   PV를 생성하면 물리 볼륨의 시작부분에 바로 LVM 관리를 위한 정보들을 데이터 구조화하여 저장하게 되는데, 이 구조에는 물리볼륨


   정, 부트데이터, 볼륨그룹정보, 그리고 LVM을 구축하기 위해 필요한 다른 정보들을 포함하고 있고, pvcreate나 vgcreate 명령어를


   사용하여 생성한다.


 



<그림 9.2> LVM Physical Volume의 구조




 





























구성요소


Description


LIF Header


 여러 가지 HP 시스템 간에 파일 교환을 위한 표준 mass storage format 으로서, root, swap,


 dump 디바이스의 물리볼륨에 존재 하며, LIF Header정보는 mkboot명령어로 만들어진다.

BDRA
(Boot Data Reserved Area)


 


 root, primary swap, dump 논리볼륨을 구성하기 위한 정보뿐만 아니라 root 파일시스템을


 mount 하고 root 볼륨그룹에 속하는 LVM 디스크의 위치와 크기를 가지고 있다.

 

LIF Directory Area


 HPUX, LABEL, ISL, AUTO 파일 등을 포함하고 있는 영역으로 mkboot 명령어로 생성되는


 곳이며, #lifls -v -l /dev/dsk/c0t0d0 와 같은 명령으로 이 영역의 내용을 볼 수 있다.

PVRA
(Physical Volume
Reserved Area)


 물리볼륨에 관한 고유정보를 포함하고, pvcreate 명령으로 생성되는 영역이다.


VGRA
(Volume Group
Reserved Area)


 전체 볼륨그룹에 대한 정보를 가지고 있으며, 볼륨그룹에 속해 있는 각각의 물리 볼륨에는


 VGRA의 복사본이 들어가게 된다.


 VGRA는 볼륨그룹의 정족수(quorum)정보를 가지고 있는 VGSA(Volume Group Status


 Area)와 볼륨그룹을 구성하기 위해 필요한 device driver 정보를 가지고 있는


 VGDA(Volume Group Descriptor Area)영역이 있으며, LE의 map이 VGRA 영역에 있다.

User Data Area


 모든 사용자 데이터가 저장되는 곳으로서 파일시스템, swap, 사용자 application들이 들어


 있다. 볼륨그룹이 만들어질 때 이 영역은 고정크기의 PE(Physical Extent) 와  LE

 (Logical Extent)의 map으로 나뉘어 진다.

BBRA
(Bad Block
Relocation Area)


 이 영역은 손상된 블록에 대한 복구 방법에 관한 정보가 저장 되어 있는 곳이다.


<표 9.2> LVM의 구조에 대한 설명

4. LVM의 작동방식


   • PE (Physical Extent)


      디스크에 PV를 생성하게 되면, LVM은 주소를 지정할 수 있는 PE(Physical Extent)라는 단위로 각 물리 디스크를 나눈. extent는


     주소 0번부터 시작하1증분하며 순차적으로 디스크에 할당되고, PE의 크기는 볼륨 그룹을 만들 때 구성할 수 있다. 그리고


     PE의 크기는 default 값이 4MB이며, 이 값은 필요에 따라 볼륨 그룹을 생성 시 1MB에서 256MB 사이의 값으로 지정할 수 있다.


 


 


   • LE (Logical Extent)


     디스크에 PV를 생성하고, 생성된 PV를 이용하여 VG(Volume Group)을 구성한 후 이 VG에 LV(Logical Volume)를 생성할 수 있다.


     LV의 기본 할당 단위를 LE(Logical Extent)라고 하는데, 이 LE는 PV 생성 시 나누어진 PE 영역과 Mapping된다. 따라서 PE의


     크기가 4MB이면 LE의 크기도 4MB가 된다. 그리고 LV의 크기는 구성된 LE의 개수 또는 할당할 디스크 용량에 의해 결정된다.


 


 


   • LVM과 Data Access


     앞서 말한 바와 같이 LVM이 논리볼륨에 디스크 공간을 할당할 때 LVM은 주소 0에서 시작하 각 디스크에 순차적으로 할당된


     PE와 할당된 LE의 Mapping Table을 만든다. 따라서 LVM은 그림 9.3과 같이 실제 데이터가 물리 볼륨에 상주하는 위치와 상관없이


     논리 볼륨을 Access 함으로써 데이터에 액세스 한다.


 


 


   • LVM과 root 파티션


     논리 볼륨이 루트, 부팅, 기본 스왑 또는 덤프에 사용될 경우에는 PE영역은 연속적이어야 한다. 즉, 단일 물리 볼륨에 공백 없이 PE


     를 할당해야한다. 그러나 루트가 아닌 디스크의 논리 볼륨의 LE에 대응되는 PE는 물리 볼륨에서 연속적이지 않거나 전혀 다른


     디스크에 상주할 수 있다. 결과적으로 한 논리 볼륨에 속한 파일 시스템이 둘 이상의 디스크에 상주할 수 있다.


 


 


   • Mirroring


     미러링되거나 스트라이프된 논리 볼륨을 제외하고 각 LE는 하나의 PE에 매핑된다. 그러나 미러링된 논리 볼륨의 경우, 단일 또는


     이중 미러링을 사용하는지에 따라 각 LE는 두 개 또는 세 개의 PE와 매핑된. 예를 들어, 미러 사본이 하나인 경우에는 그림 9.3과


     같이 각 LE가 두 개의 PE에 매핑되는데 하나의 확장 영역은 원본에 대한 것이고 다른 하나는 미러 사본에 대한 것이다.


 




                                                              <그림 9.3> LVM의 PE와 LE의 Mapping


 

5. LVM의 Device File


    LVM역시 HP-UX의 주변장치의 하나이므로 Device file이 있어야만 Kernel이 Device를 Access할 수 있으며, 각 device file은 아래


   그림 9.4와 같이 /dev 디렉토리 아래에 존재하게 된다.


 



<그림 9.4> LVM Device file의 Path

















구성요소


Description


Physical Volume


LVM은 논리적인 데이터 구조를 사용하지만 이 역시 물리적인 디스크 위에 논리적인 볼륨


구조를 덮어씌워 사용하는 것이므로 이를 사용하기 위해서는 HP-UX에서 DISK를 인식해야 하며, 그러 기 위해서는 DISK의 Device file이 설치되어 있어야 한다.


 



/dev/dsk/c#t#d#, /dev/rdsk/c#t#d# file이 설치되어 있어야 한다.

Volume Group


볼륨그룹 역시 device파일을 통해 사용이 가능한데 모든 볼륨그룹은 /dev 디렉토리 아래에 볼륨 그룹 이름으로 된 디렉토리에 자신이 사용할 'group'이라는 이름의 device 파일을 가지고 있다.


 


예를 들어, vg00이란 볼륨그룹이 있다고 하면 '/dev/vg00' 이란 디렉토리가 있을 것이며, 이 볼륨


그룹이 사용하는 device파일은 '/dev/vg00/group' 파일이 된다


Logical Volume


논리볼륨의 device파일은 자신이 속해있는 볼륨그룹의 디렉토리에 생성되며, 물리볼륨과 마찬가지로 Block, Character 두 가지의 device file을 가진다.


 


예를 들어, 앞의 vg00이란 볼륨그룹에 가장 처음으로 생성된 논리볼륨이름이 lvol1이라고 가정 하면 Block device 파일은 '/dev/vg00/lvol1'이 되고, Character device파일은 '/dev/vg00/rlvol1'이 된다

LVM (Logical Volume Manager)의 개요

답글 남기기

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