Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

ONTAP 의 pNFS 아키텍처에 대해 알아보세요

기여자 netapp-dbagwell

pNFS 아키텍처는 세 가지 주요 구성 요소로 구성됩니다. pNFS를 지원하는 NFS 클라이언트, 메타데이터 작업을 위한 전용 경로를 제공하는 메타데이터 서버, 파일에 대한 로컬 경로를 제공하는 데이터 서버입니다.

pNFS에 대한 클라이언트 액세스에는 NFS 서버에서 사용 가능한 데이터 및 메타데이터 경로에 대한 네트워크 연결이 필요합니다. NFS 서버에 클라이언트가 접근할 수 없는 네트워크 인터페이스가 포함되어 있는 경우, 서버는 접근할 수 없는 클라이언트에 대한 데이터 경로를 광고할 수 있으며, 이로 인해 중단이 발생할 수 있습니다.

메타데이터 서버

pNFS의 메타데이터 서버는 NFS 서버에서 pNFS가 활성화된 경우 클라이언트가 NFSv4.1 이상을 사용하여 마운트를 시작하면 설정됩니다. 이 작업이 완료되면 모든 메타데이터 트래픽이 이 연결을 통해 전송되고 인터페이스가 다른 노드로 마이그레이션되더라도 마운트 기간 동안 이 연결에 남아 있게 됩니다.

ONTAP 에서 pNFS에 메타데이터 서버를 구축합니다.
그림 1. ONTAP 에서 pNFS에 메타데이터 서버를 구축합니다.

pNFS 지원은 마운트 호출 중, 특히 EXCHANGE_ID 호출에서 결정됩니다. 이는 NFS 작업 아래의 패킷 캡처에서 플래그로 볼 수 있습니다. pNFS 플래그가 있는 경우 EXCHGID4_FLAG_USE_PNFS_DS 그리고 EXCHGID4_FLAG_USE_PNFS_MDS 1로 설정된 경우 해당 인터페이스는 pNFS에서 데이터 작업과 메타데이터 작업 모두에 적합합니다.

pNFS 마운트를 위한 패킷 캡처
그림 2. pNFS 마운트를 위한 패킷 캡처

NFS의 메타데이터는 일반적으로 파일 핸들, 권한, 액세스 및 수정 시간, 소유권 정보와 같은 파일 및 폴더 속성으로 구성됩니다. 메타데이터에는 통화 생성 및 삭제, 통화 연결 및 연결 해제, 이름 변경 등이 포함될 수 있습니다.

pNFS에는 pNFS 기능에 특정한 메타데이터 호출 하위 집합도 있으며 이에 대해서는 다음에서 자세히 설명합니다. "RFC 5661". 이러한 호출은 pNFS 적격 장치, 데이터 세트에 대한 장치 매핑 및 기타 필요한 정보를 결정하는 데 사용됩니다. 다음 표는 이러한 pNFS 관련 메타데이터 작업 목록을 보여줍니다.

작동 설명

레이아웃

메타데이터 서버에서 데이터 서버 맵을 가져옵니다.

레이아웃커밋

서버는 레이아웃을 커밋하고 메타데이터 맵을 업데이트합니다.

레이아웃 반환

데이터가 수정된 경우 레이아웃이나 새 레이아웃을 반환합니다.

장치 정보 가져오기

클라이언트는 스토리지 클러스터의 데이터 서버에서 업데이트된 정보를 받습니다.

장치 목록 가져오기

클라이언트는 스토리지 클러스터에 참여하는 모든 데이터 서버 목록을 요청합니다.

CB_레이아웃리콜

충돌이 감지되면 서버는 클라이언트에서 데이터 레이아웃을 다시 호출합니다.

CB_리콜_ANY

모든 레이아웃을 메타데이터 서버로 반환합니다.

CB_알림_장치ID

장치 ID 변경 사항을 알립니다.

데이터 경로 정보

