automount nfs : 신뢰할 수없는 서버에 대한 autofs 시간 초과 설정-끊지 않는 방법?


18

플랫 공유를 위해 작은 서버를 운영하고 있습니다. 주로 일부 추가 서비스가 있는 파일 서버 입니다. 클라이언트는 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)

내보내기 루트 아래에 다음 /srvbind같은 두 개의 디렉토리가 있습니다 .

/ 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

그리고 그것은 작동합니다 ... 또는 서버가 연중 무휴로 작동한다면 작동 할 것입니다. 따라서 서버가 실행되지 않고 클라이언트가 부팅되거나 여전히 연결된 위치에서 서버가 다운되는 경우 끊기가 발생합니다.

답변:


2

마운트 시스템을 사용하면 노틸러스가 마운트되거나 마운트되지 않은 마운트가 포함 된 디렉토리를 나열하는 상황을 피하려고합니다. 따라서 autofs를 사용하면 / nfs와 같은 마운트를 만들지 마십시오. 그렇게하면, 노틸러스를 사용하여 '파일 시스템'을 나열 할 때 / nfs에 존재하는 마운트를 만들려고 시도하며, 마운트 시도가 실패하면 포기하는 데 몇 분이 걸립니다.

그래서 내가 한 것은 auto.master를 변경하여 / nfs / mnt에 마운트를 만듭니다.

이것은 나를 위해 문제를 해결했습니다. 쉽게 피할 수있는 / nfs / mnt의 내용을 나열하려고하면 시간이 오래 걸립니다.


20

마운트 옵션 "bg, intr, hard"를 사용하여 클라이언트에 NFS 공유를 마운트하십시오.

귀하의 경우 가장 중요한 배경은 "bg"입니다-서버를 사용할 수 없을 때 시스템이 차단하지 않도록 지시합니다.

"intr"(인터럽트 가능)-kill 명령으로 클라이언트에서 매달린 마운트를 강제 종료 할 수 있습니다.

"hard"는 "soft"의 반대입니다. 차이점은 "하드"는 끝없이 시도하지만 "소프트"는 서버를 사용할 수 없을 때 재 시도를 기하 급수적으로 종료한다는 것입니다.


답변 주셔서 감사합니다. 지금은 내가 집에서 아니에요 원인 테스트 할 수 없습니다 만, 매뉴얼 페이지를 (다시) 얻을 묶는 후, 좀 더 많은 질문을 가지고 : hardbg소리는 처음에 나에게 직관적 인 카운터. 마운트가 다시 시도 되지 않고 구제되면 즉시 다시 돌아 가기를 원합니까? intr벌금을 것뿐만 아니라 더 이상 작동하지 않을 것 같다 " . 마운트 옵션을 nointr INTR은 / 커널 2.6.25 이후에 사용되지 않습니다 만 SIGKILL이 커널에 보류중인 NFS 작업을 중단 할 수 있으며, 지정된 경우,이 이전 버전과의 호환성을 제공하기 위해 무시 마운트 옵션을 이전 커널과 함께 ? "?
Brutus

2
하드는 끝없이 재 시도합니다. 지금 마운트 할 수없는 경우 bg는 차단되지 않습니다. 결과는 사용 가능할 때 마운트되지만 다른 모든 조작은 계속됩니다. INTR은 현재 기본 상태 인 것 같습니다. 처음에 NFS 서버가 죽었다면 매달린 클라이언트를 재부팅해야했습니다.
Nils

방금 테스트했지만 추가 hard,bg하면 /etc/auto.master아무것도 바뀌지 않는 것 같습니다. A는 time ls -l ~(에 내 사용자 디렉토리는 심볼릭 링크가 포함되어 /nfs/upload서버가 실행되지 않을 때 아직도 더 그 2 분 소요)가.
Brutus

autofs를 다시 시작 했습니까? autofs를 다시 시작하지 않고 서브맵 변경 만 전파됩니다.
Nils

내가 그랬어 :sudo reload autofs && sudo restart autofs
브루투스

7

맨 페이지의 옵션 중 일부를 더 연주했습니다. 모두의 bg,hard, bg,soft, fg,hard그리고 fg,soft내가 이상 2 미뉴에트의 시간을 돌려 준다.

설정 retrans=1,retry=0(위의 내용과 결합), 약 3 초 정도 시간이 걸립니다. 꽤 괜찮습니다. 각 조합의 의미가 확실하지는 않지만 더 파고들 것입니다.

또한 나는 autofs를 옵션 건너 온 MOUNT_WAITUMOUNT_WAIT. 나는 그들과 다른 결과를 얻을 수 없었지만 계속 노력할 것입니다. lika가 "더 안전한"(일명 더 많은 재시도 등) NFS 옵션을 사용하는 좋은 방법 인 것 같지만 autofs에 대한 빠른 반환 시간입니까?


1
techrepublic.com/blog/opensource/… 와 같은 다른 옵션도 rsize=32768,wsize=32768,noatime있습니다.
Ehtesh Choudhury

-1

Red Hat Linux 시스템을 시작할 때마다 자동으로 마운트되도록 NFS 파일 시스템을 설정하려면 해당 NFS 파일 시스템에 대한 항목을 / etc / fstab 파일에 추가해야합니다. / etc / fstab 파일에는 Red Hat Linux 시스템을위한 모든 종류의 마운트 (및 마운트 가능) 파일 시스템에 대한 정보가 들어 있습니다. EX : : nfs 파일 시스템을 내보내는 서버의 호스트 이름, IP 주소 또는 정규화 된 도메인 이름에 해당합니다. 내 보낸 디렉토리의 경로입니다. 로컬 파일 시스템에서 내 보낸 디렉토리를 마운트 할 위치를 지정합니다. 이 마운트 지점은 / etc / fstab을 읽기 전에 존재해야합니다. 그렇지 않으면 마운트가 실패합니다.이 영역은 파일 시스템의 마운트 옵션을 지정합니다. 예를 들어 옵션 영역에 rw, suid, 내 보낸 파일 시스템은 읽기 / 쓰기로 마운트되고 서버에서 설정 한 사용자 및 그룹 ID가 사용됩니다. 여기서는 괄호를 사용하지 않아야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.