LVM (Logical Volume Manager)

zuckerfrei·2023년 5월 29일
0

Linux

목록 보기
1/7

DB서버 용량을 500GB -> 1.5TB 증가시켜야했다.
추후 확장성을 고려해서 이번 기회에 LVM으로 구성하는 편이 낫겠다고 생각했다.


LVM

Logical Volume Manager

  • 리눅스에서 사용되는 논리 볼륨 관리 도구
  • 물리적인 하드 드라이브를 논리적인 볼륨으로 추상화하여 유연하고 효율적인 저장장치 관리를 제공
  • 장점
    • 유연한 용량 조절
    • 확장성 ⭐️
    • 스냅샷 및 백업

실습을 통해 내가 파악한 LVM구성은 아래와 같다.

PE(physical extent)와 LE(logical extent)라는 개념도 있는데, 각각 pv와 lv를 구성하는 구성요소이며 용량이 각 4MB라고 한다.

pe le 그림 출처


예시

  1. 물리적 스토리지 준비
    NCP 콘솔 > Storage > 추가

  2. 파티션 생성
    fdiskparted와 같은 도구를 사용하여 수행

    
    fdisk /dev/xvdc
    fdisk /dev/xvdd

    파티션 생성 확인

    [root@test-server ~]# lsblk
    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0  50G  0 disk
    ├─xvda1 202:1    0   1G  0 part /boot
    └─xvda2 202:2    0  49G  0 part /
    xvdb    202:16   0  10G  0 disk
    └─xvdb1 202:17   0  10G  0 part /data-tmp
    xvdc    202:32   0  10G  0 disk
    └─xvdc1 202:33   0  10G  0 part
    xvdd    202:48   0  10G  0 disk
    └─xvdd1 202:49   0  10G  0 part
  3. pv 물리적 볼륨 생성

    생성한 파티션을 물리적 볼륨(LPV, Logical Physical Volume)로 설정

    # fdisk로 추가한 파티션을 입
    pvcreate /dev/xvdc1
    pvcreate /dev/xvdd1
    [root@test-server ~]# pvcreate /dev/xvdc1
    Physical volume "/dev/xvdc1" successfully created.
    [root@test-server ~]# pvcreate /dev/xvdd1
    Physical volume "/dev/xvdd1" successfully created.
  4. vg 볼륨 그룹 생성
    물리적 볼륨을 하나의 볼륨 그룹(VG, Volume Group)으로 묶기

    vgcreate data-vg /dev/xvdc1 /dev/xvdd1
    [root@test-server ~]# vgcreate data-vg /dev/xvdc1 /dev/xvdd1
    Volume group "data-vg" successfully created
      
    [root@test-server ~]# vgs
    VG      #PV #LV #SN Attr   VSize  VFree
    data-vg   2   1   0 wz--n- 19.99g    0
  5. lv 논리 볼륨 생성
    논리 볼륨(LV, Logical Volume)을 생성하여 필요한 크기인 3TB로 설정

    XFS 파일 시스템을 사용할 것이므로 해당 논리 볼륨을 XFS로 포맷

    lvcreate -l 100%VG -n data-lv data-vg
    mkfs.xfs /dev/data-vg/data-lv
    [root@test-server ~]# lvcreate -l 100%VG -n data-lv data-vg
    Logical volume "data-lv" created.
      
    [root@test-server ~]# mkfs.xfs /dev/data-vg/data-lv
    meta-data=/dev/data-vg/data-lv   isize=512    agcount=4, agsize=1310208 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5240832, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
      
    [root@test-server ~]# lvs
      LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      data-lv data-vg -wi-a----- 19.99g
  6. 마운트
    생성한 XFS 파일 시스템을 원하는 경로에 마운트

    mount /dev/data-vg/data-lv /data
    
    [root@test-server ~]# mkdir /data
    [root@test-server ~]# mount /dev/data-vg/data-lv /data
      
    [root@test-server ~]# lsblk
    NAME                  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda                  202:0    0  50G  0 disk
    ├─xvda1               202:1    0   1G  0 part /boot
    └─xvda2               202:2    0  49G  0 part /
    xvdb                  202:16   0  10G  0 disk
    └─xvdb1               202:17   0  10G  0 part /data-tmp
    xvdc                  202:32   0  10G  0 disk
    └─xvdc1               202:33   0  10G  0 part
      └─data--vg-data--lv 253:0    0  20G  0 lvm  /data
    xvdd                  202:48   0  10G  0 disk
    └─xvdd1               202:49   0  10G  0 part
      └─data--vg-data--lv 253:0    0  20G  0 lvm  /data
      
    [root@test-server ~]# df -h
    Filesystem                     Size  Used Avail Use% Mounted on
    devtmpfs                       1.9G     0  1.9G   0% /dev
    tmpfs                          1.9G  8.0K  1.9G   1% /dev/shm
    tmpfs                          1.9G   90M  1.8G   5% /run
    tmpfs                          1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/xvda2                      49G   27G   23G  55% /
    /dev/xvda1                    1014M  246M  769M  25% /boot
    tmpfs                          378M     0  378M   0% /run/user/1001
    overlay                         49G   27G   23G  55% /var/lib/docker/overlay2/0d9fd867b80e03dc6474db6aa7e1addbae2c62018f83d0a98719208c33d31637/merged
    /dev/xvdb1                      10G   33M   10G   1% /data-tmp
    /dev/mapper/data--vg-data--lv   20G   33M   20G   1% /data
profile
무설탕 음료를 좋아합니다

0개의 댓글