저는 공유 공간을 위해 소규모 서버를 운영하고 있습니다. 이는 주로파일 서버그리고 몇 가지 추가 서비스. 클라이언트는 Linux 시스템(대부분 Ubuntu이지만 일부 다른 배포판도 있음)과 그 사이에 있는 일부 Mac(-Book)입니다(그러나 이 질문에서는 중요하지 않습니다). 서버가 실행 중입니다.우분투11.10(Oneiric Ocelot) "Server Edition", 제가 설정하고 테스트한 시스템은 11.10 "Desktop Edition"을 실행하고 있습니다. 우리는 꽤 오랫동안 Samba(우리에게 더 친숙한)를 사용하여 공유를 실행했지만 다음으로 이동했습니다.네트워크 파일 시스템(LAN에 Windows 사용자가 없기 때문에 시도해 보고 싶었습니다.) 지금까지모든 것이 정상입니다.
이제 자동 설치를 설정하고 싶습니다.자동 파일 시스템작업을 원활하게 진행하세요(지금까지 모든 사람이 필요할 때 수동으로 공유를 마운트했습니다). 자동 설치도 작동하는 것 같습니다. 문제는 우리의 "서버"가 에너지 절약을 위해 연중무휴 24시간 실행되지 않는다는 것입니다(누군가 서버에 무언가가 필요하면 서버를 켰다가 끄므로 하루에 몇 시간만 실행됩니다). 그러나 autofs 설정으로 인해 서버가 실행되지 않을 때 클라이언트가 종종 중단되고 종료됩니다.
서버가 실행되지 않을 때에도 모든 클라이언트를 정상적으로 시작할 수 있습니다.
/nfs
그러나 서버가 실행되지 않는 동안 공유에 대한 심볼릭 링크가 포함된 디렉토리(터미널 또는 노틸러스에서)를 표시하려고 하면 최소 2분 동안 정지됩니다(autofs가 서버에 연결할 수 없지만 생각에 잠기게 되기 때문입니다). 견딜 수 없는).- 이것을 피할 수 있는 방법이 있나요? 디렉토리가 변경되거나 해당 디렉토리의 내용에 액세스할 때까지 설치가 지연되도록 하시겠습니까? 아래 공유 링크를 "볼" 때는 그렇지 않습니까
/nfs
? 내 생각엔 그렇지 않을 것 같지만, 어쩌면 그렇게 오랫동안 접근을 시도하지 않는 것이 가능할까요? 그냥 빈 디렉토리를 주거나 "이 디렉토리를 찾을 수/연결할 수 없습니다." 또는 이와 유사한 것을 제공하십시오.
- 이것을 피할 수 있는 방법이 있나요? 디렉토리가 변경되거나 해당 디렉토리의 내용에 액세스할 때까지 설치가 지연되도록 하시겠습니까? 아래 공유 링크를 "볼" 때는 그렇지 않습니까
서버가 실행 중이면 모든 것이 잘 작동합니다.
하지만 서버가 다운되면앞으로공유가 마운트 해제되고 도구(예:
df
또는ll
)가 중단됩니다(공유가 여전히 존재한다고 생각하지만 서버가 더 이상 응답하지 않는다고 가정).- 연결이 끊어졌을 때 공유를 자동으로 마운트 해제하는 방법이 있습니까?
또한 서버가 다운되고 클라이언트에 여전히 공유가 탑재되어 있으면 클라이언트가 종료되거나 다시 시작되지 않습니다. 그들은 매달린다(겉으로는 무한해 보인다)"남은 프로세스 종료”그리고 아무 일도 일어나지 않는 것 같았습니다.
나는 모든 것이 설치 및 제거에 대한 깔끔한 시간 초과 값으로 귀결된다고 생각합니다. 서버 연결이 끊어지면 모든 공유가 삭제될 수 있습니다.
그래서 제 질문은 이 문제를 어떻게 처리할 것인가입니다. 보너스로, /nfs
실제 공유를 마운트하지 않고도 내부 연결을 수행할 수 있는 좋은 방법이 있습니까 (autofs 옵션 또는 /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/export
/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 설정이 아닌 파일 속성 및 소유권을 통해 적용) 두 번째는읽고 쓰기모든. 참고: 추가 항목이 없습니다./etc/export, 그러나 개별적으로 설치하는 것은 가능합니다.
클라이언트 측에서는 /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
~을 위한자동 파일 시스템 설정클라이언트에서 항목을 제거하고 /etc/fstab
나머지를 다음과 같이 설정했습니다.
/etc/auto.master
/nfs /etc/auto.nfs
먼저 제공된 실행 파일을 바인딩했습니다 /etc/auto.net
.여기) 하지만 자동으로 아무것도 설치하지 않습니다. 그런 다음 /etc/auto.nfs
온라인에서 찾은 몇 가지 HowTo를 기반으로 작성했습니다.
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
일종의 작동합니다...또는 서버가 연중무휴로 실행되는 경우에도 작동할 것입니다. 따라서 서버가 실행되지 않는 동안 클라이언트가 시작되거나 공유가 아직 연결되어 있는 동안 서버가 종료되면 정지됩니다.
답변1
마운트 옵션 "bg,intr,hard"를 사용하여 클라이언트에 NFS 공유를 마운트합니다.
귀하의 경우 가장 중요한 것은 배경의 "bg"입니다. 이는 서버를 사용할 수 없을 때 시스템이 차단하지 않도록 지시합니다.
"intr"은 인터럽트 가능을 의미하므로 kill 명령을 사용하여 클라이언트에서 마운트를 종료할 수 있습니다.
"하드"는 "부드러움"의 반대입니다. 차이점은 "하드"는 끝없이 계속 시도하는 반면, "소프트"는 서버를 사용할 수 없을 때 기하급수적으로 재시도한다는 것입니다.
답변2
매뉴얼 페이지에서 몇 가지 옵션을 더 시도해 보았습니다. 모두 bg,hard
, bg,soft
, fg,hard
그리고 fg,soft
돌아올 때까지 2분 이상 시간을 주세요.
retrans=1,retry=0
그럼에도 불구하고 (위의 항목과 결합된) 설정에는 약 3초가 걸렸습니다. 꽤 좋아요. 각 조합이 무엇을 의미하는지 잘 모르겠습니다. 더 자세히 파헤쳐 보겠습니다.
나는 또한 autofs 옵션을 접했고 MOUNT_WAIT
. UMOUNT_WAIT
아직 그것들로부터 다른 결과를 얻을 수 없었지만 계속 노력할 것입니다. "더 안전한"(일명 더 많은 재시도 등) NFS 옵션을 사용하는 좋은 방법인 것 같지만 빠른 autofs 반환 시간이 있습니까?
답변3
어떤 마운팅 시스템을 사용하든 노틸러스가 마운트되거나 마운트되지 않을 수 있는 마운트가 포함된 디렉토리를 나열하는 상황을 피하고 싶을 것입니다. 따라서 autofs의 경우 /nfs 등에 마운트를 생성하지 마십시오. 이렇게 하면 Nautilus를 사용하여 파일 시스템을 나열할 때 /nfs에 있어야 하는 마운트를 생성하려고 시도하고 해당 마운트 시도가 실패할 경우 포기하는 데 몇 분이 걸립니다.
그래서 내가 한 일은 auto.master를 변경하여 /nfs/mnt에 마운트를 생성하는 것뿐이었습니다.
이것은 내 문제를 해결했습니다. /nfs/mnt의 내용을 나열하려고 하면 오랜 지연이 발생하므로 쉽게 피할 수 있습니다.
답변4
Red Hat Linux 시스템이 시작될 때마다 자동으로 마운트되도록 NFS 파일 시스템을 설정하려면 /etc/fstab 파일에 NFS 파일 시스템에 대한 항목을 추가해야 합니다. /etc/fstab 파일에는 Red Hat Linux 시스템에 마운트된(및 마운트 가능한) 모든 유형의 파일 시스템에 대한 정보가 포함되어 있습니다. EX: :nfs 파일 시스템을 내보낸 서버의 호스트 이름, IP 주소 또는 정규화된 도메인 이름에 해당합니다. 내보내기 디렉터리의 경로입니다. 내보내기 디렉터리가 마운트되는 로컬 파일 시스템의 위치를 지정합니다. 이 마운트 지점은 /etc/fstab을 읽기 전에 존재해야 합니다. 그렇지 않으면 마운트가 실패합니다. 이 영역은 파일 시스템에 대한 마운트 옵션을 지정합니다. 예를 들어 옵션 영역에 rw,suid가 지정된 경우 내보낸 파일 시스템은 읽기/쓰기로 마운트되며 서버에서 설정한 사용자 및 그룹 ID를 사용합니다. 여기에 괄호를 사용하지 않도록 주의하세요.