67.4. LVM 논리 볼륨 관리


논리 볼륨은 파일 시스템, 데이터베이스 또는 애플리케이션에서 사용할 수 있는 가상, 블록 스토리지 장치입니다. LVM 논리 볼륨을 생성하기 위해 PV(물리 볼륨)가 볼륨 그룹(VG)으로 결합됩니다. 그러면 LVM 논리 볼륨(LV)을 할당할 수 있는 디스크 공간 풀이 생성됩니다.

67.4.1. 논리 볼륨 기능 개요

LVM(Logical Volume Manager)을 사용하면 기존 파티션 체계에서 제공할 수 없는 유연하고 효율적인 방식으로 디스크 스토리지를 관리할 수 있습니다. 다음은 스토리지 관리 및 최적화에 사용되는 주요 LVM 기능에 대한 요약입니다.

연결
연결에는 하나 이상의 물리 볼륨의 공간을 단일 논리 볼륨으로 결합하여 물리적 스토리지를 효과적으로 병합해야 합니다.
스트라이핑
스트라이핑은 여러 물리 볼륨에 데이터를 분산하여 데이터 I/O 효율성을 최적화합니다. 이 방법은 병렬 I/O 작업을 허용하여 순차적 읽기 및 쓰기에 대한 성능을 향상시킵니다.
RAID
LVM은 RAID 수준 0, 1, 4, 5, 6, 10을 지원합니다. RAID 논리 볼륨을 생성할 때 LVM은 배열의 모든 데이터 또는 패리티 하위 볼륨에 대해 크기가 한 범위인 메타데이터 하위 볼륨을 생성합니다.
씬 프로비저닝
씬 프로비저닝을 사용하면 사용 가능한 물리 스토리지보다 큰 논리 볼륨을 생성할 수 있습니다. 씬 프로비저닝을 사용하면 시스템에서 사전 결정된 양을 미리 할당하는 대신 실제 사용량에 따라 스토리지를 동적으로 할당합니다.
스냅샷
LVM 스냅샷을 사용하면 논리 볼륨의 지정 시간 사본을 생성할 수 있습니다. 스냅샷은 비어 있습니다. 원래 논리 볼륨에서 변경 사항이 발생하면 스냅샷은 COW(Copy-On-Write)를 통해 사전 변경 상태를 캡처하여 원래 논리 볼륨의 상태를 유지하기 위한 변경 사항만 늘립니다.
캐싱
LVM에서는 더 느린 블록 장치를 위해 SSD 드라이브(예: write-back 또는 write-through 캐시)와 같은 빠른 블록 장치를 사용할 수 있습니다. 사용자는 캐시 논리 볼륨을 생성하여 기존 논리 볼륨의 성능을 개선하거나 크고 느린 장치와 결합된 작고 빠른 장치로 구성된 새 캐시 논리 볼륨을 생성할 수 있습니다.

67.4.2. 논리 볼륨 스냅샷 관리

스냅샷은 특정 시점에서 다른 LV의 콘텐츠를 미러링하는 논리 볼륨(LV)입니다.

67.4.2.1. 논리 볼륨 스냅샷 이해

스냅샷을 생성할 때 다른 LV의 지정 시간 사본 역할을 하는 새 LV를 생성합니다. 처음에는 스냅샷 LV에 실제 데이터가 포함되어 있지 않습니다. 대신 스냅샷 생성 시 원래 LV의 데이터 블록을 참조합니다.

주의

스냅샷의 스토리지 사용량을 정기적으로 모니터링하는 것이 중요합니다. 스냅샷이 할당된 공간의 100%에 도달하면 유효하지 않습니다.

스냅샷을 완전히 채워지기 전에 스냅샷을 확장해야 합니다. 이 작업은 lvextend 명령을 사용하거나 /etc/lvm/lvm.conf 파일을 통해 자동으로 수행할 수 있습니다.

