Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

30.4.9. 여유 공간 관리

VDO는 씬 프로비저닝된 블록 스토리지 대상이므로 VDO에서 사용하는 물리적 공간의 크기는 스토리지 사용자에게 제공되는 볼륨의 크기와 다를 수 있습니다. 통합자 및 시스템 관리자는 이러한 차이를 악용하여 스토리지 비용을 절감할 수 있지만, 작성한 데이터가 중복 제거의 예상 속도를 얻지 못하는 경우 스토리지 공간이 예기치 않게 발생하지 않도록 주의해야 합니다.
논리 블록(가상 스토리지)의 수가 물리적 블록 수를 초과할 때마다 파일 시스템 및 애플리케이션이 예기치 않게 공간이 부족해질 수 있습니다. 이러한 이유로 VDO를 사용하는 스토리지 시스템은 스토리지 관리자에게 VDO의 여유 풀 크기를 모니터링하는 방법을 제공해야 합니다. 이 사용 가능한 풀의 크기는 EgressIP stats 유틸리티를 사용하여 결정할 수 있습니다. 자세한 내용은 30.7.2절. “vdostats” 을 참조하십시오. 이 유틸리티의 기본 출력에는 Linux df 유틸리티와 유사한 형식으로 실행 중인 모든 VDO 볼륨에 대한 정보가 나열됩니다. 예를 들어 다음과 같습니다.
Device              1K-blocks   Used        Available   Use%
/dev/mapper/my_vdo  211812352   105906176   105906176     50%
VDO 볼륨의 물리적 스토리지 용량이 거의 가득 차면 VDO는 다음과 같이 시스템 로그에 경고를 보고합니다.
Oct  2 17:13:39 system lvm[13863]: Monitoring VDO pool my_vdo.
Oct  2 17:27:39 system lvm[13863]: WARNING: VDO pool my_vdo is now 80.69% full.
Oct  2 17:28:19 system lvm[13863]: WARNING: VDO pool my_vdo is now 85.25% full.
Oct  2 17:29:39 system lvm[13863]: WARNING: VDO pool my_vdo is now 90.64% full.
Oct  2 17:30:29 system lvm[13863]: WARNING: VDO pool my_vdo is now 96.07% full.
VDO의 사용 가능한 풀 크기가 특정 수준 아래로 떨어지면 스토리지 관리자는 데이터를 삭제하여 조치를 취할 수 있습니다 (삭제된 데이터가 복제되지 않을 때마다 공간 회수), 물리적 스토리지 추가 또는 LUN 삭제.
중요
VDO 볼륨에서 물리적 공간을 모니터링하여 공간 부족 상황을 방지합니다. 물리적 블록이 부족하면 VDO 볼륨에서 최근에 기록되지 않은 데이터가 손실될 수 있습니다.

30.4.9.1. 파일 시스템의 공간 회수

VDO는 DISCARD,TRIM 또는 UNMAP 명령을 사용하여 블록이 자유로우는 것을 통신하지 않는 한 공간을 회수할 수 없습니다. DISCARD,TRIM 또는 UNMAP 를 사용하지 않는 파일 시스템의 경우 여유 공간이 바이너리 0으로 구성된 파일을 저장한 다음 해당 파일을 삭제하여 수동으로 회수할 수 있습니다.
파일 시스템은 일반적으로 다음 두 가지 방법 중 하나로 DISCARD 요청을 실행하도록 구성할 수 있습니다.
실시간 삭제 (또한 온라인 삭제 또는 삭제)
실시간 삭제가 활성화되면 파일 시스템은 사용자가 파일을 삭제하고 공간을 확보할 때마다 블록 계층에 REQ_DISCARD 요청을 보냅니다. VDO는 이러한 요청을 수정하고 블록이 공유되지 않은 경우 사용 가능한 풀에 공간을 반환합니다.
온라인 삭제 기능을 지원하는 파일 시스템의 경우 마운트 시 삭제 옵션을 설정하여 활성화할 수 있습니다.
batch 삭제
일괄 삭제는 파일 시스템에서 사용되지 않는 블록의 블록 계층(VDO)에 알리는 사용자 시작 작업입니다. 이는 파일 시스템을 FITRIM 이라는 ioctl 요청으로 전송하여 수행됩니다.
fstrim 유틸리티(예: cron)를 사용하여 이 ioctl 을 파일 시스템으로 보낼 수 있습니다.
삭제 기능에 대한 자세한 내용은 2.4절. “사용되지 않는 블록 삭제” 을 참조하십시오.

30.4.9.2. 파일 시스템이 없는 공간 회수

또한 스토리지가 파일 시스템 없이 블록 스토리지 대상으로 사용될 때 사용 가능한 공간을 관리할 수 있습니다. 예를 들어 단일 VDO 볼륨은 그 위에 LVM(Logical Volume Manager)을 설치하여 여러 하위 볼륨으로 분할할 수 있습니다. 볼륨 프로비저닝을 해제하기 전에 blkdiscard 명령을 사용하여 해당 논리 볼륨에서 이전에 사용한 공간을 확보할 수 있습니다. LVM은 REQ_DISCARD 명령을 지원하며 공간을 확보하기 위해 적절한 논리 블록 주소에서 VDO로 요청을 전달합니다. 다른 볼륨 관리자를 사용하는 경우 REQ_DISCARD 를 지원하거나 SCSI 장치의 경우 UNMAP 또는 ATA 장치의 경우 TRIM 을 지원해야 합니다.

30.4.9.3. 파이버 채널 또는 이더넷 네트워크에서 공간 회수

VDO 볼륨(또는 볼륨의 일부)은 LIO 또는 SCST와 같은 SCSI 대상 프레임워크를 사용하여 파이버 채널 스토리지 패브릭 또는 이더넷 네트워크의 호스트에 프로비저닝될 수도 있습니다. SCSI 이니시에이터는 UNMAP 명령을 사용하여 씬 프로비저닝된 스토리지 대상의 공간을 확보할 수 있지만, 이 명령에 대한 지원을 광고하려면 SCSI 대상 프레임워크를 구성해야 합니다. 일반적으로 이러한 볼륨은 씬 프로비저닝 을 활성화하여 수행됩니다. UNMAP 에 대한 지원은 다음 명령을 실행하여 Linux 기반 SCSI 이니시에이터에서 확인할 수 있습니다.
# sg_vpd --page=0xb0 /dev/device
출력에서 "Maximum unmap LBA count" 값이 0보다 큰지 확인합니다.