태그 보관물: vg

CentOS7 LVM 생성 및 설정 방법

LVM 개요

LVM(Logical Volume Manager)은 관리자가 파일 시스템과 사용 중인 물리 저장소 사이의 추상 레이어를 제공하여 메타 장치를 만들 수 있게 한다. (파일 시스템이 있는)메타 장치는 논리 볼륨이며, 저장소 풀에서 사용하는 저장소를 볼륨 그룹 이라고 말한다. 볼륨 그룹은 데이터를 저장하는 하나 이상의 실제 장치로 구성 되어 있다.

물리 볼륨은 파티션으로 구성되어 있고, 전체 SATA 하드 디스크 드라이브는 JBOD(Just a Bunch Of Disks), RAID 체계, iSCSI, 광 채널, eSATA 등으로 묶도록 한다.

*이 문서는 lvm 를 초기 구성하기 쉽게 설명한 가이드이다. 세부적인 내용은 다루지 않는다.

LVM 설치 및 구성

설치

설치 환경
os : centos 7 (64bit)
ram : 1G
hdd : 2G x 3

yum install lvm*

설치가 완료되었으면 실행 하도록 합니다.

lvm 를 별도로 시작할 경우

systemctl start lvm2-monitor.service

부팅할때 실행할 경우

systemctl enable lvm2-monitor.service

자신의 현재 보유하고 있는 디스크를 확인한다.

fdisk -l

필자가 테스트로 운영중인 서버에서는 현재 2G 디스크 3개를 구성하였다. 이 3개의 디스크를 이용해서 lvm 구성을 해보도록 한다. 그림을 잘 보시면 분할공간 형식인 Id 값이 8e 형태로 되어있어야지 lvm 구성이 되는 디바이스이다. 이점 꼭 참고하시기 바란다.

방법은 아래 그림을 참고하면 될 것 같다.

PV 만들기

파티션을 나누셨으면, 이제 PV 를 만들 차례이다.

[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@localhost ~]#

[root@localhost ~]# pvdisplay
  "/dev/sdb1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name            
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               7nr6RN-JrBQ-ImCf-Qmvb-YA9b-VAH8-wb4iM4
[root@localhost ~]#

확인을 꼭 하도록 한다.

나머지 디스크 또한 동일하게 pv 생성 한다.

[root@localhost ~]# pvscan 
  PV /dev/sdb1         lvm2 [2.00 GiB]
  PV /dev/sdd1         lvm2 [2.00 GiB]
  PV /dev/sdc1         lvm2 [2.00 GiB]
  Total: 3 [6.00 GiB] / in use: 0 [0   ] / in no VG: 3 [6.00 GiB]

그럼 이런식으로 나타나게 된다.

VG(볼륨 그룹)

볼륨 그룹(VG)은 수많은 물리 볼륨을 묶고 장치 파일 시스템에 /dev/VG_NAME와 같은 식으로 보여준다. 볼륨 그룹의 이름은 관리자가 선택한다.

VG 만들기

[root@localhost ~]# vgcreate vg0 /dev/sdb1
  Volume group "vg0" successfully created

여기서 vg 를 확장함으로써, 디스크 용량을 늘렸다 줄였다 조절할수 있다. vg를 확장해야만 나중에 lv 에서 확실한 용량 분배가 된다.

[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  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               2.00 GiB
  PE Size               4.00 MiB
  Total PE              511
  Alloc PE / Size       0 / 0
  Free  PE / Size       511 / 2.00 GiB
  VG UUID               MA92Io-yqWu-Jrrm-Apax-MYeT-uWoA-Mhq1Im

VG 확장

[root@localhost ~]# vgextend vg0 /dev/sdc1
  Volume group "vg0" successfully extended
[root@localhost ~]# vgextend vg0 /dev/sdd1
  Volume group "vg0" successfully extended
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID          
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  3
  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               5.99 GiB
  PE Size               4.00 MiB
  Total PE              1533
  Alloc PE / Size       0 / 0
  Free  PE / Size       1533 / 5.99 GiB
  VG UUID               MA92Io-yqWu-Jrrm-Apax-MYeT-uWoA-Mhq1Im

LV(논리 볼륨)

논리 볼륨은 시스템에 존재하는 최종 메타 장치이며, 보통 파일 시스템에 만들게 된다. 볼륨 그룹에 만들고 관리하며 /dev/VG_NAME/LV_NAME 형식으로 나타나게 된다. 볼륨 그룹처럼, 논리 볼륨에 사용하는 이름은 관리자가 결정한다.

LV 만들기

[root@localhost ~]# lvcreate -L 5.9G -n test vg0
  Rounding up size to full physical extent 5.90 GiB
WARNING: ext4 signature detected on /dev/vg0/test at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/vg0/test.
  Logical volume "test" created.

[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/test
  LV Name                test
  VG Name                vg0
  LV UUID                kBdxQy-1ADs-LR8k-TRhq-dU9I-aLIe-FZeE81
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-23 16:50:38 +0900
  LV Status              available
  # open                 0
  LV Size                5.90 GiB
  Current LE             1511
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

fdisk -l

를 해보면 위의 그림처럼 lvm 디바이스를 확인할수 있다.

이제 포맷을 해야된다.

mkfs.ext4 /dev/mapper/vg0-test
[root@localhost ~]# mount /dev/mapper/vg0-test /media/

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              11G  5.5G  4.9G  53% /
devtmpfs              912M     0  912M   0% /dev
tmpfs                 921M     0  921M   0% /dev/shm
tmpfs                 921M   12M  909M   2% /run
tmpfs                 921M     0  921M   0% /sys/fs/cgroup
/dev/sda1             497M  113M  385M  23% /boot
tmpfs                 185M     0  185M   0% /run/user/0
/dev/mapper/vg0-test  5.7G   24M  5.4G   1% /media

정상적으로 생성이 된 파티션을 확인 할 수 있다.

성공적이다.

최종 테스트

새로 구성된 디바이스에 파일을 생성해 보도록 하겠습니다.

[root@localhost media]# dd if=/dev/zero of=test1 bs=1M count=10 
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0271646 s, 386 MB/s

[root@localhost media]# ll
합계 10256
drwx------. 2 root root    16384  5월 23 17:02 lost+found
-rw-r--r--. 1 root root 10485760  5월 23 17:05 test1

잘 된다.

LV 용량 조절

[root@localhost ~]# umount /media/

[root@localhost ~]# e2fsck -f /dev/mapper/vg0-test
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg0-test: 12/387072 files (8.3% non-contiguous), 65678/1547264 blocks

[root@localhost ~]# resize2fs /dev/mapper/vg0-test 4G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/vg0-test to 1048576 (4k) blocks.
The filesystem on /dev/mapper/vg0-test is now 1048576 blocks long.

[root@localhost ~]# mount /dev/mapper/vg0-test /media/

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              11G  5.5G  4.9G  53% /
devtmpfs              912M     0  912M   0% /dev
tmpfs                 921M     0  921M   0% /dev/shm
tmpfs                 921M   12M  909M   2% /run
tmpfs                 921M     0  921M   0% /sys/fs/cgroup
/dev/sda1             497M  113M  385M  23% /boot
tmpfs                 185M     0  185M   0% /run/user/0
/dev/mapper/vg0-test  3.9G   34M  3.6G   1% /media

늘리고 싶으시면 저기 4G 를 자신이 원하는 용량만큼 조절하면 된다. 디스크 추가를 하시면 VG 에서 꼭 vgextend 해주면 된다.