두꺼운 LV 스냅샷
원래 LV의 데이터가 변경되면 COW(Copy-On-Write) 시스템은 변경되지 않은 원본 데이터를 변경하기 전에 스냅샷에 복사합니다. 이렇게 하면 변경 사항이 발생할 때만 스냅샷이 크기가 증가하여 스냅샷 생성 시 원본 볼륨의 상태를 저장합니다. 두꺼운 스냅샷은 어느 정도의 스토리지 공간을 미리 할당해야 하는 LV의 유형입니다. 이 양은 나중에 확장 또는 축소할 수 있지만 원래 LV에 어떤 유형의 변경 사항을 고려해야 합니다. 이렇게 하면 공간을 너무 많이 할당하거나 너무 적게 할당하면 스냅샷 크기를 자주 늘려야 합니다.
thin LV 스냅샷

씬 스냅샷은 씬 프로비저닝된 기존 LV에서 생성된 LV의 유형입니다. 씬 스냅샷은 추가 공간을 미리 할당할 필요가 없습니다. 처음에 원래 LV와 해당 스냅샷은 모두 동일한 데이터 블록을 공유합니다. 원래 LV를 변경하면 새 데이터를 다른 블록에 쓰는 반면 스냅샷은 원본 블록을 계속 참조하여 스냅샷 생성 시 LV의 데이터에 대한 지정 시간 보기를 유지합니다.

씬 프로비저닝은 필요에 따라 디스크 공간을 할당하여 스토리지를 효율적으로 최적화하고 관리하는 방법입니다. 즉, 각 LV에 대량의 스토리지를 미리 할당할 필요 없이 여러 LV를 생성할 수 있습니다. 스토리지는 씬 풀의 모든 LV에서 공유되므로 리소스를 보다 효율적으로 사용할 수 있습니다. 씬 풀은 필요에 따라 해당 LV에 공간을 할당합니다.

씩과 씬 LV 스냅샷 중에서 선택
씩 또는 씬 LV 스냅샷 중 하나를 선택하는 것은 스냅샷을 생성하는 LV 유형에 따라 직접 결정됩니다. 원래 LV가 두꺼운 LV인 경우 스냅샷이 두꺼운 것입니다. 원래 LV가 씬된 경우 스냅샷이 씬됩니다.

67.4.2.2. 씩의 논리 볼륨 스냅샷 관리

두꺼운 LV 스냅샷을 생성하는 경우 스냅샷의 스토리지 요구 사항과 수명을 고려해야 합니다. 원래 볼륨에 대한 예상 변경 사항에 따라 충분한 스토리지를 할당해야 합니다. 스냅샷에는 의도한 수명 동안 변경 사항을 캡처하기에 충분한 크기가 있어야 하지만 원래 LV의 크기를 초과할 수 없습니다. 낮은 변경 속도를 예상하는 경우 스냅샷 크기가 10%-15%로 충분할 수 있습니다. 변경 속도가 높은 LV의 경우 30% 이상을 할당해야 할 수 있습니다.

중요

스냅샷을 완전히 채워지기 전에 스냅샷을 확장해야 합니다. 스냅샷이 할당된 공간의 100%에 도달하면 유효하지 않습니다. lvs -o lv_name,data_percent,origin 명령을 사용하여 스냅샷 용량을 모니터링할 수 있습니다.

67.4.2.2.1. 씩의 논리 볼륨 스냅샷 생성

lvcreate 명령을 사용하여 두꺼운 LV 스냅샷을 생성할 수 있습니다.

사전 요구 사항

  • 관리 액세스.
  • 물리 볼륨이 생성되어 있습니다. 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
  • 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성 을 참조하십시오.
  • 논리 볼륨을 생성했습니다. 자세한 내용은 논리 볼륨 생성 을 참조하십시오.

프로세스

  1. 스냅샷을 생성할 LV를 확인합니다.

    # lvs -o vg_name,lv_name,lv_size
    
      VG              LV                LSize
      VolumeGroupName LogicalVolumeName 10.00g
    Copy to Clipboard Toggle word wrap

    스냅샷 크기는 LV의 크기를 초과할 수 없습니다.

  2. 두꺼운 LV 스냅샷을 생성합니다.

    # lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap

    SnapshotSize 를 스냅샷에 할당할 크기(예: 10G)로 바꿉니다. SnapshotName 을 스냅샷 논리 볼륨에 부여하려는 이름으로 교체합니다. VolumeGroupName 을 원래 논리 볼륨이 포함된 볼륨 그룹의 이름으로 교체합니다. LogicalVolumeName 을 스냅샷을 생성할 논리 볼륨의 이름으로 교체합니다.

