플랫 공유를 위해 작은 서버를 운영하고 있습니다. 주로 일부 추가 서비스가 있는 파일 서버 입니다. 클라이언트는 Linux 시스템 (주로 Ubuntu이지만 다른 Distros도 있음)과 Mac (-Book) 사이에 있습니다 (그러나 질문에는 중요하지 않습니다). 서버에서 Ubuntu 11.10 (Oneiric Ocelot) ‘Server Edition’을 실행 중이며 설정 및 테스트를 수행하는 시스템은 11.10 ‘Desktop Edition’을 실행합니다. 우리는 Samba (우리가 더 친숙한)와의 공유를 꽤 오랫동안 실행 한 다음 NFS 로 마이그레이션합니다 (LAN에 Windows 사용자가 없으며 시도하려고하기 때문에). 지금까지 모든 것이 잘 작동합니다. .
이제 autofs 를 사용하여 자동 마운트를 설정 하여 작업을 매끄럽게 만듭니다 (지금까지는 누구나 필요할 때 수동으로 공유를 마운트 함). 자동 마운팅도 작동하는 것 같습니다. 문제는 우리의 “서버”가 에너지를 절약하기 위해 연중 무휴로 가동하지 않는다는 것입니다 (누군가 서버에서 물건을 필요로하는 경우 서버 전원을 켜고 나중에 종료하므로 매일 두 시간 만 실행 됨). 그러나 autofs 설정으로 인해 서버가 실행 중이 아닌 경우 클라이언트가 자주 종료됩니다.
-
서버가 실행 중이 아니더라도 모든 클라이언트를 정상적으로 시작할 수 있습니다.
-
그러나
/nfs
서버가 실행 중이 아닌 동안 공유에 대한 심볼릭 링크가 포함 된 디렉토리 (터미널 또는 노틸러스)를 표시 하려면 최소 2 분 동안 중단됩니다 (autofs는 서버에 연결할 수는 없지만 노력하고 있습니다.)- 이를 피할 수있는 방법이 있습니까? 디렉토리로 변경하거나 디렉토리의 내용에 액세스 할 때까지 마운트가 지연되도록? 아래의 공유 링크를 “보고”있을 때
/nfs
? 나는 생각하지 않지만 어쩌면 오랫동안 그렇게하려고하지 않을 수 있습니까? 그리고 빈 디렉토리를 주거나 “그 디렉토리를 찾을 수 없거나 연결할 수 없습니다”또는 이와 유사한 것을 제공하십시오.
- 이를 피할 수있는 방법이 있습니까? 디렉토리로 변경하거나 디렉토리의 내용에 액세스 할 때까지 마운트가 지연되도록? 아래의 공유 링크를 “보고”있을 때
-
서버가 실행 중이면 모든 것이 제대로 작동합니다.
-
그러나 서버가 종료되면 공유가 마운트 해제 되기 전에 도구 (예 :
df
또는ll
)가 중단됩니다 (공유가 여전히 켜져 있다고 생각하지만 서버가 더 이상 응답하지 않기 때문에).- 연결이 끊어지면 공유를 자동으로 마운트 해제하는 방법이 있습니까?
-
또한 서버가 다운 되어도 여전히 공유가 마운트 된 경우 클라이언트가 종료되거나 다시 시작되지 않습니다. 그들은 ” 남은 프로세스를 죽이는 ” 과정 에서 (무한하게 보이는 것처럼) 멈추고 아무 일도 일어나지 않는 것 같습니다.
나는 그것이 마운트 및 마운트 해제에 대한 깔끔한 타임 아웃 값으로 귀결된다고 생각합니다. 서버와의 연결이 끊어지면 모든 공유를 제거 할 수 있습니다.
그래서 내 질문은 : 어떻게 처리합니까? 그리고 보너스로 : /nfs
실제 공유를 마운트 할 필요없이 autolink 옵션을 사용하거나 /nfs
마운트가 발생할 때 대체되는 의사 FS를 사용하지 않고도 내부를 연결하는 좋은 방법이 있습니까?
내 설정
NFS 설정은 아주 기본적인하지만 우리가 아니라 지금까지 (사용 봉사 로 NFSv4를 )
/ etc / default / nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/ etc / exports
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
내보내기 루트 아래에 다음 /srv
과 bind
같은 두 개의 디렉토리가 있습니다 .
/ etc / fstab (서버)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
첫 번째는 대부분 읽기 전용이지만 (NFS 설정 대신 파일 속성과 소유권을 통해 시행) 두 번째는 모두 rw 입니다. 참고 : / etc / exports 에 추가 항목이 없으므로 별도로 마운트하면 작동합니다.
클라이언트 측에서는 /etc/fstab
필요에 따라 설치 및 수동 마운트를 수행합니다 ( morton
서버 이름이며 올바르게 해결됨).
/ etc / fstab (클라이언트)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
를 들어 autofs를 설정 난에서 항목을 제거 /etc/fstab
클라이언트에서와이처럼 휴식 설정 :
/etc/auto.master
/nfs /etc/auto.nfs
먼저 제공된 실행 파일을 묶었 지만 ( 여기/etc/auto.net
에서 볼 수 있습니다 ) 자동으로 아무것도 마운트하지 않습니다. 그런 다음 /etc/auto.nfs
온라인에서 찾은 HowTos를 기반으로 작성합니다 .
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
그리고 그것은 작동합니다 … 또는 서버가 연중 무휴로 작동한다면 작동 할 것입니다. 따라서 서버가 실행되지 않고 클라이언트가 부팅되거나 여전히 연결된 위치에서 서버가 다운되는 경우 끊기가 발생합니다.
답변
마운트 시스템을 사용하면 노틸러스가 마운트되거나 마운트되지 않은 마운트가 포함 된 디렉토리를 나열하는 상황을 피하려고합니다. 따라서 autofs를 사용하면 / nfs와 같은 마운트를 만들지 마십시오. 그렇게하면, 노틸러스를 사용하여 ‘파일 시스템’을 나열 할 때 / nfs에 존재하는 마운트를 만들려고 시도하며, 마운트 시도가 실패하면 포기하는 데 몇 분이 걸립니다.
그래서 내가 한 것은 auto.master를 변경하여 / nfs / mnt에 마운트를 만듭니다.
이것은 나를 위해 문제를 해결했습니다. 쉽게 피할 수있는 / nfs / mnt의 내용을 나열하려고하면 시간이 오래 걸립니다.
답변
마운트 옵션 “bg, intr, hard”를 사용하여 클라이언트에 NFS 공유를 마운트하십시오.
귀하의 경우 가장 중요한 배경은 “bg”입니다-서버를 사용할 수 없을 때 시스템이 차단하지 않도록 지시합니다.
“intr”(인터럽트 가능)-kill 명령으로 클라이언트에서 매달린 마운트를 강제 종료 할 수 있습니다.
“hard”는 “soft”의 반대입니다. 차이점은 “하드”는 끝없이 시도하지만 “소프트”는 서버를 사용할 수 없을 때 재 시도를 기하 급수적으로 종료한다는 것입니다.
답변
맨 페이지의 옵션 중 일부를 더 연주했습니다. 모두의 bg,hard
, bg,soft
, fg,hard
그리고 fg,soft
내가 이상 2 미뉴에트의 시간을 돌려 준다.
설정 retrans=1,retry=0
(위의 내용과 결합), 약 3 초 정도 시간이 걸립니다. 꽤 괜찮습니다. 각 조합의 의미가 확실하지는 않지만 더 파고들 것입니다.
또한 나는 autofs를 옵션 건너 온 MOUNT_WAIT
과 UMOUNT_WAIT
. 나는 그들과 다른 결과를 얻을 수 없었지만 계속 노력할 것입니다. lika가 “더 안전한”(일명 더 많은 재시도 등) NFS 옵션을 사용하는 좋은 방법 인 것 같지만 autofs에 대한 빠른 반환 시간입니까?
답변
Red Hat Linux 시스템을 시작할 때마다 자동으로 마운트되도록 NFS 파일 시스템을 설정하려면 해당 NFS 파일 시스템에 대한 항목을 / etc / fstab 파일에 추가해야합니다. / etc / fstab 파일에는 Red Hat Linux 시스템을위한 모든 종류의 마운트 (및 마운트 가능) 파일 시스템에 대한 정보가 들어 있습니다. EX : : nfs 파일 시스템을 내보내는 서버의 호스트 이름, IP 주소 또는 정규화 된 도메인 이름에 해당합니다. 내 보낸 디렉토리의 경로입니다. 로컬 파일 시스템에서 내 보낸 디렉토리를 마운트 할 위치를 지정합니다. 이 마운트 지점은 / etc / fstab을 읽기 전에 존재해야합니다. 그렇지 않으면 마운트가 실패합니다.이 영역은 파일 시스템의 마운트 옵션을 지정합니다. 예를 들어 옵션 영역에 rw, suid, 내 보낸 파일 시스템은 읽기 / 쓰기로 마운트되고 서버에서 설정 한 사용자 및 그룹 ID가 사용됩니다. 여기서는 괄호를 사용하지 않아야합니다.