UNIX에서 하드 마운트와 소프트 마운트의 장점 / 단점은 무엇입니까?


23

이 질문은 배포판마다 다를 수 있지만 일반적으로 UNIX 환경에서 하드 마운트 또는 소프트 마운트를 사용하는 경우의 장점 / 단점은 무엇입니까?

하나가 더 유익하거나 용도가 상당히 보편적 인 특정 상황이 있습니까?

답변:


21

하드 마운트는 일반적으로 로컬 디스크 또는 SAN과 같은 블록 리소스에 사용됩니다. 소프트 마운트는 일반적으로 NFS 또는 CIFS와 같은 네트워크 파일 프로토콜에 사용됩니다.

소프트 마운트의 장점은 NFS 서버를 사용할 수없는 경우 사전 구성된 기간 후에 커널이 I / O 작업 시간을 초과한다는 것입니다. 단점은 NFS 드라이버가 데이터를 캐시하고 소프트 마운트가 시간 초과되면 응용 프로그램이 실제로 NFS 볼륨에 대한 쓰기가 디스크에 커밋 된 것을 알 수 없다는 것입니다.


8

하드 마운트 및 "intr"(인터럽트 가능)은 좋은 절충안입니다 (2.6.25 이전의 커널의 경우 Ryan Horrisberger의 의견 참조). 이 응용 프로그램은 성공적인 쓰기에 대해 속지 않지만 튜브가 막히면 죽일 수 있습니다.


8
intr 옵션은 linux.die.net/man/5/nfs 에서 linux.die.net/man/5/nfs의 최신 버전에서는 더 이상 사용되지 않으며 무시됩니다 . intr / nointr 마운트 옵션은 커널 2.6.25 이후에는 사용되지 않습니다. SIGKILL만이 이러한 커널에서 보류중인 NFS 작업을 중단 할 수 있으며, 지정된 경우이 마운트 옵션은 무시되어 이전 커널과의 하위 호환성을 제공합니다.
Ryan Horrisberger 2012

5

일종의 네트워크 파일 시스템 (nfs 또는 fuse)을 사용하는 하드 마운트는 끊어진 연결을 다시 설정하려고 시도하는 동안 (때로는) 영원히 차단할 수 있습니다. 즉, 해당 마운트에 액세스하려는 모든 프로세스는 장치를 다시 사용할 수 있거나 시스템이 재부팅 될 때까지 디스크 절전 (D) 상태가됩니다.

디스크 절전 모드를 중단하거나 종료 할 수 없습니다. 좀비 프로세스의 좀비와 같습니다.

즉, 네트워크 파일 시스템에 하드 마운트를 사용하지 마십시오. I / O가 불가능한 경우 파일 시스템이 즉시 (syscalls를 사용하여 처리하기 위해) 실패하기를 원합니다. 그렇지 않으면, FS가 실패하면 청구 한 메모리도 누출 될 수 있습니다.


귀하의 일반적인 권장 사항 하드 하드 마운트에 동의합니다. 그러나 NFS에 VMWare를 배포하는 일부 사람들은 하드 마운트를 사용하는 것이 좋습니다. 나는 그들이 왜 그렇게하는지 100 % 잘 알고 있지는 않지만, 구현하기 전에 면밀히 검토하고 연구해야합니다.
duffbeer703

하드 마운트가 영구적으로 중단되고 Olden Days 시스템이 하드 NFS 마운트로 인해 재부팅시 정지되는 경우를 고려하면 하드 마운트에서 데이터를 유실 할 수 없습니까? NFS 파일 서버가 다운되고 이제 클라이언트가 도달 할 수없고 완전히 혼란스러워 재부팅 할 수 있다고 가정 해보십시오. 잠재적 인 쓰기가 사라졌습니다. 소프트 마운트가 존재하기 전의 시절에는 하드 마운트로 인해 컴퓨터를 재부팅하는 데 문제가 발생했습니다. 클라이언트 전에 파일 서버를 부팅 한 경우 클라이언트가 중단됩니다. 때로는 전원을 껐다 켜야합니다. 사람들은 실수를합니다. 오늘날에도 여전히 문제가 있습니까?
Mike S

@MikeS 행복하게 실행되는 설정이 많이 있습니다. 수십 년 된 기계가 여전히 행복하게 장비를 제어하는 ​​실험실이나 공장에서 어떤 일이 일어날 지 알 수 없습니다. 현대적인 일을하는 사람들에게는 그다지 큰 문제가 아닙니다. 그러나 그렇습니다. 하드 마운트는 데이터 비용을 발생시킬 수 있지만 소프트 마운트도 가능합니다. 그러나 배터리 백업 캐싱 I / O를 사용하지 않는 네트워크 파일 시스템은 그 문제에 대해 동일한 가능성을 가지고 있습니다. 하드 마운트는 감지 및 복구 자동화와 관련하여 매우 끔찍합니다.
Tim Post

2

soft는 nfs의 원리를 이해하지 못하는 사람들 만 사용합니다. 소프트 / 하드는 파일 시스템의 사용법에 따라 다릅니다. 미션 크리티컬 애플리케이션의 경우 파일 손상을 방지하기 위해 항상 하드 마운트를 사용합니다 (이것이 대부분의 시스템에서 기본값 인 이유입니다). ro 파일 시스템의 경우 부드럽고 사용하는 것이 안전합니다. 그런데 nfsv4는 더 이상 소프트를 지원하지 않습니다 ....


nfsv4는 더 이상 소프트를 지원하지 않습니까? 매뉴얼 페이지에 따르면, "모든 버전에서 지원되는 옵션이 옵션은 모든 NFS 버전에서 사용할 수 있습니다. soft / hard NFS 요청 시간이 초과 된 후 NFS 클라이언트의 복구 동작을 결정합니다. 옵션이 지정되지 않은 경우 (또는 "하드 옵션이 지정됨), NFS 요청이 무한정 재 시도됩니다. 소프트 옵션이 지정되면 재전송 재전송이 전송 된 후 NFS 클라이언트가 NFS 요청에 실패하여 NFS 클라이언트가 호출 응용 프로그램에 오류를 리턴합니다." 참조 linux.die.net/man/5/nfs을
마이크 S

나는 당신이 자신과 모순된다고 생각합니다 ... "소프트는 이해하지 못하는 사람들에 의해서만 사용됩니다 ..."와 "ro 파일 시스템의 경우 소프트를 사용하는 것이 안전합니다 ..."또한 위의 @Tim Post의 게시물을 참조하십시오 .
Mike S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.