검증

  • 스냅샷이 생성되었는지 확인합니다.

    # lvs -o lv_name,origin
    
      LV                  Origin
      LogicalVolumeName
      SnapshotName        LogicalVolumeName
    Copy to Clipboard Toggle word wrap
67.4.2.2.2. 논리 볼륨 스냅샷 수동 확장

스냅샷이 할당된 공간의 100%에 도달하면 유효하지 않습니다. 스냅샷을 완전히 채워지기 전에 스냅샷을 확장해야 합니다. 이 작업은 lvextend 명령을 사용하여 수동으로 수행할 수 있습니다.

사전 요구 사항

  • 관리 액세스.

프로세스

  1. 볼륨 그룹, 논리 볼륨, 스냅샷의 소스 볼륨, 사용 백분율 및 크기를 나열합니다.

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 82.00   5.00g
    Copy to Clipboard Toggle word wrap
  2. 씩 프로비저닝된 스냅샷을 확장합니다.

    # lvextend --size +AdditionalSize VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    additional Size 를 스냅샷에 추가할 공간(예: +1G)으로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. SnapshotName 을 스냅샷 이름으로 교체합니다.

검증

  • LV가 확장되었는지 확인합니다.

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 68.33   6.00g
    Copy to Clipboard Toggle word wrap
67.4.2.2.3. 씩의 논리 볼륨 스냅샷 자동 확장

스냅샷이 할당된 공간의 100%에 도달하면 유효하지 않습니다. 스냅샷을 완전히 채워지기 전에 스냅샷을 확장해야 합니다. 이 작업은 자동으로 수행할 수 있습니다.

사전 요구 사항

  • 관리 액세스.

프로세스

  1. root 사용자로 선택한 편집기에서 /etc/lvm/lvm.conf 파일을 엽니다.
  2. snapshot_autoextend_thresholdsnapshot_autoextend_percent 행의 주석을 제거하고 각 매개변수를 필수 값으로 설정합니다.

    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20
    Copy to Clipboard Toggle word wrap

    snapshot_autoextend_threshold 는 LVM이 스냅샷을 자동 연장하기 시작하는 백분율을 결정합니다. 예를 들어 매개 변수를 70으로 설정하면 LVM에서 스냅샷이 70% 용량에 도달할 때 스냅샷을 확장하려고 합니다.

    snapshot_autoextend_percent 는 임계값에 도달하면 스냅샷을 확장해야 하는 백분율로 지정합니다. 예를 들어 매개 변수를 20으로 설정하면 스냅샷이 현재 크기의 20%가 증가합니다.

  3. 변경 사항을 저장하고 편집기를 종료합니다.
  4. lvm2-monitor 를 다시 시작하십시오.

    # systemctl restart lvm2-monitor
    Copy to Clipboard Toggle word wrap
67.4.2.2.4. 씩의 논리 볼륨 스냅샷 병합

두꺼운 LV 스냅샷을 스냅샷이 생성된 원래 논리 볼륨에 병합할 수 있습니다. 병합 프로세스는 원래 LV가 스냅샷이 생성될 때의 상태로 되돌리는 것을 의미합니다. 병합이 완료되면 스냅샷이 제거됩니다.

참고

원본과 스냅샷 LV 간의 병합이 활성 상태이면 지연됩니다. LV가 다시 활성화되고 사용되지 않는 경우에만 실행됩니다.

사전 요구 사항

  • 관리 액세스.

