/ etc / fstab의 _netdev 마운트 옵션은 어떻게 작동합니까?


24

_netdev옵션을 사용할 때 네트워크 인터페이스가 작동 할 때까지 마운트를 연기하는 데 사용되는 정확한 메커니즘 (구현)이 무엇인지 알고 싶습니다 /etc/fstab. 이 동작이 변경
됩니까 systemd?
또한 delay_connectsshfs에 대한 옵션은 무엇을 제공 _netdev하지 않습니까?

에서 mount man 페이지 :

_netdev
파일 시스템은 네트워크 액세스가 필요한 장치에 상주합니다 (시스템에서 네트워크가 활성화 될 때까지 시스템이 이러한 파일 시스템을 마운트하지 못하도록하는 데 사용됨).

에서 sshfs man 페이지 :

-o delay_connect
서버 연결 지연

답변:


25

SysV Init

/etc/init.d/mountall.shinit 스크립트는 로컬 파일 시스템 만 마운트 :

mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev

다른 파일 시스템은 예를 들어 /etc/init.d/mountnfs.shLSB 헤더를 통해 의존성을 선언 하는 별도의 init 스크립트로 마운트됩니다 $network. 따라서 네트워크가 시작된 후 나중에 예약 mountall.sh될 수 있지만 훨씬 더 일찍 실행될 수 있습니다.

체계적

로컬 마운트 장치는 local-fs.target, 원격 마운트 장치를 통해 끌어옵니다 remote-fs.target. systemd-fstab-generatorscan /etc/fstab은 마운트 장치를 생성하고 위와 유사한 조건에 따라 위의 대상에 할당합니다.

delay_connect

이 옵션은 마운트시 sshfs가 원격 서버에 대한 SSH 연결을 시작하지 않고 실제로 필요한 첫 번째 파일 시스템 조작에서만 수행함을 의미합니다. 이로 인해 오류보고가 지연되지만 init 시스템에 마운트 작업을 올바르게 주문하기에 충분한 정보가없는 경우와 같은 경우에 유용한 해결 방법이 될 수 있습니다. "네트워크"가 "업"인 것은 다소 느슨한 용어 이지만 트리거 이벤트가 부트 업 트랜잭션의 일부가 아닌 경우 (시스템화 된 관점 에서) 도움이되지 않는 유닛을 마운트하기 위해 임의의 추가 종속성 을 추가 할 수는 있습니다 .


따라서 _netdev마운트를 수행하는 프로세스에 전달되는 인수 (및 마운트 유형과 같은 ext4/btrfs/cifs/fuse)에 전달되는 인수 가 아니라이 플래그를 기반으로하는 다른 프로세스 / 스크립트에서 읽을 수있는 시간을 결정합니다. 부팅 과정에서이 마운트를 실행해야합니다. 예? 그렇다면이 인수가 밑줄로 시작하여 다른 공식 인수 와 구별되는 이유라고 생각합니다 .
Piotr Dobrogost

예. _netdev옵션을 mount명령에 전달하면 해당 옵션 이 표시 /proc/mounts되지만 다른 효과는 없습니다.
Ferenc Wágner 14:07에

보너스 질문; 이 어딘가에 문서화되어 있습니까?
Piotr Dobrogost

1
마운트 매뉴얼에 포함 된 "FILESYSTEM 독립적 MOUNT 옵션 - 그들이에 나타날 때 이러한 옵션 중 일부는 유용하다 /etc/fstab. 파일" 글쎄, _netdev(나중에 문서화되어 있음)이 좋은 예입니다.
Ferenc Wágner 2016 년

2
_netdev 옵션은 기본적으로 mount (8)에서 무시됩니다. 옵션은 initscript에서만 사용됩니다. bugzilla.redhat.com/show_bug.cgi?id=607309#c4
Piotr Dobrogost

18

man systemd.mountsystemd 버전 231 부터 :

로컬 및 네트워크 파일 시스템을 참조하는 마운트 장치는 파일 시스템 유형 스펙으로 구별됩니다. 경우에 따라 이것은 충분하지 않습니다 (예 : iSCSI와 같은 네트워크 블록 장치 기반 마운트).이 경우 _netdev 가 장치의 마운트 옵션 문자열에 추가되어 시스템이 마운트 장치를 네트워크 마운트로 간주하도록 할 수 있습니다.


대박! 이 답변이 아직 투표되지 않은 이유를 모르겠습니다.
Valentin Bajrami

1

Upstart/Udev

들어 upstart및 / 또는 udev기반 시스템이 약간 다릅니다.

보인다 udev여전히 NFS 파일 시스템을 마운트 시도하고 netfs이것이 실패 할 때를위한 안전망이다.

내가 틀렸다면 정정 해주세요. 어느 쪽이든,이 답변은 일부 최신 레거시 시스템 (Ubuntu 14.04 LTS, RHEL6)에만 해당됩니다.

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