OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 여러 디스크를 하나처럼 사용 - LVM

주누다 2015. 4. 12. 02:28
반응형

LVM(Logical Volume Manager)-

- 디스크의 용량이 부족할 경우 여러 개의 디스크를 하나의 디스크처럼 사용 가능

- LVM(Logical Volume Manager) 은 파티션을 효율적으로 사용할 수 있도록 해주는 관리도구

- 한 파티션의 용량이 부족할 때 다른 파티션으로 연장하여 사용 가능



 LVM의 기본 개념

- LVM 은 독립적으로 구성된 디스크 파티션을 하나로 연결하여 한 파티션처럼 사용할 수 있도록 해줌

- PV(physical volume, 물리 볼륨) : '/dev/sdb1', '/dev/sdb2' 과 같은 실제 하드디스크의 파티션을 의미

- VG(volume group, 볼륨 그룹) : 여러 개의 PV 를 그룹으로 묶은 것을 뜻함.

 예를 들어, '/dev/sdb1', '/dev/sdb2' 가 'GRP1' 이라는 그룹을 만들 때 'GRP1' 을 'VG' 라고 함

- LV(logical volume, 논리 볼륨) : VG를 다시 적절한 크기의 파티션으로 나눌 때 각 파티션을 'LV' 라고 함

- PE(physical extent) : PV가 가진 일정한 블록을 의미

- LE(logical extent) : LV가 가진 일정한 블록을 의미


ex) 물리적 파티션(PV) 세 개를 묶어서 VG 하나를 만든 후, 이를 다시 LV 두 개로 분리.

 LV에 파일 시스템을 생성하고 마운트하여 사용



 LVM 관련 명령

 구분

 기능

 명령

 PV

PV 생성

pvcreate 파티션 이름

PV 상태 확인

pcscan

 VG

VG 생성

vgcreate VG명 파티션(PV)명1 파티션(PV)명2

VG 활성화

vgchange -a y VG명

VG 비활성화

vgchange -a n VG명

VG 삭제

vgremove VG명

VG 정보 확인

vgdisplay -v VG명

VG에 PV 추가

vgextend VG명 PV명

VG에서 PV 삭제

vgreduce VG명 PV명

VG명 변경

vgrename 기존 VG명 새 VG명


LV


LV 생성

lvcreate -l PE수 VG명 새 VG명

LV 삭제

lvremove LV명

LV 상태 확인

lvscan

LV 용량 확대

lvextent -l +PE수 LV명

LV 용량 축소

lvextent -l -PE수 LV명



 LVM 생성 과정

 순서

 내용

 명령

1

기존 파일 시스템의 종류 변경 : 83 -> 8e

fdisk

2

PV 생성

pvcreate

3

VG 생성

vgcreate

4

VG 활성화

vgchange -a y

5

LV 생성

lvcreate

6

LV에 파일 시스템 생성

mkfs, mke2fs

7

LV 마운트

mount



LVM 생성하기

- 우분투에서 LVM을 사용하려면 'lvm2' 패키지를 설치해야함

 1)

- 'lvm2' 패키지 설치

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo apt-get install lvm2
[sudo] password for sjw-lenovo:
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
lvm2 패키지는 이미 최신 버전입니다.
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic
  linux-image-3.13.0-32-generic linux-image-extra-3.13.0-32-generic
Use 'apt-get autoremove' to remove them.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 7개 업그레이드 안 함.
sjw-lenovo@sjwlenovo-Lenovo-U310:~$

=========================================================


2)

- '/dev/sdb1', '/dev/sdb2' 파일 시스템의 종류를 83(Linux) 에서 8e(Linux LVM)으로 변경

- 'fdisk' 실행하고 내부 명령 't' 를 사용하여 변경

- 변경한 뒤에는 반드시 'w' 로 저장해야함.

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 16.0 GB, 16008609792 bytes
64 heads, 32 sectors/track, 15267 cylinders, total 31266816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1026047      512000   83  Linux
/dev/sdb2         1026048     2050047      512000   83  Linux
/dev/sdb3         2050048     3074047      512000   83  Linux

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 16.0 GB, 16008609792 bytes
64 heads, 32 sectors/track, 15267 cylinders, total 31266816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1026047      512000   8e  Linux LVM
/dev/sdb2         1026048     2050047      512000   8e  Linux LVM
/dev/sdb3         2050048     3074047      512000   83  Linux

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 장치나 자원이 동작 중.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
sjw-lenovo@sjwlenovo-Lenovo-U310:~$

=========================================================


3)

- '/dev/sdb1', '/dev/sdb2' 에 PV 생성

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo pvcreate /dev/sdb2
  Couldn't find device with uuid mnx0x9-gvi8-iE8f-cXVH-hvvj-LYn3-z3AOMs.
  Can't initialize physical volume "/dev/sdb2" of volume group "grp1" without -ff
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo pvcreate -ㄹㄹ /dev/sdb2
pvcreate: 부적절한 옵션 -- '�'
  Error during parsing of command line.
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo pvcreate -ff /dev/sdb2
  Couldn't find device with uuid mnx0x9-gvi8-iE8f-cXVH-hvvj-LYn3-z3AOMs.
Really INITIALIZE physical volume "/dev/sdb2" of volume group "grp1" [y/n]? y
  WARNING: Forcing physical volume creation on /dev/sdb2 of volume group "grp1"
  Physical volume "/dev/sdb2" successfully created
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ 

=========================================================


4)

