NILFS2 - نظام ملفات مضاد للرصاص لـ /home

NILFS2 - نظام ملفات مضاد للرصاص لـ /home

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

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

يعد نظام الملفات NILFS2 مثاليًا لحل مثل هذه المشكلات.

لقد كان موجودًا في نواة Linux منذ الإصدار 2.6.30.

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

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

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

قصة

NILFS2 - نظام ملفات مضاد للرصاص لـ /homeتم تطوير NILFS2 في أعماق شركة نيبون للتلغراف والهاتفوهي في الواقع مملوكة للدولة (تمتلك حصة مسيطرة) وأكبر شركة اتصالات في اليابان. وبشكل أكثر تحديدًا، في مختبرات CyberSpace تحت القيادة ريوسوكي كونيشي.

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

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

كيف يمكنك تتبع سجل مراسلاتك بالكامل؟على خوادم Linux (وهذا هو المكان الذي يجب تثبيت NILFS2 فيه لأغراض الأمن الداخلي)، غالبًا ما يتم استخدام طريقة الملف لتخزين رسائل البريد الإلكتروني لتخزين رسائل البريد الإلكتروني. ما يسمى بالتنسيق دليل البريد. يكفي أن تضع خادم البريد السريع وتكوين تخزين البريد في Maildir. تنسيق آخر MBOX هو ملف نصي كبير يمكن تحليله بسهولة إلى رسائل فردية.

إذا كان خادم البريد يستخدم قاعدة بيانات، فسيتيح NILFS2 استعادة التوقيت الدقيق لتغييرات قاعدة البيانات والقدرة على استعادة قاعدة البيانات في أي من هذه اللحظات. وبعد ذلك تحتاج إلى استخدام أدوات قاعدة البيانات لمعرفة ما كان موجودًا فيها في ذلك الوقت...

ومع ذلك، حدث خطأ ما. إما أن الحكومة اليابانية غيرت رأيها بشأن مراقبة الجميع (على غرار مبدأ ياروفايا)، أو أن أداء NILFS2 على محركات الأقراص الصلبة التقليدية تبين أنه أقل من المستوى، وتم إصدار NILFS2 بموجب ترخيص GPL ودخل بسرعة كبيرة إلى Linux kernel، منذ ذلك الحين لم تكن هناك شكاوى خاصة حول الكود المكتوب باللغة اليابانية ذات الكفاءة العالية، ولم يكن لدى مطوري Linux kernel ذلك.

كيف تبدو NILFS2؟

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

من وجهة نظر المبرمج: مخزن مؤقت دائري. يقوم نظام الملفات بتجميع التغييرات وكتابتها في قطعة تساوي حوالي 8 ميجابايت (2000 * 4096، حيث 2000 هو عدد العناصر في الكتلة و4096 هو حجم صفحة الذاكرة). يتم تقسيم القرص بأكمله إلى مثل هذه القطع. يستمر التسجيل بالتسلسل. عند نفاد المساحة الحرة، يتم حذف اللقطات الأقدم وتتم الكتابة فوق الأجزاء.

الأشياء الجيدة NILFS2 الأساسية

  • الإصدار!!!
  • إجراء استعادة نظام الملفات بعد الفشل بسيط: عند التحميل، يتم البحث عن القطعة الأخيرة التي تحتوي على المجموع الاختباري الصحيح، ويتم تثبيت الكتلة الفائقة عليها. هذه عملية فورية تقريبًا.
  • نظرًا لأن التسجيل يتم دائمًا بشكل خطي، إذن:
    • يمكن أن يُظهر نتائج جيدة عند التشغيل على SSD مع عمليات الكتابة العشوائية البطيئة.
    • يحفظ NILFS2 مورد SSD، نظرًا لعدم وجود عامل مضاعفة للكتابة تقريبًا.
      بتعبير أدق، لا يزيد عن 2.والحقيقة هي أنه عند إعادة كتابة القرص بأكمله بشكل دوري، سيقوم NILFS2 بنقل البيانات غير القابلة للتغيير إلى أجزاء جديدة (قطع).

      إذا كان لدينا 10% من البيانات غير المتغيرة على القرص، فسنحصل على زيادة في الكتابة بنسبة 10% مع إعادة كتابة كاملة واحدة. حسنًا، زيادة بنسبة 1% عند امتلاء الجهاز بنسبة 50% مقابل إعادة كتابة كاملة للقرص.

      الحد الأقصى لكسب الكتابة هو 2. وهذا منخفض جدًا نظرًا لأن كل شيء مكتوب بالتسلسل. بشكل عام، ستكون الرسوم المتحركة للكتابة أقل من تلك الموجودة في نظام الملفات المجزأ التقليدي بقطاع 4096 بايت. (الفكر مستوحى من تعليق).

  • السهولة المحتملة لتنفيذ النسخ المتماثل إلى NILFS2 FS عن بعد

