웹사이트 검색

Linux에서 LVM을 사용하여 디스크 저장소를 만드는 방법 - 1부


논리 볼륨 관리(LVM)는 디스크 공간 관리를 크게 단순화하는 강력한 도구입니다. LVM을 사용하면 파일 시스템에 추가 공간을 할당하는 작업이 쉬워집니다.

파일 시스템에 더 많은 공간이 필요할 때마다 해당 볼륨 그룹의 사용 가능한 공간에서 쉽게 가져올 수 있습니다. 결과적으로, 특정 요구 사항에 맞게 파일 시스템의 크기를 동적으로 조정할 수 있습니다.

또한 LVM은 디스크 오류 발생 시 강력한 데이터 보호 기능을 제공합니다. 디스크에 오류 징후가 나타나기 시작하면 교체 디스크를 새 물리 볼륨으로 볼륨 그룹에 원활하게 통합할 수 있습니다.

이렇게 하면 논리 볼륨을 새 디스크로 효율적으로 마이그레이션하여 연속성을 보장하고 잠재적인 데이터 손실을 방지할 수 있습니다.

본질적으로 LVM은 관리자가 비교할 수 없는 유연성과 복원력으로 디스크 공간 할당 및 관리를 처리할 수 있도록 해줍니다. 동적 크기 조정 기능과 내장된 중복 기능은 모든 시스템 구성에서 스토리지 활용도를 최적화하고 데이터 무결성을 향상시키는 데 없어서는 안 될 자산입니다.

다음과 같은 필수 주제에 대한 심층 탐구를 통해 1부부터 6부까지 신중하게 제작된 포괄적인 시리즈 'LVM(논리 볼륨 관리) 설정 준비'를 소개합니다.

LVM 설정을 진행하기 전에 다음 전제 조건을 고려하십시오.

내 서버 설정 – 요구 사항
  • OS – LVM 설치가 포함된 RHEL 9
  • IP – 192.168.0.200
  • 디스크 – 각각 20GB의 디스크 3개.

Linux에서 LVM 디스크 저장소 확인

1. LVM 설정에 대한 통찰력을 얻으려면 다음 명령을 활용하여 고유 구성요소를 표시할 수 있습니다. 물리적 볼륨(PV), < Strong>볼륨 그룹(VG) 및 논리 볼륨(LV).

pvs 
vgs
lvs

위 스크린샷에 표시된 각 매개변수에 대한 설명은 다음과 같습니다.

  • 물리적 디스크 크기(PV 크기)
  • 사용된 디스크는 가상 디스크 sda입니다.
  • 볼륨 그룹 크기(VG 크기)
  • 볼륨 그룹 이름(vg_tecmint)
  • 논리 볼륨 이름(LogVol00, LogVol01)
  • LogVol00 956MB 크기의 스왑에 할당됨
  • LogVol01 18.63GB에 할당됨

따라서 여기에서 VDA 디스크에 여유 공간이 충분하지 않다는 것을 알게 됩니다.

LVM에서 새 볼륨 그룹 생성

2.볼륨 그룹을 생성하려면 이 서버에 하드 디스크 3개를 추가해야 합니다. 그러나 3개의 드라이브를 반드시 사용해야 하는 것은 아닙니다. 해당 VG 내에 새로운 VGLV(논리 볼륨)를 생성하는 데는 1개만으로도 충분합니다.

데모 목적으로 여기에 다음 3개의 디스크를 추가하고 더 많은 기능 명령 설명을 제공합니다.

sdb, sdc, sdd

3. 디스크 이름, 크기, 파티션 유형, 시작 및 끝 섹터 등과 같은 모든 디스크와 해당 파티션을 나열하려면 표시된 대로 fdisk 유틸리티를 사용하십시오.

fdisk -l

위 스크린샷에 표시된 각 디스크에 대한 설명은 다음과 같습니다.

  • 운영 체제에 사용되는 기본 디스크는 RHEL 9입니다.
  • 기본 디스크에 정의된 파티션은 다음과 같습니다: (sda1=boot), (sda2=/).
  • 또한 추가된 디스크는 Disk1, Disk2 및 Disk3으로 언급됩니다.

각 디스크의 크기는 20GB입니다.

4. 이제 vgdisplay 명령을 실행하여 이름, 크기, 여유 공간, 물리적 볼륨(PV)을 포함하여 시스템에 있는 모든 볼륨 그룹에 대한 자세한 정보를 봅니다. 정보, 그리고 더 많은 것.

