NFS 개요
HPC 스토리지 솔루션을 선택하는 컨텍스트에서 알아 두어야 하는 몇 가지 주요 NFS 개념이 있습니다. NFS를 사용할 때의 주요 문제는 대상 HPC 스토리지 환경에 구성 요소, 네트워크 연결 또는 지정된 NFS 버전과 관련된 보안 기능이 필요한지 결정하는 것입니다. 일부 개념을 선택 기준에 포함하면 사용 가능한 여러 솔루션을 평가할 때 도움이 됩니다. 최소한 이 항목을 고려하면 NFS 요구 사항에 맞지 않는 것을 모두 제거하여 시간을 절약할 수 있습니다.
NFS 고려 사항
NFS 프로토콜에는 NFSv3과 NFSv4.x(v4.1 및 v4.2)라는 두 가지 주요 버전이 있습니다. 두 버전 간 차이점의 전체 범위는 이 모듈의 목표를 벗어납니다. 그러나 여기에서 식별하는 인증 및 권한 부여와 관련된 몇 가지 문제가 있습니다. 두 프로토콜의 기록이나 프로토콜이 두 개인 이유에 대해 논의할 필요가 없습니다. 많은 사용자가 여전히 각자의 환경에서 NFSv3을 실행하고 있다는 것을 아는 것으로도 충분합니다.
NFSv3 사용과 관련된 고려 사항부터 살펴보겠습니다.
NFSv3 및 그룹
NFSv3은 API 요청을 NFS 클라이언트 및 서버에 전달하는 간단한 파일 시스템 프로토콜입니다. 앞에서 사용자는 UID로 표시되고 기본 그룹 GID와 연결되어 있다고 설명했습니다. 또한 사용자가 더 많은 그룹과 연결될 수 있다고 설명했습니다. NFS 목적을 위해 이 그룹 할당을 ‘보조 그룹’이라고 합니다. 요청과 함께 UID 및 GID 정보가 전달되며 NFS 서버는 이 정보를 사용하여 적절한 액세스 수준을 결정합니다.
NFSv3에서 전달하는 GID 값의 총수는 제한됩니다. NFSv3은 지정된 UID에 대해 16개 보조 그룹 전달만 지원합니다. 의미 있는 방식으로 16개가 넘는 그룹 할당을 사용하는 경우(예: 세분화된 액세스 관리) 이 제한 사항이 사용자에게 영향을 미칠 수 있습니다. NetApp 같은 NAS 공급업체는 모든 그룹 매핑의 통신을 지원하는 확장을 NFS 프로토콜에 추가했습니다. 이 확장을 ‘확장 그룹’ 지원이라고 합니다. HPC 스토리지를 평가하고 많은 수의 GID 할당을 사용하는 경우 제안된 솔루션이 이 기능을 지원하는지 확인해야 합니다.
NFSv3 및 네트워크 보안
NFSv3은 보안 측면에서도 제한됩니다. NFSv3에는 보안 기능이 많지 않습니다. 예를 들어 데이터 암호화 또는 Kerberos 인증을 지원하지 않습니다. NFSv3 환경에서 사용할 수 있는 주요 메커니즘 중 하나는 ‘내보내기 규칙 및 정책’을 사용하여 NFS 서버에 대한 네트워크 수준 액세스를 제한하는 것입니다. ‘내보내기’는 NFS 서버에서 특정 디렉터리를 클라이언트에 노출하는 데 사용하는 메커니즘입니다. 내보내기 규칙은 IP 네트워크 주소를 기준으로 클라이언트를 허용하거나 허용하지 않도록 구성됩니다. 내보내기 규칙의 호스트 항목(예: 1.1.1.1) 또는 네트워크(예: 1.1.1.0/24)를 정의하고 내보내기에 대한 액세스를 허용 또는 거부할 수 있습니다. 내보내기 규칙은 NFS 서버의 특정 내보내기와 연결된 내보내기 정책으로 수집됩니다.
NFSv3 및 네트워크 포트
NFSv3의 한 가지 문제는 모든 통신에 표준 TCP 포트를 사용하는 것은 아니라는 점입니다. 표준 포트(RPC의 경우 111, NFS의 경우 2049)가 있어도 내보내기를 탑재하기 위한 다른 포트가 임의로 할당된 포트라는 점을 고려하면 해당 포트 유연성으로 인해 WAN에서 NFSv3 액세스를 허용하기가 어렵습니다.
Azure의 NFSv3 네트워킹은 가상 네트워크 이상의 액세스와 TCP 포트를 차단하는 보안 구성이 필요한 경우에만 문제가 됩니다. 그러나 내보내기-정책 구성을 제공하는 솔루션을 선택하면 네트워크 에지에 구성된 항목과 관계없이 NFS 솔루션을 직접 잠그는 데 도움이 됩니다.
Squash
Squash는 파일 또는 폴더에 액세스하기 위한 특정 UID를 강제로 사용하는 NFS 서버의 기능을 나타냅니다. 예를 들어 관리자는 내보낸 특정 폴더에 사용되는 UID를 제어하는 것이 좋습니다. Linux NFS 서버 환경에서는 루트가 아닌 UID에 대한 루트 액세스를 스쿼시하는 기능을 지원합니다. NAS 제품은 들어오는 클라이언트 네트워크/주소 및 UID 값을 기반으로 하는 특정 Squash를 지원합니다. 스쿼시의 주요 용도 중 하나는 원격 연결을 통한 루트가 아닌 액세스를 보장하는 것입니다.
Azure에서 파일 시스템을 복제할 계획이고 동일한 동작이 필요한 경우 모든 솔루션이 정확히 동일한 방식으로 Squash를 지원하지는 않는다는 것에 유의하세요.
NFSv3 및 암호화
NFSv3은 데이터 암호화를 지원하지 않습니다. NFSv3은 원래 신뢰할 수 있는 엔터프라이즈 환경에서 사용하도록 설계되었습니다. 네트워크 암호화 솔루션은 신뢰할 수 있는 네트워크에서 나가는 트래픽을 암호화해야 합니다.
NFSv3 및 파일 잠금
‘잠금’은 다른 클라이언트가 특정 파일이나 파일 섹션을 업데이트할 수 없게 하는 클라이언트 기능을 나타냅니다. NFSv3에는 자체 잠금 메커니즘이 없습니다. NLM(네트워크 잠금 관리자) 및 NSM(네트워크 상태 모니터)이라는 네트워크 서비스는 존재하는 잠금을 수행합니다. 서비스는 클라이언트와 서버에서 실행되며 모든 잠금 상호 작용을 관리합니다. 또한 NFS 서비스 외부에서 실행되며 자체 네트워크 프로토콜 트래픽을 생성합니다. 잠금이 꼭 필요한 것은 아닙니다. 이는 ‘권고 잠금’이라고 합니다. 즉, 추적되지만 강제로 적용되지는 않습니다. 애플리케이션에서 경합 및 잠금 문제를 처리해야 합니다.
NFSv4.x
NFSv4.x에서는 NFS와 관련한 몇 가지 주요 개선 사항이 도입되었습니다. 여기서는 이와 같은 주요 개선 사항을 집중적으로 다룹니다.
NFSv4 및 Kerberos
NFSv4에서는 Kerberos를 사용한 사용자 인증 및 모든 NFS 트래픽 암호화를 완벽하게 지원합니다. NFSv3과 Kerberos를 통합하려는 시도가 있었지만, NLM/NSM 및 기타 외부 프로토콜 사용으로 인해 데이터 페이로드만 암호화되었습니다.
내보내기 정책에 의해 명시적으로 차단되지 않는 한 NFSv3의 모든 액세스는 신뢰할 수 있습니다. 이제 Kerberos를 사용하면 신뢰할 수 있는 머신을 기반으로 인증할 수 있습니다.
모든 NFS 트래픽 암호화가 지원됩니다. 특정 네트워크 세그먼트에서만이 아니라 NFS 클라이언트에서 NFS 서버로 전송되는 모든 트래픽을 암호화할 수 있습니다.
Kerberos를 통해 인증 및 암호화를 사용하려면 Kerberos 환경을 배포해야 합니다.
주요 고려 사항은 모든 NFSv4 호환 서비스가 Kerberos를 지원하는 것은 아니라는 점입니다. Kerberos가 없어도 NFSv4의 다른 기능은 사용할 수 있지만 데이터를 인증하거나 암호화할 수는 없습니다. 솔루션을 선택할 때는 이 기능이 필요한지와 옵션이 Kerberos를 지원하는지 확인해야 합니다.
NFSv4 및 네트워크 포트
NFSv3 대비 NFSv4의 이점 중 하나는 NFSv4의 경우 모든 트래픽에 단일 TCP 포트(포트 2049)를 사용한다는 것입니다. Azure 가상 네트워크 또는 데이터 센터에 NFSv4 환경이 있는 경우 NFSv4를 지원할 때 방화벽 간에 액세스를 더 쉽게 제공할 수 있습니다.
NFSv4 및 ACL
파일 또는 폴더가 있고 그룹 1에 읽기/쓰기 권한, 그룹 2에 읽기 전용 권한, 특정 머신 계정에 데이터 추가 액세스 권한을 부여하려 한다고 가정해 보겠습니다. v3 권한에는 필요한 수준의 세분성이 없으므로 NFSv3 권한(모드 비트)으로 관련 요구 사항을 충족할 수 없습니다.
NFSv4에서는 ACL(액세스 제어 목록)이 도입되었습니다. 각 파일/폴더에 ACL을 적용할 수 있습니다. 각 ACL은 하나 이상의 ACE(액세스 제어 항목)로 구성됩니다. NTFS는 동일한 모델을 따르기 때문에 이 접근 방식은 Windows NTFS 관리자에게 익숙합니다.
환경에서 NFSv4 ACL을 사용하는 경우 이 요구 사항에 가장 적합한 스토리지 솔루션을 결정해야 합니다.
요약
NFS 프로토콜 고려 사항을 간략하게 살펴보았습니다. 설명하는 항목은 스토리지 솔루션을 선택할 때 고려해야 할 주요 요소를 나타냅니다.
현재 환경과 그룹 관리, 네트워크, 보안 요구 사항을 평가하여 적절한 스토리지 솔루션을 결정해야 합니다.
다음 표에서는 이전에 다룬 내용을 기반으로 비교합니다.
기능 | NFSv3 | NFSv4 |
---|---|---|
파일/폴더 권한 | 모드 비트 | 모드 비트 및/또는 ACL |
암호화 | 없음 | Kerberos |
네트워크 포트 | TCP 또는 UDP, portmapper 필요 | TCP 포트 2049 |
파일 잠금 | Advisory NLM | 활성 잠금 지원 |