باختصار

  • في ورقة نُشرت عام ١٩٩٤، وصف Бонвик مخصّص slab، الذي يتعامل مع كائنات النواة بوصفها بُنى ذات أنواع محددة قابلة لإعادة الاستخدام، لا ككتل ذاكرة مجهولة؛ وقد أثّر هذا النموذج في أنظمة تشغيل أخرى.
  • وفي عام ٢٠٠١، طوّر الفكرة مع Джонатан Адамс باستخدام مخازن محلية لكل CPU ومخصّص vmem، فوسّعها إلى الأنظمة متعددة المعالجات وإلى موارد تتجاوز الذاكرة العادية.
  • بدأ Бонвик مشروع ZFS مع Мэтт Аренс، وقاد فريق Sun الأوسع الذي جمع بين المجمّعات، والنسخ عند الكتابة، ومجاميع التحقق من طرف إلى طرف، واللقطات، والإصلاح؛ ومن غير الدقيق وصفه بأنه المخترع الوحيد.
  • يُظهر الاستحواذ على DSSD ثم إيقاف المنتج المستقل لاحقًا، إلى جانب منصبه الحالي رئيسًا مشاركًا في iodyne، أن البنية القوية وقيمة الصفقة واستدامة سوق المنتج أمور مختلفة.

قد يعيد نظام التخزين كتلة خاطئة من دون الإبلاغ عن خطأ

الوعد الأساسي للتخزين بسيط: عند القراءة، ينبغي أن يحصل التطبيق على ما كُتب. وفي مكدس التخزين التقليدي، تتوزع المسؤولية بين نظام الملفات ومدير وحدات التخزين ووحدة التحكم ومحرك الأقراص. وقد يعلن كل مكوّن النجاح، مع أن السلسلة بأكملها أعادت بيانات قديمة، أو موجهة إلى غير موضعها، أو تالفة.

تخزّن ZFS مجموع تحقق الكتلة الابنة في الكتلة الأم. وتمتد الهوية المتوقعة عبر شجرة المؤشرات، وتبقى منفصلة عن المحتوى الجاري التحقق منه. وعند القراءة، تقارن ZFS الكتلة المستلمة بما هو متوقع. فإذا وُجدت نسخة مرآتية سليمة أو نسخة تكافؤ سليمة، استطاع النظام قراءتها والتحقق منها وإرجاع البيانات الصحيحة وإصلاح النسخة التالفة. ويطبّق الفحص الشامل المنطق نفسه على البيانات المخصصة قبل أن يكتشف التطبيق التلف.

تفسر هذه الآلية سمعة ZFS وحدودها. فمجموع التحقق يكشف عدم التطابق، لكنه لا يعيد إنشاء البيانات إذا كانت جميع النسخ خاطئة. ولا يحل التكرار محل نسخة احتياطية مستقلة، واستعادة مختبرة، وطوبولوجيا مادية معقولة. وقد تتجاوز النموذج أخطاء المسؤولين، أو برمجيات فدية تعمل بصلاحيات مشروعة، أو حريق، أو عطل مترابط.

تمثل مساهمة Бонвик في جعل العطل الصامت قابلًا للرصد، وإدخال التحقق والإصلاح في مسار التشغيل المعتاد. ولم يختف خطر الفقدان. فقيمة البنية الجيدة أنها تُظهر حدود الضمانات بدقة أكبر.

قبل ZFS، جعل Бонвик كائنات النواة أقل كلفة وأوضح

تخصّص النواة باستمرار بُنى للملفات والاتصالات والعمليات والذاكرة الافتراضية. ولكل منها نوع وحجم وثوابت وكلفة تهيئة. أما طلب ذاكرة خام وإنشاء كائن ثم تدميره في كل مرة، فيعني مضاعفة عمل صغير على امتداد النظام كله.

ينظم مخصّص slab الوارد في ورقة عام ١٩٩٤ الذاكرة في وحدات slab، ويحافظ على ذواكر تخزين مؤقتة بحسب فئات الكائنات. وتجهّز دوال الإنشاء الحالة، وتحرّر دوال التدمير الموارد، وتبقى الكائنات الحرة لإعادة الاستخدام. وهكذا تحتفظ النواة بمعرفتها بالنوع، ويمكنها تحسين المحلية والتجزؤ وتصحيح الأخطاء والمحاسبة.

