لطالما واجه التخزين الأعداء نفسهم: أقراص تكذب، وكتابات تُقطع قبل اكتمالها، وأعطال تقع في منتصف عملية تحديث. ويرد ZFS على هذه التحديات بعدد محدود من الأفكار، ويعرضها Uberblok، وهو متحف تفاعلي بناه مهندس تخزين مخضرم، غرفة تلو الأخرى، مستمدًا مادته مباشرة من الشيفرة التي تنفذها. كل رسم متحرك يقابل أسطرًا من Open ZFS zfs-2.4.4 المجمّدة عند الإيداع 71a9f9578616، وكل مقتطف برمجي يقود إلى المصدر. والكاتب يعدّ ZFS أعظم إنجاز هندسي في هذا المجال، وقد بنى المشروع تكريمًا له وفهمًا أعمق لبنيته الداخلية، ويرحب بتصويبات القرّاء الأعلم بالشيفرة.
يفتتح المتحف في القاعة الرئيسية بالـ uberblock، وهو السجل الصغير الذي يحدد جذر المجمع بأكمله. ويحتوي على رقم مجموعة المعاملات ub_txg ومؤشر الكتلة ub_rootbp الذي يمكن من خلاله الوصول إلى كل كتلة أخرى. يحمل كل قرص أربع تسميات، ولكل منها حلقة من الـ uberblocks بحجم 128 KiB. ولا يكتب uberblock جديد فوق سابقه أبدًا، بل يشغل الفتحة N mod عدد الفتحات. وعند الاستيراد يقرأ ZFS كل الفتحات ويحتفظ بالـ uberblock الصالح ذي أعلى txg.
تغطي الغرف التالية تاريخ المشروع، والشجرة، وكيف تحافظ النسخ عند الكتابة والمجاميع الاختبارية والإصلاح الذاتي على اتساق المجمع دون fsck، ومرور مجموعات المعاملات بحالات الفتح والتجميد والمزامنة، وتسلسل الـ vdev بما يشمل الأجهزة المرآتية وraidz وdraid وأجهزة السجل والتخزين المؤقت والأجهزة الخاصة. كما يشرح المتحف RAID-Z واللقطات وARC وmetaslabs وZIL وsend/receive، كلها برسوم بيانية متحركة.
المشروع متاح على uberblok.storagebits.workers.dev، ومصدره على GitHub في algotitanhq/uberblok.
المصدر: Hacker News · لخّصه HeadlinesBriefing