مدير وحدات التخزين المنطقية (لينكس)

في نظام لينكس ، يُعدّ مدير وحدات التخزين المنطقية ( LVM ) إطار عمل لربط الأجهزة ، يوفر إدارة وحدات التخزين المنطقية لنواة لينكس . وتدعم معظم توزيعات لينكس الحديثة LVM لدرجة أنها قادرة على وضع أنظمة ملفاتها الجذرية على وحدة تخزين منطقية . [ 3 ] [ 4 ] [ 5 ]

كتب هاينز ماولشاجن الكود الأصلي لـ LVM في عام 1998، عندما كان يعمل في شركة سيستينا سوفتوير ، مستوحياً مبادئ التصميم الأساسية من مدير وحدات التخزين في نظام التشغيل HP-UX . [ 1 ]

الاستخدامات

يُستخدم LVM للأغراض التالية:

  • إنشاء وحدات تخزين منطقية واحدة من وحدات تخزين فعلية متعددة أو أقراص صلبة كاملة (مشابهة إلى حد ما لـ RAID 0 ، ولكنها أقرب إلى JBOD )، مما يسمح بتغيير حجم وحدة التخزين بشكل ديناميكي.
  • إدارة مزارع الأقراص الصلبة الكبيرة من خلال السماح بإضافة الأقراص واستبدالها دون توقف أو انقطاع في الخدمة، بالإضافة إلى التبديل السريع .
  • في الأنظمة الصغيرة (مثل أجهزة سطح المكتب)، بدلاً من الاضطرار إلى تقدير حجم القسم المطلوب في وقت التثبيت، يسمح LVM بتغيير حجم أنظمة الملفات بسهولة حسب الحاجة.
  • إجراء نسخ احتياطية منتظمة عن طريق أخذ لقطات من وحدات التخزين المنطقية.
  • تشفير أقسام مادية متعددة بكلمة مرور واحدة.

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

سمات

عناصر مختلفة من LVM

الوظائف الأساسية

  • يمكن تغيير حجم مجموعات وحدات التخزين (VGs) عبر الإنترنت عن طريق استيعاب وحدات تخزين مادية جديدة (PVs) أو إخراج الوحدات الموجودة.
  • يمكن تغيير حجم وحدات التخزين المنطقية (LVs) عبر الإنترنت عن طريق دمج الامتدادات عليها أو اقتطاع الامتدادات منها.
  • يمكن نقل وحدات الجهد المنخفض بين وحدات الجهد الفيزيائي.
  • إنشاء لقطات للقراءة فقط من وحدات التخزين المنطقية (LVM1)، باستخدام ميزة النسخ عند الكتابة (CoW)، [ 6 ] أو لقطات للقراءة/الكتابة (LVM2).
  • يمكن تقسيم مجموعات وحدات التخزين أو دمجها في مكانها طالما لا توجد وحدات تخزين منطقية تمتد عبر منطقة التقسيم. قد يكون هذا مفيدًا عند ترحيل وحدات التخزين المنطقية بالكامل من أو إلى وحدات التخزين غير المتصلة بالإنترنت.
  • يمكن وسم كائنات LVM لتسهيل الإدارة. [ 7 ]
  • يمكن تفعيل وحدات التخزين المنطقية (VGs) ووحدات التخزين المنطقية (LVs) بمجرد توفر الأجهزة الأساسية من خلال استخدام البرنامج lvmetadالخفي (daemon). [ 8 ]

وظائف متقدمة

غارة

  • يمكن إنشاء وحدات التخزين المنطقية لتضمين وظائف RAID ، بما في ذلك RAID 1 و 5 و 6. [ 12 ]
  • يمكن توزيع وحدات التخزين المنطقية بالكامل أو أجزائها عبر وحدات تخزين فعلية متعددة، على غرار RAID 0 .
  • يمكن تهيئة جهاز RAID  1 الخلفي (وحدة تخزين ثابتة) على أنه "للكتابة في الغالب"، مما يؤدي إلى تجنب عمليات القراءة من هذه الأجهزة إلا عند الضرورة. [ 13 ]
  • يمكن الحد من معدل الاسترداد باستخدام lvchange --raidmaxrecoveryrateالحفاظ lvchange --raidminrecoveryrateعلى أداء الإدخال/الإخراج المقبول أثناء إعادة بناء وحدة تخزين منطقية تتضمن وظائف RAID.

