3.8. 가상 데이터 최적화 도구로 씬 프로비저닝 관리

VDO 볼륨의 실제 공간 사용이 100%에 접근 중인 조건을 해결하기 위해 물리적 공간의 미래 확장을 준비하도록 씬 프로비저닝된 VDO 볼륨을 구성할 수 있습니다. lvcreate 작업에서 -l 100%FREE 를 사용하는 대신 '95%FREE'를 사용하여 나중에 필요한 경우 복구할 수 있는 일부 여유 공간이 있는지 확인합니다. 다음 절차에서는 다음 문제를 해결하는 방법을 설명합니다.

  • 볼륨 공간이 부족합니다
  • 파일 시스템이 읽기 전용 모드로 전환
  • 볼륨에서 보고한 ENOSPC
참고

VDO 볼륨에서 높은 물리적 공간 사용량을 처리하는 가장 좋은 방법은 사용하지 않는 파일을 삭제하고 이러한 사용되지 않은 파일에서 사용하는 블록을 온라인 삭제 또는 fstrim 프로그램을 사용하여 삭제하는 것입니다. VDO 볼륨의 물리적 공간은 기본 slab 크기가 2GB인 VDO 볼륨의 경우 16TB 또는 최대 slab 크기가 32GB인 VDO 볼륨의 경우 16TB인 8192 slabs로만 확장할 수 있습니다.

다음 모든 단계에서 myvg 및 my vdo 를 볼륨 그룹과 VDO 이름으로 각각 바꿉니다.

사전 요구 사항

  1. VDO 소프트웨어를 설치합니다. 자세한 내용은 VDO 설치를 참조하십시오.
  2. 사용 가능한 스토리지 용량이 있는 LVM 볼륨 그룹이 시스템에 있습니다.
  3. lvcreate --type vdo --name myvdo myvg -L logical-size-of-pool --virtualsize virtual-size-of-vdo 명령을 사용하는 씬 프로비저닝 VDO 볼륨. 자세한 내용은 LVM-VDO 볼륨 생성을 참조하십시오.

