Go to main content
Oracle® ZFS Storage Appliance 관리 설⁠명⁠서, 릴⁠리⁠스 OS8.6.x

인쇄 보기 종료

업데이트 날짜: 2016년 9월
 
 

NFS 프로토콜

이 절은 다음 항목으로 구성되어 있습니다.

NFS 프로토콜에 대한 자세한 내용은 다음 항목을 참조하십시오.

다른 지원되는 프로토콜에 대한 자세한 내용은 다음 절을 참조하십시오.

NFS 프로토콜 등록 정보

각 공유에는 해당 공유에 대해 서로 다른 프로토콜의 동작을 정의하는 프로토콜 관련 등록 정보가 있습니다. 이러한 등록 정보는 각 공유에 대해 정의하거나 공유의 프로젝트에서 상속할 수 있습니다. 다음 표에서는 NFS 프로토콜 등록 정보 및 가능한 값을 보여줍니다.

표 107  NFS 프로토콜 등록 정보
등록 정보
CLI 값
등록 정보 유형
설명
공유 모드
off/rw/ro
상속
공유를 읽기 전용, 읽고 쓰기 또는 둘 다 불가능하도록 지정할지를 결정합니다. 공유 및 프로젝트 프로토콜를 참조하십시오.
setuid/setgid 파일 생성 사용 안함
nosuid
상속
선택할 경우 클라이언트는 설정된 setuid(S_ISUID) 및 setgid(S_ISGID) 비트를 사용하여 파일을 만들거나 chmod(2) 시스템 호출을 통해 기존 파일에서 이러한 비트를 사용으로 설정할 수 없습니다.
클라이언트의 하위 디렉토리 마운트 금지
nosub
상속
선택할 경우 클라이언트는 하위 디렉토리를 직접적으로 마운트할 수 없습니다. 클라이언트는 강제로 공유 루트를 마운트하게 됩니다. 주: 이는 NFSv4가 아닌 NFSv2 및 NFSv3 프로토콜에만 적용됩니다.
익명 사용자 매핑
anon
상속
"root" 옵션이 특정 클라이언트에 대해 적용되지 않는 경우 해당 클라이언트의 루트 사용자는 알 수 없는 사용자로 처리되며 해당 사용자가 공유 파일에 액세스하려고 하는 모든 시도는 이 uid의 사용자에 의한 시도로 처리됩니다. 그런 다음 이 파일의 액세스 비트 및 ACL이 정상적으로 평가됩니다.
문자 세트
가능한 값은 Character Set Encodings을 참조하십시오.
상속
모든 클라이언트에 대해 기본 문자 세트를 설정합니다.
보안 모드
sec=
가능한 값 목록은 Security Modes를 참조하십시오.
상속
모든 클라이언트에 대한 보안 모드를 설정합니다.
시스템 인증에 예약된 포트 적용
resvport
상속
시스템 인증 보안 모드와 함께 공유 또는 프로젝트에 설정된 경우 NFS 클라이언트가 하위 번호의("예약된") TCP 포트를 사용해야 합니다. Solaris 및 Linux와 같은 일부 NFS 클라이언트는 기본적으로 하위 번호의 TCP 포트를 사용합니다. Windows와 같은 다른 클라이언트에는 구성이 필요할 수 있습니다.

NFS 공유 모드 예외사항

클라이언트별 공유 모드 또는 예외사항을 설정하여 클라이언트 또는 클라이언트 모음에 대해 전역 공유 모드 예외사항을 정의할 수 있습니다. 특정 클라이언트에 대한 액세스를 제한하려면 전역 공유 모드를 none으로 설정하고 더 작은 그룹에 액세스 권한을 점점 더 부여하십시오. 예를 들어 전역 공유 모드가 none으로 설정된 공유를 만든 다음(이 경우 모든 클라이언트에 대한 액세스가 거부됨) 클라이언트의 하위 세트에 읽기 전용 액세스 권한을 부여할 수 있습니다. 그런 다음 클라이언트의 더 작은 하위 세트에 읽기/쓰기 액세스 권한을 부여하고 최종적으로는 신뢰할 수 있는 호스트만 읽기/쓰기 및 루트 사용 액세스 권한을 가지도록 할 수 있습니다.

클라이언트별 공유 모드는 전역 공유 모드보다 우선적으로 사용됩니다. 예외사항에 지정된 클라이언트별 공유 모드에 따라 클라이언트에 액세스 권한이 부여됩니다. 예외사항이 없으면 전역 공유 모드에 따라 클라이언트에 액세스 권한이 부여됩니다.