프로세스

  1. LV, 해당 볼륨 그룹 및 해당 경로를 나열합니다.

    # lvs -o lv_name,vg_name,lv_path
    
      LV                   VG              Path
      LogicalVolumeName    VolumeGroupName /dev/VolumeGroupName/LogicalVolumeName
      SnapshotName         VolumeGroupName /dev/VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap
  2. LV가 마운트된 위치를 확인합니다.

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    /dev/VolumeGroupName/LogicalVolumeName 을 논리 볼륨의 경로로 바꿉니다. /dev/VolumeGroupName/SnapshotName 을 스냅샷 경로로 바꿉니다.

  3. LV를 마운트 해제합니다.

    # umount /LogicalVolume/MountPoint
    # umount /Snapshot/MountPoint
    Copy to Clipboard Toggle word wrap

    /LogicalVolume/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다. /Snapshot/MountPoint 를 스냅샷의 마운트 지점으로 바꿉니다.

  4. LV를 비활성화합니다.

    # lvchange --activate n VolumeGroupName/LogicalVolumeName
    # lvchange --activate n VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. LogicalVolumeName 을 논리 볼륨의 이름으로 바꿉니다. SnapshotName 을 스냅샷 이름으로 교체합니다.

  5. 두꺼운 LV 스냅샷을 원본으로 병합합니다.

    # lvconvert --merge SnapshotName
    Copy to Clipboard Toggle word wrap

    SnapshotName 을 스냅샷 이름으로 교체합니다.

  6. LV를 활성화합니다.

    # lvchange --activate y VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. LogicalVolumeName 을 논리 볼륨의 이름으로 바꿉니다.

  7. LV를 마운트합니다.

    # umount /LogicalVolume/MountPoint
    Copy to Clipboard Toggle word wrap

    /LogicalVolume/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다.

검증

  • 스냅샷이 제거되었는지 확인합니다.

    # lvs -o lv_name
    Copy to Clipboard Toggle word wrap

67.4.2.3. thin 논리 볼륨 스냅샷 관리

씬 프로비저닝은 스토리지 효율성이 우선 순위인 경우에 적합합니다. 스토리지 공간 동적 할당은 초기 스토리지 비용을 줄이고 사용 가능한 스토리지 리소스 사용을 극대화합니다. 동적 워크로드가 있거나 스토리지가 시간이 지남에 따라 증가하는 환경에서 씬 프로비저닝을 통해 유연성을 높일 수 있습니다. 스토리지 공간을 크게 사전 할당할 필요 없이 스토리지 시스템을 변화하는 요구에 맞게 조정할 수 있습니다. 동적 할당을 사용하면 모든 LV의 총 크기가 씬 풀의 물리적 크기를 초과할 수 있으므로 모든 공간이 동시에 활용되는 것은 아닙니다.

67.4.2.3.1. 씬 논리 볼륨 스냅샷 생성

lvcreate 명령을 사용하여 thin LV 스냅샷을 생성할 수 있습니다. thin LV 스냅샷을 생성할 때 스냅샷 크기를 지정하지 마십시오. size 매개변수를 포함하면 대신 두꺼운 스냅샷이 생성됩니다.

사전 요구 사항

  • 관리 액세스.
  • 물리 볼륨이 생성되어 있습니다. 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
  • 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성 을 참조하십시오.
  • 논리 볼륨을 생성했습니다. 자세한 내용은 논리 볼륨 생성 을 참조하십시오.

프로세스

  1. 스냅샷을 생성할 LV를 확인합니다.

    # lvs -o lv_name,vg_name,pool_lv,lv_size
    
      LV                VG              Pool       LSize
      PoolName          VolumeGroupName            152.00m
      ThinVolumeName    VolumeGroupName PoolName   100.00m
    Copy to Clipboard Toggle word wrap
  2. thin LV 스냅샷을 생성합니다.

    # lvcreate --snapshot --name SnapshotName VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap

    SnapshotName 을 스냅샷 논리 볼륨에 부여하려는 이름으로 교체합니다. VolumeGroupName 을 원래 논리 볼륨이 포함된 볼륨 그룹의 이름으로 교체합니다. ThinVolumeName 을 스냅샷을 생성할 thin 논리 볼륨의 이름으로 바꿉니다.

