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 |
root, primary swap, dump 논리볼륨을 구성하기 위한 정보뿐만 아니라 root 파일시스템을
mount 하고 root 볼륨그룹에 속하는 LVM 디스크의 위치와 크기를 가지고 있다. |
LIF Directory Area | HPUX, LABEL, ISL, AUTO 파일 등을 포함하고 있는 영역으로 mkboot 명령어로 생성되는
곳이며, #lifls -v -l /dev/dsk/c0t0d0 와 같은 명령으로 이 영역의 내용을 볼 수 있다. |
PVRA | 물리볼륨에 관한 고유정보를 포함하고, pvcreate 명령으로 생성되는 영역이다. |
VGRA | 전체 볼륨그룹에 대한 정보를 가지고 있으며, 볼륨그룹에 속해 있는 각각의 물리 볼륨에는
VGRA의 복사본이 들어가게 된다.
|
User Data Area | 모든 사용자 데이터가 저장되는 곳으로서 파일시스템, swap, 사용자 application들이 들어
있다. 볼륨그룹이 만들어질 때 이 영역은 고정크기의 PE(Physical Extent) 와 (Logical Extent)의 map으로 나뉘어 진다. |
BBRA | 이 영역은 손상된 블록에 대한 복구 방법에 관한 정보가 저장 되어 있는 곳이다. |
<표 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이 설치되어 있어야 한다.
|
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'이 된다 |