데이터베이스에 대한 ACID 보장과 동일한 보장을 갖춘 Linux 파일 시스템을 얻으려면 어떻게 해야 합니까?
파일 시스템은 지금까지 모든 것에 대한 업계 표준이 될 것이라고 생각했던 수준까지 발전하지 못한 것 같습니다.
적어도 나는 그것에 대한 검색 결과를 찾을 수 없었습니다.
내가 찾을 수 있는 가장 좋은 점은 그들이 자신의구조적데이터가 그대로 유지됩니다. 그러나 실제 파일 내용은 아닙니다. (저는 Lustre는 물론 ZFS에 대해서도 충분히 알지 못합니다.)
내가 잘못 접근하고 있는 걸까? 파일 시스템이 잘못된 계층입니까? (아마 블록 레이어가 맞는 것 아닐까요?)
나는 FUSE를 통해 PostgreSQL 위에서 ext4를 실행하거나 다른 불가능한 Lovecraftian 혐오감을 실행하고 싶지 않습니다. ;)
편집: 관리자로서 저는 신뢰성이 높은 비즈니스 서버(파일용,~ 아니다데이터베이스)를 사용합니다. 분명히 ACID를 보장하는 파일 시스템은 이 경우 기업이 서버에서 원하는 것입니다. 나는 serverfault보다 이에 더 적합한 StackExchange 사이트를 생각할 수 없습니다.
답변1
매우 특별한 요구 사항이 없는 한, 귀하가 잘못 접근하고 있다고 확신합니다. ACID 파일 시스템을 중심으로 일부 학문적 작업이 수행되었습니다(참조:이 종이), Amino FS(Berkeley DB를 저장소로 사용)를 포함하지만 다음과 같습니다.
저널링 파일 시스템은 트랜잭션이므로 최소한 다음을 포함합니다.일종의원자성을 포함한다; 파일 잠금은 (일반적으로) 커널(Windows) 또는 애플리케이션 코드(Unix와 유사, 토론 참조)에 의해 시행되기 때문에 격리는 FS 수준에서 실제로 문제가 되지 않습니다.여기자세한 내용은); 내구성과 일관성은목표모든 파일 시스템에는 어느 정도 장단점이 있지만(그러나 ZFS는 하드웨어 문제가 있어도 데이터 무결성을 강력하게 강조합니다).
나는 FS를 직접 작성한 적이 없으므로 이 단락의 일부는 추측입니다. 귀하의 접근 방식에서 더 큰 문제는 완전한 ACID가 일반적으로 DBMS 또는 애플리케이션 수준에서 처리된다는 것입니다.의심하다예를 들어 FS 수준에서 파일에 대한 순차 트랜잭션을 완전히 격리하는 것은 매우 비효율적이기 때문입니다. 첫 번째 링크의 논문에서 벤치마크에 따르면 프로토타입 FS는 ext3에 비해 거의 모든 작업에 대해 더 높은 오버헤드로 인해 상당히 느리다는 것을 보여줍니다.