Hardlinks yapacaksanız, bu dosyadaki haklara dikkat edin. Dikkat, sahip, grup, mod, genişletilmiş öznitelikler, zaman ve ACL (bunu kullanıyorsanız) INODE'de saklanır. Dizin yapısında ve diğer noktaların INODE özelliklerinde depolandığından yalnızca dosya adları farklıdır. Bu nedenle, aynı inode'a bağlı tüm dosya isimleri aynı erişim haklarına sahiptir. Herhangi bir kullanıcı diğerine dosyaya zarar verebileceğinden bu dosyayı değiştirmemelisiniz. Basit. Bu yeterli, herhangi bir kullanıcı aynı dosyaya başka bir dosya koydu. Daha sonra inode numarası kaydedilir ve tüm hardlink isimleri için orijinal dosya içeriği imha edilir (değiştirilir).
Dosya sistemi katmanında tekilleştirme daha iyi bir yoldur. BTRFS (son zamanlarda çok popüler), OCFS veya bunun gibi kullanabilirsiniz. Sayfaya bakınız: https://en.wikipedia.org/wiki/Comparison_of_file_systems , tablodaki uzmanlık Özellikler ve sütun veri tekilleştirmesi. Tıklayabilir ve sıralayabilirsiniz :)
Özellikle ZFS dosya sistemine bakın. Bu SİGORTA olarak mevcuttur, ancak bu şekilde çok yavaş. Yerel destek istiyorsanız, http://zfsonlinux.org/ sayfasına bakın . O zaman çekirdeği düzeltmelisiniz ve daha sonra yönetim için zfs araçlarını kurun. Anlamıyorum, linux neden sürücü olarak desteklemiyor, diğer birçok işletim sistemi / çekirdeği için bu yöntemdir.
Dosya sistemleri veri tekilleştirmeyi 2 yolla, veri tekilleştirilen dosyaları veya blokları destekler. ZFS, bloğu destekler. Bu, aynı dosyada tekrarlanan aynı içeriklerin tekilleştirilebileceği anlamına gelir. Diğer yol, verilerin veri tekilleştirildiği zamandır, bu çevrimiçi (zfs) veya çevrimdışı (btrfs) olabilir.
Dikkat, veri tekilleştirme RAM kullanır. Bu nedenle, neden FUSE ile monte edilmiş ZFS birimine dosya yazmak, performansın önemli ölçüde yavaşlamasına neden olur. Bu belgelerde açıklanmıştır. Ancak çevrimiçi olarak birim üzerinde tekilleştirme / kapanma ayarını yapabilirsiniz. Herhangi bir verinin tekilleştirilmesi gerektiğini görürseniz, sadece tekilleştirmeyi ayarlayın, herhangi bir dosyayı geçici olarak yeniden yazın ve sonunda değiştirin. Bundan sonra veri tekilleştirme kapalı ve tam performans geri yükleyebilirsiniz. Elbette, herhangi bir önbellek diskini depolamaya ekleyebilirsiniz. Bu, çok hızlı döndürme diskleri veya SSD diskleri olabilir. Elbette bu çok küçük diskler olabilir. Gerçek işlerde bu RAM yerine geçer :)
Linux altında ZFS'ye dikkat etmelisiniz, çünkü her şey olması gerektiği gibi çalışmaz, dosya sistemini yönetirken, anlık görüntüyü vb. Yaparken özel olarak çalışır, ancak yapılandırma yaparsanız ve değiştirmezseniz, hepsi düzgün çalışır. Başka bir deyişle, Linux'u opensolaris olarak değiştirmelisiniz, doğal olarak ZFS'yi desteklemelisiniz :) ZFS'de çok hoş olan budur, hem dosya sistemi olarak çalışır hem de LVM'ye benzer volüm yöneticisi. ZFS kullanırken buna ihtiyacınız yoktur. Daha fazla bilgi edinmek için belgelere bakın.
ZFS ve BTRFS arasındaki fark dikkat edin. ZFS daha yaşlı ve daha olgundur, ne yazık ki sadece Solaris ve OpenSolaris (ne yazık ki kahin tarafından boğulmuş) altındadır. BTRFS daha gençtir, ancak son kez çok iyi desteklenir. Taze çekirdeği öneririm. ZFS'nin çevrimiçi tekilleştirmesi var, bu da yazının yavaşlamasına neden oluyor, çünkü tümü çevrimiçi hesaplanıyor. BTRFS, çevrimdışı veri tekilleştirmesini destekler. Sonra bu performans tasarrufu sağlar, ancak ana makinenin yapacak bir şeyi yoksa, veri tekilleştirme yapmak için düzenli aralıklarla aracı çalıştırırsınız. Ve BTRFS yerel olarak linux altında yaratılmıştır. Belki bu sizin için daha iyi FS :)