Azure NetApp Files의 NAS 프로토콜 이해

NAS 프로토콜은 클라이언트와 서버 간에 대화가 이루어지는 방식입니다. NFS와 SMB는 Azure NetApp Files에서 사용되는 NAS 프로토콜입니다. 각각 고유한 통신 방법을 제공하지만 루트에서 대부분 동일한 방식으로 작동합니다.

  • 둘 다 서로 다른 여러 네트워크로 연결된 클라이언트에 단일 데이터 세트를 제공합니다.
  • 둘 다 암호화된 인증 방법을 사용하여 데이터를 공유할 수 있습니다.
  • 둘 다 공유/파일 권한으로 제어할 수 있습니다.
  • 둘 다 전송 중인 데이터를 암호화할 수 있습니다.
  • 둘 다 다양한 연결을 사용하여 성능을 병렬화할 수 있습니다.

NFS(네트워크 파일 시스템)

NFS는 Red Hat, SUSE, Ubuntu, AIX, Solaris, Apple OS 같은 Linux/UNIX 기반 클라이언트에서 주로 사용됩니다. Azure NetApp Files는 RFC 표준에서 작동하는 NFS 클라이언트를 지원합니다. 또한 Windows는 액세스 시 NFS를 사용할 수 있지만, RFC(Request for Comments) 표준을 사용하여 작동하지는 않습니다.

NFS 프로토콜에 대한 RFC 표준은 다음에서 찾을 수 있습니다.

NFSv3

NFSv3는 프로토콜의 기본 제품이며 키 특성은 다음과 같습니다.

  • NFSv3는 상태 비저장 방식입니다. 즉, NFS 서버가 연결 상태(잠금 포함)를 추적하지 않습니다.
  • 잠금은 NLM(네트워크 잠금 관리자)을 사용하여 NFS 프로토콜 외부에서 처리됩니다. 잠금이 프로토콜에 통합되어 있지 않기 때문에 경우에 따라 부실할 수 있습니다.
  • NFSv3는 상태 비저장 방식이므로 일부 워크로드, 특히 OPEN, CLOSE, SETATTR, GETATTR 같은 메타데이터 작업이 많은 워크로드에서 NFSv3의 성능이 훨씬 더 향상될 수 있습니다. 이는 서버와 클라이언트에서 요청을 처리하려면 수행해야 하는 일반적인 작업이 적기 때문입니다.
  • NFSv3는 파일 소유자, 그룹 및 다른 모든 사용자만 읽기/쓰기/실행 권한의 조합을 할당할 수 있는 기본 파일 권한 모델을 사용합니다.
  • NFSv3에서 NFSv4.x ACL을 사용할 수는 있지만, ACL을 구성하고 관리하려면 NFSv4.x 관리 클라이언트가 필요합니다. Azure NetApp Files는 비표준 POSIX 초안 ACL의 사용을 지원하지 않습니다.
  • 또한 NFSv3에서는 포트 검색, 탑재, 잠금, 상태 모니터링, 할당량 같은 정기적인 작업을 수행하려면 다른 보조 프로토콜을 사용해야 합니다. 각 보조 프로토콜은 고유한 네트워크 포트를 사용합니다. 즉, NFSv3 작업을 수행하려면 포트 번호가 잘 알려진 방화벽을 통해 더 많이 노출되어야 합니다.
  • Azure NetApp Files가 NFSv3 작업에 사용하는 포트 번호는 다음과 같습니다. 이러한 포트 번호는 변경할 수 없습니다.
    • Portmapper(111)
    • Mount(635)
    • NFS(2049)
    • NLM(4045)
    • NSM(4046)
    • Rquota(4049)
  • NFSv3는 Kerberos 같은 보안 향상 기능을 사용할 수 있지만 Kerberos는 패킷의 NFS 부분에만 영향을 줍니다. 보조 프로토콜(예: NLM, portmapper, mount)은 Kerberos 대화에 포함되지 않습니다.
    • Azure NetApp Files는 NFSv4.1 Kerberos 암호화만 지원합니다.
  • NFSv3는 사용자 및 그룹 인증 시 숫자 ID를 사용합니다. 사용자 이름과 그룹 이름이 통신 또는 권한에 필요하지 않아 사용자를 더 쉽게 스푸핑할 수 있지만 구성 및 관리 작업이 더 간단합니다.
  • NFSv3는 사용자/그룹 조회에 LDAP를 사용할 수 있습니다.

