OS/Linux

2011.11.30 LVM 리뷰

에몽이ㅋ 2012. 1. 9. 21:50
LVM : 물리적으로는 나누어져 있는 하드디스크를 논리적으로 하나의 하드디스크처럼 사용하는 기술

[root@localhost ~]# fdisk -l            <-- 하드디스크 상태확인

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         650     5116702+  83  Linux
/dev/sda3             651         911     2096482+  82  Linux swap
/dev/sda4             912        2610    13647217+   5  Extended
/dev/sda5             912        1038     1020096   83  Linux
/dev/sda6            1039        2610    12627058+  83  Linux

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 321 MB, 321912832 bytes
64 heads, 32 sectors/track, 307 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdd doesn't contain a valid partition table

::: /dev/sdb,    /dev/sdc,    /dev/sdd 하드디스크가 존재하지만 아직 파티션이 나눠져 있지 않음을 확인


1. 파티션설정
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n  <--- new partition
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102

Command (m for help): t           <----LVM으로 설정하기위해서 필수
Selected partition 1
Hex code (type L to list codes): 8e  <--- Linux LVM type
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w   <---- 파티션작업은 마지막에 항상 w로 저장해줘야 한다.
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

:::::이렇게 /dev/sdc,    /dev/sdd도 같은 작업

2. pvcreate로 물리적 볼륨생성
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created


3. vgcreate로 생성된 볼륨을 하나로 묶음(vgdisplay로 확인)
[root@localhost ~]# vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1
  Volume group "myVG" successfully created
----> 여기까지 하면 하나의 논리디스크 생성
[root@localhost ~]# vgdisplay       <--- 볼륨확인
  --- Volume group ---
  VG Name               myVG
  System ID
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               604.00 MB
  PE Size               4.00 MB
  Total PE              151
  Alloc PE / Size       0 / 0
  Free  PE / Size       151 / 604.00 MB
  VG UUID               u1oMTP-hyWv-RjQ1-pgko-If5r-ud7B-9RG7Qa


4. 생성된 논리디스크 파티션 생성(lvcreate)
[root@localhost ~]# lvcreate -L 604MB -n myLG1    myVG(목표논리디스크)
                       설명 :     -L size,   -n LogicalVolumeName
  Logical volume "myLG1" created

5. 포멧
[root@localhost ~]# mkfs.ext3    /dev/myVG/myLG1   <--- 보통 그냥 하듯이 그냥 하면 된다.

6. mount
[root@localhost ~]# mkdir /lvmdata
[root@localhost ~]# mount /dev/myVG/myLG1   /lvmdata

끝! 확인은 df -h
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             4.9G  3.8G  877M  82% /
/dev/sda1              99M   13M   81M  14% /boot
none                  501M     0  501M   0% /dev/shm
/dev/sda6              12G   63M   12G   1% /home
/dev/sda5             981M   95M  836M  11% /var
/dev/mapper/myVG-myLG1
                      595M   17M  548M   3% /lvmdata


참고 : 부팅시 자동으로 myLG1을 mount 시키고 싶다면
vi /etc/fstab 파일 마지막에
/dev/myVG/myLG1         /lvmdata                       ext3              defaults        1 1
(device 이름)                 (mount시킬 디렉토리)   (포멧형식)

를 추가하고 저장 후 재부팅


LVM을 생성하는 과정을 요약하자면

1. 물리적하드디스크 파티션설정(fdisk)
2. 물리볼륨생성(pvcreate)
3. 볼륨 묶기(vgcreate)
---> 논리디스크생성됨(vgdisplay로 확인)
4. 논리디스크 파티션설정(lvcreate)
5. 논리디스크 포멧(mkfs.ext3 or ext4, etc)
6. 마운트(mount)