검증

  • 스냅샷이 생성되었는지 확인합니다.

    # lvs -o lv_name,origin
    
      LV                Origin
      PoolName
      SnapshotName      ThinVolumeName
      ThinVolumeName
    Copy to Clipboard Toggle word wrap
67.4.2.3.2. 씬 논리 볼륨 스냅샷 병합

thin LV 스냅샷을 생성된 원래 논리 볼륨에 병합할 수 있습니다. 병합 프로세스는 원래 LV가 스냅샷이 생성될 때의 상태로 되돌리는 것을 의미합니다. 병합이 완료되면 스냅샷이 제거됩니다.

사전 요구 사항

  • 관리 액세스.

프로세스

  1. LV, 해당 볼륨 그룹 및 해당 경로를 나열합니다.

    # lvs -o lv_name,vg_name,lv_path
    
      LV                VG              Path
      ThinPoolName      VolumeGroupName
      ThinSnapshotName  VolumeGroupName /dev/VolumeGroupName/ThinSnapshotName
      ThinVolumeName    VolumeGroupName /dev/VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap
  2. 원래 LV가 마운트된 위치를 확인합니다.

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName/ThinVolumeName 을 논리 볼륨의 경로로 바꿉니다.

  3. LV를 마운트 해제합니다.

    # umount /ThinLogicalVolume/MountPoint
    Copy to Clipboard Toggle word wrap

    /ThinLogicalVolume/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다. /ThinSnapshot/MountPoint 를 스냅샷의 마운트 지점으로 바꿉니다.

  4. LV를 비활성화합니다.

    # lvchange --activate n VolumeGroupName/ThinLogicalVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinLogicalVolumeName 을 논리 볼륨의 이름으로 바꿉니다.

  5. thin LV 스냅샷을 원본과 병합합니다.

    # lvconvert --mergethin VolumeGroupName/ThinSnapshotName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinSnapshotName 을 스냅샷 이름으로 교체합니다.

  6. LV를 마운트합니다.

    # umount /ThinLogicalVolume/MountPoint
    Copy to Clipboard Toggle word wrap

    /ThinLogicalVolume/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다.

검증

  • 원래 LV가 병합되었는지 확인합니다.

    # lvs -o lv_name
    Copy to Clipboard Toggle word wrap

67.4.3. RAID0 스트라이핑 논리 볼륨 생성

RAID0 논리 볼륨은 스트라이프 크기 단위로 여러 데이터 하위 볼륨에 논리 볼륨 데이터를 분배합니다. 다음 절차에서는 디스크 전체에서 데이터를 스트라이핑하는 mylv 라는 LVM RAID0 논리 볼륨을 생성합니다.

사전 요구 사항

  1. 세 개 이상의 물리 볼륨을 생성했습니다. 물리 볼륨 생성에 대한 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
  2. 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성 을 참조하십시오.

프로세스

  1. 기존 볼륨 그룹에서 RAID0 논리 볼륨을 생성합니다. 다음 명령은 볼륨 그룹 myvg 에서 3개의 스트라이프와 4kB 의 스트라이프 크기를 사용하여 크기가 2Gmylv 볼륨 mylv를 생성합니다.

    # lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg
      Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents).
      Logical volume "mylv" created.
    Copy to Clipboard Toggle word wrap
  2. RAID0 논리 볼륨에 파일 시스템을 생성합니다. 다음 명령은 논리 볼륨에 ext4 파일 시스템을 생성합니다.

    # mkfs.ext4 /dev/my_vg/mylv
    Copy to Clipboard Toggle word wrap
  3. 논리 볼륨을 마운트하고 파일 시스템 디스크 공간 사용량을 보고합니다.

    # mount /dev/my_vg/mylv /mnt
    
    # df
    Filesystem             1K-blocks     Used  Available  Use% Mounted on
    /dev/mapper/my_vg-mylv   2002684     6168  1875072    1%   /mnt
    Copy to Clipboard Toggle word wrap