표 108  클라이언트 유형
유형
CLI 접두어
설명
호스트(FQDN) 또는 넷 그룹
none
IP 주소가 지정된 정규화된 이름으로 확인되는 단일 클라이언트 또는 클라이언트의 IP 주소가 확인되는 정규화된 이름을 포함한 넷 그룹입니다.
caji.sf.example.com
DNS 도메인
.
IP 주소가 이 접미어에서 끝나는 정규화된 이름으로 확인되는 모든 클라이언트.
sf.example.com
IPv4 서브넷
@
IP 주소가 CIDR 표기법으로 표시된 지정된 IPv4 서브넷 내에 있는 모든 클라이언트.
192.0.2.254/22
IPv6 서브넷
@
IP 주소가 CIDR 표기법으로 표시된 지정된 IPv6 서브넷 내에 있는 모든 클라이언트.
2001:db8:410:d43::/64

각 클라이언트 또는 클라이언트 모음의 경우 공유에 대해 클라이언트에 읽기 전용 액세스 권한이 있는지 아니면 읽기/쓰기 액세스 권한이 있는지를 지정합니다. NFS 예외사항을 설정하는 경우에는 클라이언트에 루트 사용자 권한이 있는지 아니면 클라이언트가 루트 액세스 권한이 없는 사용자로 처리되는지도 지정합니다.

넷 그룹 관리

넷 그룹은 NFS 내보내기에 대한 액세스를 제어하는 데 사용할 수 있습니다. 하지만 넷 그룹은 관리가 복잡할 수 있습니다. 대신 IP 서브넷 규칙이나 DNS 도메인 규칙 사용을 고려해 보십시오.

넷 그룹이 사용되는 경우 어떤 서비스가 사용으로 설정되었는지에 따라 NIS 또는 LDAP에서 확인됩니다. LDAP가 사용된 경우 각 넷 그룹은 기본 위치인 ou=Netgroup(기본 DN)에 위치해야 하며 표준 스키마를 사용해야 합니다.

넷 그룹 항목의 사용자 이름 구성요소는 NFS에 영향을 주지 않습니다. 호스트 이름만 중요합니다. 넷 그룹에 포함된 호스트 이름은 표준 이름이어야 하며 DNS를 사용하여 확인된 경우 정규화된 이름이어야 합니다. 즉, NFS 부속 시스템에서 요청 클라이언트의 IP 주소가 지정된 FQDN, 또는 지정된 넷 그룹 중 하나의 멤버 중 하나와 일치하는 표준 호스트 이름으로 확인되는지 검증하려고 시도합니다. 모든 도메인 구성요소를 포함하여 이 일치는 정확해야 합니다. 그렇지 않으면 예외가 일치하지 않고 다음 예외가 시도됩니다. 호스트 이름 확인에 대한 자세한 내용은 DNS를 참조하십시오.

2013.1.0 소프트웨어 릴리스부터 UNIX 클라이언트 사용자는 성능 저하 없이 최대 1024개 그룹에 속할 수 있게 되었습니다. 이전 릴리스에서는 UNIX 클라이언트 사용자당 최대 16개 그룹을 지원했습니다.

NFS 공유 모드 및 예외사항 옵션

CLI에서 모든 NFS 공유 모드 및 예외사항은 sharenfs 등록 정보에 대한 단일 옵션 문자열을 사용하여 지정됩니다. 이 문자열은 값을 쉼표로 구분한 목록입니다. 이 문자열은 BUI에 대해 설명된 전역 공유 모드와 유사하게 ro, rw, on 또는 off 중 하나로 시작해야 합니다.