توافر عالٍ

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

كليفمان
يُستخدم مدير أقفال موزع لتنظيم عمليات الوصول المتزامنة إلى بيانات تعريف LVM. عندما تحتاج عقدة في المجموعة إلى تعديل بيانات تعريف LVM، يجب عليها الحصول على إذن من خادمها المحلي clvmd، الذي يكون على اتصال دائم مع clvmdالبرامج الخفية الأخرى في المجموعة، ويمكنه إرسال طلب للحصول على قفل على مجموعة معينة من الكائنات.
HA-LVM
يُترك تحديد حالة المجموعة للتطبيق الذي يوفر وظيفة التوافر العالي. أما بالنسبة لـ LVM، فيمكن لـ HA-LVM استخدام CLVM كآلية تأمين، أو الاستمرار في استخدام آلية تأمين الملفات الافتراضية وتقليل حالات "التصادم" عن طريق تقييد الوصول إلى كائنات LVM التي تحمل العلامات المناسبة فقط. ولأن هذا الحل الأبسط يتجنب التنازع بدلاً من تخفيفه، فلا يُسمح بالوصول المتزامن، لذا يُعتبر HA-LVM مفيدًا فقط في التكوينات النشطة/الخاملة.
lvmlockd
اعتبارًا من عام 2017، وهو مكون مستقر من مكونات LVM مصمم ليحل محل المكونات الأخرى، clvmdوذلك بجعل عملية قفل كائنات LVM شفافة لبقية مكونات LVM، دون الاعتماد على مدير قفل موزع. [ 14 ] وقد شهد تطورًا هائلاً خلال عام 2016. [ 15 ]

لا تعالج الآليات المذكورة أعلاه سوى مشاكل وصول LVM إلى وحدة التخزين. يجب أن يدعم نظام الملفات المُختار ليكون فوق وحدات التخزين المنطقية هذه خاصية التجميع (مثل GFS2 أو VxFS )، أو يجب أن يتم تركيبه بواسطة عقدة واحدة فقط في أي وقت (كما هو الحال في التكوين النشط/السلبي).

سياسة تخصيص مجموعات وحدات التخزين

يجب أن تحتوي مجموعات وحدات التخزين المنطقية (LVM VGs) على سياسة تخصيص افتراضية لوحدات التخزين الجديدة المُنشأة منها. يمكن تغيير هذه السياسة لاحقًا لكل وحدة تخزين منطقية باستخدام lvconvert -Aالأمر، أو على مجموعة وحدات التخزين نفسها عبر vgchange --alloc. ولتقليل التجزئة، سيحاول LVM تطبيق السياسة الأكثر صرامة (المتجاورة) أولًا، ثم ينتقل تدريجيًا إلى السياسة الأكثر مرونة المُحددة لكائن LVM حتى ينجح التخصيص في النهاية.

في تكوينات RAID، تُطبَّق جميع السياسات تقريبًا على كل جزء على حدة. على سبيل المثال، حتى لو كانت وحدة التخزين المنطقية (LV) مُطبَّقة عليها سياسة " التثبيت" ، فلن يؤدي توسيع نظام الملفات إلى استخدام LVM لوحدة تخزين فعلية (PV) إذا كانت مُستخدمة بالفعل من قِبل أحد الأجزاء الأخرى في إعداد RAID. ستضع وحدات التخزين المنطقية (LV) التي تدعم وظيفة RAID كل جزء على وحدات تخزين فعلية (PV) مختلفة، مما يجعل وحدات التخزين الفعلية الأخرى غير متاحة لأي جزء آخر. إذا كان هذا هو الخيار الوحيد المتاح، فسيفشل توسيع وحدة التخزين المنطقية (LV). من هذا المنطلق، فإن منطق سياسة " التثبيت" (cling) ينطبق فقط على توسيع كل جزء من أجزاء المصفوفة على حدة.

