Red Hat Training
A Red Hat training course is available for RHEL 8
4.6. NFS 서버 구성
이 섹션에서는 NFS 서버에서 내보내기를 구성하는 두 가지 방법의 구문과 옵션에 대해 설명합니다.
-
/etc/exports
설정 파일 수동 편집 -
명령줄에서
exportfs
유틸리티 사용
4.6.1. /etc/exports 구성 파일
/etc/exports
파일은 원격 호스트로 내보낼 파일 시스템을 제어하고 옵션을 지정합니다. 다음 구문 규칙을 따릅니다.
- 빈 행은 무시됩니다.
-
주석을 추가하려면 해시 표시(
#
)로 행을 시작합니다. -
긴 줄을 백슬래시(\)로 래핑할 수
있습니다
. - 내보낸 각 파일 시스템은 개별 행에 있어야 합니다.
- 내보낸 파일 시스템 다음에 배치된 권한 있는 호스트 목록은 공백 문자로 구분해야 합니다.
- 각 호스트에 대한 옵션은 호스트 및 첫 번째 괄호를 구분하는 공백 없이 호스트 식별자 뒤에 직접 괄호 안에 배치해야 합니다.
내보내기 항목
내보낸 파일 시스템의 각 항목에는 다음과 같은 구조가 있습니다.
export host(options)
또한 각 호스트에 대한 특정 옵션과 함께 여러 호스트를 지정할 수도 있습니다. 이렇게 하려면 다음과 같이 각 호스트 이름과 해당 옵션( 괄호 안 포함)을 공백으로 구분된 목록과 같은 행에 나열합니다.
export host1(options1) host2(options2) host3(options3)
이 구조에서 다음을 수행합니다.
- export
- 디렉토리를 내보내고 있습니다
- 호스트
- 내보내기를 공유할 호스트 또는 네트워크
- 옵션
- 호스트에 사용할 옵션
예 4.1. 간단한 /etc/exports 파일
가장 간단한 형식의 /etc/exports
파일은 내보낸 디렉토리만 지정하고 호스트는 액세스하도록 허용했습니다.
/exported/directory bob.example.com
여기에서 bob.example.com
은 NFS 서버에서 /exported/directory/
를 마운트할 수 있습니다. 이 예에서는 옵션을 지정하지 않으므로 NFS는 기본 옵션을 사용합니다.
/etc/exports
파일의 형식은 특히 공백 문자를 사용하는 것과 관련하여 매우 정확합니다. 공백 문자를 사용하여 호스트와 호스트에서 내보낸 파일 시스템을 항상 분리해야 합니다. 그러나 주석 행을 제외하고 파일에 다른 공백 문자가 없어야 합니다.
예를 들어 다음 두 행은 동일한 것을 의미하지 않습니다.
/home bob.example.com(rw) /home bob.example.com (rw)
첫 번째 줄에서는 bob.example.com
의 사용자만 /home
디렉토리에 대해 읽고 쓸 수 있습니다. 두 번째 행에서는 bob.example.com
의 사용자가 디렉토리를 읽기 전용(기본값)으로 마운트할 수 있지만 나머지 world는 읽기/쓰기로 마운트할 수 있습니다.
기본 옵션
내보내기 항목의 기본 옵션은 다음과 같습니다.
ro
- 내보낸 파일 시스템은 읽기 전용입니다. 원격 호스트는 파일 시스템에서 공유된 데이터를 변경할 수 없습니다. 호스트가 파일 시스템(즉, 읽기 및 쓰기)을 변경할 수 있도록 하려면 rw 옵션을 지정합니다.
sync
-
이전 요청의 변경 사항을 디스크에 작성하기 전에 NFS 서버는 요청에 응답하지 않습니다. 대신 비동기 쓰기를 활성화하려면
async
옵션을 지정합니다. Wdelay
-
다른 쓰기 요청이 임박한 것으로 의심되는 경우 NFS 서버는 디스크에 쓰기를 지연합니다. 이렇게 하면 별도의 쓰기 명령으로 디스크에 액세스해야 하는 횟수가 줄어들기 때문에 성능이 향상되어 쓰기 오버헤드가 줄어듭니다. 이 설정을 비활성화하려면 기본 동기화 옵션도 지정된 경우에만 사용할 수 있는
no_wdelay
옵션을 지정합니다. root_squash
이렇게 하면 로컬에서 원격으로 연결된 root 사용자가 root 권한을 가지지 못하도록 합니다. 대신 NFS 서버는 사용자 ID
nobody
를 할당합니다. 이를 통해 원격 루트 사용자의 기능과 가장 낮은 로컬 사용자에 대한 강력한 기능을 효과적으로 "비지정"하여 원격 서버에서 무단 쓰기를 방지합니다. 루트 스쿼시를 비활성화하려면no_root_squash
옵션을 지정합니다.모든 원격 사용자(root 포함)를 스쿼시하려면
all_squash
옵션을 사용합니다. NFS 서버가 특정 호스트의 원격 사용자에게 할당해야 하는 사용자 및 그룹 ID를 지정하려면 다음과 같이anonuid
및anongid
옵션을 각각 사용합니다.export host(anonuid=uid,anongid=gid)
여기서 uid 와 gid 는 각각 사용자 ID 번호와 그룹 ID 번호입니다.
anonuid
및anongid
옵션을 사용하면 원격 NFS 사용자가 공유할 수 있는 특수 사용자 및 그룹 계정을 만들 수 있습니다.
기본적으로 ACL(액세스 제어 목록)은 Red Hat Enterprise Linux의 NFS에서 지원합니다. 이 기능을 비활성화하려면 파일 시스템을 내보낼 때 no_acl
옵션을 지정합니다.
기본 및 재정의된 옵션
내보낸 모든 파일 시스템에 대한 각 기본값은 명시적으로 재정의해야 합니다. 예를 들어 rw
옵션이 지정되지 않은 경우 내보낸 파일 시스템은 읽기 전용으로 공유됩니다. 다음은 두 가지 기본 옵션을 재정의하는 /etc/exports
의 샘플 행입니다.
/another/exported/directory 192.168.0.3(rw,async)
이 예에서 192.168.0.3
은 /another/exported/directory/
읽기 및 쓰기를 마운트할 수 있으며 디스크에 대한 모든 쓰기는 비동기식입니다.
4.6.2. exportfs 유틸리티
exportfs
유틸리티를 사용하면 루트 사용자가 NFS 서비스를 다시 시작하지 않고 선택적으로 디렉토리를 내보내거나 내보내기 해제할 수 있습니다. 적절한 옵션이 지정된 경우 exportfs
유틸리티는 내보낸 파일 시스템을 /var/lib/nfs/xtab
에 씁니다. nfs-mountd
서비스는 파일 시스템에 대한 액세스 권한을 결정할 때 xtab
파일을 참조하므로 내보낸 파일 시스템 목록에 대한 변경 사항이 즉시 적용됩니다.
공통 exportfs 옵션
다음은 exportfs
에 일반적으로 사용되는 옵션 목록입니다.
-r
-
/
에 나열된 모든 디렉토리를 내보냅니다. 이 옵션은var/lib/nfs/etab에 새 내보내기 목록을 구성하여 /etc/
exports/etc/exports
에 대한 변경 사항을 적용하여 내보내기 목록을 효과적으로 새로 고칩니다. -a
-
export
fs로 전달되는 다른 옵션에 따라 모든 디렉토리를 내보내거나 내보내기
해제합니다. 다른 옵션을 지정하지 않으면exportfs
는/etc/exports
에 지정된 모든 파일 시스템을 내보냅니다. -o file-systems
-
/etc/exports
에 나열되지 않은 내보낼 디렉토리를 지정합니다. file-systems 를 내보낼 추가 파일 시스템으로 바꿉니다. 이러한 파일 시스템은/etc/exports
에 지정된 것과 동일한 방식으로 포맷해야 합니다. 이 옵션은 내보낸 파일 시스템 목록에 영구적으로 추가하기 전에 내보낸 파일 시스템을 테스트하는 데 주로 사용됩니다. -i
-
는
/etc/exports
를 무시합니다. 명령줄에서 제공되는 옵션만 내보낸 파일 시스템을 정의하는 데 사용됩니다. -u
-
모든 공유 디렉토리 내보내기 해제.
exportfs - solve 명령은
모든 NFS 서비스를 유지하면서 NFS 파일 공유를 일시 중지합니다. NFS 공유를 다시 활성화하려면exportfs -r
을 사용합니다. -v
-
exportfs
명령을 실행할 때 파일 시스템을 내보내거나 내보내지 않은 파일 시스템을 자세히 표시하는 자세한 작업입니다.
옵션을 exportfs
유틸리티로 전달하지 않으면 현재 내보낸 파일 시스템 목록이 표시됩니다.
추가 리소스