LVM Disk 확장 가이드

작성자 이경미 수정일 2023-07-27 17:21

들어가며

  • LVM 논리볼륨관리자를 통해 추가된 hard disk 를 원하는 공간에 추가 및 확장할 수 있습니다. 
  • 특정 경로에 추가한 스토리지를 할당하는 방법을 알 수 있습니다. 
  • 기존 경로의 스토리지를 확장하는 방법을 알 수 있습니다.
  • pv, vg, lv 에 대한 이해도가 필요하다면 다음을 클릭하여 이해도를 높일 수 있습니다.  



내용

모든 확장가이드는 Hard Disk 가 추가된 상태에서 작성된 글 입니다. 


사전 작업 

  1. 추가된 하드 디스크 확인
    # 추가된 하드디스크 확인 
    ll /dev/sdb*
    brw-rw---- 1 root disk 8, 16 Jul 26 01:27 /dev/sdb
    brw-rw---- 1 root disk 8, 18 Jul 26 01:55 /dev/sdb2

  2. LVM 생성
    fdisk /dev/sdb


    LVM 설정 화면 

    Welcome to fdisk (util-linux 2.34).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x6353c958.
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 
    First sector (2048-209715199, default 2048): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): 
    
    Created a new partition 2 of type 'Linux' and of size 100 GiB.
    
    Command (m for help): t
    Selected partition 2
    Hex code (type L to list all codes): L
    
     0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
     1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
     2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
     3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden or  c6  DRDOS/sec (FAT-
     4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
     5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
     6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
     7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
     8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
     9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
     a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
     b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
     c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi ea  Rufus alignment
     e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        
     f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT            
    10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
    11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC b
    12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
    14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f4  SpeedStor      
    16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      f2  DOS secondary  
    17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS    
    18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE 
    1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
    1c  Hidden W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
    1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    ff  BBT            
    Hex code (type L to list all codes): 8e
    Changed type of partition 'Linux' to 'Linux LVM'.
    
    ## LVM show : p
    Command (m for help): p
    Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
    Disk model: Virtual disk    
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6353c958
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sdb2        2048 209715199 209713152  100G 8e Linux LVM
    
    ## save : w
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.



특정 경로에 용량 할당하기

특정 경로가 추가되어 용량을 할당해야한다면 다음과 같이 진행합니다. 

예시로 진행되는 경로는 /data 입니다. 


Device     Boot Start       End   Sectors  Size Id Type
/dev/sdb2        2048 209715199 209713152  100G 8e Linux LVM


  1. PV 생성
    pvcreate /dev/sdb2
    pvdisplay
      --- Physical volume ---
      PV Name               /dev/sda3
      VG Name               ubuntu-vg
      PV Size               <198.00 GiB / not usable 0   
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              50687
      Free PE               0
      Allocated PE          50687
      PV UUID               --
       
      --- Physical volume ---
      PV Name               /dev/sdb2
      VG Name               ubuntu-vg
      PV Size               <100.00 GiB / not usable 3.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              25599
      Free PE               0
      Allocated PE          25599
      PV UUID               --
  2. VG 생성
    vgcreate spsd /dev/sdb1
    vgdisplay
      --- Volume group ---
      VG Name               ubuntu-vg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               198.99 GiB
      PE Size               4.00 MiB
      Total PE              76286
      Alloc PE / Size       76286 / 297.99 GiB
      Free  PE / Size       0 / 0   
      VG UUID               --
    
      --- Volume group ---
      VG Name               spsd
      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               <100.00 GiB
      PE Size               4.00 MiB
      Total PE              38399
      Alloc PE / Size       38399 / <100.00 GiB
      Free  PE / Size       0 / 0   
      VG UUID               --

  3. LV 생성
    lvcreate -L 99.9g -n spsd-lv spsd


  4. mkfs 설정

    fdisk 로 생성한 파티션을 포멧할 때 사용합니다.

    → fdisk로 생성한 파티션은 공간만 확장되어있고, OS 는 포멧이 되지않은 상태입니다. 

    → 즉, fdisk를 사용하여 생성한 파티션은 무조건 포멧해주어야 합니다.

    mkfs.ext4 /dev/spsd/spsd-lv


  5. Mount LV
    # mount /dev/<VG_name>/<LV_name> /data
    mount /dev/spsd/spsd-lv /data


기존 경로에 용량 할당하기 

용량 이슈로 인해 동일한 경로에 증설이 필요하다면, VG 및 LV 를 확장하여 해결할 수 있습니다. 

  1. PV 생성
    pvcreate /dev/sdb2
    pvdisplay
      --- Physical volume ---
      PV Name               /dev/sda3
      VG Name               ubuntu-vg
      PV Size               <198.00 GiB / not usable 0   
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              50687
      Free PE               0
      Allocated PE          50687
      PV UUID               --
       
      --- Physical volume ---
      PV Name               /dev/sdb2
      VG Name               ubuntu-vg
      PV Size               <100.00 GiB / not usable 3.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              25599
      Free PE               0
      Allocated PE          25599
      PV UUID               --
  2. VG 확장
    vgextend ubuntu-vg /dev/sdb2
      Volume group "ubuntu-vg" successfully extended
    
    vgs
      VG        #PV #LV #SN Attr   VSize   VFree   
      ubuntu-vg   2   1   0 wz--n- 297.99g <100.00g


  3. LV 확장
    lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
      Size of logical volume ubuntu-vg/ubuntu-lv changed from <198.00 GiB (50687 extents) to 297.99 GiB (76286 extents).
      Logical volume ubuntu-vg/ubuntu-lv successfully resized.


  4. 파일 시스템 조정
    resize2fs /dev/ubuntu-vg/ubuntu-lv



마치며

  • 추가한 하드디스크의 정보를 fstab 에 등록하여 재부팅 시 자동적으로 적용할수 있게 합니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300