سياسات التخصيص المتاحة هي:

  • متجاورة – تجبر جميع وحدات LE في وحدة LV معينة على أن تكون متجاورة ومرتبة. هذا يمنع التجزئة ولكنه يقلل بشكل كبير من قابلية توسيع وحدة LV.
  • خاصية "التثبيت" (Cling ) تُجبر وحدات التخزين المنطقية الجديدة (LEs) على أن تُخصص فقط على وحدات التخزين الفعلية (PVs) المستخدمة بالفعل من قِبل وحدة تخزين منطقية (LV). وهذا يُساعد في الحد من التجزئة وتقليل تعرض وحدات التخزين المنطقية (LVs) للخطر في حال تعطل جهاز ما، وذلك بتقليل احتمالية وجود وحدات تخزين منطقية (LVs) أخرى على وحدة التخزين الفعلية (PV) نفسها.
  • الوضع الطبيعي - يعني اختيار وحدات المعالجة المركزية بشكل شبه عشوائي، ولكنه سيحاول منع الأطراف المتوازية (مثل تلك الموجودة في إعداد RAID) من مشاركة جهاز مادي.
  • في أي مكان – لا يفرض أي قيود على الإطلاق. يُعدّ هذا الخيار شديد الخطورة في بيئة RAID لأنه يتجاهل متطلبات العزل، مما يُقلّل من معظم مزايا RAID. بالنسبة للأقراص الخطية، قد يؤدي ذلك إلى زيادة التجزئة.

تطبيق

مثال أساسي لرأس LVM
آلية عمل الإصدار الأول من LVM. في هذا الرسم التخطيطي، يرمز PE إلى المدى المادي.

عادةً، يحتوي الميغابايت الأول من كل وحدة تخزين فعلية على بنية مشفرة بنظام ASCII تُعرف باسم "رأس LVM". في الأصل، كان يُكتب رأس LVM في الميغابايت الأول والأخير من كل وحدة تخزين فعلية لضمان التكرار (في حالة حدوث عطل جزئي في الأجهزة)؛ ولكن تم تغيير ذلك لاحقًا ليُكتب في الميغابايت الأول فقط. يُعد رأس كل وحدة تخزين فعلية نسخة كاملة من تخطيط مجموعة وحدات التخزين بأكملها، بما في ذلك معرّفات UUID لجميع وحدات التخزين الفعلية الأخرى ووحدات التخزين المنطقية، وخريطة تخصيص وحدات التخزين الفعلية إلى وحدات التخزين المنطقية . يُسهّل هذا استعادة البيانات في حالة فقدان وحدة تخزين فعلية.

في سلسلة نواة لينكس 2.6، يُنفَّذ نظام إدارة وحدات التخزين المنطقية (LVM) باستخدام مُخطِّط الأجهزة ، وهو نظام بسيط على مستوى الكتل لإنشاء وحدات تخزين افتراضية وربط محتوياتها بوحدات تخزين أخرى. هذا يُقلِّل من كمية كود النواة الذي يصعب تصحيحه نسبيًا واللازم لتنفيذ LVM. كما يسمح بمشاركة خدمات إعادة توجيه الإدخال/الإخراج مع أنظمة إدارة وحدات التخزين الأخرى (مثل EVMS ). يُنقل أي كود خاص بـ LVM إلى أدوات مساحة المستخدم، التي تُجري عمليات معالجة لهذه الربطات وتعيد بناء حالتها من البيانات الوصفية الموجودة على القرص عند كل استدعاء.

لتفعيل مجموعة حجمية عبر الإنترنت، استخدم أداة "vgchange":

  1. يبحث عن وحدات التخزين الدائمة في جميع أجهزة التخزين المتاحة.
  2. يقوم بتحليل رأس البيانات الوصفية في كل وحدة تخزين دائمة تم العثور عليها.
  3. يحسب تخطيطات جميع مجموعات الحجم المرئية.
  4. يتم تكرار العملية على كل وحدة تخزين منطقية في مجموعة وحدات التخزين المراد تشغيلها، و:
    1. يتحقق مما إذا كانت وحدة التخزين المنطقية المراد تشغيلها متصلة بالإنترنت تحتوي على جميع وحدات التخزين الدائمة الخاصة بها مرئية.
    2. يقوم بإنشاء خريطة جهاز جديدة فارغة.
    3. يقوم برسمها (مع الهدف "الخطي") على مناطق البيانات الخاصة بوحدات التخزين الدائمة التي ينتمي إليها المجلد المنطقي.

لنقل وحدة تخزين منطقية متصلة بالإنترنت بين وحدات التخزين الفيزيائية (PVs) على نفس مجموعة وحدات التخزين، استخدم أداة "pvmove":

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

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

