2.6. UDS 인덱스 최적화
UDS 인덱스의 특정 설정을 구성하여 시스템에서 최적화할 수 있습니다.
VDO 볼륨을 생성한 후에는 UDS 인덱스의 속성을 변경할 수 없습니다.
2.6.1. VDO 볼륨의 구성 요소
VDO는 블록 장치를 백업 저장소로 사용하며, 이 저장소에는 하나 이상의 디스크, 파티션 또는 플랫 파일로 구성된 물리적 스토리지 집계가 포함될 수 있습니다. 스토리지 관리 툴에서 VDO 볼륨을 생성할 때 VDO는 UDS 인덱스 및 VDO 볼륨을 위한 볼륨 공간을 예약합니다. UDS 인덱스와 VDO 볼륨은 중복 제거 블록 스토리지를 제공하기 위해 상호 작용합니다.
그림 2.2. VDO 디스크 조직
VDO 솔루션은 다음 구성 요소로 구성됩니다.
kvdo
Linux 장치 매퍼 계층으로 로드되는 커널 모듈은 중복 제거, 압축 및 씬 프로비저닝된 블록 스토리지 볼륨을 제공합니다.
kvdo
모듈은 블록 장치를 노출합니다. 블록 스토리지에 대해 이 블록 장치에 직접 액세스하거나 XFS 또는 ext4와 같은 Linux 파일 시스템을 통해 제공할 수 있습니다.kvdo
에서 VDO 볼륨의 논리적 데이터 블록을 읽도록 요청을 받으면 요청된 논리 블록을 기본 물리 블록에 매핑한 다음 요청된 데이터를 읽고 반환합니다.kvdo
에서 VDO 볼륨에 데이터 블록을 쓰기 요청을 수신하면 먼저 요청이 DISCARD 또는 TRIM 요청인지 또는 데이터가 균일하게 0인지 여부를 확인합니다. 이러한 조건 중 하나가 true이면kvdo
는 블록 맵을 업데이트하고 요청을 승인합니다. 그렇지 않으면 VDO는 데이터를 처리하고 최적화합니다.UDS
볼륨에서 UDS(Universal Deduplication Service) 인덱스와 통신하고 중복 데이터를 분석하는 커널 모듈. 새로운 데이터 각각에 대해 UDS는 이전에 저장된 데이터와 동일한지 신속하게 판별합니다. 인덱스가 일치하는 항목을 발견하면 스토리지 시스템은 기존 항목을 내부적으로 참조하여 동일한 정보를 두 번 이상 저장하지 않도록 할 수 있습니다.
UDS 인덱스는
uds
커널 모듈로 커널 내부에서 실행됩니다.- 명령행 도구
- 최적화된 스토리지 구성 및 관리.
2.6.2. UDS 인덱스
VDO는 UDS라는 고성능 중복 제거 인덱스를 사용하여 저장되는 데이터 블록을 감지합니다.
UDS 인덱스는 VDO 제품의 토대를 제공합니다. 새 데이터 각각에 대해 이 데이터가 이전에 저장된 데이터와 동일한지 신속하게 판별합니다. 인덱스가 일치하면 스토리지 시스템은 기존 항목을 내부적으로 참조하여 동일한 정보를 두 번 이상 저장하지 않도록 할 수 있습니다.
UDS 인덱스는 uds
커널 모듈로 커널 내부에서 실행됩니다.
중복 제거 창은 인덱스가 기억하는 이전에 작성된 블록 수입니다. 중복 제거 창의 크기는 구성할 수 있습니다. 지정된 창 크기에 대해 인덱스에는 특정 용량의 RAM과 특정 디스크 공간이 필요합니다. 일반적으로 창 크기는 --indexMem=size
옵션을 사용하여 인덱스 메모리 크기를 지정하여 결정됩니다. 그런 다음 VDO는 자동으로 사용할 디스크 공간의 양을 결정합니다.
UDS 인덱스는 다음 두 부분으로 구성됩니다.
- 고유한 블록당 최대 하나의 항목이 포함된 메모리에서 압축 표현이 사용됩니다.
- 발생 시 인덱스에 제공되는 연결된 블록 이름을 순서대로 기록하는 디스크상의 구성 요소입니다.
UDS는 캐시를 포함하여 메모리의 항목당 평균 4바이트를 사용합니다.
디스크의 구성 요소는 UDS에 전달된 데이터의 바인딩된 기록을 유지합니다. UDS는 최근 표시된 블록의 이름을 포함하여 이 중복 제거 창에 속하는 데이터에 대한 중복 제거 지침을 제공합니다. 중복 제거 창에서 UDS는 데이터를 최대한 효율적으로 인덱싱하는 동시에 대용량 데이터 리포지토리에 필요한 메모리 양을 제한할 수 있습니다. 중복 제거 창의 경계된 특성에도 불구하고, 중복 제거 수준이 높은 대부분의 데이터 집합은 일시적인 지역성을 나타냈습니다. 즉, 대부분의 중복 제거는 거의 동시에 작성된 블록 간에 발생합니다. 또한 일반적으로 작성 중인 데이터는 오래 전에 작성된 데이터보다 최근에 작성된 데이터가 복제될 가능성이 높습니다. 따라서 지정된 시간 간격 동안 지정된 워크로드의 경우 중복 제거 속도는 가장 최근 데이터 또는 모든 데이터만 색인화하는지 여부와 동일한 경우가 많습니다.
중복 데이터는 시간적 로컬을 나타내기 때문에 스토리지 시스템의 모든 블록을 인덱싱하는 것은 거의 필요하지 않습니다. 그렇지 않은 경우 인덱스 메모리 비용이 중복 제거로 인한 스토리지 비용 절감을 넘어섭니다. 인덱스 크기 요구 사항은 데이터 입수 속도와 더 긴밀하게 연관되어 있습니다. 예를 들어 총 용량이 100TB이지만 입수 속도는 주당 1TB인 스토리지 시스템을 고려해 보십시오. 4TB의 중복 제거 창에서 UDS는 지난 달 기록된 데이터 중에서 대부분의 중복성을 감지할 수 있습니다.
2.6.3. 권장 UDS 인덱스 구성
이 섹션에서는 의도한 사용 사례에 따라 UDS 인덱스와 함께 사용할 권장 옵션에 대해 설명합니다.
일반적으로 Red Hat은 모든 운용 환경에 스파스 UDS 인덱스를 사용하는 것이 좋습니다. 이는 매우 효율적인 인덱싱 데이터 구조로, 중복 제거 창에서 블록당 약 1바이트의 RAM이 필요합니다. 디스크의 경우 블록당 약 72바이트의 디스크 공간이 필요합니다. 이 인덱스의 최소 구성은 256MB의 RAM과 디스크의 약 25GB 공간을 사용합니다.
이 구성을 사용하려면 vdo create
명령에 --sparseIndex=enabled --indexMem=0.25
옵션을 지정합니다. 이 구성으로 인해 2.5TB의 중복 제거 창이 생성됩니다(즉 2.5TB 기록을 기억함). 대부분의 사용 사례에서 2.5TB의 중복 제거 창은 최대 10TB 크기의 스토리지 풀 중복 제거에 적합합니다.
그러나 인덱스의 기본 구성은 밀도가 높은 인덱스를 사용하는 것입니다. 이 인덱스는 RAM에서 효율성이 훨씬 낮지만 필요한 최소 디스크 공간을 10배 이상 낮으므로 제한된 환경에서 평가할 수 있습니다.
일반적으로 VDO 볼륨의 물리적 크기의 4분의 1에 해당하는 중복 제거 창은 권장 구성입니다. 그러나 이것은 실제 요구 사항이 아닙니다. 물리 스토리지 용량과 비교되는 작은 중복 제거 창도 많은 사용 사례에서 상당한 양의 중복 데이터를 찾을 수 있습니다. 큰 창을 사용할 수도 있지만, 대부분의 경우 추가 이점이 거의 없습니다.
추가 리소스
- 이 중요한 시스템 매개 변수 조정에 대한 추가 지침은 Red Hat 기술 계정 관리자 담당자에게 문의하십시오.