검증

  • 생성된 RAID0 제거된 논리 볼륨을 확인합니다.

    # lvs -a -o +devices,segtype my_vg
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type
      mylv my_vg rwi-a-r--- 2.00g mylv_rimage_0(0),mylv_rimage_1(0),mylv_rimage_2(0) raid0
      [mylv_rimage_0] my_vg iwi-aor--- 684.00m /dev/sdf1(0) linear
      [mylv_rimage_1] my_vg iwi-aor--- 684.00m /dev/sdg1(0) linear
      [mylv_rimage_2] my_vg iwi-aor--- 684.00m /dev/sdh1(0) linear
    Copy to Clipboard Toggle word wrap

67.4.4. 논리 볼륨에서 디스크 제거

다음 절차에서는 디스크를 교체하거나 디스크를 다른 볼륨의 일부로 사용하려면 기존 논리 볼륨에서 디스크를 제거하는 방법을 설명합니다.

디스크를 제거하려면 먼저 LVM 물리 볼륨의 확장 영역을 다른 디스크 또는 디스크 세트로 이동해야 합니다.

절차

  1. LV를 사용할 때 물리 볼륨의 사용 가능한 공간을 확인합니다.

    # pvs -o+pv_used
      PV          VG    Fmt    Attr   PSize      PFree     Used
     /dev/vdb1 myvg  lvm2   a--    1020.00m    0         1020.00m
     /dev/vdb2 myvg  lvm2   a--    1020.00m    0         1020.00m
     /dev/vdb3 myvg  lvm2   a--    1020.00m   1008.00m   12.00m
    Copy to Clipboard Toggle word wrap
  2. 데이터를 다른 물리 볼륨으로 이동합니다.

    1. 기존 볼륨 그룹의 다른 물리 볼륨에 사용 가능한 확장 영역이 충분한 경우 다음 명령을 사용하여 데이터를 이동합니다.

      # pvmove /dev/vdb3
        /dev/vdb3: Moved: 2.0%
       ...
        /dev/vdb3: Moved: 79.2%
       ...
        /dev/vdb3: Moved: 100.0%
      Copy to Clipboard Toggle word wrap
    2. 기존 볼륨 그룹의 다른 물리 볼륨에 사용 가능한 확장 영역이 충분하지 않은 경우 다음 명령을 사용하여 새 물리 볼륨을 추가하고 새로 생성된 물리 볼륨을 사용하여 볼륨 그룹을 확장한 다음 이 물리 볼륨으로 데이터를 이동합니다.

      # pvcreate /dev/vdb4
        Physical volume "/dev/vdb4" successfully created
      
      # vgextend myvg /dev/vdb4
        Volume group "myvg" successfully extended
      
      # pvmove /dev/vdb3 /dev/vdb4
        /dev/vdb3: Moved: 33.33%
        /dev/vdb3: Moved: 100.00%
      Copy to Clipboard Toggle word wrap
  3. 물리 볼륨을 제거합니다.

    # vgreduce myvg /dev/vdb3
    Removed "/dev/vdb3" from volume group "myvg"
    Copy to Clipboard Toggle word wrap

    논리 볼륨에 실패하는 물리 볼륨이 포함된 경우 해당 논리 볼륨을 사용할 수 없습니다. 볼륨 그룹에서 누락된 물리 볼륨을 제거하려면 누락된 물리 볼륨에 할당된 논리 볼륨이 없는 경우 volume group에서 --removemissing 매개변수를 사용할 수 있습니다.

    # vgreduce --removemissing myvg
    Copy to Clipboard Toggle word wrap

67.4.5. 웹 콘솔을 사용하여 볼륨 그룹에서 물리적 드라이브 변경

RHEL 8 웹 콘솔을 사용하여 볼륨 그룹의 드라이브를 변경할 수 있습니다.

사전 요구 사항

  • 오래된 것을 대체하기 위한 새로운 물리적 드라이브 또는 부서진 드라이브
  • 이 구성에서는 물리 드라이브가 볼륨 그룹에 구성되어 있어야 합니다.

67.4.5.1. 웹 콘솔의 볼륨 그룹에 물리 드라이브 추가