محاذير

  • اعتبارًا من عام 2015لا يوجد برنامج لإلغاء تجزئة وحدة التخزين المنطقية (LVM)، سواءً عبر الإنترنت أو دون اتصال. ويُخفف من هذه المشكلة جزئيًا أن التجزئة لا تحدث إلا عند توسيع وحدة التخزين، وذلك بتطبيق سياسات التخصيص المذكورة أعلاه. ومع ذلك، لا تزال التجزئة تحدث، وإذا ما أُريد تقليلها، فيجب تحديد الأجزاء غير المتجاورة وإعادة ترتيبها يدويًا باستخدام الأمر [ 16 ]pvmove .
  • في معظم إعدادات LVM، تُحفظ نسخة واحدة فقط من رأس LVM في كل وحدة تخزين فعلية (PV)، مما قد يجعل وحدات التخزين أكثر عرضة لتلف قطاعات القرص. يمكن تجاوز هذا السلوك باستخدام vgconvert --pvmetadatacopies. إذا لم يتمكن LVM من قراءة رأس صحيح باستخدام النسخة الأولى، فسيبحث في نهاية وحدة التخزين عن رأس احتياطي. تحتفظ معظم توزيعات لينكس بنسخة احتياطية قيد التشغيل في /etc/lvm/backup، مما يتيح إعادة كتابة رأس LVM التالف يدويًا باستخدام vgcfgrestoreالأمر .

انظر أيضاً

مراجع

  1. 1 2 "LVM README" . 2003-11-17 . تم الاطلاع عليه بتاريخ 2026-04-03 .
  2. "v2_03_38" . 15 ديسمبر 2025. تم الاطلاع عليه في 14 مارس 2026 .
  3. "7.1.2 تهيئة LVM باستخدام YaST" . SUSE. 12 يوليو 2011. مؤرشف من الأصل في 25 يوليو 2015. تم الاطلاع عليه بتاريخ 22 مايو 2015 .
  4. "كيفية إعداد سطح مكتب أوبونتو باستخدام أقسام LVM" . أوبونتو. 1 يونيو 2014. مؤرشف من الأصل في 4 مارس 2016. تم الاطلاع عليه بتاريخ 22 مايو 2015 .
  5. "9.15.4 إنشاء وحدة تخزين منطقية LVM" . ريد هات. 8 أكتوبر 2014. تم الاطلاع عليه بتاريخ 22 مايو 2015 .
  6. "مقارنة أداء BTRFS مع LVM+EXT4 فيما يتعلق بأحمال عمل قواعد البيانات" . 29 مايو 2018.
  7. "وسم كائنات تخزين LVM2" . شركة مايكرو فوكس الدولية . تم الاطلاع عليه بتاريخ 21 مايو 2015 .
  8. "برنامج إدارة البيانات الوصفية" . شركة ريد هات . تم الاطلاع عليه بتاريخ 22 مايو 2015 .
  9. "استخدام ميزة التخزين المؤقت الجديدة في LVM" . 22 مايو 2014. تم الاطلاع عليه بتاريخ 11 يوليو 2014 .
  10. "2.3.5. وحدات التخزين المنطقية ذات التوفير المحدود (وحدات التخزين الرقيقة)" . Access.redhat.com . تم الاطلاع عليه بتاريخ 20-06-2014 .
  11. "4.101.3. RHBA-2012:0161 — تحديث لإصلاح وتحسين lvm2" . تم الاطلاع عليه بتاريخ 2014-06-08 .
  12. "5.4.16. وحدات التخزين المنطقية RAID" . Access.redhat.com . تم الاطلاع عليه بتاريخ 2017-02-07 .
  13. "التحكم في عمليات الإدخال/الإخراج على وحدة تخزين منطقية RAID1" . redhat.com . تم الاطلاع عليه بتاريخ 16 يونيو 2014 .
  14. "رد: لقطة LVM مع مجموعة وحدات تخزين مجمعة [ تم الحل ] " . 15 مارس 2013. تم الاسترجاع في 8 يونيو 2015 .
  15. ""vmlockd.c git history"" .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  16. "هل يؤدي نقل وحدة تخزين منطقية واحدة في كل مرة إلى إلغاء تجزئة القرص؟" 29-04-2010 . تم الاطلاع عليه بتاريخ 22-05-2015 .
  17. "المفاجآت" . ويكي btrfs . تم الاسترجاع في 24-04-2017 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )

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