NILFS2 لـ /home

في أنظمة التشغيل المشابهة لـ Unix، كقاعدة عامة، يوجد مجلد /home يتم فيه تخزين بيانات المستخدم. تقوم العديد من البرامج بحفظ الإعدادات الخاصة بالمستخدم في هذا المجلد.

ومن يرتكب الأخطاء في أغلب الأحيان، إن لم يكن المستخدمين؟ لذلك، كما يقولون، أمر الله نفسه باستخدام NILFS2 في /home.

علاوة على ذلك، مع الاستخدام الواسع النطاق لمحركات أقراص الحالة الصلبة (SSD)، لم يعد علينا الآن أن نقلق بشأن عمليات السحب الشديدة عند استخدام أنظمة ملفات CoW.

نعم، يمكننا إنشاء لقطات FS بقدر ما نريد في ZFS وBTRFS، ولكن هناك دائمًا خطر أن ينتهي تغيير الملف المفقود بين اللقطات. وما زالت الصور بحاجة إلى الإدارة: يجب حذف الصور القديمة. في NILFS2، كل هذا يحدث تلقائيًا، حرفيًا كل بضع ثوانٍ.

لقد قمت بإنشاء وحدة تخزين منطقية باستخدام lvcreate (في مجموعة وحدات التخزين nvme، مجموعة رقيقة رقيقة). أوصي بإنشائه على مجلد lvm، لأنه يمكن توسيعه بسهولة لاحقًا. أوصي بالحصول على مساحة قرص مجانية بنسبة 50% مع NILFS2 للحصول على عمق إصدار لائق.

lvcreate -V10G -T nvme/thin -n home

وقمت بتنسيقه في NILFS2:

mkfs.nilfs2 -L nvme_home /dev/nvme/home

mkfs.nilfs2 (nilfs-utils 2.1.5)
Start writing file system initial data to the device
      Blocksize:4096  Device:/dev/nvme/home1  Device Size:10737418240
File system initialization succeeded !!

بعد ذلك، تحتاج إلى نسخ كافة البيانات من /home الحالي.

لقد قمت بذلك مباشرة بعد تشغيل الكمبيوتر، وقبل تسجيل الدخول إلى حسابي، كمستخدم أساسي. إذا قمت بتسجيل الدخول كمستخدم، فإن بعض البرامج ستفتح مآخذ توصيل وملفات في المجلد /home/user الخاص بالمستخدم، مما قد يجعل النسخة النظيفة صعبة. كما تعلم، عادةً ما يوجد المجلد الرئيسي للمستخدم الجذر على المسار /root، لذلك لن يتم فتح أي ملفات على القسم /home.

mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome

للسطر الأخير، انظر статью.

بعد ذلك نقوم بتحرير /etc/fstab، الذي تم تثبيت نظام الملفات الخاص بـ /home عليه

/dev/disk/by-label/nvme_home /home nilfs2    noatime 0 0

خيار noatime اللازمة لتحسين الأداء بحيث لا يتغير الوقت مع كل وصول للملف. التالي نقوم بإعادة التشغيل.

أنواع الصور في NILFS2.

تسمى اللقطة العادية التي لا تتمتع بحصانة ضد الحذف بنقطة تفتيش أو نقطة استرداد.
تسمى اللقطة المحمية من الحذف التلقائي لقطة، ثم ببساطة لقطة.

يتم عرض نقاط التفتيش باستخدام الأمر lscp

عرض اللقطات lscp -s

يمكننا إنشاء لقطات ونقاط تفتيش بأنفسنا في أي وقت باستخدام:

mkcp [-s] устройство

نقوم باستعادة البيانات.

يسمح لنا NILFS بتركيب أكبر عدد ممكن من اللقطات القديمة بالتوازي مع العمل مع فرع FS الرئيسي. ولكن فقط في وضع القراءة.

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

