하드 링크를 수행 할 경우 해당 파일의 권한에주의하십시오. 통지, 소유자, 그룹, 모드, 확장 된 속성, 시간 및 ACL (사용하는 경우)은 INODE에 저장됩니다. 파일 이름은 디렉토리 구조에 저장되고 다른 이름은 INODE 속성을 나타 내기 때문에 다릅니다. 이로 인해 동일한 inode에 연결된 모든 파일 이름은 동일한 액세스 권한을 갖습니다. 모든 사용자가 다른 사용자에게 파일을 손상시킬 수 있으므로 해당 파일을 수정하지 않아야합니다. 간단하다. 다른 사용자가 같은 이름으로 다른 파일을 넣는 것으로 충분합니다. 그런 다음 Inode 번호가 저장되고 모든 하드 링크 이름에 대해 원본 파일 내용이 삭제 (대체)됩니다.
더 좋은 방법은 파일 시스템 계층에서 중복 제거입니다. BTRFS (최종 인기), OCFS 등을 사용할 수 있습니다. https://en.wikipedia.org/wiki/Comparison_of_file_systems 페이지의 특징 및 열 데이터 중복 제거 표를 참조하십시오 . 당신은 그것을 클릭하고 정렬 할 수 있습니다 :)
특히 ZFS 파일 시스템을 살펴보십시오. FUSE로 사용할 수 있지만 이런 방식으로 속도가 느립니다. 기본 지원이 필요하면 http://zfsonlinux.org/ 페이지를보십시오 . 그런 다음 커널을 패치하고 다음으로 관리를 위해 zfs 도구를 설치해야합니다. 리눅스가 드라이버로 지원하지 않는 이유를 이해하지 못합니다. 다른 많은 운영 체제 / 커널에 적합합니다.
파일 시스템은 두 가지 방법으로 중복 제거, 파일 중복 제거 또는 블록을 지원합니다. ZFS는 블록을 지원합니다. 즉, 동일한 파일에서 반복되는 동일한 내용을 중복 제거 할 수 있습니다. 다른 방법은 데이터가 중복 제거되는 시간이며 온라인 (zfs) 또는 오프라인 (btrfs) 일 수 있습니다.
중복 제거는 RAM을 소비합니다. 이것이 FUSE로 마운트 된 ZFS 볼륨에 파일을 쓰면 성능이 크게 저하되는 이유입니다. 이것은 설명서에 설명되어 있습니다. 그러나 온라인에서 볼륨에 대한 중복 제거를 설정 / 해제 할 수 있습니다. 데이터 중복 제거가 필요한 경우 중복 제거를 설정하고 일부 파일을 임시 파일로 다시 작성한 후 대체하십시오. 이 후 중복 제거를 해제하고 전체 성능을 복원 할 수 있습니다. 물론 캐시 디스크를 스토리지에 추가 할 수 있습니다. 이것은 매우 빠른 회전 디스크 또는 SSD 디스크 일 수 있습니다. 물론 이것은 매우 작은 디스크 일 수 있습니다. 실제 작업에서 이것은 RAM을 대체합니다 :)
리눅스에서는 파일 시스템 관리, 스냅 샷 생성 등을 할 때 모든 것이 제대로 작동하지는 않지만 ZFS를주의해야하지만 구성을 수행하고 변경하지 않으면 모든 것이 올바르게 작동합니다. 다른 방법으로, 당신은 리눅스를 opensolaris로 바꿔야합니다. 그것은 기본적으로 ZFS를 지원합니다 :) ZFS의 장점은 LVM과 비슷한 파일 시스템과 볼륨 관리자로 작동한다는 것입니다. ZFS를 사용할 때는 필요하지 않습니다. 자세한 내용은 설명서를 참조하십시오.
ZFS와 BTRFS의 차이점에 유의하십시오. ZFS는 불행히도 Solaris와 OpenSolaris (불행히 oracle에 의해 교살 됨)에서만 구식이되고 성숙해졌습니다. BTRFS는 더 젊지 만, 마지막에는 아주 잘 지원됩니다. 나는 새로운 커널을 추천한다. ZFS에는 온라인 중복 제거 기능이있어 쓰기 속도가 느려집니다. 모두 온라인으로 계산되기 때문입니다. BTRFS는 오프라인 중복 제거를 지원합니다. 그러면 성능이 절약되지만 호스트가 수행 할 작업이 없으면 중복 제거를 위해 정기적으로 도구를 실행합니다. 그리고 BTRFS는 기본적으로 리눅스에서 만들어집니다. 어쩌면 이것이 더 나은 FS입니다 :)