Linux

[리눅스] LVM(Logical Volume Manager) : 논리 볼륨 관리

인생아 2024. 10. 24. 20:00
반응형

리눅스에서 LVM(Logical Volume Manager)은 물리적인 저장 장치를 논리적인 저장소로 관리할 수 있도록 해주는 매우 유용한 도구입니다. LVM을 사용하면 디스크 공간을 보다 효율적으로 관리할 수 있으며, 디스크의 크기를 동적으로 확장하거나 축소하는 것이 가능합니다. 또한, 시스템 관리자는 스냅샷을 사용해 데이터를 백업하거나 RAID 구성에 유사한 방식으로 여러 디스크를 결합할 수 있습니다.

LVM의 주요 개념

LVM을 이해하기 위해서는 몇 가지 중요한 개념을 알아야 합니다.

  • Physical Volume (PV): 실제 물리적인 디스크나 파티션을 의미합니다.
  • Volume Group (VG): 여러 개의 Physical Volume을 묶어서 하나의 논리적인 디스크처럼 관리하는 그룹입니다.
  • Logical Volume (LV): Volume Group에서 논리적으로 분할된 공간을 의미합니다. 이 논리 볼륨을 통해 사용자는 파일 시스템을 생성하고 데이터를 저장할 수 있습니다.

LVM 설정 과정

LVM을 설정하는 과정은 다음과 같습니다:

  1. 물리적 볼륨 생성
  2. 볼륨 그룹 생성
  3. 논리적 볼륨 생성
  4. 파일 시스템 생성 및 마운트

1. 물리적 볼륨 생성

먼저, LVM으로 사용할 물리적 볼륨을 설정해야 합니다. pvcreate 명령어를 사용하여 물리적 볼륨을 생성할 수 있습니다.

pvcreate /dev/sdb

실행 예시:

user@linux:~/workspace$ sudo pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

2. 볼륨 그룹 생성

물리적 볼륨을 그룹으로 묶는 Volume Group을 생성하려면 vgcreate 명령어를 사용합니다.

vgcreate my_volume_group /dev/sdb

실행 예시:

user@linux:~/workspace$ sudo vgcreate my_volume_group /dev/sdb
  Volume group "my_volume_group" successfully created

3. 논리적 볼륨 생성

이제 Volume Group에서 Logical Volume을 생성할 수 있습니다. lvcreate 명령어를 사용하여 논리적 볼륨을 생성합니다. 여기서는 10GB 크기의 논리적 볼륨을 생성합니다.

lvcreate -L 10G -n my_logical_volume my_volume_group

실행 예시:

user@linux:~/workspace$ sudo lvcreate -L 10G -n my_logical_volume my_volume_group
  Logical volume "my_logical_volume" created.

4. 파일 시스템 생성 및 마운트

논리적 볼륨이 생성되면 그 위에 파일 시스템을 생성하고 이를 마운트할 수 있습니다. 예를 들어, ext4 파일 시스템을 생성하려면 mkfs 명령어를 사용합니다.

mkfs.ext4 /dev/my_volume_group/my_logical_volume

실행 예시:

user@linux:~/workspace$ sudo mkfs.ext4 /dev/my_volume_group/my_logical_volume
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 9f8f1c1c-2c47-46ed-8302-3e2bc7b44a01
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

그 다음 마운트 명령어로 논리적 볼륨을 원하는 디렉터리에 마운트합니다.

mount /dev/my_volume_group/my_logical_volume /mnt

실행 예시:

user@linux:~/workspace$ sudo mount /dev/my_volume_group/my_logical_volume /mnt

LVM 크기 확장

LVM의 장점 중 하나는 볼륨을 동적으로 확장할 수 있다는 점입니다. 논리적 볼륨의 크기를 늘리고자 할 때는 lvextend 명령어를 사용합니다.

lvextend -L +5G /dev/my_volume_group/my_logical_volume

실행 예시:

user@linux:~/workspace$ sudo lvextend -L +5G /dev/my_volume_group/my_logical_volume
  Size of logical volume my_volume_group/my_logical_volume changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume my_volume_group/my_logical_volume successfully resized.

그 후 파일 시스템의 크기도 확장해야 합니다. ext4 파일 시스템을 사용하는 경우 resize2fs 명령어로 확장할 수 있습니다.

resize2fs /dev/my_volume_group/my_logical_volume

실행 예시:

user@linux:~/workspace$ sudo resize2fs /dev/my_volume_group/my_logical_volume
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/my_volume_group/my_logical_volume is mounted on /mnt; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/my_volume_group/my_logical_volume is now 3932160 (4k) blocks long.

LVM의 장점 및 활용

  • 유연한 디스크 관리: 물리적 디스크를 논리적 볼륨으로 통합해 관리할 수 있어 공간 확장 및 축소가 쉽습니다.
  • 스냅샷 기능: 특정 시점의 데이터를 스냅샷으로 저장해 두어 시스템 백업 및 복구가 가능합니다.
  • 성능 최적화: 여러 디스크를 하나의 볼륨으로 묶어 I/O 성능을 향상시킬 수 있습니다.

결론

LVM(Logical Volume Manager)는 리눅스 시스템에서 저장 장치 관리를 보다 유연하고 효율적으로 할 수 있게 도와주는 강력한 도구입니다. 이를 통해 여러 디스크를 하나의 논리적 그룹으로 묶고, 디스크의 크기를 동적으로 관리하거나 스냅샷을 생성하여 데이터를 백업할 수 있습니다. 시스템 관리자는 LVM을 통해 더 유연하고 강력한 스토리지 솔루션을 제공받을 수 있습니다.

참고사이트

반응형