Red Hat Training

A Red Hat training course is available for RHEL 8

10.2. 씬 프로비저닝된 논리 볼륨 생성

씬 프로비저닝된 논리 볼륨을 사용하면 사용 가능한 물리 스토리지보다 큰 논리 볼륨을 생성할 수 있습니다. 씬 프로비저닝된 볼륨 세트를 생성하면 시스템이 요청된 전체 스토리지 용량을 할당하는 대신 사용하는 항목을 할당할 수 있습니다.

lvcreate 명령의 -T 또는 --thin 옵션을 사용하면 씬 풀 또는 씬 볼륨을 만들 수 있습니다. lvcreate 명령의 -T 옵션을 사용하여 단일 명령으로 씬 풀과 씬 볼륨을 동시에 생성할 수도 있습니다. 이 절차에서는 씬 프로비저닝된 논리 볼륨을 생성하고 확장하는 방법을 설명합니다.

사전 요구 사항

절차

  1. thin 풀을 생성합니다.

    # lvcreate -L 100M -T vg001/mythinpool
      Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
      Logical volume "mythinpool" created.

    물리 공간 풀을 생성하므로 풀 크기를 지정해야 합니다. lvcreate 명령의 -T 옵션은 인수를 사용하지 않습니다. 명령으로 추가된 다른 옵션에서 생성할 장치 유형을 결정합니다. 다음 예와 같이 추가 매개변수를 사용하여 thin 풀을 만들 수도 있습니다.

    • lvcreate 명령의 --thinpool 매개변수를 사용하여 씬 풀을 생성할 수도 있습니다. -T 옵션과 달리 --thinpool 매개변수를 사용하려면 생성 중인 씬 풀 논리 볼륨의 이름을 지정해야 합니다. 다음 예제에서는 --thinpool 매개 변수를 사용하여 크기가 100M 인 volumes 그룹의 mythinpool 이라는 씬 풀을 생성합니다.

      # lvcreate -L 100M --thinpool mythinpool vg001
        Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
        Logical volume "mythinpool" created.
    • 풀 생성에 대한 스트라이핑이 지원되면, 다음 명령은 -i-I 옵션을 사용하여 스트라이프를 생성할 수 있습니다. 다음 명령은 두 개의 64 kB 스트라이프와 청크 크기가 256 kB 로 설정된 volumes 그룹에 thinpool 로 이름이 지정된 100M 씬 풀을 생성합니다. 또한 rfc 001/thinvolume이라는 1T 씬 볼륨 도 생성합니다.

      참고

      볼륨 그룹에 충분한 여유 공간이 있는 물리 볼륨이 두 개 있는지 확인하거나 씬 풀을 만들 수 없습니다.

      # lvcreate -i 2 -I 64 -c 256 -L 100M -T vg001/thinpool -V 1T --name thinvolume
  2. thin 볼륨을 생성합니다.

    # lvcreate -V 1G -T vg001/mythinpool -n thinvolume
      WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (100.00 MiB).
      WARNING: You have not turned on protection against thin pools running out of space.
      WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
      Logical volume "thinvolume" created.

    이 경우 포함된 풀보다 큰 볼륨의 가상 크기를 지정합니다. 다음 예와 같이 추가 매개변수를 사용하여 씬 볼륨을 생성할 수도 있습니다.

    • 씬 볼륨과 씬 풀을 모두 생성하려면 lvcreate 명령의 -T 옵션을 사용하고 크기 및 가상 크기 인수를 둘 다 지정합니다.

      # lvcreate -L 100M -T vg001/mythinpool -V 1G -n thinvolume
        Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
        WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (100.00 MiB).
        WARNING: You have not turned on protection against thin pools running out of space.
        WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
        Logical volume "thinvolume" created.
    • 나머지 여유 공간을 사용하여 씬 볼륨과 씬 풀을 만들려면 100%FREE 옵션을 사용합니다.

      # lvcreate -V 1G -l 100%FREE -T vg001/mythinpool -n thinvolume
      Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
        Logical volume "thinvolume" created.
    • 기존 논리 볼륨을 씬 풀 볼륨으로 변환하려면 lvconvert 명령의 --thinpool 매개 변수를 사용합니다. 기존 논리 볼륨을 씬 풀 볼륨의 메타데이터 볼륨으로 변환하려면 --thinpool 매개변수와 함께 --poolmetadata 매개변수를 사용해야 합니다.

      다음 예제에서는 볼륨 그룹의 기존 논리 볼륨 lv1 을 thin pool 볼륨으로 변환하고 기존 논리 볼륨 lv2 를 볼륨 그룹 overcome 001 의 메타데이터 볼륨으로 해당 thin pool 볼륨의 메타데이터 볼륨으로 변환합니다.

      # lvconvert --thinpool vg001/lv1 --poolmetadata vg001/lv2
        Converted vg001/lv1 to thin pool.
      참고

      논리 볼륨을 씬 풀 볼륨 또는 씬 풀 메타데이터 볼륨으로 변환하면 lvconvert 가 장치의 콘텐츠를 유지하지 않고 콘텐츠를 덮어쓰므로 논리 볼륨의 콘텐츠가 제거됩니다.

    • 기본적으로 lvcreate 명령은 다음 공식에 따라 thin 풀의 메타데이터 논리 볼륨의 크기를 설정합니다.

      Pool_LV_size / Pool_LV_chunk_size * 64

      스냅샷 수가 많거나 씬 풀에 대한 작은 청크 크기가 있는 경우 나중에 lvcreate 명령의 --poolmetadatasize 매개변수를 사용하여 thin pool의 메타데이터 볼륨의 기본값을 늘려야 할 수 있습니다. 씬 풀의 메타데이터 논리 볼륨에 지원되는 값은 2MiB에서 16GiB 사이의 범위입니다.

      다음 예제에서는 thin 풀의 메타데이터 볼륨의 기본값을 늘리는 방법을 보여줍니다.

      # lvcreate -V 1G -l 100%FREE -T vg001/mythinpool --poolmetadatasize 16M -n thinvolume
      Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
         Logical volume "thinvolume" created.
  3. 생성된 씬 풀 및 씬 볼륨을 확인합니다.

    # lvs -a -o +devices
      LV                 VG    Attr       LSize   Pool       Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
      [lvol0_pmspare]    vg001 ewi-------   4.00m                                                           /dev/sda(0)
      mythinpool         vg001 twi-aotz-- 100.00m                   0.00   10.94                            mythinpool_tdata(0)
      [mythinpool_tdata] vg001 Twi-ao---- 100.00m                                                           /dev/sda(1)
      [mythinpool_tmeta] vg001 ewi-ao----   4.00m                                                           /dev/sda(26)
      thinvolume         vg001 Vwi-a-tz--   1.00g mythinpool        0.00
  4. 선택 사항: lvextend 명령을 사용하여 씬 풀 크기를 확장합니다. 그러나 씬 풀의 크기를 줄일 수는 없습니다.

    참고

    씬 풀과 씬 볼륨을 생성하는 동안 -l 100%FREE 인수를 사용하면 이 명령이 실패합니다.

    다음 명령은 다른 100M 을 확장하여 크기가 100M 인 기존 씬 풀의 크기를 조정합니다.

    # lvextend -L+100M vg001/mythinpool
      Size of logical volume vg001/mythinpool_tdata changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
      WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (200.00 MiB).
      WARNING: You have not turned on protection against thin pools running out of space.
      WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
    
      Logical volume vg001/mythinpool successfully resized
    # lvs -a -o +devices
      LV                 VG    Attr       LSize   Pool       Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
      [lvol0_pmspare]    vg001 ewi-------   4.00m                                                           /dev/sda(0)
      mythinpool         vg001 twi-aotz-- 200.00m                   0.00   10.94                            mythinpool_tdata(0)
      [mythinpool_tdata] vg001 Twi-ao---- 200.00m                                                           /dev/sda(1)
      [mythinpool_tdata] vg001 Twi-ao---- 200.00m                                                           /dev/sda(27)
      [mythinpool_tmeta] vg001 ewi-ao----   4.00m                                                           /dev/sda(26)
      thinvolume         vg001 Vwi-a-tz--   1.00g mythinpool        0.00
  5. 선택 사항: thin 풀과 thin 볼륨의 이름을 바꾸려면 다음 명령을 사용합니다.

    # lvrename vg001/mythinpool vg001/mythinpool1
      Renamed "mythinpool" to "mythinpool1" in volume group "vg001"
    
    # lvrename vg001/thinvolume vg001/thinvolume1
      Renamed "thinvolume" to "thinvolume1" in volume group "vg001"

    이름을 변경한 후 thin 풀과 thin 볼륨을 확인합니다.

    # lvs
      LV          VG       Attr     LSize   Pool       Origin Data%  Move Log Copy%  Convert
    mythinpool1 vg001   twi-a-tz 100.00m                     0.00
    thinvolume1 vg001   Vwi-a-tz   1.00g mythinpool1         0.00
  6. 선택 사항: thin 풀을 제거하려면 다음 명령을 사용합니다.

    # lvremove -f vg001/mythinpool1
      Logical volume "thinvolume1" successfully removed.
      Logical volume "mythinpool1" successfully removed.

추가 리소스

  • lvcreate(8), lvrename(8), lvs(8)lvconvert(8) 도움말 페이지