كان التطبيق الأصلي جزءًا من SunOS وSolaris. وطورت Linux وFreeBSD وأنظمة أخرى شيفراتها ومقايضاتها الخاصة. ولا يصح أن يُنسب إلى Бонвик كل مخصّص حديث. فذواكر التخزين المؤقت تستهلك الذاكرة، وقد تحتفظ بحالة زائدة، وتحتاج إلى الموازنة تحت الضغط. ويتمثل الإنجاز الرئيسي في نموذج صريح لكلفة الإنشاء والأقفال والمحلية ودورة الحياة.

حوّلت المخازن المحلية المخصّص إلى بنية متعددة المعالجات

تصبح ذاكرة التخزين المؤقت العامة عنق زجاجة عندما تتنافس وحدات CPU كثيرة على قفل واحد. وفي عملMagazines and Vmemلعام ٢٠٠١، اقترح Бонвик وДжонатан Адамс مجموعات محلية صغيرة من الكائنات لكل معالج. وتُنفذ العمليات المتكررة محليًا، فيما يجري التبادل مع المستودع المشترك على دفعات.

وسّع vmem النهج الطبقي ليشمل نطاقات العناوين والمعرّفات والموارد الأخرى. وتستورد الساحات السعة من المخصّص الأدنى. وهكذا تتغير وحدة التنسيق: يدير النظام المجموعات وعلاقات الملكية، بدلًا من إدارة كل كائن مركزيًا.

للمحلية كلفة. فقد تتراكم الكائنات لدى وحدة CPU بينما تفتقر إليها وحدة أخرى، وتظل الحاجة إلى الموازنة والتنسيق قائمة. كما ترتبط النتائج التاريخية بعتاد محدد. أما الفكرة الباقية فهي عدم التخلص من المعلومات التي ستفقدها واجهة عامة.

بدأت ZFS بقرار فريق إعادة بناء مكدس التخزين من الصفر

بدأ Бонвик وМэтт Аренс العمل على ZFS في Sun عام ٢٠٠١. وانضم إليهما لاحقًا Билл Мур والعديد من المهندسين. قاد Бонвик المشروع وشرحه للجمهور، لكن نظام الملفات الناضج يشمل تنسيقًا على القرص، وذواكر تخزين مؤقتة، وأدوات، وبرامج تشغيل، واختبارات، وسنوات من تصحيح الأخطاء الجماعي.

كان النموذج السابق يتطلب إنشاء RAID أو وحدة تخزين منطقية، ثم تقسيمها وبناء أنظمة ملفات فوقها وفق توقعات جامدة للنمو. وجمعت ZFS نظام الملفات وإدارة وحدات التخزين حول مجمّع. وتوفر وحدات vdev السعة، وتستخدمها مجموعات البيانات ديناميكيًا؛ فيما تعيش الحصص والحجوزات واللقطات والخصائص ضمن نموذج واحد.

تزيد البساطة اليومية أهمية الطوبولوجيا الأولية. فتخطيط vdev يحدد التكرار والأداء والتوسعة والقدرة على تحمل الأعطال. ولا يمكن إعادة تشكيل المجمّع اعتباطًا لاحقًا. أعلنت Sun عن ZFS عام ٢٠٠٤، وفتحت شيفرتها ضمن OpenSolaris عام ٢٠٠٥، وشحنتها مع Solaris 10 عام ٢٠٠٦.

لا تكمن الأهمية التاريخية في وظيفة واحدة، بل في عمل المجمّع والنسخ عند الكتابة ومجاميع التحقق واللقطات وRAID-Z وذاكرة التخزين المؤقت والإدارة معًا.

جعل النسخ عند الكتابة الشجرة الكاملة وحدة التثبيت

قد يترك التحديث في الموضع نفسه البيانات الوصفية عالقة بين الحالة القديمة والجديدة. وتكتب ZFS كتلًا جديدة، وتحدّث الكتل الأم، ثم تنتقل ذريًا إلى جذر جديد لمجموعة المعاملات. وحتى التثبيت، تبقى النسخة السابقة متسقة.

تحتفظ اللقطات بمراجع إلى الكتل القديمة، فيما تشارك النسخ المستنسخة البيانات ثم تتباعد مع عمليات الكتابة الجديدة. والكلفة هي كتابة إضافية وتجزؤ واحتجاز للمساحة. كما تظل الضمانات معتمدة على التزام الأجهزة ووحدات التحكم بترتيب الكتابة وديمومتها.

يستخدم النظام بنية إضافية ليعرف المزيد: أي نسخة مكتملة، وأي كتلة كانت متوقعة، وأي جذر يمكن تثبيته. ولا تلغي هذه المعرفة الآلة المادية.

