Apakah ada sistem file mirip git?

27

Git menyimpan konten secara unik dalam repo-nya berdasarkan hash yang dihitung dari file apa pun. Jika direktori saya memiliki dua salinan file yang sama di suatu tempat di dalamnya, git hanya akan menyimpannya sekali saja.

Saya bertanya-tanya apakah konsep yang sama ini telah diimplementasikan di tingkat sistem operasi sebagai semacam sistem file?

Jika sistem file bertindak dengan cara ini secara default akan membantu dengan masalah neraka dll . Pada dasarnya, itu akan terhubung secara otomatis atas nama Anda. Aplikasi apa pun dapat dikemas (seperti toples) dalam direktori dengan semua dependensinya dan tanpa biaya penyimpanan tambahan.

Penggemar Ruby berbagi perpustakaan dengan menerbitkannya sebagai rubygems. Namun, upaya untuk membagikan permata ini menghasilkan mimpi buruk penerapan yang mengarah pada konsep Vendor Everything untuk menyalin semua dependensi ke folder lokal untuk menghindari mimpi buruk tersebut.

Mario
sumber
2
Saya bukan ahli, tetapi periksa ZFS .
ForeverWintr

Jawaban:

21

Apa yang Anda cari disebut "deduplication". Meskipun biasanya diterapkan oleh vendor produk penyimpanan khusus, sistem file ZFS juga mengimplementasikannya. Kebanyakan sistem operasi yang diturunkan dari Unix dapat menggunakan ZFS, dan oleh karena itu saya merekomendasikannya sebagai tempat pertama untuk melihatnya.

Aaron Miller
sumber
1
Saya melihat "deduplikasi" dapat diimplementasikan pada level file yang merupakan perhatian saya khususnya.
Mario
3

Network Appliance, Inc. telah memiliki kemampuan penyimpanan seperti ini selama bertahun-tahun, bahkan mereka memiliki keluhan yang diajukan kepada Sun Microsystems untuk sistem file ZFS mereka, dan melakukan apa yang disebutkan oleh Aaron Miller dalam jawaban yang diterima. Untuk apa nilainya, keluhan diselesaikan dengan Oracle setelah sekitar 3 tahun.

Saya telah menggunakan ini sebagai solusi perusahaan sejak tahun 2000, dan itu bekerja dengan baik. Biaya penyimpanan setelah 'salinan' pertama muncul setelah ada perubahan dalam file. Kalau tidak, dengan banyak 'salinan' hanya ada sedikit peningkatan untuk namespace.

Saya tidak berpikir ini menjawab pertanyaan tentang "tingkat sistem operasi" melainkan pada "tingkat sistem file".

vgoff
sumber
0

Sistem File Apple yang baru (APFS, dinamakan demikian karena sudah ada AFS yang merupakan sesuatu yang lain) melakukan keajaiban "auto hardlinking" / "deduplication" ini. macOS 10.13 mendukungnya secara native (pada kebanyakan Mac) seperti halnya iOS 11.

Yang sedang berkata, saya tidak merasa seperti itu cukup untuk membuatnya "git like", karena jika itu "git like" maka itu juga akan memiliki checksum kriptografi dari keadaan struktur direktori saya pada titik-titik waktu tertentu sehingga Saya yakin tidak ada yang meretas komputer saya atau memodifikasi direktori sistem saya. Bahkan, saya menggunakan repositori git untuk melacak direktori sistem kritis tertentu pada Mac saya, seperti file konfigurasi Apache, LaunchDememon, LaunchAgents, dan beberapa lainnya - dengan begitu ketika saya menginstal perangkat lunak atau menjalankan server saya untuk sementara waktu, saya dapat melihat apakah ada yang memiliki sudah kacau.

APFS juga memiliki dukungan yang bagus untuk membongkar barang-barang dari sistem file ke cloud ketika mereka tidak digunakan untuk sementara waktu, namun mereka masih terlihat seperti mereka ada di sana, dan akan mengisi kembali dari cloud sesuai permintaan.

Anda selalu bisa membuat Hackintosh dan mengacaukannya. BSD itu menyenangkan.

CommaToast
sumber