vgdisplay

위 스크린샷에 표시된 각 매개변수에 대한 설명은 다음과 같습니다.

  • VG 이름 – 볼륨 그룹 이름입니다.
  • 형식 – lvm2를 사용하는 LVM 아키텍처입니다.
  • VG 액세스볼륨 그룹이 읽기 및 쓰기 모드에 있으며 사용할 준비가 되어 있습니다.
  • VG 상태 – 볼륨 그룹의 크기를 조정할 수 있습니다. 공간을 더 추가해야 하면 확장할 수 있습니다.
  • Cur LV – 현재 이 볼륨 그룹에는 2개의 논리 볼륨이 있습니다.
  • CurPV 및 Act PV – 현재 사용 중인 물리 디스크는 1(vda)이고 활성 상태입니다. 따라서 이 볼륨 그룹을 사용할 수 있습니다.
  • PE 크기 – PE(물리적 범위) 및 디스크 크기는 PE 또는 GB 크기를 사용하여 정의할 수 있습니다. LVM의 기본 PE 크기는 4MB입니다. 예를 들어 5GB 논리 볼륨을 생성해야 하는 경우 총 1280개 PE를 사용할 수 있습니다. 내가 말하는 것을 이해 했어?

설명은 다음과 같습니다. 1GB는 1024MB이므로 1024MB x 5=5120 PE=5GB입니다. 이제 5120을 4=1280으로 나눕니다. 4가 기본 PE 크기입니다.

  • 총 PE – 이 볼륨 그룹에는 다음이 있습니다.
  • Alloc PE – 사용된 총 PE, 이미 사용된 전체 PE, 5008 x 4PE=20032.
  • 무료 PE – 여기서는 이미 사용되었으므로 무료 PE가 없습니다.

5. 이제 파일 시스템 디스크 공간 정보를 나열합니다. 여기서는 sda/boot, /와 함께 사용됩니다. LVM을 사용하여 sda 물리적 디스크를 스왑합니다. 이 디스크에 남은 공간이 없습니다.

df -TH

위 이미지는 우리가 사용하고 있는 마운트 포인트를 보여주고 있으며, 19GB는 루트에 전부 사용되어 여유 공간이 없습니다.

디스크 파티션 생성

6. 그러면 tecmint_add_vg라는 이름의 새로운 물리 볼륨(PV)과 볼륨 그룹(VG)을 생성하고 그 안에 논리 볼륨(LV)을 생성해 보겠습니다. 여기서는 tecmint_documents, tecmint_managertecmint_public이라는 이름을 가진 4개의 논리 볼륨을 생성할 수 있습니다.

더 많은 공간을 확보하기 위해 현재 사용되는 VG볼륨 그룹을 확장할 수 있습니다. 하지만 이 경우에는 새로운 볼륨 그룹을 생성하고 실험해 보겠습니다. 나중에 현재 사용 중인 볼륨 그룹의 파일 시스템을 확장하는 방법을 살펴보겠습니다.

새 디스크를 사용하기 전에 표시된 대로 fdisk 명령을 사용하여 디스크를 파티션해야 합니다.

fdisk -c /dev/sdb

그런 다음 아래 단계에 따라 새 파티션을 만듭니다.

  • 새로 만들려면 n을 선택하세요.
  • 기본 파티션을 생성하려면 p를 선택하세요.
  • 생성해야 하는 파티션 수를 선택합니다.
  • 디스크의 전체 공간을 사용하려면 enter를 두 번 누르세요.
  • 새로 생성된 파티션 유형 t의 유형을 변경해야 합니다.
  • 변경해야 할 파티션 수는 1을 생성한 번호를 선택하세요.
  • 여기서 유형을 변경해야 합니다. LVM을 생성해야 하므로 LVM의 유형 코드를 8e로 사용하겠습니다. 유형 코드를 모르는 경우 L을 누르세요. 모든 유형의 코드를 나열합니다.
  • 확인을 위해 생성한 파티션을 인쇄합니다.
  • 여기서 ID는 8e LINUX LVM으로 표시됩니다.
  • 변경 사항을 기록하고 fdisk를 종료합니다.

7. 다른 2개의 디스크 sdcsdd에 대해 위 단계를 수행하여 새 파티션을 만듭니다. 그런 다음 시스템을 다시 시작하여 fdisk 명령을 사용하여 파티션 테이블을 확인합니다.

fdisk -l

LVM 물리 볼륨 생성