RHEL 8 웹 콘솔을 사용하여 새 물리 드라이브 또는 기타 유형의 볼륨을 기존 논리 볼륨에 추가할 수 있습니다.

사전 요구 사항

  • RHEL 8 웹 콘솔을 설치했습니다.
  • cockpit 서비스를 활성화했습니다.
  • 사용자 계정이 웹 콘솔에 로그인할 수 있습니다.

    자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.

  • cockpit-storaged 패키지가 시스템에 설치되어 있습니다.
  • 볼륨 그룹을 생성해야 합니다.
  • 시스템에 연결된 새 드라이브입니다.

절차

  1. RHEL 8 웹 콘솔에 로그인합니다.

    자세한 내용은 웹 콘솔에 로그인 을 참조하십시오.

  2. 스토리지 를 클릭합니다.
  3. 스토리지 테이블에서 물리 드라이브를 추가할 볼륨 그룹을 클릭합니다.
  4. LVM2 볼륨 그룹 페이지에서 물리 볼륨 추가 를 클릭합니다.
  5. 디스크 추가 대화 상자에서 기본 드라이브를 선택하고 추가 를 클릭합니다.

검증

  • LVM2 볼륨 그룹 페이지에서 물리 볼륨 섹션을 확인하여 볼륨 그룹에서 새 물리 드라이브를 사용할 수 있는지 확인합니다.

67.4.5.2. 웹 콘솔의 볼륨 그룹에서 물리적 드라이브 제거

논리 볼륨에 여러 물리적 드라이브가 포함된 경우 온라인으로 물리적 드라이브 중 하나를 제거할 수 있습니다.

시스템은 제거 과정에서 다른 드라이브로 제거될 드라이브의 모든 데이터를 자동으로 이동합니다. 시간이 걸릴 수 있습니다.

또한 웹 콘솔은 물리 드라이브를 제거할 수 있는 충분한 공간이 있는지 확인합니다.

사전 요구 사항

  • RHEL 8 웹 콘솔을 설치했습니다.
  • cockpit 서비스를 활성화했습니다.
  • 사용자 계정이 웹 콘솔에 로그인할 수 있습니다.

    자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.

  • cockpit-storaged 패키지가 시스템에 설치되어 있습니다.
  • 두 개 이상의 물리 드라이브가 연결된 볼륨 그룹입니다.

절차

  1. RHEL 8 웹 콘솔에 로그인합니다.
  2. 스토리지 를 클릭합니다.
  3. 스토리지 테이블에서 물리 드라이브를 추가할 볼륨 그룹을 클릭합니다.
  4. LVM2 볼륨 그룹 페이지에서 물리 볼륨 섹션으로 스크롤합니다.
  5. 제거하려는 물리 볼륨 옆에 있는 메뉴 버튼 Cryostat를 클릭합니다.
  6. 드롭다운 메뉴에서 제거를 선택합니다.

    RHEL 8 웹 콘솔은 논리 볼륨에 디스크를 제거할 수 있는 충분한 여유 공간이 있는지 확인합니다. 데이터를 전송할 여유 공간이 없는 경우 디스크를 제거할 수 없으며 볼륨 그룹의 용량을 늘리려면 먼저 다른 디스크를 추가해야 합니다. 자세한 내용은 웹 콘솔의 논리 볼륨에 물리 드라이브 추가를 참조하십시오.

67.4.6. 논리 볼륨 제거

lvremove 명령을 사용하여 스냅샷을 포함한 기존 논리 볼륨을 제거할 수 있습니다.

사전 요구 사항

  • 관리 액세스.

절차

  1. 논리 볼륨 및 해당 경로를 나열합니다.

    # lvs -o lv_name,lv_path
    
      LV                Path
      LogicalVolumeName /dev/VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap
  2. 논리 볼륨이 마운트된 위치를 확인합니다.

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    
    SOURCE                                        TARGET
    /dev/mapper/VolumeGroupName-LogicalVolumeName /MountPoint
    Copy to Clipboard Toggle word wrap

    /dev/VolumeGroupName/LogicalVolumeName 을 논리 볼륨의 경로로 바꿉니다.

  3. 논리 볼륨을 마운트 해제합니다.

    # umount /MountPoint
    Copy to Clipboard Toggle word wrap

    /MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다.

  4. 논리 볼륨을 제거합니다.

    # lvremove VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName/LogicalVolumeName 을 논리 볼륨의 경로로 바꿉니다.

