연합 파일 시스템을 선택하는 방법

연합 파일 시스템을 선택하는 방법

나는 사용자가 동시에 여러 파일 시스템을 서로 위에 마운트할 수 있게 해주는 연합 파일 시스템에 대한 내용을 무작위로 읽었습니다.

그러나 어느 것을 사용할지(Unionfs, Aufs, Overlayfs, mhddfs) 결정하는 데 어려움을 겪고 있으며 왜 이 주제에 대한 구체적인 정보를 어디서도 찾을 수 없는지 고민하고 있습니다. 예를 들어, 나는 overlayFS가 주류 Linux 커널에 채택되었다는 것을 알고 있습니다. 이는 더 널리 채택될 가능성이 있음을 의미합니다. 누군가 나에게 어떤 관점을 줄 수 있다면 나는 매우 감사할 것입니다.

또한 LVM 이외의 연합 파일 시스템에 대한 사용 사례를 찾을 수 없습니다(사용자 권장).별도의 질문) 또는 RAID 설정이 필요하지만 LVM에서는 모든 드라이브를 포맷해야 합니다. 이는 드라이브에 이미 중요한 데이터가 있는 경우 권장되지 않을 수 있습니다.

답변1

다음은 몇 가지 생각입니다. 저는 아직 이 내용을 배우는 중이며 계속 업데이트해 드리겠습니다.

연합 파일 시스템을 선택하는 방법

이를 보는 두 가지 방법이 있습니다:

  • 각각의 특성을 어떻게 비교하나요?
  • 일반적인 사용 사례에서는 어떤 것을 선택해야 합니까?

mhddfs를 대체하는 Unionfs/unionfs-fuse/overlayfs/aufs/mergerfs를 비교해 보겠습니다.

각각 고유한 특성이 있습니다.

개발현황

배포판/커널 지원

커널 모드와 사용자 모드 파일 시스템이 있으며 후자는 FUSE에서 실행됩니다. 커널 모드는 오버헤드가 적지만(코드가 사용자 공간과 커널 공간 사이를 전환할 때 오버헤드가 있음)현재 지원됨리눅스 커널에서는파일 시스템 덮어쓰기. 사용자 모드 파일 시스템을 사용하면 배포판을 패키지화하는 것이 더 쉬워집니다.

  • 동맹그리고오브커널 패치 필요
  • 동맹데비안에서 배포하지 않음(나머지는 배포함)
  • UnionFS 퓨즈그리고파일 시스템 병합FUSE 기반이므로 커널에 추가 모듈을 추가할 필요가 없습니다.
  • 파일 시스템 덮어쓰기3.18 이후 커널의 일부(Debian Stretch)

쓰기 시 복사

이는 다음 Live CD 사용 사례와 관련이 있습니다.

  • 파일 시스템 병합작성된 복제본 없음
  • 다른 사람들은 이렇게 해요

읽기 전용 루트/Live CD 사용 사례

아이디어는 Linux 시스템의 읽기 전용 CD-ROM/파티션을 갖는 것입니다. 연합 파일 시스템은 사용자에게 읽기-쓰기 시스템으로 나타나므로 사용자가 변경할 수 있습니다. 사용자가 변경한 모든 내용의 "델타"를 저장하지만 전체 스냅샷은 저장하지 않는 읽기-쓰기 파일 시스템(예: tmpfs RAM 디스크)이 있어야 합니다.

여기서는 mergefs를 제외한 모든 통합 파일 시스템이 가능합니다(소 지원 부족).

도커 사용 사례

이것이 주요 사용 사례라는 것을 알고 있지만 세부 사항은 모릅니다. 누구든지 이에 대한 지침을 제공할 수 있습니까?

하드 드라이브 병합

예를 들어, /home서로 다른 파일 시스템에 두 개의 디렉토리 세트가 있을 수 있습니다. 또는 두 번째 하드 드라이브로 가정용 컴퓨터를 업그레이드하고 단일 논리 볼륨이 필요할 수도 있습니다.