NFSv3 서비스 버전 지원

NFSv3가 현재 Azure NetApp Files에서 지원하는 각 보조 프로토콜의 버전은 다음과 같습니다.

서비스 지원되는 버전
Portmapper 4, 3, 2
NFS 4, 3*
Mountd 3, 2, 1
Nlockmgr 4
상태 1
Rquotas 1

* NFS 지원 버전은 Azure NetApp Files 볼륨에 선택한 버전에 따라 표시됩니다.

이 정보는 다음 명령을 사용하여 Azure NetApp Files 볼륨에서 수집할 수 있습니다.

# rpcinfo -s <Azure NetApp Files IP address>

NFSv4.x

NFSv4.x는 NFSv4.0, NFSv4.1, NFSv4.2 등 NFSv4 아래에 있는 모든 NFS 버전 또는 부 버전을 나타냅니다. Azure NetApp Files는 현재 NFSv4.1만 지원합니다.

NFSv4.x의 특성은 다음과 같습니다.

  • NFSv4.x는 상태 저장 프로토콜입니다. 즉, 클라이언트와 서버에서 잠금 상태를 포함한 NFS 연결 상태를 추적합니다. NFS 탑재는 "상태 ID"라는 개념을 사용하여 연결을 추적합니다.
  • 잠금은 NFS 프로토콜에 통합되며, NFS 잠금을 추적하는 데 보조 잠금 프로토콜이 필요하지 않습니다. 대신 임대를 기준으로 잠금 기능이 부여됩니다. 클라이언트 또는 서버 연결이 끊어지면 일정한 기간이 경과한 후에 만료되므로, 다른 NFS 클라이언트에서 사용할 수 있도록 잠금을 시스템에 반환합니다.
  • NFSv4.x의 상태 저장 방식에는 네트워크 중단이나 스토리지 장애 조치(failover) 중에 발생할 수 있는 중단, 특정 워크로드 유형(예: 높은 메타데이터 워크로드)의 성능 오버헤드 같은 몇 가지 단점이 있습니다.
  • NFSv4.x는 다음을 비롯해 NFSv3보다 많은 중요한 이점을 제공합니다.
    • 향상된 잠금 개념(임대 기반 잠금)
    • 보안 강화(필요한 방화벽 포트 수 감소, Kerberos와의 표준 통합, 세분화된 액세스 제어)
    • 더 많은 기능
    • 복합 NFS 작업(네트워크 채팅을 줄이기 위한 단일 패킷 요청의 여러 가지 명령)
    • TCP 전용
  • NFSv4.x는 Windows NTFS 권한과 유사한, 보다 강력한 파일 권한 모델을 사용할 수 있습니다. 이렇게 세분화된 ACL은 사용자 또는 그룹에 적용될 수 있으며, 기본 읽기/쓰기/실행 작업보다 광범위한 작업에 대한 권한을 설정할 수 있습니다. 또한 NFSv4.x는 NFSv3에서 사용하는 표준 POSIX 모드 비트를 사용할 수 있습니다.
  • NFSv4.x는 보조 프로토콜을 사용하지 않으므로 사용 시 Kerberos가 전체 NFS 대화에 적용됩니다.
  • NFSv4.x는 사용자/그룹 이름과 도메인 문자열의 조합을 이용해 사용자와 그룹의 정보를 확인합니다. 사용자와 그룹을 적절하게 인증하려면 클라이언트와 서버에서 도메인 문자열에 동의해야 합니다. 도메인 문자열이 일치하지 않으면 NFS 사용자 또는 그룹이 NFS 클라이언트의 /etc/idmapd.conf 파일에 지정된 사용자로 스쿼시됩니다(예: 아무도 없음).
  • NFSv4.x는 기본적으로 도메인 문자열을 사용하지만 AUTH_SYS 사용 시 NFSv3에 표시된 클래식 숫자 ID로 대체하도록 클라이언트와 서버를 구성할 수 있습니다.
  • NFSv4.x는 사용자/그룹 이름 문자열과 긴밀하게 통합되어 있어 서버와 클라이언트는가 이러한 사용자 및 그룹에 동의해야 합니다. 따라서 NFS 클라이언트와 서버에서 LDAP 같은 사용자 인증 이용 시 이름 서비스 서버를 사용하는 것이 좋습니다.