chcp ss номер_чекпоинта

بعد ذلك يمكننا تركيب اللقطة مثلا كالتالي:

mount -t nilfs2 -r -o cp=номер_чекпоинта /dev/nvme/home /mnt/nilfs/номер_чекпоинта

وبعد ذلك نقوم بنسخ الملفات المستعادة من اللقطة إلى /home.
وبعد ذلك نقوم بإزالة العلامة غير القابلة للحذف من اللقطة حتى يتمكن جامع البيانات المهملة التلقائي في المستقبل من إزالة البيانات القديمة:

chcp cp номер_чекпоинта

المرافق لNILFS2

ولكن هذه هي المشكلة. نعم، بالطبع، يمكننا إنشاء نظام ملفات، وتغيير حجمه عبر الإنترنت، وعرض قائمة نقاط التحدي، وإنشائها وحذفها. توفر حزمة nilfs2-utils الحد الأدنى من مجموعة الرجال.

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

فائدة بلدي n2u

ولملء هذا الفراغ كتبت فائدة n2u الخاصة بك، والذي يمكنه عرض سجل التغييرات على ملف/دليل محدد:

n2u log filename

الإخراج شيء من هذا القبيل:

          CHECKPOINT        DATE     TIME     TYPE          SIZE  MODE
             1787552  2019-11-24 22:08:00    first          7079    cp
             1792659  2019-11-25 23:09:05  changed          7081    cp

إنه يعمل بسرعة كبيرة بالنسبة لطريقة التنفيذ المختارة: فهو يبحث عن الاختلافات بين الملفات باستخدام طريقة التنصيف، ويقوم بسرعة بتثبيت الملف/الدليل ومقارنته في لقطات مختلفة.

يمكنك ضبط مجموعة من نقاط التفتيش باستخدام المفتاح -cp CP1:CP2 أو -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

يمكنك أيضًا رؤية الفرق بين نقاط التفتيش لملف أو دليل معين:

n2u diff -r cp1:cp2 filename

يمكنك عرض التسلسل الزمني الكامل للتغييرات: جميع الاختلافات بين نقاط التفتيش الخاصة بملف/دليل محدد:

n2u blame [-r cp1:cp2] filename

يتم أيضًا دعم الفاصل الزمني للتاريخ في هذا الأمر.

صرخة للمطورين

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

مراجع

الموقع الرسمي لمؤسسة NILFS.

المستودعات:
نيلفس2.
المرافق والوحدات NILFS2.

النشرات الإخبارية:
رسالة إخبارية عبر البريد الإلكتروني لمطوري NILFS2. معرف الاشتراك في Linux-nilfs.
أرشيف النشرة الإخبارية.

دليل الإعداد nilfs_cleanerd.
قياس الأداء اختبارات أداء EXT4 وBtrfs وXFS وNIILFS2.

الشكر:

  • مطورو NILFS2: ريوسوكي كونيشي، وكوجي ساتو، وناروهيكو كاميمورا، وسيجي كيهارا، ويوشيجي أماجاي، وهيساشي هيفومي، وساتوشي مورياي. المساهمين الرئيسيين الآخرين هم: أندرياس روهنر، دان ماكجي، ديفيد أرندت، ديفيد سميد، ديكسين ديفريز، ديمتري سميرنوف، إريك ساندين، جيرو سيكيبا، ماتيو فريجو، هيتوشي ميتاكي، تاكاشي إيواي، فياتشيسلاف دوبيكو.
  • إلى شركة Amblin Entertainment وشركة Universal Pictures لسلسلة الأفلام الرائعة. "العودة إلى المستقبل". الصورة الأولى للتدوينة مأخوذة من فيلم "العودة إلى المستقبل 3".
  • شركة روفدس للحصول على الدعم وفرصة النشر على مدونتك على حبري.

PS يرجى إرسال أية أخطاء تلاحظها في رسالة خاصة. أقوم بزيادة الكارما الخاصة بي لهذا الغرض.

يمكنك تجربة NILFS2 عن طريق طلب جهاز افتراضي منه روفدس مع القسيمة أدناه. لجميع العملاء الجدد هناك فترة تجريبية مجانية مدتها 3 أيام.

NILFS2 - نظام ملفات مضاد للرصاص لـ /home

المصدر: www.habr.com

إضافة تعليق