네트워크 공유를 캐시하는 NFS 서버를 설정하는 방법은 무엇입니까?


14

사용자 데이터는 상당히 큰 (> 1 PB) OpenStack Swift 스토리지 클러스터에 저장됩니다. 그것들을 클러스터 A클러스터 B 라고하자 .

또한 해당 데이터와 상호 작용해야하는 몇 가지 PoP 가 있습니다. 이러한 PoP의 서버는 사실상 디스크가 없으므로 사용자 데이터가 서버에 저장되거나 다운로드되지 않습니다. PoP는 일반적인 세계 지역 (예 : 북미 , 남아프리카 , 중앙 유럽 등) 으로 그룹화 할 수 있습니다 .

일부 PoP는 클러스터의 Swift 끝점에서 멀리 떨어져있어 원하지 않는 대기 시간이 발생합니다. 이를 완화하기 위해 각 리전에서 캐싱 게이트웨이 서버를 설정하여 가장 가까운 클러스터에 r / w 요청을 캐시합니다.

현재 모든 PoP의 클라이언트는 영구적으로 장착 된 신속한 가상 파일 시스템 ( Swift Object Storage를 블록 장치로 또는 그 이하)으로 마운트하는 FUSE 모듈을 통해 사용자 데이터에 액세스합니다 . 그러나 svfs는 처음부터 안정적이지 않으며 미래에는 클라이언트가 NFS를 통해 캐시 서버에 액세스해야합니다.

이것은 원하는 아키텍처의 한 분기에 대한 다이어그램입니다.

+------------------+                +------------------+    NFS   +------------------+
|    Cluster A     |     SVFS       |  Region 1 Cache  +---------->  R1 PoP a Client |
|                  +---------------->                  |          |                  |
|Persistent Storage|                |Ephemeral  Storage+----+     |Generates R/W Load|
+-----------------++                +------------------+    |     +------------------+
                  |                                         |
                  |                 +------------------+    | NFS +------------------+
                  |      SVFS       |  Region 2 Cache  |    +----->  R1 PoP b Client |
                  +----------------->                  |          |                  |
                                    |Ephemeral  Storage|          |Generates R/W Load|
                                    +------------------+          +------------------+

NFS 및 svfs 설정기본 사항에 익숙합니다 .

질문은 다음과 같습니다. 캐싱 서버가 svfs 마운트 지점에 쓰기 전에 가능한 한 많은 데이터를 최대한 적극적으로 캐시하기 위해 사용 가능한 모든 리소스 (지정된 캐시 파티션, RAM)를 사용하도록 설정하려면 어떻게해야합니까? 기본적으로 리눅스에서 디렉토리를 어떻게 캐시 할 수 있습니까?

가능하면 읽기 및 쓰기를 통합해야하며 캐시가 클러스터에 기록해야하는 경우 처리량을 최대화하고 대기 시간을 최소화하기 위해 가능하면 FUSE 요청의 블록 크기는 최소 128k 이상이어야합니다.

부록 1 : 몇 개의 서버에서 클러스터 마운트 모듈을 svfs에서 S3QL로 전환했습니다. S3QL의 캐싱 성능이 약간 향상되었습니다. 완전성을 위해 성능 데이터를 얻으려고 노력할 것입니다.


nfs 클라이언트에서 fs-cache를 활성화 할 수 있습니다. cyberciti.biz/faq/…
kofemann

제발 봐 serverfault.com/a/441443/345699 . 아마도 이것은 당신의 탐구에 도움이 될 것입니다
Steven K7FAQ

답변:


1

cachefs일명 Linux 메커니즘 (예 : aka cachefilesd)이 작동하지 않고 예산이있는 경우 WAFS (광역 파일 서비스)를 살펴볼 수 있습니다 . 이들은 일반적으로 WAN 링크와 관련된 대기 시간을 시도하고 숨기도록 NFS (및 CIFS)의 적극적인 캐싱을 위해 설계된 장치입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.