- pvscan 명령으로 PV 상태 확인

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo pvscan
[sudo] password for sjw-lenovo:
  Couldn't find device with uuid mnx0x9-gvi8-iE8f-cXVH-hvvj-LYn3-z3AOMs.
  Couldn't find device with uuid 7XeUpB-r0n8-Y8WK-SccT-pBU6-62mU-CU7u2G.
  PV unknown device   VG grp1            lvm2 [496.00 MiB / 496.00 MiB free]
  PV unknown device   VG grp1            lvm2 [496.00 MiB / 496.00 MiB free]
  PV /dev/sdb3        VG grp1            lvm2 [496.00 MiB / 496.00 MiB free]
  PV /dev/sdb1                           lvm2 [500.00 MiB]
  PV /dev/sdb2                           lvm2 [500.00 MiB]
  Total: 5 [2.43 GiB] / in use: 3 [1.45 GiB] / in no VG: 2 [1000.00 MiB]
sjw-lenovo@sjwlenovo-Lenovo-U310:~$
=========================================================


5)

- 두 PV를 통합하여 VG를 생성(VG의 이름은 grp2)

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo vgcreate grp2 /dev/sdb1 /dev/sdb2
  Volume group "grp2" successfully created
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ 

=========================================================


6)

- 생성된 VG grp2 를 활성화

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo vgchange -a y grp2
  0 logical volume(s) in volume group "grp2" now active
sjw-lenovo@sjwlenovo-Lenovo-U310:~$

=========================================================


7)

- 활성화된 VG grp2 의 상태를 vgdisply 명령으로 확인

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo vgdisplay -v grp2
    Using volume group(s) on command line
    Finding volume group "grp2"
  --- Volume group ---
  VG Name               grp2
  System ID            
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               992.00 MiB
  PE Size               4.00 MiB
  Total PE              248
  Alloc PE / Size       0 / 0  
  Free  PE / Size       248 / 992.00 MiB
  VG UUID               dwH1KU-JCie-lKfn-m3N2-O5wW-qA2G-F1cEwV
  
  --- Physical volumes ---
  PV Name               /dev/sdb1    
  PV UUID               EBsPO9-Ffn5-OKYA-qO0i-qiFa-4x12-DIpkzp
  PV Status             allocatable
  Total PE / Free PE    124 / 124
  
  PV Name               /dev/sdb2    
  PV UUID               Ufg2tg-d2rq-GBPj-tX3Q-5vcm-brle-Ap10eN
  PV Status             allocatable
  Total PE / Free PE    124 / 124
  

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ 

=========================================================


8)

- 7 번에서 확인한 결과, VG grp2 에는 PE가 총 248개 있음

- 이를 모두 합하여 하나의 LV를 생성

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo lvcreate -l 248 grp2 -n mylvm2
  Logical volume "mylvm2" created
sjw-lenovo@sjwlenovo-Lenovo-U310:~$
=========================================================


9)

- 생성된 LV의 상태를 확인해보면 ACTIVE 상태임을 확인

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo lvscan
  Couldn't find device with uuid mnx0x9-gvi8-iE8f-cXVH-hvvj-LYn3-z3AOMs.
  Couldn't find device with uuid 7XeUpB-r0n8-Y8WK-SccT-pBU6-62mU-CU7u2G.
  ACTIVE            '/dev/grp2/mylvm2' [992.00 MiB] inherit
sjw-lenovo@sjwlenovo-Lenovo-U310:~$

=========================================================


10)

- LV mylvm2 에 ext4 파일 시스템을 생성

- 9번에서 LV의 장치명이 '/dev/grp2/mylvm2' 로 되어 있음을 주의

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo mke2fs -t ext4 /dev/grp2/mylvm2
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
63488 inodes, 253952 blocks
12697 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7936 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

sjw-lenovo@sjwlenovo-Lenovo-U310:~$
=========================================================


11)

- VG의 상태를 확인하여 LV의 정보가 수정되었는지 확인

=========================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ sudo vgdisplay -v grp2
    Using volume group(s) on command line
    Finding volume group "grp2"
  --- Volume group ---
  VG Name               grp2
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               992.00 MiB
  PE Size               4.00 MiB
  Total PE              248
  Alloc PE / Size       248 / 992.00 MiB
  Free  PE / Size       0 / 0  
  VG UUID               dwH1KU-JCie-lKfn-m3N2-O5wW-qA2G-F1cEwV
  
  --- Logical volume ---
  LV Path                /dev/grp2/mylvm2
  LV Name                mylvm2
  VG Name                grp2
  LV UUID                v5II9v-45dj-Jw1T-xI8n-2PvQ-319S-fPSWRO
  LV Write Access        read/write
  LV Creation host, time sjwlenovo-Lenovo-U310, 2015-04-12 14:29:41 +0900
  LV Status              available
  # open                 0
  LV Size                992.00 MiB
  Current LE             248
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
  
  --- Physical volumes ---
  PV Name               /dev/sdb1    
  PV UUID               EBsPO9-Ffn5-OKYA-qO0i-qiFa-4x12-DIpkzp
  PV Status             allocatable
  Total PE / Free PE    124 / 0
  
  PV Name               /dev/sdb2    
  PV UUID               Ufg2tg-d2rq-GBPj-tX3Q-5vcm-brle-Ap10eN
  PV Status             allocatable
  Total PE / Free PE    124 / 0
  
sjw-lenovo@sjwlenovo-Lenovo-U310:~$
=========================================================


12)

- LV를 '/mnt/lvm' 디렉터리에 마운트하고 파일을 복사(테스트 용으로~)




반응형