2장. VDO 유지 관리
VDO 볼륨을 배포한 후 특정 작업을 수행하여 유지 관리 또는 최적화할 수 있습니다. 다음 작업 중 일부는 VDO 볼륨의 올바른 작동에 필요합니다.
사전 요구 사항
- VDO가 설치 및 배포됨. 1장. VDO 배포을 참조하십시오.
2.1. VDO 볼륨에서 여유 공간 관리
VDO는 씬 프로비저닝된 블록 스토리지 대상입니다. 이로 인해 VDO 볼륨에서 공간 사용량을 적극적으로 모니터링하고 관리해야 합니다.
2.1.1. VDO 볼륨의 물리 및 논리 크기
VDO는 다음과 같은 방식으로 물리적, 사용 가능한 물리적 및 논리 크기를 사용합니다.
- 물리 크기
이 크기는 기본 블록 장치와 동일합니다. VDO는 다음을 위해 이 스토리지를 사용합니다.
- 중복 제거 및 압축 가능한 사용자 데이터
- UDS 인덱스와 같은 VDO 메타데이터
- 사용 가능한 물리 크기
이것은 VDO가 사용자 데이터에 사용할 수있는 물리적 크기의 부분입니다.
이 값은 물리 크기에서 메타데이터 크기를 뺀 값과 같고, 볼륨을 slab 크기로 분할한 후 나머지 부분을 slab 크기로 나눕니다.
- 논리 크기
이는 VDO 볼륨이 애플리케이션에 제공하는 프로비저닝된 크기입니다. 일반적으로 사용 가능한 실제 크기보다 큽니다. vdo
LogicalSize
옵션이 지정되지 않은 경우 이제 논리 볼륨의 프로비저닝이1:1
비율로 프로비저닝됩니다. 예를 들어, VDO 볼륨이 20GB 블록 장치에 배치된 경우 2.5GB는 UDS 인덱스용으로 예약됩니다(기본 인덱스 크기가 사용되는 경우). 나머지 17.5GB는 VDO 메타데이터 및 사용자 데이터에 대해 제공됩니다. 따라서 사용할 수 있는 스토리지가 17.5GB를 넘지 않으며 실제 VDO 볼륨을 구성하는 메타데이터로 인해 더 적을 수 있습니다.VDO는 현재 절대 최대 논리 크기가 4PB인 물리 볼륨의 최대 254배의 논리 크기를 지원합니다.
그림 2.1. VDO 디스크 조직
이 그림에서 VDO 중복 제거 스토리지 대상은 블록 장치에 완전히 배치되므로 VDO 볼륨의 물리적 크기가 기본 블록 장치와 동일한 크기입니다.
추가 리소스
- 다른 크기의 블록 장치에 스토리지 VDO 메타데이터에 필요한 용량에 대한 자세한 내용은 1.6.4절. “물리적 크기에 따른 VDO 요구 사항의 예” 을 참조하십시오.
2.1.2. VDO의 씬 프로비저닝
VDO는 씬 프로비저닝된 블록 스토리지 대상입니다. VDO 볼륨에서 사용하는 물리 공간의 양은 스토리지 사용자에게 표시되는 볼륨 크기와 다를 수 있습니다. 이러한 차이를 활용하여 스토리지 비용을 절감할 수 있습니다.
공간 외 조건
작성한 데이터가 예상 최적화 속도를 달성하지 못하는 경우 예기치 않게 스토리지 공간이 부족하지 않도록 주의하십시오.
논리 블록(가상 스토리지) 수가 물리적 블록(실제 저장소) 수를 초과할 때마다 파일 시스템 및 애플리케이션이 예기치 않게 공간이 부족해질 수 있습니다. 따라서 VDO를 사용하는 스토리지 시스템은 VDO 볼륨에서 사용 가능한 풀의 크기를 모니터링하는 방법을 제공해야 합니다.
vdostats
유틸리티를 사용하여 이 사용 가능한 풀의 크기를 확인할 수 있습니다. 이 유틸리티의 기본 출력에는 Linux df
유틸리티와 유사한 형식으로 실행되는 모든 VDO 볼륨에 대한 정보가 나열됩니다. 예를 들면 다음과 같습니다.
Device 1K-blocks Used Available Use%
/dev/mapper/vdo-name 211812352 105906176 105906176 50%
VDO 볼륨의 물리적 스토리지 용량이 거의 가득 차면 VDO는 다음과 유사하게 시스템 로그에 경고를 보고합니다.
Oct 2 17:13:39 system lvm[13863]: Monitoring VDO pool vdo-name. Oct 2 17:27:39 system lvm[13863]: WARNING: VDO pool vdo-name is now 80.69% full. Oct 2 17:28:19 system lvm[13863]: WARNING: VDO pool vdo-name is now 85.25% full. Oct 2 17:29:39 system lvm[13863]: WARNING: VDO pool vdo-name is now 90.64% full. Oct 2 17:30:29 system lvm[13863]: WARNING: VDO pool vdo-name is now 96.07% full.
이 경고 메시지는 lvm2-monitor
서비스가 실행 중인 경우에만 표시됩니다. 기본적으로 활성화되어 있습니다.
공간 부족 조건을 방지하는 방법
사용 가능한 풀 크기가 특정 수준 아래로 떨어지면 다음을 수행하여 작업을 수행할 수 있습니다.
- 데이터 삭제. 그러면 삭제된 데이터가 중복되지 않을 때마다 공간을 회수합니다. 데이터를 삭제하면 삭제가 발생한 후에만 공간을 사용할 수 있습니다.
- 물리적 스토리지 추가
VDO 볼륨의 물리적 공간을 모니터링하여 공간 부족 상황을 방지합니다. 물리적 블록이 없으면 최근에 작성되었으며 VDO 볼륨에 승인되지 않은 데이터가 손실될 수 있습니다.
씬 프로비저닝 및 TRIM 및 DISCARD 명령
씬 프로비저닝의 스토리지 절감 효과를 얻기 위해서는 물리적 스토리지 계층에서 데이터를 삭제할 시기를 알아야 합니다. 씬 프로비저닝된 스토리지로 작동하는 파일 시스템은 TRIM
또는 DISCARD
명령을 전송하여 논리적 블록이 더 이상 필요하지 않은 경우 스토리지 시스템에 알립니다.
TRIM
또는 DISCARD
명령을 전송하는 몇 가지 방법을 사용할 수 있습니다.
-
discard
마운트 옵션을 사용하면 파일 시스템은 블록이 삭제될 때마다 이러한 명령을 보낼 수 있습니다. -
fstrim
과 같은 유틸리티를 사용하여 제어되는 방식으로 명령을 보낼 수 있습니다. 이러한 유틸리티는 파일 시스템에 사용되지 않는 논리 블록을 감지하고TRIM
또는DISCARD
명령 형식으로 정보를 스토리지 시스템에 전송합니다.
사용하지 않는 블록에서 TRIM
또는 DISCARD
를 사용할 필요는 VDO에만 국한되지 않습니다. 씬 프로비저닝된 모든 스토리지 시스템에는 동일한 과제가 있습니다.
2.1.3. VDO 모니터링
다음 절차에서는 VDO 볼륨에서 사용 및 효율성 정보를 얻는 방법을 설명합니다.
사전 요구 사항
- VDO 소프트웨어를 설치합니다. 1.7절. “VDO 설치”을 참조하십시오.
절차
vdostats
유틸리티를 사용하여 VDO 볼륨에 대한 정보를 가져옵니다.# vdostats --human-readable Device 1K-blocks Used Available Use% Space saving% /dev/mapper/node1osd1 926.5G 21.0G 905.5G 2% 73% /dev/mapper/node1osd2 926.5G 28.2G 898.3G 3% 64%
추가 리소스
-
vdostats(8)
도움말 페이지.
2.1.4. 파일 시스템에서 VDO 공간 확보
이 절차에서는 파일 시스템을 호스팅하는 VDO 볼륨의 스토리지 공간을 회수합니다.
파일 시스템이 DISCARD
,TRIM
또는 UNMAP
명령을 사용하여 블록이 사용 가능한 것으로 통신하지 않는 한 VDO는 공간을 회수할 수 없습니다.
절차
- VDO 볼륨의 파일 시스템이 삭제 작업을 지원하는 경우 활성화합니다. 5장. 사용하지 않는 블록 삭제을 참조하십시오.
-
DISCARD
,TRIM
또는UNMAP
를 사용하지 않는 파일 시스템의 경우 수동으로 사용 가능한 공간을 회수할 수 있습니다. 바이너리 0으로 구성된 파일을 저장하여 사용 가능한 공간을 채운 다음 해당 파일을 삭제합니다.
2.1.5. 파일 시스템없이 VDO의 공간 확보
이 절차에서는 VDO 볼륨에서 파일 시스템 없이 블록 스토리지 대상으로 사용되는 스토리지 공간을 회수합니다.
절차
blkdiscard
유틸리티를 사용합니다.예를 들어 단일 VDO 볼륨은 LVM을 그 위에 배포하여 여러 하위 볼륨으로 나눌 수 있습니다. 논리 볼륨을 프로비저닝 해제하기 전에
blkdiscard
유틸리티를 사용하여 이전에 해당 논리 볼륨에서 사용한 공간을 확보합니다.LVM은
REQ_DISCARD
명령을 지원하며 공간을 확보하기 위해 적절한 논리 블록 주소에서 VDO에 요청을 전달합니다. 다른 볼륨 관리자를 사용하는 경우REQ_DISCARD
또는 이에 상응하는 SCSI 장치의 경우UNMAP
또는 ATA 장치의 경우TRIM
을 지원해야 합니다.
추가 리소스
-
blkdiscard(8)
도움말 페이지
2.1.6. 파이버 채널 또는 이더넷 네트워크에서 VDO의 공간 확보
이 절차에서는 LIO 또는 SCST와 같은 SCSI 대상 프레임워크를 사용하여 파이버 채널 스토리지 패브릭 또는 이더넷 네트워크의 호스트에 프로비저닝되는 VDO 볼륨(또는 볼륨의 일부)의 스토리지 공간을 회수합니다.
절차
SCSI 이니시에이터는
UNMAP
명령을 사용하여 씬 프로비저닝된 스토리지 대상의 공간을 확보할 수 있지만 이 명령에 대한 지원을 알리도록 SCSI 대상 프레임워크를 구성해야 합니다. 일반적으로 이러한 볼륨에서 씬 프로비저닝을 활성화하여 수행합니다.다음 명령을 실행하여 Linux 기반 SCSI 이니시에이터에서
UNMAP
에 대한 지원을 확인합니다.# sg_vpd --page=0xb0 /dev/device
출력에서 최대 매핑 해제 LBA 개수 값이 0보다 큰지 확인합니다.