Jika Anda akan melakukan hardlink, perhatikan hak pada file itu. Pemberitahuan, pemilik, grup, mode, atribut yang diperluas, waktu dan ACL (jika Anda menggunakan ini) disimpan dalam INODE. Hanya nama file yang berbeda karena ini disimpan dalam struktur direktori, dan menunjuk ke properti INODE lainnya. Penyebab ini, semua nama file yang terhubung ke inode yang sama, memiliki hak akses yang sama. Anda harus mencegah modifikasi file itu, karena setiap pengguna dapat merusak file yang lain. Sederhana saja. Sudah cukup, setiap pengguna menaruh file lain dengan nama yang sama. Nomor inode kemudian disimpan, dan konten file asli dihancurkan (diganti) untuk semua nama yang di-hardlink.
Cara yang lebih baik adalah deduplikasi pada layer filesystem. Anda dapat menggunakan BTRFS (terakhir kali sangat populer), OCFS atau seperti ini. Lihat halaman: https://en.wikipedia.org/wiki/Comparison_of_file_systems , khususnya di tabel Fitur dan deduplikasi data kolom. Anda dapat mengkliknya dan mengurutkan :)
Khususnya melihat sistem file ZFS. Ini tersedia sebagai FUSE, tetapi dengan cara ini sangat lambat. Jika Anda ingin dukungan asli, lihat halaman http://zfsonlinux.org/ . Kemudian Anda harus menambal kernel, dan menginstal alat zfs untuk manajemen. Saya tidak mengerti, mengapa linux tidak mendukung driver, itu adalah cara untuk banyak sistem operasi / kernel.
Sistem file mendukung deduplikasi dengan 2 cara, deduplikasi file, atau blok. ZFS mendukung blok. Ini berarti, konten yang sama yang berulang dalam file yang sama dapat dideduplikasi. Cara lain adalah waktu ketika data dideduplikasi, ini bisa online (zfs) atau offline (btrfs).
Perhatikan, deduplikasi mengkonsumsi RAM. Inilah sebabnya mengapa menulis file ke volume ZFS yang dipasang dengan FUSE, menyebabkan kinerja yang sangat lambat. Ini dijelaskan dalam dokumentasi. Tetapi Anda dapat secara online mengaktifkan / menonaktifkan deduplikasi volume. Jika Anda melihat ada data yang harus dideduplikasi, Anda cukup mengaktifkan deduplikasi, menulis ulang beberapa file untuk sementara dan akhirnya mengganti. setelah ini, Anda dapat mematikan deduplikasi dan mengembalikan kinerja penuh. Tentu saja, Anda dapat menambahkan ke penyimpanan disk cache apa pun. Ini bisa menjadi disk putar sangat cepat atau disk SSD. Tentu saja ini bisa menjadi disk yang sangat kecil. Dalam pekerjaan nyata ini adalah pengganti RAM :)
Di linux Anda harus berhati-hati untuk ZFS karena tidak semua berfungsi sebagaimana mestinya, khususnya ketika Anda mengelola sistem file, membuat snapshot dll. Tetapi jika Anda melakukan konfigurasi dan tidak mengubahnya, semua berfungsi dengan baik. Cara lain, Anda harus mengubah linux ke opensolaris, itu secara alami mendukung ZFS :) Apa yang sangat baik dengan ZFS adalah, ini berfungsi baik sebagai sistem file, dan manajer volumen mirip dengan LVM. Anda tidak membutuhkannya saat menggunakan ZFS. Lihat dokumentasi jika Anda ingin tahu lebih banyak.
Perhatikan perbedaan antara ZFS dan BTRFS. ZFS lebih tua dan lebih dewasa, sayangnya hanya di bawah Solaris dan OpenSolaris (sayangnya dicekik oleh oracle). BTRFS lebih muda, tetapi terakhir kali sangat baik didukung. Saya merekomendasikan kernel segar. ZFS memiliki deduplikasi online, yang menyebabkan menulis lambat, karena semua dihitung secara online. BTRFS mendukung dedupliaksi offline. Maka ini menghemat kinerja, tetapi ketika tuan rumah tidak ada hubungannya, Anda menjalankan alat secara berkala untuk melakukan deduplikasi. Dan BTRFS dibuat secara native di bawah linux. Mungkin ini FS yang lebih baik untuk Anda :)