메타데이터 서버가 설정되고 데이터 작업이 시작되면 ONTAP pNFS 읽기 및 쓰기 작업에 적합한 장치 ID와 클러스터의 볼륨을 로컬 네트워크 인터페이스와 연결하는 장치 매핑을 추적하기 시작합니다. 이 프로세스는 마운트에서 읽기 또는 쓰기 작업이 수행될 때 발생합니다. 메타데이터 호출(예: GETATTR. 이러한 장치 매핑은 실행되지 않습니다. 따라서 실행 ls 마운트 지점 내부의 명령을 사용해도 매핑이 업데이트되지 않습니다.

아래와 같이 고급 권한으로 ONTAP CLI를 사용하여 장치와 매핑을 볼 수 있습니다.

::*> pnfs devices show -vserver DEMO
  (vserver nfs pnfs devices show)
Vserver Name     Mapping ID      Volume MSID     Mapping Status  Generation
---------------  --------------- --------------- --------------- -------------
DEMO             16              2157024470      available       1

::*> pnfs devices mappings show -vserver SVM
  (vserver nfs pnfs devices mappings show)
Vserver Name    Mapping ID      Dsid            LIF IP
--------------  --------------- --------------- --------------------
DEMO            16              2488            10.193.67.211
참고 이 명령에는 볼륨 이름이 없습니다. 대신 해당 볼륨과 연관된 숫자 ID, 즉 마스터 세트 ID(MSID)와 데이터 세트 ID(DSID)가 사용됩니다. 매핑과 관련된 볼륨을 찾으려면 다음을 사용할 수 있습니다. volume show -dsid [dsid_numeric] 또는 volume show -msid [msid_numeric] ONTAP CLI의 고급 권한으로.

클라이언트가 메타데이터 서버 연결과 원격인 노드에 있는 파일을 읽거나 쓰려고 시도하면 pNFS는 해당 작업에 대한 데이터 로컬리티를 보장하기 위해 적절한 액세스 경로를 협상하고 클라이언트는 파일에 액세스하기 위해 클러스터 네트워크를 탐색하는 대신 광고된 pNFS 장치로 리디렉션합니다. 이렇게 하면 CPU 오버헤드와 네트워크 지연 시간을 줄이는 데 도움이 됩니다.

pNFS 없이 NFSv4.1을 사용한 원격 읽기 경로
그림 3. pNFS 없이 NFSv4.1을 사용한 원격 읽기 경로
pNFS를 사용한 로컬화된 읽기 경로
그림 4. pNFS를 사용한 로컬화된 읽기 경로

pNFS 제어 경로

pNFS의 메타데이터와 데이터 부분 외에도 pNFS 제어 경로도 있습니다. 제어 경로는 NFS 서버에서 파일 시스템 정보를 동기화하는 데 사용됩니다. ONTAP 클러스터에서 백엔드 클러스터 네트워크는 주기적으로 복제되어 모든 pNFS 장치와 장치 매핑이 동기화되도록 합니다.

pNFS 장치 채우기 워크플로

다음은 클라이언트가 볼륨의 파일을 읽거나 쓰라는 요청을 한 후 ONTAP 에서 pNFS 장치가 채워지는 방식을 설명합니다.

  1. 클라이언트가 읽기 또는 쓰기를 요청하면 OPEN이 수행되고 파일 핸들이 검색됩니다.

  2. OPEN이 수행되면 클라이언트는 메타데이터 서버 연결을 통해 LAYOUTGET 호출을 통해 파일 핸들을 저장소로 전송합니다.

  3. LAYOUTGET은 상태 ID, 스트라이프 크기, 파일 세그먼트, 장치 ID 등 파일 레이아웃에 대한 정보를 클라이언트에 반환합니다.

  4. 그런 다음 클라이언트는 장치 ID를 가져와 서버에 GETDEVINFO 호출을 보내 장치와 연결된 IP 주소를 검색합니다.

  5. 저장소는 로컬에서 장치에 접속할 수 있는 관련 IP 주소 목록이 포함된 응답을 보냅니다.

  6. 클라이언트는 저장소에서 다시 전송된 로컬 IP 주소를 통해 NFS 대화를 계속합니다.

pNFS와 FlexGroup 볼륨의 상호 작용

ONTAP 의 FlexGroup 볼륨은 클러스터의 여러 노드에 걸쳐 있는 FlexVol volume 구성 요소로 스토리지를 제공하므로 워크로드가 단일 마운트 지점을 유지하면서 여러 하드웨어 리소스를 활용할 수 있습니다. 여러 네트워크 인터페이스를 갖춘 여러 노드가 작업 부하와 상호 작용하므로 ONTAP 에서 원격 트래픽이 백엔드 클러스터 네트워크를 통과하는 것은 자연스러운 결과입니다.

pNFS 없이 FlexGroup 볼륨에서 단일 파일 액세스
그림 5. pNFS 없이 FlexGroup 볼륨에서 단일 파일 액세스

pNFS를 활용할 때 ONTAP FlexGroup 볼륨의 파일 및 볼륨 레이아웃을 추적하고 이를 클러스터의 로컬 데이터 인터페이스에 매핑합니다. 예를 들어, 액세스 중인 파일이 포함된 구성 볼륨이 노드 1에 있는 경우 ONTAP 클라이언트에게 데이터 트래픽을 노드 1의 데이터 인터페이스로 리디렉션하도록 알립니다.

pNFS를 사용한 FlexGroup 볼륨의 단일 파일 액세스
그림 6. pNFS를 사용한 FlexGroup 볼륨의 단일 파일 액세스

pNFS는 또한 pNFS가 없는 NFSv4.1에서는 제공하지 않는 단일 클라이언트의 파일에 대한 병렬 네트워크 경로를 제공합니다. 예를 들어, 클라이언트가 pNFS 없이 NFSv4.1을 사용하여 동일한 마운트에서 동시에 4개의 파일에 액세스하려는 경우 모든 파일에 동일한 네트워크 경로가 사용되고 ONTAP 클러스터는 대신 해당 파일에 원격 요청을 보냅니다. 모든 작업이 단일 경로를 따라 단일 노드에 도착하고 데이터 작업과 함께 메타데이터 작업도 처리하기 때문에 마운트 경로가 작업의 병목 현상이 될 수 있습니다.

pNFS 없이 FlexGroup 볼륨에서 여러 개의 동시 파일 액세스
그림 7. pNFS 없이 FlexGroup 볼륨에서 여러 개의 동시 파일 액세스

pNFS를 사용하여 단일 클라이언트에서 동일한 4개 파일에 동시에 액세스하는 경우, 클라이언트와 서버는 파일을 사용하여 각 노드에 대한 로컬 경로를 협상하고 데이터 작업에 여러 TCP 연결을 사용하는 반면, 마운트 경로는 모든 메타데이터 작업의 위치 역할을 합니다. 이렇게 하면 파일에 대한 로컬 경로를 사용하여 지연 시간을 줄일 수 있을 뿐만 아니라, 클라이언트가 네트워크를 포화시킬 만큼 충분한 데이터를 전송할 수 있다면 여러 네트워크 인터페이스를 사용하여 처리량 이점을 추가할 수도 있습니다.

pNFS를 사용한 FlexGroup 볼륨에서 여러 개의 동시 파일 액세스
그림 8. pNFS를 사용한 FlexGroup 볼륨에서 여러 개의 동시 파일 액세스

다음은 4개의 10GB 파일(모두 2개의 ONTAP 클러스터 노드에 걸쳐 있는 다른 구성 볼륨에 있음)을 dd를 사용하여 병렬로 읽는 단일 RHEL 9.5 클라이언트에서 실행한 간단한 테스트 결과를 보여줍니다. 각 파일의 경우, pNFS를 사용하면 전체 처리량과 완료 시간이 향상되었습니다. pNFS 없이 NFSv4.1을 사용하는 경우, 마운트 지점에 로컬인 파일과 원격인 파일 간의 성능 차이가 pNFS를 사용하는 경우보다 컸습니다.

시험 파일당 처리량(MB/s) 파일당 완료 시간

NFSv4.1: pNFS 없음

  • 파일.1–228(로컬)

  • 파일.2–227(로컬)

  • 파일.3–192(원격)

  • 파일.4–192(원격)

  • 파일.1–46(로컬)

  • 파일.2–46.1(로컬)

  • 파일.3–54.5(원격)

  • 파일.4–54.5(원격)

NFSv4.1: pNFS 포함

  • 파일.1–248(로컬)

  • 파일.2–246(로컬)

  • 파일.3–244(pNFS를 통한 로컬)

  • 파일.4–244(pNFS를 통한 로컬)

  • 파일.1–42.3(로컬)

  • 파일.2–42.6(로컬)

  • 파일 3–43(pNFS를 통한 로컬)

  • 파일.4–43(pNFS를 통한 로컬)