표 109  NFS 공유 모드 값(BUI 및 CLI)
BUI 공유 모드 값
CLI 공유 모드 값
설명
None(없음)
off
공유 모드가 사용 안함으로 설정됩니다.
sharesmb=off
on
공유 이름이 데이터 세트 이름이며, rw 또는 ro NFS 예외사항이 정의된 경우에만 읽기/쓰기 또는 읽기 전용이 가능합니다. 다른 모든 클라이언트의 경우 공유 모드가 사용 안함으로 설정됩니다.
sharesmb="on,ro=sf.example.com"
<resource name>
공유 이름이 리소스 이름이며, rw 또는 ro NFS 예외사항이 정의된 경우에만 읽기/쓰기 또는 읽기 전용이 가능합니다. 다른 모든 클라이언트의 경우 공유 모드가 사용 안함으로 설정됩니다.
sharesmb="myshare,ro=sf.example.com"
Read/write(읽기/쓰기)
on
공유 이름이 데이터 세트 이름이며, NFS 예외사항이 없는 경우 모든 클라이언트에 대해 읽기 및 쓰기가 가능합니다.
sharesmb=on
rw
공유 이름이 데이터 세트 이름이며, ro 예외사항이 정의되어 있는 클라이언트를 제외한 모든 클라이언트에 대해 읽기 및 쓰기가 가능합니다.
sharesmb=rw 또는 sharesmb="rw,ro=sf.example.com"
<resource name>
공유 이름이 리소스 이름이며, NFS 예외사항이 없는 경우 모든 클라이언트에 대해 읽기 및 쓰기가 가능합니다.
sharesmb=myshare
<resource name>,rw
공유 이름이 리소스 이름이며, ro 예외사항이 정의되어 있는 클라이언트를 제외한 모든 클라이언트에 대해 읽기 및 쓰기가 가능합니다. NFS 예외사항은 정의될 수도 있고 정의되지 않을 수도 있습니다.
sharesmb="myshare,rw" or sharesmb="myshare,rw,ro=sf.example.com"
Read only(읽기 전용)
ro
공유 이름이 데이터 세트 이름이며, rw 예외사항이 정의되어 있는 호스트를 제외한 모든 호스트에 대해 읽기 전용이 가능합니다.
sharesmb="ro,rw=sf.example.com"
<resource name>,ro
공유 이름이 리소스 이름이며, rw 예외사항이 정의되어 있는 클라이언트를 제외한 모든 클라이언트에 대해 읽기 전용이 가능합니다. NFS 예외사항은 정의될 수도 있고 정의되지 않을 수도 있습니다.
sharesmb="myshare,ro" or sharesmb="myshare,ro,rw=sf.example.com"

다음 예에서는 모든 클라이언트에 대한 공유 모드를 읽기 전용으로 설정합니다. 모든 클라이언트의 루트 사용자는 자신이 일반 "nobody" 사용자인 것처럼 공유의 파일에 액세스합니다.

set sharenfs=ro

nosuid 옵션과 anon 옵션 중 하나 또는 둘 다 추가될 수도 있습니다. 따라서 알 수 없는 모든 사용자를 uid 153762로 매핑하는 작업을 정의하려면 다음을 지정합니다.

set sharenfs="ro,anon=153762"

주 -  "=" 문자가 포함된 CLI 등록 정보 값은 따옴표로 묶어야 합니다.

추가 NFS 예외사항은 "option=collection" 형식의 텍스트를 추가하여 지정할 수 있습니다. 여기서 "option"은 클라이언트 모음에 부여될 액세스 권한의 유형을 정의하는 ro, rw, root 중 하나입니다. 모음은 클라이언트 유형 테이블의 접두어 문자 및 DNS 호스트 이름/도메인 이름 또는 CIDR 네트워크 번호에 의해 지정됩니다. 예를 들어, sf.example.com 도메인의 모든 호스트에 읽기/쓰기 권한을 부여하고 192.168.44.0/24 네트워크의 호스트에 루트 액세스 권한을 부여하려면 다음을 사용해야 합니다.

set sharenfs="ro,anon=153762,rw=.sf.example.com,root=@192.168.44.0/24"

주 -  이 예는 NFS 예외사항에만 적용됩니다.

개별 정규화된 호스트 이름을 사용할 수 있는 모든 위치에서 넷 그룹 이름을 사용할 수 있습니다. 예를 들어, 다음과 같이 "engineering" 넷 그룹에 읽기/쓰기 액세스 권한을 허용할 수 있습니다.

set sharenfs="ro,rw=engineering"

NFS 프로토콜 문자 세트 인코딩