67.4.7. RHEL 시스템 역할을 사용하여 LVM 논리 볼륨 관리

스토리지 역할을 사용하여 다음 작업을 수행합니다.

  • 여러 디스크로 구성된 볼륨 그룹에 LVM 논리 볼륨을 만듭니다.
  • 논리 볼륨에 지정된 레이블이 있는 ext4 파일 시스템을 생성합니다.
  • ext4 파일 시스템을 영구적으로 마운트합니다.

사전 요구 사항

  • 스토리지 역할을 포함한 Ansible Playbook

스토리지 역할을 사용하여 다음 작업을 수행합니다.

  • 여러 디스크로 구성된 볼륨 그룹에 LVM 논리 볼륨을 만들려면 다음을 수행합니다.
  • LVM에서 기존 파일 시스템의 크기를 조정하려면 다음을 수행합니다.
  • 풀의 총 크기의 백분율로 LVM 볼륨 크기를 표현하려면

볼륨 그룹이 없으면 역할이 생성됩니다. 논리 볼륨이 볼륨 그룹에 있는 경우 크기가 플레이북에 지정된 것과 일치하지 않으면 크기가 조정됩니다.

논리 볼륨을 줄이는 경우 데이터 손실을 방지하기 위해 논리 볼륨의 파일 시스템이 축소되는 논리 볼륨의 공간을 사용하지 않도록 해야 합니다.

사전 요구 사항

절차

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Create logical volume
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - sda
                  - sdb
                  - sdc
                volumes:
                  - name: mylv
                    size: 2G
                    fs_type: ext4
                    mount_point: /mnt/data
    Copy to Clipboard Toggle word wrap

    예제 플레이북에 지정된 설정은 다음과 같습니다.

    크기: &lt ;size>
    단위(예: GiB) 또는 백분율(예: 60 %)을 사용하여 크기를 지정해야 합니다.

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  • 지정된 볼륨이 요청된 크기로 생성되거나 크기가 조정되었는지 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'
    Copy to Clipboard Toggle word wrap

storage RHEL 시스템 역할을 사용하여 파일 시스템으로 LVM 논리 볼륨의 크기를 조정할 수 있습니다.

축소하는 논리 볼륨에 파일 시스템이 있는 경우 데이터 손실을 방지하기 위해 파일 시스템이 축소되는 논리 볼륨의 공간을 사용하지 않도록 해야 합니다.

사전 요구 사항

절차

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Resize LVM logical volume with file system
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - /dev/sda
                  - /dev/sdb
                  - /dev/sdc
                volumes:
                  - name: mylv1
                    size: 10 GiB
                    fs_type: ext4
                    mount_point: /opt/mount1
                  - name: mylv2
                    size: 50 GiB
                    fs_type: ext4
                    mount_point: /opt/mount2
    Copy to Clipboard Toggle word wrap

    이 플레이북은 다음과 같은 기존 파일 시스템의 크기를 조정합니다.

    • /opt/mount1 에 마운트된 mylv1 볼륨의 Ext4 파일 시스템은 10GiB로 크기를 조정합니다.
    • /opt/mount2 에 마운트된 mylv2 볼륨의 Ext4 파일 시스템은 50GiB의 크기를 조정합니다.

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  1. 논리 볼륨의 크기가 요청된 크기로 조정되었는지 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'
    Copy to Clipboard Toggle word wrap
  2. 파일 시스템 툴을 사용하여 파일 시스템 크기를 확인합니다. 예를 들어 ext4의 경우 dumpe2fs 툴로 보고된 블록 수와 블록 크기를 곱하여 파일 시스템 크기를 계산합니다.

    # ansible managed-node-01.example.com -m command -a 'dumpe2fs -h /dev/myvg/mylv | grep -E "Block count|Block size"'
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat