มีระบบไฟล์เหมือนคอมไพล์?


27

Git จัดเก็บเนื้อหาที่ไม่ซ้ำกันใน repo โดยยึดตามแฮชที่คำนวณได้ของไฟล์ใด ๆ หากไดเรกทอรีของฉันมีไฟล์เดียวกันสองชุดอยู่ภายในไฟล์นั้นคอมไพล์จะเก็บไว้เพียงครั้งเดียว

ฉันสงสัยว่าแนวคิดเดียวกันนี้ได้ถูกนำไปใช้ในระดับระบบปฏิบัติการเป็นระบบไฟล์บางประเภทหรือไม่?

หากระบบไฟล์ดำเนินการด้วยวิธีนี้โดยค่าเริ่มต้นมันจะช่วยได้อย่างดีกับปัญหาdll นรก โดยพื้นฐานแล้วมันจะ symlink โดยอัตโนมัติในนามของคุณ แอปพลิเคชันใด ๆ ที่สามารถทำแพคเกจ (เช่นขวด) ในไดเรกทอรีที่มีการอ้างอิงทั้งหมดและไม่มีค่าใช้จ่ายในการจัดเก็บเพิ่มเติม

ผู้ที่ชื่นชอบทับทิมแบ่งปันไลบรารีด้วยการเผยแพร่เป็น rubygems ถึงกระนั้นความพยายามในการแบ่งปันพลอยทำให้เกิดฝันร้ายในการปรับใช้ซึ่งนำไปสู่แนวคิดผู้ขายทุกอย่างของการคัดลอกการอ้างอิงทั้งหมดลงในโฟลเดอร์ในเครื่องเพื่อหลีกเลี่ยงฝันร้ายดังกล่าว


2
ฉันไม่ได้เป็นผู้เชี่ยวชาญ แต่ตรวจสอบZFS
ForeverWintr

คำตอบ:


21

สิ่งที่คุณกำลังมองหาเรียกว่า "การขจัดข้อมูลซ้ำซ้อน" ในขณะที่มันมักจะถูกใช้งานโดยผู้ค้าของผลิตภัณฑ์จัดเก็บข้อมูลเฉพาะระบบไฟล์ ZFSใช้มันเช่นกัน ระบบปฏิบัติการที่ได้รับจาก Unix ส่วนใหญ่สามารถใช้ประโยชน์จาก ZFS ได้ดังนั้นฉันจึงแนะนำให้เป็นที่แรกที่ต้องดู


1
ฉันเห็นว่า "การขจัดข้อมูลซ้ำซ้อน" สามารถนำไปใช้ในระดับไฟล์ซึ่งเป็นสิ่งที่ฉันเกี่ยวข้องโดยเฉพาะ
มาริโอ

3

Network Appliance, Inc. มีความสามารถในการจัดเก็บข้อมูลเช่นนี้เป็นเวลาหลายปีในความเป็นจริงพวกเขาได้ร้องเรียนกับ Sun Microsystems สำหรับระบบไฟล์ ZFS ของพวกเขาและทำสิ่งที่ Aaron Miller กล่าวถึงในคำตอบที่เขายอมรับ สำหรับสิ่งที่คุ้มค่าการร้องเรียนถูกตัดสินโดย Oracle หลังจากประมาณ 3 ปี

ฉันใช้สิ่งนี้เป็นโซลูชันขององค์กรมาตั้งแต่ปี 2000 และใช้งานได้ดี ค่าใช้จ่ายในการจัดเก็บหลังจาก 'คัดลอก' ครั้งแรกเกิดขึ้นเมื่อมีการเปลี่ยนแปลงในไฟล์ มิฉะนั้นด้วย 'สำเนา' จำนวนมากมาเพิ่มขึ้นเพียงเล็กน้อยสำหรับเนมสเปซ

ฉันไม่คิดว่านี่จะตอบคำถามเกี่ยวกับ "ระดับระบบปฏิบัติการ" แต่ใช้กับ "ระดับระบบไฟล์"


0

Apple File System ใหม่ (APFS มีชื่อดังนั้นเนื่องจากมี AFS ที่เป็นอย่างอื่นอยู่แล้ว) จึงทำการ "auto hardlinking" / "deduplication" เวทมนต์นี้ macOS 10.13 รองรับอย่างเป็นธรรมชาติ (สำหรับ Mac ส่วนใหญ่) เช่นเดียวกับ iOS 11

ที่ถูกกล่าวว่าฉันไม่รู้สึกว่าเพียงพอที่จะทำให้ "git like" เพราะถ้ามันเป็น "git like" จากนั้นก็จะมีการตรวจสอบการเข้ารหัสลับของสถานะของโครงสร้างไดเรกทอรีของฉัน ณ จุดที่กำหนดในเวลาเพื่อที่ ฉันสามารถมั่นใจได้ว่าไม่มีใครแฮ็คคอมพิวเตอร์หรือแก้ไขไดเรกทอรีระบบของฉัน ในความเป็นจริงฉันใช้ git repos เพื่อติดตามไดเรกทอรีระบบที่สำคัญบางอย่างใน Macs ของฉันเช่นไฟล์ Apache config, LaunchDaemons, LaunchAgents และอื่น ๆ อีกสองสามวิธี - เมื่อฉันติดตั้งซอฟต์แวร์หรือใช้เซิร์ฟเวอร์ของฉันสักครู่ฉันสามารถดูว่ามีอะไรบ้าง รับเมา

APFS ยังได้รับการสนับสนุนที่ดีสำหรับการถ่ายโอนสิ่งต่าง ๆ จากระบบไฟล์ไปยังคลาวด์เมื่อพวกเขาไม่ได้ใช้งานมานานสักครู่ แต่พวกเขายังคงดูเหมือนว่าพวกเขาอยู่ที่นั่นและจะกลับลงมาจากคลาวด์ตามความต้องการ

คุณสามารถสร้าง Hackintosh และโคลนได้ด้วย BSD เป็นเรื่องสนุก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.