절차

  1. 씬 프로비저닝된 VDO 볼륨에 대한 최적의 논리적 크기 결정

    # vdostats myvg-vpool0-vpool
    
    Device               1K-blocks Used     Available  Use% Space saving%
    myvg-vpool0-vpool   104856576  29664088 75192488   28%   69%

    공간 절약 비율을 계산하려면 다음 공식을 사용합니다.

    Savings ratio = 1 / (1 - Space saving%)

    이 예에서는 다음과 같습니다.

    • 약 80GB의 데이터 세트에는 약 3.22:1개의 공간 절약률이 있습니다.
    • 동일한 공간 절약 기능이 있는 더 많은 데이터가 VDO 볼륨에 기록되면 데이터 집합 크기를 비율에 곱하면 256GB의 잠재적인 논리적 크기가 생성됩니다.
    • 이 숫자를 200GB까지 상향 조정하면 공간 절약률이 동일한 경우 실제 여유 공간의 안전한 여백으로 논리적 크기가 생성됩니다.
  2. VDO 볼륨의 여유 물리 공간을 모니터링합니다.

    # vdostats myvg-vpool0-vpool

    이 명령은 주기적으로 실행하여 VDO 볼륨의 사용된 실제 공간과 사용 가능한 실제 공간을 모니터링합니다.

  3. 선택 사항: 사용 가능한 /usr/share/doc/vdo/examples/monitor/monitor_check_vdostats_physicalSpace.pl 스크립트를 사용하여 VDO 볼륨의 실제 공간 사용에 대한 경고를 확인합니다.

    # /usr/share/doc/vdo/examples/monitor/monitor_check_vdostats_physicalSpace.pl myvg-vpool0-vpool
  4. VDO 볼륨을 생성할 때 dmeventd 모니터링 서비스는 VDO 볼륨의 물리적 공간 사용을 모니터링합니다. VDO 볼륨이 생성 또는 시작될 때 기본적으로 활성화됩니다.

    journalctl 명령을 사용하여 VDO 볼륨을 모니터링하는 동안 로그에서 dmeventd 의 출력을 확인합니다.

    lvm[8331]: Monitoring VDO pool myvg-vpool0-vpool.
    ...
    
    lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 84.63% full.
    lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 91.01% full.
    lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 97.34% full.
  5. 사용 가능한 실제 공간이 거의 없는 VDO 볼륨을 해결합니다. VDO 볼륨에 물리적 공간을 추가할 수 있지만 볼륨 공간을 확장하기 전에 볼륨 공간이 가득 차면 볼륨에 대한 I/O를 일시적으로 중지해야 할 수 있습니다.

    볼륨에 대한 I/O를 일시적으로 중지하려면 다음 단계를 실행합니다. 여기서 VDO 볼륨 myvdo 에는 /users/homeDir 경로에 마운트된 파일 시스템이 포함됩니다.

    1. 파일 시스템을 중단합니다.

      # xfs_freeze -f /users/homeDir
      
      # vgextend myvg /dev/vdc2
      
      # lvextend -l new_size myvg/vpool0-name
      
      # xfs_freeze -u /users/homeDir
    2. 파일 시스템을 마운트 해제합니다.

      # umount /users/homeDir
      
      # vgextend myvg /dev/vdc2
      
      # lvextend -l new_size myvg/vpool0-name
      
      # mount -o discard /dev/myvg/myvdo /users/homeDir
      참고

      캐시된 데이터가 있는 파일 시스템을 마운트 해제하거나 해제하면 캐시된 데이터가 작성되어 VDO 볼륨의 물리 공간이 채워질 수 있습니다. VDO 볼륨에서 사용 가능한 물리적 공간에 대한 모니터링 임계값을 설정할 때 캐시된 파일 시스템 데이터의 최대 양을 고려하십시오.

  6. 파일 시스템에서 더 이상 사용되지 않는 블록은 fstrim 유틸리티를 사용하여 정리할 수 있습니다. VDO 볼륨 위에 마운트된 파일 시스템에 대해 fstrim 을 실행하면 해당 볼륨에 대한 실제 공간이 증가할 수 있습니다. fstrim 유틸리티는 VDO 볼륨으로 삭제를 보내며 이전에 사용된 블록에 대한 참조를 제거하는 데 사용됩니다. 이러한 블록 중 하나를 단일 참조하면 실제 공간을 사용할 수 있습니다.

    1. VDO 통계를 확인하여 현재 사용 가능한 공간을 확인하십시오.

      # vdostats --human-readable myvg-vpool0-vpool
      
       Device             Size  Used  Available Use%  Space saving%
      myvg-vpool0-vpool  100.0G 95.0G 5.0G      95%   73%
    2. 사용되지 않는 블록 폐기:

      # fstrim /users/homeDir
    3. VDO 볼륨의 여유 물리 공간을 확인합니다.

      # vdostats --human-readable myvg-vpool0-vpool
      
      
       Device             Size    Used   Available Use%  Space saving%
      myvg-vpool0-vpool  100.0G   30.0G  70.0G     30%    43%

      이 예에서는 파일 시스템에서 fstrim 을 실행한 후 삭제가 VDO 볼륨에서 사용할 물리적 공간의 65G를 반환할 수 있었습니다.

      참고

      중복 제거 및 압축 수준이 낮은 볼륨을 폐기하면 중복 제거 및 압축 수준이 높은 볼륨을 삭제하는 것보다 물리적 공간을 회수할 수 있습니다. 중복 제거 및 압축 수준이 높은 볼륨에는 아직 사용되지 않은 블록을 삭제하는 것보다 물리적 공간을 회수하기 위해 더 광범위한 클린업이 필요할 수 있습니다.