이 페이지에서는 FlexCache 기능을 간략히 설명합니다.
FlexCache 정보
NetApp FlexCache는 특히 클라이언트가 동일한 데이터에 반복적으로 액세스하는 경우 데이터 액세스를 가속화하고, WAN 지연 시간을 줄이며, 읽기 집약적인 워크로드의 WAN 대역폭 비용을 절감합니다. FlexCache 볼륨을 만들면 기존 (원본) 볼륨의 원격 캐시 역할을 합니다. 이 캐시는 소스 볼륨의 자주 액세스되는 핫 데이터만 저장합니다.
FlexCache 볼륨이 포함된 인기 데이터에 대한 읽기 요청을 수신하면 데이터가 클라이언트로 이동하는 거리가 짧기 때문에 원본 볼륨보다 빠르게 응답합니다. FlexCache 볼륨이 자주 액세스하지 않는 콜드 데이터에 대한 읽기 요청을 수신하면 원본 볼륨에서 필요한 데이터를 가져와 저장한 다음 클라이언트 요청을 처리합니다. 그런 다음 해당 데이터에 대한 후속 읽기 요청은 FlexCache 볼륨에서 직접 처리됩니다. 첫 번째 요청 후에는 데이터가 더 이상 네트워크를 통해 이동하거나 과부하가 걸린 시스템에서 제공될 필요가 없습니다.
애플리케이션은 FlexCache 볼륨에 쓸 수 있지만 이러한 쓰기는 캐시 일관성을 유지하기 위해 원본 볼륨으로 전송됩니다.
FlexCache와 Google Cloud NetApp Volumes를 통합하면 Google 네트워크 내에 캐시 볼륨을 프로비저닝하여 하이브리드 클라우드 환경의 성능을 개선할 수 있습니다. 이 기능은 온프레미스 데이터 센터의 데이터를 클라우드에 캐싱하여 워크로드를 하이브리드 클라우드로 전환하는 것을 지원합니다.
NetApp Volumes의 볼륨은 원본 볼륨으로 사용할 수 없습니다.
FlexCache의 특징은 다음과 같습니다.
쓰기 동작
FlexCache는 원본 또는 원본의 캐시에서 읽은 데이터가 항상 최신 상태인지 확인합니다. 데이터를 원본이나 캐시에 쓸 수 있는 환경에서 쓰기를 관리하기 위해 FlexCache는 이러한 쓰기 작업을 처리하는 다음 전략을 제공합니다.
Write-around
쓰기 주변은 기본 캐시 설정입니다. 읽기 집약적 워크로드가 있거나 작은 파일만 작성되는 환경에 권장됩니다.
데이터가 FlexCache 볼륨에 작성되면 쓰기 작업이 원본 볼륨에 전달됩니다. 원본에서 확인하면 캐시에서 쓰기를 승인합니다. 파일에 쓰면 캐시된 사본이 무효화되고 다음 액세스 시 캐시에서 다시 가져옵니다.
이 전략은 캐시된 데이터에 LAN과 유사한 읽기 지연 시간을 제공합니다. 하지만 쓰기 처리량은 원본과의 네트워크 연결에 따라 달라집니다. 원본과 캐시 간 네트워크가 실패하더라도 사용자는 캐시의 데이터에 액세스할 수 있습니다.
쓰기
쓰기 캐시는 특정 워크로드에만 적합합니다. 대용량 파일에 대한 대량 쓰기의 빠른 쓰기 속도를 제공합니다. 원본과 모든 캐시 간의 데이터 일관성을 관리하는 오버헤드가 성능을 크게 저하시키므로 여러 파일에 대한 작은 쓰기가 많은 워크로드에는 쓰기 백이 권장되지 않습니다.
FlexCache의 쓰기 캐시를 사용 설정하기 전에 먼저 ONTAP FlexCache 쓰기 캐시 가이드라인을 검토하고, 아키텍처 영향을 파악하고, 환경이 문서화된 워크로드 프로필과 일치하는지 확인하세요. 워크로드가 쓰기 지원에 적합한지 확인할 수 없는 경우 쓰기 우회가 권장됩니다.
사용자는 선택적으로 쓰기 지원을 사용 설정할 수 있습니다. 쓰기 캐시가 사용 설정되면 클라이언트는 LAN과 유사한 성능으로 캐시에 대량의 데이터를 쓸 수 있습니다. 그러면 캐시가 이러한 변경사항을 원본에 전송합니다. 캐시에 대한 클라이언트의 쓰기 속도가 데이터가 원본으로 전송되는 속도를 초과할 수 있으므로 캐시는 변경사항이 원본으로 완전히 플러시될 때까지 일시적으로 저장합니다. 클라이언트가 파일에 쓰는 동안 원본과 다른 모든 캐시는 쓰기 작업이 완료될 때까지 해당 파일의 읽기 호출을 차단합니다.
쓰기 전략은 캐시된 데이터에 LAN과 유사한 읽기 및 쓰기 성능을 제공합니다. 하지만 캐시나 원본의 연결이 끊어지면 모든 읽기 및 쓰기 작업이 차단됩니다.
액세스 시간 업데이트로 인한 캐시 무효화
ONTAP는 READ, READLINK, READDIR을 사용하여 읽은 파일 및 디렉터리의 액세스 시간 업데이트를 관리하는 -atime-update라는 볼륨 수준 필드를 제공합니다.
원본 또는 캐시 볼륨의 액세스 시간 업데이트는 캐시 효율성을 줄이고 파일 액세스 성능을 저하시키며 지연 시간을 높이는 파일 무효화를 트리거할 수 있습니다. 이를 방지하려면 ONTAP volume modify -atime-update 명령어를 사용하여 원본 볼륨에서 액세스 시간 업데이트를 사용 중지합니다. 최근 읽기를 반영하는 액세스 시간이 필요한 시나리오에서는 volume modify -atime-update-period 명령어를 사용하여 액세스 시간 업데이트가 중지되는 기간을 정의합니다. 예를 들어 86400초로 설정하면 액세스 시간이 하루에 한 번만 업데이트됩니다.
NetApp Volumes의 FlexCache 볼륨은 원본의 -atime-update 설정을 상속하므로 캐시 무효화가 증가할 수 있습니다. 따라서 원본 볼륨에서 액세스 시간 업데이트를 사용 중지하는 것이 좋습니다.
전역 파일 잠금
전역 파일 잠금은 모든 캐시와 원본 볼륨에서 파일에 대한 읽기 거부 및 독점 바이트 범위 잠금을 적용합니다. 데이터 일관성을 유지하거나 액세스 충돌을 방지하기 위해 워크플로에서 이러한 잠금을 엄격하게 적용해야 하는 경우 전역 파일 잠금을 사용 설정하세요.
고려사항
캐시와 원본 간에 안정적인 연결이 있는 경우에만 전역 파일 잠금을 사용 설정하세요. 연결이 불안정하면 수정이 지연되거나 일시 중지될 수 있으며, FlexCache 볼륨이 오프라인 상태인 경우 시간 초과가 발생할 수 있습니다.
성능 영향: 전역 파일 잠금을 사용 설정하면 모든 캐시 읽기가 잠금 유효성 검사를 위해 원본에 대한 요청을 트리거하여 왕복 시간 (RTT)이 증가하므로 지연 시간이 증가합니다.
가용성 영향: 캐시 볼륨이 오프라인 상태가 되면 다른 모든 캐시 볼륨에서 해당 파일의 읽기가 차단되고 모든 FlexCache 볼륨이 다시 온라인 상태가 될 때까지 원본 볼륨의 수정이 일시 중지됩니다.
전역 파일 잠금은 시스템 성능과 안정성에 영향을 줄 수 있으므로 워크플로에 명시적으로 필요한 경우가 아니면 사용 중지 상태로 유지하세요.
CIFS 변경 알림
SMB 프로토콜은 다른 클라이언트가 볼륨에 적용한 변경사항을 SMB 클라이언트에 알리는 메커니즘을 제공합니다. 이렇게 하면 Windows 탐색기와 같은 애플리케이션이 볼륨을 폴링하지 않고도 뷰를 업데이트할 수 있습니다. 이 선택적 기능은 대화형 사용자가 Windows 탐색기를 통해 SMB 볼륨의 파일에 액세스하는 캐시에 유용합니다. 그렇지 않으면 알림 로드를 줄이기 위해 사용 중지해야 합니다.
캐시 자동 입력
FlexCache는 원본에서 처음 읽을 때 데이터를 캐시하여 읽기 액세스를 가속화하고, 원본과 모든 캐시를 동기화하여 캐시 일관성을 유지합니다. 따라서 초기 파일 액세스는 WAN과 유사한 읽기 성능을 갖지만 후속 읽기는 로컬 읽기만큼 빠릅니다.
캐시에 필요한 특정 데이터를 알고 있다면 캐시 미리 채우기를 사용할 수 있습니다. 자동 입력 기능을 사용하면 첫 액세스 시 읽기를 가속화하기 위해 처음 사용하기 전에 특정 파일과 폴더를 가져오도록 캐시에 지시할 수 있습니다.
사전 입력 작업을 시작하려면 캐시에 파일 또는 디렉터리 경로 목록을 제공해야 합니다. 하위 디렉터리 내의 모든 콘텐츠를 가져올 수 있는 재귀를 사용 설정할 수도 있습니다.
사전 채우기 작업의 실행 시간은 사전 채우기할 데이터의 양과 캐시와 원본 간의 네트워크 속도에 따라 달라질 수 있습니다. FlexCache를 사용하면 사전 입력 작업의 상태를 모니터링하여 작업이 아직 실행 중인지 또는 완료되었는지 확인할 수 있습니다.