>  기사  >  시스템 튜토리얼  >  Linux에서의 NFS 서비스에 대한 사전 이해

Linux에서의 NFS 서비스에 대한 사전 이해

王林
王林앞으로
2024-01-23 17:18:051111검색

Linux NFS服务的初步了解

RPC 소개

1) 서비스 소비자(클라이언트)가 지역 통화를 통해 서비스에 전화를 겁니다.

2) 호출을 받은 후 클라이언트 스텁은 메서드, 매개변수 등을 네트워크를 통해 전송될 수 있는 메시지 본문으로 조립하는 일을 담당합니다.

3) 클라이언트 스텁은 서비스 주소를 찾아 서버에 메시지를 보냅니다.

4) 서버 스텁은 메시지를 수신한 후 디코딩합니다.

5) 서버 스텁은 디코딩 결과를 기반으로 로컬 서비스를 호출합니다.

6) 로컬 서비스가 실행되고 결과가 서버 스텁으로 반환됩니다.

7) 서버 스텁은 반환된 결과를 메시지로 패키징하여 소비자에게 보냅니다.

8) 클라이언트 스텁은 메시지를 수신하고 이를 디코딩합니다.

9) 최종 결과는 서비스 소비자가 얻습니다.

NFS 소개

NFS(Network File System)는 FreeBSD에서 지원하는 파일 시스템 중 하나이며 네트워크상의 컴퓨터가 TCP/IP 네트워크를 통해 리소스를 공유할 수 있도록 해줍니다. NFS 애플리케이션에서 로컬 NFS 클라이언트 애플리케이션은 로컬 파일에 액세스하는 것처럼 원격 NFS 서버에 있는 파일을 투명하게 읽고 쓸 수 있습니다.

현재 NFS에는 주로 두 가지 버전(NFSv2, NFSv3)이 있으며 더 많은 새로운 기능을 지원하는 NFSv2 및 NFSv3 버전 외에도 NFSv2는 전송에 UDP 프로토콜을 사용하므로 NFSv2의 연결이 필요할 수 있습니다. 복잡한 네트워크 환경에서는 그다지 안정적이지 않으며 NFSv3은 UDP와 TCP 프로토콜을 모두 지원합니다.

방금 살펴보니 Centos7이 이미 NFSv4 프로토콜을 지원하는 것으로 나타났습니다. 여기서는 NFSv4를 게시하지 않겠습니다. 시간이 나면 살펴보겠습니다. 클라이언트가 NFS 공유 볼륨을 마운트하려고 하면 서버에 RPC 요청을 보내고 NFS 서버는 사용자 인증 후 클라이언트에 임의의 쿠키를 보냅니다. 그러면 클라이언트는 이 쿠키를 사용하여 해당 요청을 인증할 수 있습니다. . 액세스 중인 공유 볼륨입니다.


NFS 인증은 내장된 IP/호스트 권한 할당을 지원하며 TCP 래퍼에 의해 제한됩니다.

Redhat

의 NFS 서비스

NFS 지원은 Redhat 커널에서 기본적으로 활성화되며 NFS 서버의 시작은 네트워크 소켓 및 RPC 호출 바인딩을 담당하는 NFS 데몬을 통해 제어됩니다. 또한 rpcbind 서비스(redhat5에서는 portmap으로 명명됨)가 필요합니다. 시스템에서 nfs 서비스를 찾을 수 없다면 이는 nfs-utils 패키지가 설치되지 않았기 때문입니다. 이 패키지는 일부 도구와 서비스 스크립트를 제공합니다.

전체 NFS 서비스에는 아마도 다음이 포함되어 있을 것입니다(Red Hat 공식 문서에서 복사했지만 약간 오래된 것 같습니다):

nfs — NFS에 응답하기 위한 반응형 RPC 프로세스를 시작합니다

    nfslock
  • — 파일 잠금에 대한 클라이언트 요청에 응답하는 선택적 서비스입니다. rpcbind(portmap) — 이는 연결을 설정하고 rpc 요청에 응답하는 데 사용되는 rpc 서비스의 데몬 프로세스입니다.
  • NFS 서비스는 다음 RPC 호출(기능)을 제공합니다.

rpc.mountd — 이 함수는 클라이언트의 마운트 요청에 응답하고 요청된 파일 시스템이 사용 가능한지 여부를 확인하는 데 사용됩니다. 이 프로세스는 nfs 서비스에 의해 시작됩니다.

    rpc.nfsd
  • — nfs 서비스의 주요 프로세스(기능)입니다.
  • rpc.lockd
  • — 위 nfslock 서비스의 주요 호출(함수)은 주로 고객의 파일 잠금 요청에 응답하는 데 사용됩니다.
  • rpc.statd
  • — 이 호출(함수)은 주로 nfs 서버가 다시 시작되거나 비정상적으로 종료될 때 클라이언트에 알리는 데 사용되며 nfslock 서비스에 의해 활성화됩니다.
  • rpc.rquotad
  • — nfs 서비스는 할당량 호출(함수)을 지원하는 데 사용됩니다.
  • NFS 서비스 구성
  • NFS 구성 파일은 /etc/exports에 있습니다. 기본값은 빈 파일입니다. 한 줄에 하나의 공유 볼륨으로 구성하면 됩니다
호스트: 제한된 호스트(도메인 이름) 1. 단일 호스트 또는 IP 2. 와일드카드 *(모든 문자와 일치) 또는 ?(모든 단일 문자와 일치), 도메인 이름이나 호스트 이름에 사용됨

3.IP/MASK(예: 192.168.110.0/24
)

옵션: 이전 호스트의 마운트 권한을 제한하는 데 사용되는 마운트 옵션입니다.

일반적인 옵션:

  • ro,rw: 읽기 전용 또는 읽기-쓰기
  • sync: 동기화, 클라이언트의 쓰기 요청이 완료되면 메모리에 있는 데이터가 즉시 디스크에 기록됩니다.
  • async: 클라이언트의 쓰기 요청이 완료되면 서버는 데이터를 즉시 디스크에 쓰지 않고 특정 시간(유휴 또는... 누가 알겠습니까)에 디스크에 씁니다. 데이터 손실.
  • wdelay(쓰기 지연): 쓰기 지연, 이는 서버가 디스크에 데이터 쓰기를 지연할 수 있도록 하는 최적화 옵션이므로 두 번째 클라이언트 쓰기 요청이 오면 쓰기 시스템을 사용하여 두 데이터가 디스크에 기록됩니다. 부르다 .
  • nowdelay: 위와 반대로 동기화 모드에서만 사용할 수 있습니다.
  • root_squash: "squash" 루트. 클라이언트가 서버에 파일을 쓸 때 클라이언트가 작성한 사용자의 uid가 서버의 동일한 uid를 가진 사용자에게 직접 매핑되기 때문입니다. nfs 공유 볼륨의 루트 사용자는 서버에 저장됩니다. 최종 소유자와 그룹은 여전히 ​​루트이므로 특정 보안 위험이 있으므로 이 옵션을 사용하여 루트를 nfsnobody 사용자로 평면화할 수 있습니다.
  • all_squash: 모든 사용자를 스쿼시합니다. anonuid=, anongid=를 사용하여 스쿼시할 사용자를 지정할 수 있습니다.

위 내용은 Linux에서의 NFS 서비스에 대한 사전 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 linuxprobe.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제