Azure NetApp Files의 NFS에 대한 질문과 대답은 Azure NetApp Files NFS FAQ를 참조하세요.

SMB(서버 메시지 블록)

SMB는 주로 NAS 기능을 이용하기 위해 Windows 클라이언트와 함께 사용됩니다. 그러나 AppleOS, RedHat 등과 같은 Linux 기반 운영 체제에서도 사용할 수 있습니다. 이 배포는 Samba라는 애플리케이션을 사용하여 수행됩니다. Azure NetApp Files는 Windows와 macOS를 사용하여 SMB를 공식 지원합니다. Linux 운영 체제의 SMB/Samba가 Azure NetApp Files에서 작동할 수는 있지만 공식 지원하지는 않습니다.

Azure NetApp Files는 SMB 2.1, SMB 3.1 버전만 지원합니다.

SMB의 특성은 다음과 같습니다.

  • SMB는 상태 저장 프로토콜입니다. 클라이언트와 서버가 보안 및 잠금 성능을 강화하기 위해 SMB 공유 연결 "상태"를 유지 관리합니다.
  • SMB에서 잠금은 필수로 간주됩니다. 파일이 잠겨 있으면 잠금이 해제될 때까지 다른 클라이언트가 해당 파일에 쓸 수 없습니다.
  • SMBv2.x 이상에서는 복합 호출을 사용하여 작업을 수행합니다.
  • SMB는 전체 Kerberos 통합을 지원합니다. Windows 클라이언트가 구성된 방식으로 인해 Kerberos는 최종 사용자가 알지 못한 채 사용되는 경우가 많습니다.
  • Kerberos를 인증에 사용할 수 없는 경우 Windows NTLM(NT LAN Manager)을 대체 기능으로 사용할 수 있습니다. Active Directory 환경에서 NTLM을 사용하지 않으면 Kerberos를 사용할 수 없는 인증 요청에 실패합니다.
  • SMBv3.0 이상에서는 SMB 공유 시 엔드투엔드 암호화를 지원합니다.
  • SMBv3.x는 특정 워크로드의 성능 향상을 위해 다중 채널을 지원합니다.
  • SMB는 인증 시 사용자/그룹 이름(SID 변환을 통해)을 사용합니다. 사용자/그룹 정보는 Active Directory 도메인 컨트롤러에서 제공합니다.
  • Azure NetApp Files의 SMB는 파일 및 폴더 권한에 표준 Windows NTFS(New Technology File System) ACL을 사용합니다.

Azure NetApp Files의 SMB에 대한 질문과 대답은 Azure NetApp Files SMB FAQ를 참조하세요.

이중 프로토콜

일부 조직은 다음의 접근 방식 중 하나만 이용해서 모든 데이터에 액세스하는 순수 Windows 또는 순수 UNIX 환경(동종)을 사용합니다.

