Tag Archives: pe

Linux #14 : LVM에서 Logical Volume 생성하기

지난 시간에 LVM의 구성확인을 위한 Command에 대해서 확인을 했고, 이번엔 Logical Volume을 생성하기위한 방법에 대해서 설명하도록 하겠습니다.

LVM은 지난시간에 설명 한 것과 같이 PV(Physical Volume), VG(Volume Group), LV(Logical Volume) 순으로 구성된다고 했는데, LV를 생성하기 위해선 먼저 PV를 만들고 VG를 구성한 뒤 VG 위에 LV를 생성하면 됩니다.

일단 PV를 구성하기 위해서는 PV를 구성하기 위한 Device를 확인해야 하는데 이때는 Linux File System에 대한 지식이 좀 필요하겠네요. SCSI Device를 LVM 용도로 추가 하였고, /dev/sdb Device라면 “fdisk”와 같은 명령어로 확인이 가능하겠죠.

$ fdisk -l /dev/sdb
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table

PV를 생성하기 위해서는 “pvcreate” 명령어를 사용하면 된다.

$ pvcreate -v /dev/sdb
Set up physical volume for "/dev/sdb" with 167772160 available sectors
Zeroing start of device /dev/sdb
Physical volume "/dev/sdb" successfully created

위와 같이 PV 생성하였고, 생성 된 PV는 “pvscan”으로 확인 가능합니다.

$ pvscan
PV /dev/sdb lvm2 [80.00 GB]
Total: 1 [80.00 GB] / in use: 0 [0 ] / in no VG: 1 [80.00 GB]

그럼 이제 VG 생성이 가능하게 되는데 “vgcreate”를 사용하여 생성하면 됩니다.

vgcreate [VGNAME] [DEVICE]
$ vgcreate -v vg001 /dev/sdb
Wiping cache of LVM-capable devices
Adding physical volume '/dev/sdb' to volume group 'vg001'
Archiving volume group "vg001" metadata (seqno 0).
Creating volume group backup "/etc/lvm/backup/vg001" (seqno 1).
Volume group "vg001" successfully created

또, 생성 된 VG에 대해서 “vgdisplay”로 확인 하면,

$ vgdisplay
--- Volume group ---
VG Name vg001
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 80.00 GB
PE Size 4.00 MB
Total PE 20479
Alloc PE / Size 0 / 0
Free PE / Size 20479 / 80.00 GB
VG UUID C8n1rc-3p2U-0TD2-NS0N-XtOJ-zgKs-clDWPy

여기서 확인 해 볼 필요가 있는 건 지난 시간에 설명을 했던 PE (Physical Extent)에 관한 것인데, LV를 생성할 때 할당되는 Block에 관한 것으로 VG에서 PE Size를 설정하는 것이 가능하기 때문이다. 1개의 LV에 할당 가능한 최대의 PE수는 65535 Block이기 때문에 PE Size의 크기에 따라 LV의 최대 Size가 변하게 된다. 그러나, 너무 크다면 LV의 Size의 조절범위가 커지기 때문에 불필요한 용량이 늘어날 수도 있기 때문에 주의가 필요하다. Default PE Size는 4MB(4096KB)로 아래와 같은 Option을 추가하는 것으로 PE Size의 변경이 가능하다. 일단 VG를 만든 이후에는 변경을 못하게 됨으로 VG 생성 전에 적절한 Sizing을 통해 PE Size를 결정 해 줄 필요가 있다.

$ vgcreate -v -s32m vg001 /dev/sdb
Wiping cache of LVM-capable devices
Adding physical volume '/dev/sdb' to volume group 'vg001'
Archiving volume group "vg001" metadata (seqno 0).
Creating volume group backup "/etc/lvm/backup/vg001" (seqno 1).
Volume group "vg001" successfully created

$ vgdisplay
--- Volume group ---
VG Name vg001
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 79.97 GB
PE Size 32.00 MB
Total PE 2559
Alloc PE / Size 0 / 0
Free PE / Size 2559 / 79.97 GB
VG UUID ZVQ1xJ-8vdF-5C2C-fBgS-fX3h-8yZG-r5dcjM

4MB 일 때와 32MB 일때의 PE 갯수가 변한 건 확일 할 수 있죠, 32MB일때는 VG Size가 79.97 GB인것도 다르죠.
VG까지 생성 했다면 이제 드디어 LV의 생성이 가능하게 됩니다. LV의 생성은 “lvcreate”를 이용하면 되고

lvcreate -n[LV NAME] -L[LV SIze] [VG]
$ lvcreate -v -nMyTechies -L40G vg001
Setting logging type to disk
Finding volume group "vg001"
Archiving volume group "vg001" metadata (seqno 3).
Creating logical volume MyTechies
Creating volume group backup "/etc/lvm/backup/vg001" (seqno 4).
Found volume group "vg001"
Creating vg001-MyTechies
Loading vg001-MyTechies table
Resuming vg001-MyTechies (253:0)
Clearing start of logical volume "MyTechies"
Creating volume group backup "/etc/lvm/backup/vg001" (seqno 4).
Logical volume "MyTechies" created

그리고, “lvdisplay”로 확인 가능합니다.

$ lvdisplay
--- Logical volume ---
LV Name /dev/vg001/MyTechies
VG Name vg001
LV UUID j7037M-1uii-KO6a-ov6t-ub6C-Pm42-DPeGEj
LV Write Access read/write
LV Status available
# open 0
LV Size 40.00 GB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

LV를 생성하게 되면 LV에 대한 Device명은 /dev/[VG Name]/[LV Name]이 됩니다. 위에서 보면 /dev/vg001/MyTechies를 확인 할 수 있습니다. 그리고, “vgdisplay” 통해 확인 하면,

$ vgdisplay
--- Volume group ---
VG Name vg001
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 79.97 GB
PE Size 32.00 MB
Total PE 2559
Alloc PE / Size 1280 / 40.00 GB
Free PE / Size 1279 / 39.97 GB
VG UUID ZVQ1xJ-8vdF-5C2C-fBgS-fX3h-8yZG-r5dcjM

생성 된 LV 만큼, LV에 대한 정보면 Allocated 된 Size 정보, 남은 용량등을 확인 할 수 있습니다. 이 이후에는 LV를 format하고 mount를 하여 사용하면 되겠죠. Format은 mkfs, mkfs.ext3 Filesystem에 따라 해 주시면 되고,

$ mkfs.ext3 /dev/vg001/MyTechies
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
5242880 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
320 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Mount를 작업을 거치면 사용가능하게 됩니다.

다음 시간에는 LVM에서 생성된 LV의 ReSizing에 대해서 설명을 하도록 하겠습니다.