8. 이제 3개의 디스크를 모두 사용하여 물리 볼륨을 생성할 차례입니다. 여기에서는 'pvs' 명령을 사용하여 물리적 디스크를 나열했는데 이제 하나의 기본 PV만 나열됩니다.

pvs

9. 그런 다음 새 물리 디스크를 생성하고 새로 생성된 물리 디스크를 확인합니다.

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
pvs

LVM 볼륨 그룹 생성

10. 사용 가능한 무료 PVPE 크기 32를 사용하여 tecmint_add_vg라는 볼륨 그룹을 생성합니다. 현재 볼륨 그룹을 보면 1 PV가 사용 중인 하나의 볼륨 그룹이 있음을 알 수 있습니다.

vgs

11. 그러면 32MB PE 크기와 마지막 단계에서 생성한 3개의 물리적 볼륨을 사용하여 tecmint_add_vg라는 볼륨 그룹이 생성됩니다.

vgcreate -s 32M tecmint_add_vg /dev/sdb1 /dev/sdc1 /dev/sdd1

12. 다음으로 vgs 명령을 다시 실행하여 볼륨 그룹을 확인합니다.

vgs

vgs 명령 출력 이해:

  • 볼륨 그룹 이름.
  • 이 볼륨 그룹에 사용되는 물리 볼륨입니다.
  • 이 볼륨 그룹에서 사용 가능한 여유 공간을 표시합니다.
  • 볼륨 그룹의 총 크기입니다.
  • 이 볼륨 그룹 내의 논리 볼륨은 아직 생성되지 않았으므로 0이 있습니다.
  • SN=볼륨 그룹에 포함된 스냅샷 수. (나중에 스냅샷을 생성할 수 있습니다)
  • 볼륨 그룹의 상태는 쓰기 가능, 읽기 가능, 크기 조정 가능, 내보내기, 부분 및 클러스터형입니다. 여기서 wz–n-은 w=쓰기 가능, z=크기 조정 가능을 의미합니다.
  • 이 볼륨 그룹에 사용된 PV(물리적 볼륨) 수입니다.

13. 볼륨 그룹에 대한 추가 정보를 표시하려면 다음 명령을 사용하십시오.

vgs -v

14. 새로 생성된 볼륨 그룹에 대한 자세한 정보를 보려면 다음 명령을 실행하십시오.

vgdisplay tecmint_add_vg

위 스크린샷에 표시된 각 매개변수에 대한 설명은 다음과 같습니다.

  • 볼륨 그룹 이름
  • LVM 아키텍처가 사용되었습니다.
  • 읽기 및 쓰기 상태가 가능하며 사용할 준비가 되어 있습니다.
  • 이 볼륨 그룹은 크기를 조정할 수 있습니다.
  • 실제 디스크가 사용되지 않았으며 활성 상태입니다.
  • 볼륨 그룹 전체 크기.
  • 여기서 단일 PE 크기는 32였습니다.
  • 이 볼륨 그룹에서 사용 가능한 총 PE 수입니다.
  • 현재 이 VG 내에 LV를 생성하지 않았으므로 완전히 무료입니다.
  • 이 볼륨 그룹의 UUID입니다.

LVM 논리 볼륨 생성

15. 이제 tecmint_documents, tecmint_managertecmint_public이라는 3개의 논리 볼륨을 생성합니다. 여기서는 PE 크기와 GB 크기를 모두 사용하여 논리 볼륨을 생성하는 방법을 보여줍니다.

먼저 다음 명령을 사용하여 현재 논리 볼륨을 나열합니다.

lvs

16. 이 논리 볼륨은 vg_tecmint 볼륨 그룹에 있습니다. 논리 볼륨을 생성하는 데 사용할 수 있는 여유 공간이 얼마나 되는지 확인하려면 'vgs' 명령을 사용하여 볼륨 그룹과 사용 가능한 물리 볼륨을 나열하세요.

vgs

볼륨 그룹 크기는 거의 60GB이고 사용되지 않으므로 그 안에 LV를 생성할 수 있습니다. 볼륨 그룹을 동일한 크기로 나누어 3개의 논리 볼륨을 생성해 보겠습니다. 이는 60GB/3=20GB를 의미합니다. 각 논리 볼륨은 생성 후 크기가 20GB가 됩니다.

방법 1: PE 크기를 사용하여 논리 볼륨 생성

먼저 PE(물리적 확장) 크기를 사용하여 논리 볼륨을 생성해 보겠습니다. 새 논리 볼륨을 생성하려면 이 볼륨 그룹에 할당된 기본 PE 크기와 사용 가능한 총 PE를 알아야 합니다.

