ما مقدار التخزين الإضافي الذي يضيفه Home Assistant إلى جانب البيانات المصدرية؟

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

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

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

تتحول القيم المصدرية إلى بيانات منظّمة في Recorder

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

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

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

تضيف الفهارس وصفحات قاعدة البيانات مساحة هيكلية

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

يخزن SQLite الجداول والفهارس في صفحات ثابتة الحجم، لذلك يعكس الحجم الفعلي تخصيص الصفحات، لا مجرد مجموع أطوال الحقول. يشرح دليل مبسط حول تخطيط صفحات SQLite كيفية تعايش السجلات والفهارس والمساحة الحرة داخل ملف قاعدة البيانات.

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

تستبدل الإحصاءات التفاصيل بالاحتفاظ طويل الأجل

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

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

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

تضاعف السجلات والنسخ الاحتياطية وطبقات الحاويات الحجم الكلي

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

يتوزع استخدام Docker للقرص على عدة مخازن بدلاً من مجلد تطبيق واحد. ويفصل هذا دليل مساحة القرص في Docker بين الصور والحاويات ووحدات التخزين وذاكرة التخزين المؤقت، مما يساعد على تفسير سبب تجاوز نمو نظام الملفات لمجلد بيانات Home Assistant الظاهر.

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

تنشئ المساحة المؤقتة ذروة تتجاوز الحالة المستقرة

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

قد تحتفظ قاعدة بيانات SQLite الرئيسية وسجل WAL بالمساحة المخصصة إلى أن تتحقق شروط نقطة التحقق أو الضغط. يوضح تحليل أداء نمو ملفات SQLite سبب اختلاف توسع قاعدة البيانات وسجل الكتابة المسبقة عن البيانات المنطقية الظاهرة للتطبيق.

تعتمد الذروة المطلوبة على العملية. فقد تحتاج إعادة كتابة قاعدة البيانات إلى مساحة مرتبطة بحجم قاعدة البيانات، بينما قد يحتفظ تحديث الصورة مؤقتاً بالطبقتين القديمة والجديدة. وتقدم إرشادات ZimaSpace حول مساحة التخزين الحرة لمهام Home Assistant حدوداً تشغيلية بعد تحديد مكونات النفقات الإضافية.

متى يفشل معامل واحد للنفقات الإضافية

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

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

كما أن النسبة مضللة بين أنواع التثبيت المختلفة. إذ تتعامل Home Assistant OS والحاوية والآلة الافتراضية وحزمة النظام المُدارة مع بيانات النظام بطرق مختلفة. قارن الحالات المتشابهة، وأبقِ الوسائط أو بيانات التطبيقات غير المرتبطة خارج الحساب، ما لم تكن النسخة الاحتياطية أو بيئة التشغيل في Home Assistant تملكها فعلياً.

أنشئ نموذجاً لنمو التخزين على مدى سبعة أيام

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

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

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

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.