^ Beyond Linux(r) From Scratch (systemd Edition) - Version 12.1 ^^^
^ Chapter 15. Networking Programs ^^^
|[[.:Net-tools-2.10|이전]] | [[.:index|위로]] / [[:start|처음으로]] | [[.:ntp-4.2.8p17|다음]]|
|Net-tools-2.10 | ntp-4.2.8p17|
----
===== NFS-Utils-2.6.4 =====
==== NFS 유틸리티 소개 ====
NFS 유틸리티 패키지에는 커널의 NFS 기능을 사용하는 데 필요한 사용자 공간 서버 및 클라이언트 도구가 포함되어 있습니다. NFS는 네트워크를 통해 파일 시스템을 공유할 수 있는 프로토콜입니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
=== 패키지 정보 ===
* 다운로드(HTTP): [[https://www.kernel.org/pub/linux/utils/nfs-utils/2.6.4/nfs-utils-2.6.4.tar.xz|nfs-utils-2.6.4.tar.xz]]
* MD5 총 다운로드: 907f95977ccf7a522ee32af1534f0e4c
* 다운로드 크기: 712 KB
* 필요한 예상 디스크 공간: 18MB (테스트 포함)
* 예상 빌드 시간: 0.2 SBU (테스트 포함)
== NFS 유틸리티 종속성 ===
== 필수 ==
* [[.:libtirpc-1.3.4]]
* [[.:libevent-2.1.12]]
* [[.:rpcsvc-proto-1.4.4]]
* [[.:SQLite-3.45.1]]
== 선택 사항 ==
* [[.:Cyrus SASL-2.1.28]] SASL 인증용
* [[.:LVM2-2.03.23]] NFSv4 지원용 libdevmapper
* [[.:libnsl-2.0.1]] NIS 클라이언트 지원용
* [[.:OpenLDAP-2.6.7]] LDAP 인증용
* [[.:MIT Kerberos V5-1.21.2]] 또는 [[http://www.citi.umich.edu/projects/nfsv4/linux/|libgssapi]], [[http://www.citi.umich.edu/projects/nfsv4/linux/|librpcsecgss]] GSS 및 RPC 보안 지원용
* [[.:libcap-2.69]] PAM 포함
== 필수(런타임) ==
* [[.:rpcbind-1.2.6]]
==== 커널 구성 ====
커널 구성에서 다음 옵션을 활성화하고(클라이언트 및/또는 서버 지원을 적절히 선택) 필요한 경우 커널을 다시 컴파일합니다.
File systems --->
[*] Network File Systems ---> [NETWORK_FILESYSTEMS]
<*/M> NFS client support [NFS_FS]
<*/M> NFS server support [NFSD]
위 옵션을 선택하면 표시되는 적절한 하위 옵션을 선택합니다.
**참고** \\
BLFS에서는 nfs v3가 사용된다고 가정합니다. //서버//가 nfs v4(Linux의 경우 CONFIG_NFSD_V4)를 제공하는 경우 v3에 대한 자동 협상이 실패하므로 마운트 옵션에 ''nfsver=3''을 추가해야 합니다. 이는 클라이언트 커널에서 해당 옵션이 활성화되어 있는 경우에도 적용됩니다(예: BLFS v3 서버에서 마운트하려는 배포판).
연결하려는 양쪽 모두 nfs v4를 지원하지 않더라도 ''nfsver=3''을 추가하면 모든 마운트에서 "NFS: 잘못된 마운트 옵션 값 지정: minorversion=1" 오류 메시지가 기록되는 것을 방지할 수 있으므로 여전히 유용합니다.
==== NFS 유틸리티 설치 ====
다음과 같이 NFS 유틸리티를 설치합니다.
./configure --prefix=/usr \
--sysconfdir=/etc \
--sbindir=/usr/sbin \
--disable-nfsv4 \
--disable-gss \
LIBS="-lsqlite3 -levent_core" &&
make
이제 //''root''// 사용자로
make install &&
chmod u+w,go+r /usr/sbin/mount.nfs &&
chown nobody:nogroup /var/lib/nfs
이 패키지를 테스트하려면 패키지가 설치되어 있어야 합니다. 또한 rpc.statd 데몬이 실행되고 있지 않아야 하며 //''root''// 사용자로 테스트를 실행해야 합니다.
결과를 테스트하려면 //''root''// 사용자로 실행합니다.
make check
==== 명령 설명 ====
* //--disable-gss//: RPCSEC GSS(RPC 보안)에 대한 지원을 비활성화합니다.
* //LIBS="-lsqlite3 -levent_core"//: fsidd 프로그램에 필요합니다.
* ''chown nobody:nogroup /var/lib/nfs: rpc.statd'': 프로그램은 이 디렉터리의 소유권을 사용하여 UID와 GID를 설정합니다. 이 명령은 이들을 권한이 없는 항목으로 설정합니다.
==== NFS 유틸리티 설정 ====
=== 서버 설정 ===
''/etc/exports''에는 NFS 서버에서 내보내는 디렉터리가 포함되어 있습니다. 이 파일의 구문은 ''exports.5'' man 페이지를 참조하세요. 또한 서버와 클라이언트를 안전하게 구성하는 방법에 대한 정보는 [[https://nfs.sourceforge.net/nfs-howto/|NFS Howto]] 에서 제공되는 'NFS HowTo'를 참조하세요. 예를 들어 로컬 네트워크를 통해 /home 디렉터리를 공유하려면 다음 줄을 추가할 수 있습니다.
cat >> /etc/exports << EOF
/home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99)
EOF
**참고** \\
위의 디렉토리, 네트워크 주소. 및 접두사를 네트워크와 일치하도록 바꾸어야 합니다. 위 줄에서 디렉터리와 네트워크 주소 사이에 공백만 있어야 합니다.
== Systemd Units ==
부팅 시 서버를 시작하려면 [[.:blfs-systemd-units-20240205]] 패키지에 포함된 NFSv4 서버 유닛을 설치합니다.
make install-nfsv4-server
NFSv4 지원을 사용하지 않도록 설정한 경우, 루트 사용자로 다음 명령을 실행하여 NFSv4 관련 systemd 유닛을 생략합니다:
make install-nfs-server
''etc/default/nfs-utils'' 파일을 편집하여 NFS 데몬의 시작 옵션을 변경할 수 있습니다. 기본값은 대부분의 사용 사례에 적합합니다.
=== 클라이언트 구성 ===
''/etc/fstab''에는 클라이언트에서 마운트할 디렉터리가 포함되어 있습니다. 또는 적절한 옵션과 함께 마운트 명령을 사용하여 파티션을 마운트할 수 있습니다. ''/home'' 및 ''/usr'' 파티션을 마운트하려면 ''/etc/fstab''에 다음을 추가합니다:
:/home /home nfs rw,_netdev 0 0
:/usr /usr nfs ro,_netdev 0 0
사용할 수 있는 옵션은 ''man 5 nfs'' 에 지정되어 있습니다. 클라이언트와 서버가 모두 최신 버전의 리눅스를 실행하는 경우, 대부분의 옵션이 협상됩니다(단, nfsver=3에 대한 위의 참고 사항 참조). 부팅 시 파일시스템이 자동으로 마운트되도록 하려면 ''rw'' 또는 ''ro'', ''_netdev''를 지정하고, 다른 파일시스템의 경우 ''noauto''(및 ''user'')를 지정할 수 있습니다.
파일서버가 최신 버전의 Linux를 실행하지 않는 경우 다른 옵션을 지정해야 할 수도 있습니다.
커널에서 autofs v4를 활성화하고 ''comment=systemd.automount'' 옵션을 추가해야 할 수도 있습니다. 일부 시스템에서는 시스템드가 네트워크가 가동되기 전에 외부 파일시스템을 마운트하려고 시도하기 때문에 이 옵션이 필요할 수 있습니다. 다른 방법은 시스템이 시작된 후 루트 사용자로 **''mount -a''**를 실행하는 것입니다.
== Systemd Units ==
**참고** \\
nfs-서버 유닛이 설치된 경우 다음 systemd 유닛은 필요하지 않습니다.
부팅 시 클라이언트 서비스를 시작하려면 [[.:blfs-systemd-units-20240205]] 패키지에 포함된 유닛을 설치합니다.
make install-nfs-client
==== 내용 ====
* **설치된 프로그램:** \\ exportfs, fsidd, mountstats, mount.nfs, mount.nfs4(마운트.nfs에 링크), nfsconf, nfsdclnts, nfsiostat, nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug, showmount, sm-notify, start-statd, umount.nfs(mount.nfs에 링크) 및 umount.nfs4(mount.nfs에 링크).
* **설치된 디렉터리:** \\ /var/lib/nfs
=== 간단한 설명 ===
* **exportfs** \\ NFS 내보낸 파일 시스템 목록을 유지 관리합니다.
* **fsidd** \\ 모든 NFS 사용자공간에서 재내보내기 데이터베이스를 쿼리할 수 있는 로컬 UNIX 도메인 소켓 인터페이스를 제공합니다.
* **mountstat** \\ 마운트별 NFS 클라이언트 통계를 표시합니다.
* **mount.nfs** \\ NFS를 사용하여 네트워크 공유를 마운트하는 데 사용됩니다.
* **mount.nfs4** \\ NFSv4를 사용하여 네트워크 공유를 마운트하는 데 사용됩니다.
* **nfsconf** \\ 다양한 nfs-utils 구성 파일에서 구성 설정을 테스트하고 검색하는 데 사용할 수 있습니다.
* **nfsdclnts** \\ NFS 클라이언트에 대한 정보를 출력합니다.
* **nfsiostat** \\ 네트워크 파일시스템에 대한 입출력 통계를 보고합니다.
* **nfsstat** \\ NFS 클라이언트 및 서버 활동에 대해 보관된 통계를 표시합니다.
* **rpc.mountd** \\ NFS 서버에서 NFS 마운트 프로토콜을 구현합니다.
* **rpc.nfsd** \\ 서버에서 NFS 서비스의 사용자 수준 부분을 구현합니다.
* **rpc.statd** \\ NFS 파일 잠금 서비스에서 사용됩니다. 파일 잠금을 사용하려면 서버와 클라이언트 양쪽에서 실행하세요.
* **rpcdebug** \\ 커널의 NFS 클라이언트 및 서버 디버그 플래그를 설정하거나 지웁니다.
* **showmount** \\ NFS 서버에 대한 마운트 정보를 표시합니다.
* **sm-notify** \\ 네트워크 상태 모니터 재부팅 메시지를 보내는 데 사용됩니다.
* **start-statd** \\ 잠금이 활성화된 파일시스템을 마운트할 때 statd가 실행 중인 것으로 보이지 않는 경우 nfsmount가 호출하는 스크립트입니다. 사이트에 적합한 플래그를 사용하여 사용자 정의할 수 있습니다.
* **umount.nfs** \\ NFS를 사용하여 네트워크 공유를 마운트 해제하는 데 사용됩니다.
* **umount.nfs4** \\ NFSv4를 사용하여 네트워크 공유를 마운트 해제하는 데 사용됩니다.