غيّرت مجاميع التحقق والإصلاح الذاتي معنى القراءة الناجحة

تتحقق ZFS حتى من العملية التي يعدّها محرك الأقراص ناجحة. وعند عدم التطابق، يجرب النظام نسخة أخرى، وإذا وجد نسخة سليمة استطاع إصلاح النسخة التالفة. وتحول عمليات الفحص الشامل الاستجابة إلى صيانة مجدولة، وتكشف الأخطاء الكامنة بينما لا يزال التكرار قائمًا.

الكشف والإصلاح والاستعادة الكاملة قدرات مختلفة. فيمكن لبرمجيات الفدية كتابة بيانات مشفرة ذات مجاميع تحقق صحيحة. وقد تفشل نسخ متعددة معًا. كما أن النسخة الاحتياطية الواقعة في نطاق العطل نفسه ليست مستقلة. ويجب أن يعرف المشغّل النسخ الموجودة وما سيظل متاحًا عند استنفاد التكرار المخطط له.

ربطت RAID-Z وARC وعمليات الفحص الشامل السلامة بالتشغيل اليومي

تستخدم RAID-Z النسخ عند الكتابة وشرائط التكافؤ لتجنب فجوة الكتابة التقليدية. وتبقى كلفة الكتابات الصغيرة وإعادة البناء والأعطال المترابطة. كما تزيد الأقراص الكبيرة مدة التعرض للخطر أثناء الاستعادة.

توازن ARC بين البيانات المقروءة حديثًا والبيانات كثيرة القراءة، وتوسّع ذواكر التخزين المؤقت الثانوية التسلسل الهرمي. ولا تجعل أي ذاكرة تخزين مؤقت وسيطًا بطيئًا سريعًا لكل أحمال العمل. فالذاكرة والبيانات الوصفية وسلوك عبء العمل تحتاج إلى القياس.

تستهلك عمليات الفحص الشامل وإعادة مزامنة النسخ وحذف اللقطات والنسخ المتماثل موارد I/O وCPU والشبكة. واحتياطي الصيانة جزء من السعة. وقد يكون المجمّع الذي يعمل دائمًا عند حدوده هو الأقل قدرة على التعافي.

منح Бонвик المشغّلين أيضًا لغة مفهومة: المجمّع، وvdev، ومجموعة المعاملات، والفحص الشامل. وساعد ذلك في الانتشار، لكن الصيغ الموجزة يجب ألا تفقد شروط انطباقها.

انتهت OpenSolaris، لكن المشروع عاش بعد الشركة التي أنشأته

استحوذت Oracle على Sun عام ٢٠١٠، وانفصل المساران الاحتكاري والمفتوح. وظهر OpenZFS عام ٢٠١٣ لتنسيق مجتمعات illumos وFreeBSD وLinux وغيرها. وينحدر المشروع الحديث من شيفرة Sun، لكنه تغير بدرجة كبيرة ولا يخضع لسيطرة Бонвик.

تثبت الاستمرارية أن البنية قادرة على البقاء بعد المؤسسة. لكنها لم تكن سلسة؛ فلا تنسجم CDDL ببساطة مع GPL الخاصة بنواة Linux، وتتبنى المنصات الميزات بسرعات مختلفة، وتؤثر علامات الميزات في قابلية نقل المجمّعات.

لا يكفي المستودع العام وحده. فالمشروع يحتاج إلى قائمين على الصيانة واختبارات وتمويل وإصدارات. وتصبح الحوكمة نطاق عطل مؤسسيًا. ويقع OpenZFS ضمن إرث Бонвик، لكنه يعود تشغيليًا إلى المسؤولين الحاليين.

أظهرت DSSD أن بنية طموحة قد تخسر معركة المنتج

أسس Бонвик شركة DSSD مع Майк Шапиро وБилл Мур لبناء نظام تخزين فلاش على مستوى الرفوف. واستحوذت EMC على الشركة عام ٢٠١٤، وفي عام ٢٠١٧ توقف D5 عن كونه منتجًا مستقلًا.

تهدم هذه الواقعة رواية النجاح الحتمي. فالأداء والأصالة ورأس المال لا تضمن موقعًا مستدامًا. وقد تكون الهجرة والكلفة والشهادات والدعم وقنوات البيع وأولويات المشتري واقتصاديات NVMe أو السحابة أهم من نتيجة اختبار معياري.

لا تتيح المصادر تحديد سبب واحد أو تقدير الثروة الشخصية للمؤسسين. لكنها تؤكد الاستحواذ وإيقاف المنتج. وتفصل DSSD بين القيمة التقنية وقيمة الصفقة والبقاء التجاري.

تنقل Iodyne الأسئلة المألوفة إلى قطاع الإعلام الاحترافي، ولا تنشئ ZFS جديدة

أسس Бонвик وШапиро شركة iodyne عام ٢٠١٨، ويشغلان منصب الرئيسين المشاركين. وتنتج الشركة حلول تخزين NVMe سريعة ومشفرة وذات تكرار وقائي لإنتاج الفيديو والصوت.

الاستمرارية هنا مفاهيمية: الأداء والحماية والإصلاح في سير عمل فعلي. وليست Iodyne «ZFS في صندوق»، ولا امتدادًا مباشرًا لـDSSD. فالحجم والواجهات والسوق والآليات مختلفة.

تؤكد صفحات المنتجات الوظائف المعلنة، لا موثوقية مدققة أو حصة سوقية أو إيرادات. وفي الإنتاج الإعلامي، يوقف العطل المونتاج والتسليم؛ ويحمي التشفير الأصول؛ وتكون السرعة ذات قيمة إذا واصل عدة مستخدمين العمل. ويُبسّط التكامل الدعم، لكنه يركز الاعتماد على مورّد خاص.

أصبحت الإدارة جزءًا من نموذج الموثوقية

يقلل مجمّع ZFS الحدود الإدارية التي كانت هي نفسها مصدرًا للأخطاء. وتعيش مجموعات البيانات والحصص والحجوزات واللقطات والنسخ المتماثل ضمن سياسة واحدة، بدلًا من سلسلة أدوات منفصلة.

لا تختفي المسؤولية. فقد تملأ مجموعة بيانات واحدة المجمّع، وتحتفظ اللقطات بالكتل، ولا يفيد النسخ المتماثل إلا مع جهة استقبال عاملة واستعادة مختبرة. وقد تتشارك نسختان منطقيتان وحدة التحكم أو الطاقة أو عيبًا في البرمجيات الثابتة. لذلك يجب مواءمة النموذج المنطقي مع الواقع المادي.

لا يثبت الإخراج المرتب للأمرzfs listبمفرده أن المؤسسة ستستعيد تطبيقًا، أو تحافظ على اتساق قاعدة البيانات، أو تجد مفاتيح فك التشفير. فالتصور المنطقي يبسّط الإدارة، لكنه لا يحل محل الاستعادة المختبرة ومعرفة التبعيات المادية وتبعيات التطبيقات.

جعل المخصّص ونظام الملفات الصيانة عبء عمل من الدرجة الأولى

يجب إعادة ملء ذواكر التخزين المؤقت وموازنتها، كما تحتاج المجمّعات إلى الفحص وإعادة البناء والنسخ المتماثل. ويتنافس هذا العمل مع أحمال المستخدمين، لكنه يحدد القدرة على الاستمرار. وقد تكون الموارد الحرة احتياطيًا يسمح بإكمال الإصلاح قبل العطل التالي.

وينطبق الأمر نفسه على البرمجيات. يحتاج OpenZFS إلى اختبارات وتوافق وإصدارات، وعلى iodyne دعم البرمجيات الثابتة وبرمجيات المضيف والعتاد بعد البيع. فالاختراع يخلق نظامًا، والصيانة تحوله إلى بنية تحتية.

عنت القيادة التقنية تحديد حدود يعمل ضمنها مهندسون آخرون

كانت قيادة Бонвик مهمة وجماعية. ويجب أن يظل Аренс وМур وАдамс وفريق Sun والقائمون اللاحقون على الصيانة ظاهرين. فقد أتاحت التجريدات، مثل ذواكر التخزين المؤقت والساحات والمجمّعات ومجموعات البيانات ومجموعات المعاملات، تقسيم العمل ضمن نموذج مشترك.

لا تحل السلطة التاريخية محل المسؤولية الراهنة. فالقائمون على صيانة OpenZFS يقررون شيفرة اليوم. وفي iodyne، تُتقاسم القيادة مع Шапиро. وتوضح تسمية المشاركين مواضع القرار والدعم والالتزام.

أصبحت الرخصة والحوكمة شكلًا آخر من عزل الأعطال

يمكن لشركة أن تغير استراتيجيتها. وقد أتاحت الشيفرة المفتوحة لمجموعات أخرى مواصلة ZFS بعد Sun. ولم يعمل هذا التكرار إلا بسبب وجود الحقوق والمعرفة والقدرة الفعلية على إصدار النسخ.

ليس فرعان بلا قائمين على الصيانة أكثر موثوقية من قرصين خلف وحدة تحكم واحدة. فالشركات والمتطوعون يوفرون الموارد ويخلقون التبعيات في الوقت نفسه. وقد نجا OpenZFS مؤسسيًا وتقنيًا.

المنهج المتكرر يحتفظ بالمعلومات التي تهدرها الطبقات الرقيقة

يرى المخصّص العام الحجم؛ ويرى slab النوع ودورة الحياة. ويرى مكدس التخزين قراءة ناجحة؛ فيما ترى ZFS كتلة ذات هوية متوقعة. ويَعِد المنتج بمعدل نقل، بينما يحسب التشغيل الإصلاح والتشفير والاستمرارية.

تكلف المعلومات الإضافية موارد، وقد توسّع نطاق العطل المشترك. والتصميم الجيد لا يكتفي بإخفاء المكونات، بل يُظهر الحدود التي تستطيع المؤسسة فهمها واستعادة العمل ضمنها.

غيّرت ZFS وحدة المقارنة في التخزين

بجمع وحدات التخزين ونظام الملفات ومجاميع التحقق واللقطات والإصلاح، فرضت ZFS مقارنة المسار الكامل. وفي المقارنة مع XFS أو Btrfs أو APFS أو ReFS أو Ceph أو مصفوفة تخزين تجارية، يكون المهم نموذج السلامة والطوبولوجيا والدعم ومسار الخروج، لا قائمة الميزات.

لا يوجد فائز شامل. فالمنتج التجاري يقدم عتادًا مختبرًا وعقدًا؛ وتقدم الشيفرة المفتوحة الشفافية وقابلية النقل؛ ويقدم النظام الموزع التوسع مع تبعيات شبكية؛ ويقدم الجهاز المتخصص سير عمل محسنًا مع احتمال الارتباط بالمورّد.

يربط التفكير في نطاقات العطل بين الذاكرة والتخزين وبقاء الشركات

قد يكون نطاق العطل قرصًا، أو رفًا، أو قفلًا عامًا، أو شركة، أو مورّدًا. وتقلل المخازن المحلية التركّز حول قفل واحد؛ وتقلل مجاميع التحقق الثقة العمياء بالجهاز؛ ويقلل OpenZFS الاعتماد على شركة واحدة.

يجب أن يوجد التكرار على مستوى التهديد. فالأقراص خلف وحدة تحكم واحدة، والنسخ الواقعة تحت مفتاح واحد مفقود، والفروع التي لا يديرها قائمون على الصيانة لا تفعل سوى محاكاة الصمود. وقد يخفي التبسيط المصير المشترك؛ لذا ينبغي رسم خريطة الترابطات واختبار الاستعادة المستقلة.

الإرث الصادق أسئلة أفضل، لا ضمانًا مطلقًا

أثّر مخصّص slab في التعامل مع الكائنات؛ ووسّعت المخازن المحلية وvmem نطاق التخصيص؛ ودمجت ZFS التشغيل والسلامة؛ ونجا OpenZFS من انتقال مؤسسي؛ وكشفت DSSD الحد التجاري؛ وتواصل iodyne الفكرة في سوق مختلفة.

من الدقة وصف Бонвик بأنه مؤلف مشارك وقائد ومعماري، لا المؤلف الوحيد ولا المدير الحالي لـOpenZFS. وتكشف ZFS أنواعًا كثيرة من التلف، لكنها تحتاج إلى نسخة صالحة؛ ويعتمد النسخ عند الكتابة على العتاد؛ ولا يحل RAID-Z محل نسخة احتياطية؛ ولا يضمن الفحص الشامل نجاح قراءة مستقبلية.

المعيار القابل للرصد هو ما إذا كانت الأنظمة تواصل الإجابة عن الأسئلة التي جعلها عمله حتمية: ماذا يعرف المخصّص عن الكائن؟ أين يُخزّن التوقع للتحقق من الكتلة؟ أي حالة مكتملة؟ هل النسخ مستقلة فعلًا؟ من يستعيد النظام بعد استنفاد التكرار؟ ويجب أن يظل غياب حصر كامل، وتوزيع دقيق للمساهمات، وبيانات مدققة عن iodyne ظاهرًا. فهذه الدقة جزء من الانضباط نفسه.