일반적으로 파일 이름에 사용되는 문자 세트 인코딩은 지정되지 않습니다. NFSv3 및 NFSv2 프로토콜은 문자 세트를 지정하지 않습니다. NFSv4는 UTF-8을 사용해야 하지만 일부 클라이언트의 경우 이러한 기능이 지원되지 않으며 이러한 제한 사항은 서버에서 적용되지 않습니다. UTF-8 전용 옵션이 공유에 대해 사용 안함으로 설정된 경우 이러한 파일 이름은 인코딩에 대한 지식 없이 파일 시스템에 문자 그대로 쓰여집니다. 즉, 이러한 파일 이름은 동일한 인코딩을 사용하는 클라이언트만 해석할 수 있습니다. 그러나 SMB의 경우 파일 이름을 서버측에서 해석할 수 있도록 UTF-8로 저장해야 합니다. 이렇게 하면 SMB에 대한 액세스 권한은 계속 허용하는 반면 임의의 클라이언트 인코딩을 지원할 수 없습니다.

이러한 구성을 지원하려면 문자 세트 인코딩을 공유 전체적으로 또는 클라이언트 기준별로 설정해야 합니다. 지원되는 문자 세트 인코딩은 다음과 같습니다.

cp932
euc-tw
iso8859-7
koi8-r
euc-cn
iso8859-1
iso8859-8
shift_jis
euc-jp
iso8859-2
iso8859-9
euc-jpms
iso8859-5
iso8859-13
euc-kr
iso8859-6
iso8859-15

기본 동작은 문자 세트 인코딩을 계속 지정되지 않은 상태로 유지하는 것입니다(pass-through). BUI에서는 표준 예외 목록 메커니즘을 통해 문자 세트를 선택할 수 있습니다. CLI에서는 각 문자 세트 자체가 호스트가 하나 이상인 옵션이 되며 여기서 '*'는 공유 전체 설정을 나타냅니다. 예를 들어, 다음 명령의 경우

hostname:shares default> set sharenfs="rw,euc-kr=*"

'euc-kr'을 기본 인코딩으로 사용하여 파일 시스템을 공유합니다. 다음 명령의 경우

hostname:shares default> set sharenfs="rw,euc-kr=host1.domain.com,euc-jp=host2.domain.com"

각각 'euc-kr' 및 'euc-jp'를 사용할 'host1' 및 'host2'를 제외한 모든 클라이언트에 대해 기본 인코딩을 사용합니다. 호스트 목록의 형식은 다른 CLI NFS 옵션의 형식을 따릅니다.

일부 NFS 클라이언트는 대체 로케일을 올바르게 지원하지 않습니다. 자세한 내용은 NFS 클라이언트 설명서를 참조하십시오.

NFS 프로토콜 보안 모드

보안 모드는 공유별로 설정됩니다. 다음 목록은 Kerberos 보안 설정에 대해 설명합니다.

  • krb - Kerberos V5를 통한 최종 사용자 인증

  • krb5i - krb5 및 통합 보호(데이터 패킷이 변조 방지됨

  • krb5p - krb5i 및 개인 정보 보호(데이터 패킷이 변조 방지되고 암호화됨)

보안 모드는 "option=mode" 형식으로 텍스트를 추가하여 지정됩니다. 여기서 optionsec이고, mode는 보안 설정입니다. 예를 들면 다음과 같습니다.

hostname: shares default> set sharenfs="sec=krb5" 

주 -  "=" 문자가 포함된 CLI 등록 정보 값은 따옴표로 묶어야 합니다.

Kerberos 유형 조합을 보안 모드 설정에 지정할 수 있습니다. 다음 표에 표시된 것처럼 조합된 보안 모드를 통해 클라이언트가 나열된 Kerberos 유형을 사용하여 마운트할 수 있습니다.

표 110  Kerberos 유형 조합
설정
설명
sys
시스템 인증
krb5
Kerberos v5 전용 – 클라이언트는 이 유형을 사용하여 마운트해야 합니다.
krb5:krb5i
Kerberos v5(통합 포함) – 클라이언트는 나열된 유형을 사용하여 마운트할 수 있습니다.
krb5i
Kerberos v5 통합 전용 – 클라이언트는 이 유형을 사용하여 마운트해야 합니다.
krb5:krb5i:krb5p
Kerberos v5(통합 또는 프라이버시 포함) – 클라이언트는 나열된 유형을 사용하여 마운트할 수 있습니다.
krb5p
Kerberos v5 프라이버시 전용 – 클라이언트는 이 유형을 사용하여 마운트할 수 있습니다.

예약된 포트

시스템 인증에 대해 예약된 포트를 설정하려면 이 예에 표시된 것처럼 resvport를 사용합니다.

set sharenfs="sec=sys,rw,resvport"

resvport는 시스템 인증 보안 모드 sec=sys에서만 사용할 수 있습니다.