본문 바로가기

Linux(OS)

LVM(Logical Volume Manager)

LVM은 여러개의 다른 하드디스크를 합쳐 한개의 파일 시스템으로 사용하는 것입니다. 반대로 합쳐서 자신이

원하는 대로 나눠서도 사용이 가능하다.

용어를 간단히 설명하자면

Physical Volume(물리봄륨) :  /dev/sda1, /dev/sdb1, /dev/sdc1

Volume Group(볼륨 그룹) : Physical Volume 을 합쳐서 1개의 물리적 그룹으로 만드는 것

Logical Volume(논리 볼륨) : Volume Group 를 나눠서 논리적 그룹으로 나눔

Physical Extent : PV가 갖는 일정한 블록

Logical Exetent : LV가 갖는 일정한 블록

 

하드현황 확인하기

[root@server113 ~]# 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         781     1052257+  82  Linux swap
/dev/sda4             782        2610    14691442+   5  Extended
/dev/sda5             782         908     1020096   83  Linux
/dev/sda6             909        2610    13671283+  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: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

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

 

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

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

 

HDD파티션 할당

[root@server113 ~]# 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
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):enter
Using default value 102

Command (m for help): t(파일시스템 유형 변경하기 )
Selected partition 1
Hex code (type L to list codes): 8e(선택한 파일시스템 유형 번호 입력, 리눅스 LVM)
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p(설정 현황 보기)

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

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         102      104432   8e  Linux LVM

Command (m for help): w (저장)
The partition table has been altered!

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


/dev/sdc, /dev/sdd도 같이 동일한 방법으로 파티션을 지정한다.
--------------------------------------------------------------------------------
pvcreate로 물리적인 볼륨을 생성

[root@server113 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@server113 ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[root@server113 ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created

vgcreate로 3개의 물리 볼륨을 묶어주는 작업. 볼륨그룹 생성단계

vgcreate 볼륨그룹이름     /물리볼륨1     /물리볼륨2    /물리볼륨3

[root@server113 ~]# vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1
  Volume group "myVG" successfully created

vgdisplay 볼륨그룹 설정이 제대로 되었는지 확인.

[root@server113 ~]# 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               400.00 MB
  PE Size               4.00 MB
  Total PE              100
  Alloc PE / Size       0 / 0
  Free  PE / Size       100 / 400.00 MB
  VG UUID               BoejQl-MSRQ-fRP1-QKhJ-lOM3-sIJT-2SbyMZ

lvcreate 볼륨 그룹 파티션 생성 명령어

lvcreate -L 12MB -n myLG1(생성하는 디렉토리) my VG(상위디렉토리) : myVG아래에 myLG1이라는 논리 볼륨을 생성하는데 400MB로 하라
[root@server113 ~]# lvcreate -L 400MB -n myLG1 myVG
  /dev/cdrom: open failed: 읽기전용 파일 시스템
  Logical volume "myLG1" created

mkfs 볼륨 포맷하기

mkfs.ext3 /dev/myVG/myLG1 하나의 파티션을 포맷하듯 생성된 /dev/myVG/myLG1도 동일하게 취급하면 된다.

[root@server113 ~]# lvcreat -L 400MB -n myLG1 myVG
-bash: lvcreat: command not found
[root@server113 ~]# lvcreate -L 400MB -n myLG1 myVG
  /dev/cdrom: open failed: 읽기전용 파일 시스템
  Logical volume "myLG1" created
[root@server113 ~]#
[root@server113 ~]# mkfs.ext3 /dev/myVG/myLG1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
102400 inodes, 409600 blocks
20480 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
50 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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

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

디렉토리 생성, 생성된 논리 봄륨을 마운트

[root@server113 ~]# mkdir /data1
[root@server113 ~]# mount /dev/myVG/myLG1 /data1
[root@server113 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             4.9G  2.7G  2.0G  58% /
/dev/sda1              99M  8.5M   86M  10% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sda6              13G   65M   13G   1% /home
/dev/sda5             981M   89M  842M  10% /var
/dev/hdc              168M  168M     0 100% /media/cdrecorder
/dev/mapper/myVG-myLG1
                      388M   11M  358M   3% /data1

간단하게 정리해보면

 

LVM으로 하드디스크 묶기

1) Vmware 에서 하드디스크 추가(추가는 마음대로) 

2) # fdisk ?l : 인식안된 디스크목록 확인

3) # fdisk /dev/sdb ==> sdb하드디스크 선택

    Command : n             ==> 옵션n 새로운 파티션 분할

    Command action : p        ==> Primary Partition 선택

    Partition number (1-4) : 1    ==> 파티션 번호 1번 선택

    First cylinder : 엔터        ==> 시작 실린더 번호 입력(기본값1)

    Last cylinder : 엔터        ==> 마지막 실린더 번호 입력(기본값 마지막 번호이다)

    Command : t            ==> 파일시스템 유형 변경하기

    Hex Code : 8e            ==> 리눅스 파일시스템 유형 번호 입력

    Command : p            ==> 설정된 내용 확인

    Command : w            ==> 설정 저장

4) 나머지 2개도 파티션분할

5) # pvcreate /dev/sdb1    ==> 물리적인 볼륨을 생성(2번 더 반복)

6) # vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1    ==> myVG이란 이름의 볼륨그룹을 생성하여 3개의 볼륨을 묶음

7) # vgdisplay            ==> 볼륨 그룹이 제대로 생성되었는지 확인

8) # lvcreate ?L 400MB ?n myLG1 myVG            ==> myLG1이란 논리 볼륨을 생성

9) # lvdisplay            ==> 논리 볼륨 확인

10) # mkfs.ext3  /dev/myVG/myLG1          ==> etx3 파일시스템으로 포맷

11) # mkdir /data1        ==> 마운트할 디렉토리 생성

12) # mount /dev/myVG/myLG1 /data1        ==> /data1 에 마운트

이것도 역시나 부팅시 마운트 한상태로 부팅하기 위해서는 vi에디터로 /etc/fstab마지막에 부분에 /dev/myVG/myLG1   /data1   ext3   defaults   1 1을 추가하면 됩니다.

'Linux(OS)' 카테고리의 다른 글

Red Hat Enterprise Linux 6 Installation  (0) 2013.05.18
Veritas Volume Manager  (0) 2012.07.31
[Kor]RHEL4 IBMPower Installation Guide  (0) 2011.07.08
[Kor]RHEL5 Virtualization Guide  (0) 2011.07.08
[Kor]RHEL5 Installation Guide  (0) 2011.07.08