이 정보를 얻으려면 다음 명령을 실행하십시오.

vgdisplay tecmint_add_vg

  • 이 VG에 할당된 기본 PE는 32MB입니다. 여기서 단일 PE 크기는 32MB입니다.
  • 총 사용 가능한 PE는 1917입니다.

bc 명령을 사용하여 약간의 계산을 수행하고 확인하십시오.

bc
1917PE/3 = 639 PE. 
639 PE x 32MB = 20448 --> 20GB

bc를 종료하려면 CRTL+D를 누르세요.

이제 639개의 PE를 사용하여 3개의 논리 볼륨을 생성해 보겠습니다. 여기서 -l은 크기를 확장하는 데 사용되었고 -n은 논리 볼륨 이름을 할당하는 데 사용되었습니다.

lvcreate -l 639 -n tecmint_documents tecmint_add_vg
lvcreate -l 639 -n tecmint_manager tecmint_add_vg
lvcreate -l 639 -n tecmint_public tecmint_add_vg

lvs 명령을 사용하여 생성된 논리 볼륨을 나열합니다.

lvs

방법 2: GB 크기를 사용하여 논리 볼륨 생성

GB 크기를 사용하여 논리 볼륨을 생성하는 동안 정확한 크기를 얻을 수 없습니다. 따라서 더 좋은 방법은 확장을 사용하여 생성하는 것입니다.

lvcreate -L 20G -n tecmint_documents tecmint_add_vg
lvcreate -L 20G -n tecmint_manager tecmint_add_vg
lvcreate -L 20G -n tecmint_public tecmint_add_vg
lvcreate -L 20G -n tecmint_public tecmint_add_vg

lvs 명령을 사용하여 생성된 논리 볼륨을 나열합니다.

lvs

여기서는 세 번째 LV를 생성하는 동안 20GB로 반올림할 수 없다는 것을 알 수 있습니다. 이는 크기가 약간 변경되었기 때문이지만 확장 크기를 사용하여 LV를 생성하는 동안 이 문제는 무시됩니다.

파일 시스템 생성

17. 논리 볼륨을 사용하려면 포맷해야 합니다. 여기서는 ext4 파일 시스템을 사용하여 볼륨을 생성하고 /mnt/ 아래에 마운트하겠습니다.

mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents
mkfs.ext4 /dev/tecmint_add_vg/tecmint_public
mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager

18. /mnt에 디렉터리를 만들고 파일 시스템에서 만든 논리 볼륨을 마운트하겠습니다.

mount /dev/tecmint_add_vg/tecmint_documents /mnt/tecmint_documents/
mount /dev/tecmint_add_vg/tecmint_public /mnt/tecmint_public/
mount /dev/tecmint_add_vg/tecmint_manager /mnt/tecmint_manager/

19. 다음을 사용하여 마운트 지점을 나열하고 확인합니다.

 
df -h

논리 볼륨의 영구 마운트

20. 이제 임시로 마운트되었습니다. 영구 마운트하려면 fstab에 항목을 추가해야 합니다. 이를 위해 다음을 사용하여 mtab에서 마운트 항목을 가져올 수 있습니다.

cat /etc/mtab

21. mtab에서 마운트 항목 내용 복사본을 입력하는 동안 fstab 항목을 약간 변경해야 합니다. rw를 기본값으로 변경해야 합니다.

vi /etc/fstab

fstab 항목은 아래 샘플과 유사해야 합니다.

/dev/mapper/tecmint_add_vg-tecmint_documents    /mnt/tecmint_documents  ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_public       /mnt/tecmint_public     ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_manager      /mnt/tecmint_manager    ext4    defaults 0 0

22. 마지막으로 다시 시작하기 전에 mount -a 명령을 실행하여 fstab 항목을 확인하세요.

mount -av

여기서는 물리 디스크를 물리 볼륨으로, 물리 볼륨을 볼륨 그룹으로, 볼륨 그룹을 논리 볼륨으로 사용하여 논리 볼륨으로 유연한 저장소를 설정하는 방법을 살펴보았습니다.

앞으로 나올 기사에서는 볼륨 그룹과 논리 볼륨을 확장하고, 논리 볼륨을 줄이고, 스냅샷을 찍고, 스냅샷에서 복원하는 방법을 살펴보겠습니다. 그때까지 더 많은 멋진 기사를 보려면 TecMint에 대한 업데이트를 유지하세요.