생산중인 기계는 세 대입니다.
machineA 10.66.136.129
machineB 10.66.138.181
machineC 10.66.138.183
그리고 그 모든 컴퓨터에는 Ubuntu 12.04가 설치되어 있으며 그 세 컴퓨터 모두에 대한 루트 액세스 권한이 있습니다.
이제 위의 컴퓨터에서 아래 작업을 수행해야합니다.
Create mount point /opt/exhibitor/conf
Mount the directory in all servers.
sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/
/opt/exhibitor/conf
위에서 언급 한 것처럼 세 컴퓨터 모두에 이미 디렉토리를 만들었습니다 .
이제 마운트 포인트를 만들려고합니다. 그래서 나는 아래 과정을 따랐다.
위의 세 시스템 모두에 NFS 지원 파일 및 NFS 커널 서버 설치
$ sudo apt-get install nfs-common nfs-kernel-server
위의 세 시스템 모두에서 공유 디렉토리를 작성하십시오.
$ mkdir /opt/exhibitor/conf/
/etc/exports
위의 세 시스템 모두에서 다음과 같이 항목을 편집 하고 추가했습니다.
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/opt/exhibitor/conf/ 10.66.136.129(rw)
/opt/exhibitor/conf/ 10.66.138.181(rw)
/opt/exhibitor/conf/ 10.66.138.183(rw)
machineB와 machineC에서 아래와 같이 machineA에 마운트를 시도했지만이 오류가 발생합니다.
root@machineB:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
root@machineC:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
내 /etc/exports
파일이 좋아 보였습니까 ? exports
파일 이 엉망 입니다. 내보내기 파일의 세 컴퓨터 모두에 동일한 내용이 있습니다.
내가 여기서 뭘 잘못하고 있는지 알아? 그리고 /exports
여기에 올바른 파일은 무엇입니까?
답변
exportfs
/etc/exports
서버 에서 파일 을 작성할 때 파일을 내 보내야합니다. 일반적으로이 명령을 실행하려고합니다.
$ exportfs -a
내보내기 파일의 모든 항목을 내 보냅니다.
쇼 마운트
내가 자주 수행하는 다른 작업은 다른 컴퓨터에서 showmount
명령을 사용하여 NFS 공유를 네트워크로 내보내는 컴퓨터를 확인하는 것입니다 .
$ showmount -e <NFS server name>
예
예를 들어 내가 스컬하게 로그인했다고 가정 해보십시오.
$ showmount -e mulder
Export list for mulder:
/export/raid1/isos 192.168.1.0/24
/export/raid1/proj 192.168.1.0/24
/export/raid1/data 192.168.1.0/24
/export/raid1/home 192.168.1.0/24
/export/raid1/packages 192.168.1.0/24
fstab
부팅시 이들을 마운트하려면 NFS 마운트를 사용하려는 클라이언트 시스템에이 라인을 추가하십시오.
server:/shared/dir /opt/mounted/dir nfs rsize=8192,wsize=8192,timeo=14,intr
자동 마운팅
이러한 서버를 재부팅하려는 경우이 autofs
항목을에 추가하는 대신 자동 마운팅 ( ) 을 설정하는 것이 좋습니다 /etc/fstab
. 좀 더 많은 작업이지만 노력할만한 가치가 있습니다.
그렇게하면 서버를 서로 독립적으로 재부팅 할 수 있으며 실제로 필요하거나 사용중인 경우에만 NFS 마운트를 생성 할 수 있습니다. 유휴 상태가되면 마운트가 해제됩니다.
참고 문헌
답변
동일한 오류 ( mount.nfs: access denied by server while mounting...
)가 표시 -o v3
되고 다음과 같이 옵션으로 문제가 해결되었습니다 .
$ sudo mount -o v3 a-nfs-server:/path/to/export /path/to/mount
- 서버는 Ubuntu 14.04 64 비트 LTS입니다.
- 클라이언트는 CentOS 6.5 64 비트입니다.
답변
내 경우에는 nfs4를 사용하여 작동합니다.
$ sudo mount -t nfs4 서버 이름 : / / path / to / mount
/etc/export
서버 의 파일에서
/Path/to/export 192.168.1.0/24(rw,sync,fsid=0,no_root_squash,crossmnt,no_subtree_check,no_acl)
fsid=0
/Path/to/export
공유를 마운트 할 때 루트 디렉토리를 만듭니다 .
crossmnt
내 보낸 파일 시스템에 액세스하려는 다른 드라이브가 있기 때문입니다.
no_root_squash
클라이언트 측에서 루트 사용자 (su)로 액세스하고 싶습니다. 로컬 네트워크에서 내가 할 수있는 유일한 사람이라고 확신합니다.
서버와 클라이언트는 Ubuntu 14.04 64 비트입니다.
nfs3을 사용하려면 @ fumisky-wells의 대답이 저에게 효과적입니다.
답변
동일한 오류 메시지가 표시되고 클라이언트 시스템에 두 개의 네트워크 인터페이스가 동일한 LAN에 연결되어있는 것으로 나타났습니다. 서버가 특정 IP 주소를 예상하도록 구성되었으며 dhcp IP 주소가있는 두 번째 인터페이스에서 트래픽이 발생했습니다. 그래서 방금 두 번째 인터페이스가 고정 IP 주소를 갖도록 구성하고 두 번째 고정 IP 주소를 서버 구성에 추가했습니다.
답변
/etc/exports
클라이언트가 공유에 대한 액세스를 요청할 때 NFS 서버에서 확인하므로 사용자가 말한대로 클라이언트가 아닌 NFS 서버 시스템에서 클라이언트를 편집해야합니다 .
/etc/exports
NFS 서버에 다음을 넣으면 작동합니다.
/opt/exhibitor/conf 10.66.136.129(rw)
/opt/exhibitor/conf 10.66.138.181(rw)
/opt/exhibitor/conf 10.66.138.183(rw)
답변
nfs-client가 Linux 컨테이너 내에 내 보낸 공유를 마운트하려고 시도하면 컨테이너가 권한 모드로 실행되어야합니다.
도커의 경우;
$ docker run -it --rm --privileged ubuntu:14.04
답변
나에게 문제는 클라이언트/etc/exports/
대신 서버의 IP 주소를 사용하고 있다는 것입니다.
문제는 서버에 액세스 권한을 부여한 모든 IP를 넣어야한다는 것입니다. /etc/exports/