여기서는 실제로 쓰기 중 복사가 필요하지 않으므로 mergefs가 아마도 최선의 선택일 것입니다.

디스크 풀용 LVM이 포함된 통합 파일 시스템

LVM 대신 연합 파일 시스템을 사용하여 구현할 수 있는 몇 가지 사용 사례를 나열하겠습니다.

두 번째 디스크로 기존 시스템을 업그레이드하는 경우 mergefs와 같은 방법이 더 나을 수 있습니다. LVM에서는 첫 번째 하드 드라이브를 다시 포맷해야 하므로 해당 드라이브의 데이터가 삭제되기 때문입니다. 유니온 파일 시스템에서는 이 단계를 피합니다.

LVM은 두 개의 물리적 하드 드라이브(RAID 0으로 가정)에 파일을 분할할 수 있으므로 하나의 하드 드라이브에 오류가 발생하면 파일이 손실됩니다.

예를 들어 일부 사용자는 /home카탈로그를 휴대용 USB 스틱에 보관하는 것을 선호할 수 있습니다.

두 개의 물리적 디스크에 하나의 가상 파티션을 사용하는 경우 LVM을 사용하면 파일이 한 디스크에 저장되는지 아니면 다른 디스크에 저장되는지 걱정할 필요가 없습니다. mergefs를 사용하면 시스템은 사용 가능한 공간의 양에 따라 어느 것을 자동으로 선택할 수 있습니다.

답변2

Bob의 답변은 입문서/개요로서 매우 도움이 되었습니다. 사용자 관점에서 이 상황에 대한 내 결론을 추가하고 싶습니다.

역사적으로 통합 마운트 파일 시스템의 개념은 이전으로 거슬러 올라갑니다.결합된 마운트. 그런 다음 2000년대 초반에 Unionfs가 등장했는데, 이는 인기 면에서 aufs를 압도했지만 결국 커널 유지관리자들에 의해 거부되었습니다.파일 시스템 덮어쓰기. Overlayfs는 커널에서 상대적으로 간단한(최대 하나의 읽기-쓰기 레이어) 연합 파일 시스템을 제공하는 유일한 게임인 것으로 보이며 docker 등에서 널리 사용됩니다.

원래 Unionfs는 다음과 같습니다.더욱 차별화된overlayfs보다(예: 여러 읽기 및 쓰기 레이어 허용 등) 오늘날 이러한 복잡성은 주로 다음에 의해 주도됩니다.퓨즈Unionfs-fuse(unionfs와 별도의 프로젝트)와 같은 통합 파일 시스템을 기반으로 하며파일 시스템 병합.

병합글을 쓰는 시점에서 가장 좋은 옵션처럼 보이며 여러 개의 일반 하드 드라이브를 결합하고 새 파일/쓰기 생성이 해당 디스크 간에 분산되는 방식을 다른 정책에서 선택하는 등 복잡한 설정을 가능하게 합니다.

자체적으로 mergefs는 LVM/RAID0/BTRFS(단일)를 사용하여 디스크를 단일 파일 시스템으로 결합하는 대신 단순 디스크(JBOD) 기반 대안으로 사용할 수 있으며, 주요 장점은 복원력입니다. 장애가 발생한 디스크가 전체 파일 시스템을 중단시키지는 않습니다. Mergerfs는 다음과도 잘 작동합니다.스냅 사진사용자에게 RAID5/6 정도의 설정을 제공합니다(snapraid는 패리티 정보를 저장하므로 디스크 재구축이 가능하지만 RAID와의 차이점은 설명서를 참조하세요).

TLDR: "맨 위에" RW 레이어가 있는 오버레이fs를 사용한 간단한 레이어링, 미디어 컬렉션과 같은 작업을 위해 여러 디스크를 논리 파일 시스템으로 결합하기 위한 LVM/RAID0의 대안으로 mergefs.

관련 정보