그러나 많은 사이트가 데이터 세트를 사용하여 Windows 및 UNIX 클라이언트(이종)에서 모두 액세스할 수 있도록 해야 합니다. 이러한 요구 사항이 있는 환경의 Azure NetApp Files에서는 기본 이중 프로토콜 NAS를 지원합니다. 사용자가 네트워크에서 인증되고 적절한 공유 또는 내보내기 권한과 필요한 파일 수준 권한을 모두 갖추고 나면 NFS를 사용하는 UNIX 호스트 또는 SMB를 사용하는 Windows 호스트에서 데이터에 액세스할 수 있습니다.

이중 프로토콜 볼륨을 사용하는 이유

Azure NetApp Files에서 이중 프로토콜 볼륨을 사용하면 몇 가지 뚜렷한 이점을 얻을 수 있습니다. 다양한 NAS 프로토콜을 사용하여 클라이언트에서 데이터 세트에 동시에 원활하게 액세스할 수 있는 경우 다음과 같은 이점을 얻을 수 있습니다.

  • 전체 스토리지 관리자 관리 작업을 줄일 수 있습니다.
  • 여러 클라이언트 형식에서 NAS에 액세스하려면 단일 데이터 복사본만 저장하면 됩니다.
  • 프로토콜에 구애받지 않는 NAS를 사용하면 스토리지 관리자가 ACL 스타일을 제어하고 최종 사용자에게 제공되는 액세스 제어 권한을 제어할 수 있습니다.
  • NAS 환경에서 ID 관리 작업을 중앙 집중화할 수 있습니다.

이중 프로토콜 환경의 일반적인 고려 사항

이중 프로토콜 NAS 액세스는 유연하기 때문에 많은 조직에서 사용하기에 바람직합니다. 그러나 프로토콜 간 공유라는 개념에 특별히 고려해야 할 점이 생기는 문제가 있다는 인식이 있습니다. 이러한 고려 사항에는 다음이 포함되지만 이에 국한되지 않습니다.

  • 여러 프로토콜, 운영 체제 및 스토리지 시스템에 전반에 걸친 지식이 필요함
  • DNS, LDAP 등과 같은 이름 서비스 서버에 대한 실무 지식

또한 다음과 같은 외부 요인이 작용할 수 있습니다.

  • 여러 부서/IT 그룹(예: Windows 그룹 및 UNIX 그룹) 상대
  • 회사 인수
  • 도메인 통합
  • 재편성

이러한 고려 사항이 있음에도 이중 프로토콜 NAS 설정, 구성 및 액세스는 간단하고 원활하게 모든 환경에 통합될 수 있습니다.

Azure NetApp Files에서 이중 프로토콜 사용을 간소화하는 방법

Azure NetApp Files는 성공적인 이중 프로토콜 NAS 환경에 필요한 인프라를 단일 관리 평면(스토리지 및 ID 관리 서비스 포함)으로 통합합니다.

이중 프로토콜 구성은 간단하며, 대부분의 작업은 Azure NetApp Files 리소스 관리 프레임워크로 보호되어 클라우드 운영자의 작업을 간소화해 줍니다.

Azure NetApp Files를 통해 Active Directory를 연결하고 나면 이중 프로토콜 볼륨에서 이 연결을 사용하여 Active Directory 또는 LDAP 서비스 내 일반 사용자/그룹 관리 외 추가 구성 단계 없이 Azure NetApp Files 볼륨에서 적절한 사용자/그룹 인증에 필요한 Windows/UNIX ID 관리 작업을 모두 처리할 수 있습니다.

Azure NetApp Files는 이중 프로토콜을 구성하기 위한 추가 스토리지 중심 단계를 제거함으로써 Azure로 이동하려는 조직에서 전반적인 이중 프로토콜 배포 작업을 간소화합니다.

Azure NetApp Files 이중 프로토콜 볼륨의 작동 방식

Azure NetApp Files 이중 프로토콜 볼륨은 높은 수준에서 이름 매핑과 권한 스타일을 조합해 이용함으로써 사용 중인 프로토콜에 상관없이 일관된 데이터 액세스 권한을 제공합니다. 즉 NFS에서 파일에 액세스하든, SMB에서 파일에 액세스하든 해당 파일에 대한 액세스 권한이 있는 사용자가 그 파일에 액세스할 수 있고 해당 파일에 대한 액세스 권한이 없는 사용자는 그 파일에 액세스할 수 없음을 확신할 수 있습니다.

NAS 클라이언트가 Azure NetApp Files의 이중 프로토콜 볼륨에 대한 액세스를 요청할 때 최종 사용자에게 투명한 환경을 제공하기 위해 다음과 같은 작업이 수행됩니다.

  1. NAS 클라이언트가 Azure NetApp Files 이중 프로토콜 볼륨에 NAS를 연결합니다.
  2. NAS 클라이언트가 Azure NetApp Files에 사용자 ID 정보를 전달합니다.
  3. Azure NetApp Files에서 NAS 클라이언트/사용자가 NAS 공유에 액세스할 수 있는지 확인합니다.
  4. Azure NetApp Files에서 해당 사용자를 가져와 이름 서비스에서 찾은 유효한 사용자에 매핑합니다.
  5. Azure NetApp Files에서 해당 사용자를 시스템의 파일 수준 권한과 비교합니다.
  6. 파일 권한으로 사용자가 보유한 액세스 수준을 제어합니다.

다음 그림에서 user1은 Azure NetApp Files를 인증하여 SMB 또는 NFS를 통해 이중 프로토콜 볼륨에 액세스합니다. Azure NetApp Files는 Microsoft Entra ID에서 사용자의 Windows/UNIX 정보를 찾은 다음 사용자의 Windows/UNIX ID를 일대일로 매핑합니다. 사용자가 user1로 확인되어 user1의 액세스 자격 증명을 가져옵니다.

이 경우 user1은 자체 폴더(user1-dir)에 대한 모든 권한을 얻지만 HR 폴더에는 액세스할 수 없습니다. 이 설정은 파일 시스템에 지정된 보안 ACL을 기반으로 하며, user1이 볼륨에 액세스하는 프로토콜에 상관없이 예상되는 액세스 권한을 얻습니다.

Diagram of user accessing a dual-protocol volume with Azure NetApp Files.

Azure NetApp Files 이중 프로토콜 볼륨 고려 사항

SMB와 NFS에 모두 액세스하기 위해 Azure NetApp Files 볼륨을 사용하는 경우 몇 가지 고려 사항이 적용됩니다.

  • Active Directory에 연결해야 합니다. 따라서 Active Directory 연결에 대한 요구 사항을 충족해야 합니다.
  • 이중 프로토콜 볼륨을 만들 때 발생하는 오류를 방지하기 위해서는 이중 프로토콜 볼륨에 AD 호스트 컴퓨터의 포인터(PTR) 레코드와 완결된 DNS에 역방향 조회 영역이 있어야 합니다.
  • 최상의 보안 성능과 안정성, 기능을 지원을 위해 NFS 클라이언트 및 관련 패키지(예: nfs-utils)를 최신 상태로 유지해야 합니다.
  • 이중 프로토콜 볼륨이 AD DS(Active Directory Domain Services)와 Microsoft Entra Domain Services를 모두 지원합니다.
  • 이중 프로토콜 볼륨이 Microsoft Entra Domain Services에서 LDAP over TLS의 사용을 지원하지 않습니다. TLS를 통한 LDAP 고려 사항을 참조하세요.
  • 지원되는 NFS 버전에는 NFSv3 및 NFSv4.1이 포함됩니다.
  • pNFS(병렬 네트워크 파일 시스템), 세션 트렁킹, 조회 같은 NFSv4.1 기능은 현재 Azure NetApp Files 볼륨에서 지원되지 않습니다.
  • Windows 확장 특성set/get은 이중 프로토콜 볼륨에서 지원되지 않습니다.
  • Azure NetApp Files용 이중 프로토콜 볼륨을 만들기 위한 추가 고려 사항을 참조하세요.

다음 단계