التخزين السميك والتخزين الرقيق: ما هو الفرق؟

التخصيص الكثيف

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

هناك نوعان فرعيان من الأقراص الافتراضية المخصصة بشكل كثيف:

  • A Lazy zeroed disk is a disk that takes all of its space at the time of its creation, but this space may contain some old data on the physical media. This old data is not erased or written over, so it needs to be “zeroed out” before new data can be written to the blocks. This type of disk can be created more quickly, but its performance will be lower for the first writes due to the increased IOPS (input/output operations per second) for new blocks;
  • قرص مصفوفة بصفر مشتاق هو قرص يحصل على كل الفضاء المطلوب في وقت إنشائه، ويتم مسح الفضاء من أي بيانات سابقة على الوسائط الفعلية. يستغرق إنشاء الأقراص المصفوفة بصفر مشتاق وقتًا أطول، لأن الأصفار يتم كتابتها على القرص بأكمله، ولكن أداؤها أسرع خلال الكتابات الأولى. هذا النوع الفرعي من الأقراص الافتراضية المخصصة بشكل كثيف يدعم ميزات التجميع، مثل التحمل للأخطاء.

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

التوفير النحيف

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

على سبيل الم

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

المشاكل التي قد تظهر عند استخدام الأقراص الافتراضية ذات التخصيص النحيف

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

لنأخذ مثالًا يجعل الآلات الافتراضية غير قابلة للاستخدام. على سبيل المثال، لدينا مساحة تخزين بحجم 20 جيجابايت تحتوي على ثلاث آلات افتراضية تعمل عليها. كل آلة افتراضية لديها قرص افتراضي بتخصيص رقيق بحجم أقصى يبلغ 10 جيجابايت. (يُطلق على هذه الممارسة اسم “الإفراط في التخصيص” – حيث نخصص مساحة أكبر من اللازم لأقراص افتراضية. يتم ذلك في كثير من الأحيان لأنه يتيح لك توسيع النظام عن طريق إضافة مزيد من التخزين الفعلي كما تحتاج.) سيتم توسيع حجم كل قرص افتراضي تلقائياً مع إضافة البيانات، حتى لا يتبقى مساحة فارغة على مساحة التخزين. تصبح الحالة حرجة عندما تبقى 1 جيجابايت فقط من المساحة الفارغة على مساحة التخزين، على سبيل المثال، عندما تحتل الآلة الافتراضية رقم 1 8 جيجابايت، وتحتل الآلة الافتراضية رقم 2 7 جيجابايت، والآلة الافتراضية رقم 3 – 4 جيجابايت.

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

كيفية تقليل حجم القرص الافتراضي ذو التخصيص الرقيق بعد حذف الملفات

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

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

تقليص أقراص VMware Thin-Provisioned في نظام Linux

لنأخذ مثالًا: لدينا ملف VMDK بحجم 10,266,496 كيلوبايت (10 جيجابايت) (تعرفنا على حجمه من خلال الذهاب إلى الدليل على مخزن البيانات حيث يتواجد جهاز الكمبيوتر الظاهري لدينا) ونرغب في تقليص القرص الظاهري الذي تم تثبيت نظام التشغيل Linux الضيف عليه. يمكننا محاولة حذف الملفات غير الضرورية على هذا القرص الظاهري. ومع ذلك، لا يقوم Linux تلقائيًا بتصفير الكتل بعد حذف الملفات؛ عليك أن تفعل ذلك بنفسك. يمكنك القيام بذلك باستخدام أداة dd (مكرر البيانات) لنسخ وتحويل البيانات. تتوفر هذه الأداة على جميع أنظمة Linux.

ملاحظة: قبل تشغيل أداة dd، من الضروري التأكد من أن مخزن البيانات لديه سعة كافية لاستخدامه (على سبيل المثال، بالنسبة لخادم ESXi، يمكنك التحقق من سعة التخزين في قسم التخزين من عميل vSphere – انتقل إلى التكوين > التخزين).

لنستخدم أداة dd.

  1. أولاً، نتحقق من المساحة الحرة على جهاز كمبيوتر ظاهري Linux الضيف باستخدام الأمر df -h:

    root@test-virtual-machine:/# df -h

    نحصل على الناتج التالي في وحدة التحكم:

    Filesystem   Size   Used   Avail   Use%   Mounted on
    udev         469M   0      469M    0%     /dev
    tmpfs        99M    6.3M   92M     7%     /run
    /dev/sda7    17G    8.8G   6.4G    58%    /
    tmpfs        491M   116K   491M    1%     /dev/shm
    tmpfs        5.0M   4.0K   5.0M    1%     /run/lock
    tmpfs        491M   0      491M    0%     /sys/fs/cgroup
    /dev/sda1    945M   121M   760M    14%    /boot
    /dev/sda6    3.7G   13M    3.5G    1%     /var/log
    tmpfs        99M    36K    99M     1%     /run/user/1000
    

    يمكننا أن نرى من هذا الناتج أن قسم الـ / (الجذر) يحتوي على 8.8 غيغابايت من الملفات.

  2. لنقم بحذف بضعة غيغابايت من الملفات غير الضرورية في الجزء الأساسي. هذا ما نراه في وحدة التحكم إذا قمنا بتشغيل الأمر df -h /:

    Filesystem   Size   Used   Avail   Use%   Mounted on
    /dev/sda7    17G    4.7G   11G     31%    /

    بالتالي، يحتوي قسم الجذر الخاص بنا الآن على 4.7 غيغابايت من الملفات. ومع ذلك، عند الانتقال إلى الدليل الذي يوجد فيه ملف VMDK الخاص بنا، يمكننا أن نرى أن حجمه لا يزال 10,266,496 كيلوبايت (10 غيغابايت).

  3. الآن سنملأ المساحة الفارغة بالأصفار (في حالتنا، سنملأ 10 جيجابايت من أصل 11 جيجابايت المتاحة). أولاً، نكتب cd تليها اسم الدليل الذي تم تثبيت القسم الذي يجب أن يتم مسحه بالأصفار إليه (في حالتنا هو cd /، لأننا نريد التنقل إلى القسم الرئيسي). بعد ذلك، نقوم بتشغيل الأمر التالي، مع تغيير المتغيرات لتناسب احتياجاتنا:

    dd bs=1M count=10240 if=/dev/zero of=zero

    في هذا الأمر:

    • dd يمكن تشغيله فقط كمستخدم جذر.
    •  bs يحدد حجم الكتلة (على سبيل المثال، bs=1M سيعطيك حجم كتلة 1 ميغابايت).
    •  count يحدد عدد الكتل التي سيتم نسخها (الافتراضي لـ dd هو الاستمرار إلى الأبد أو حتى ينفد المدخل). في حالتنا، 10,240 ميغابايت هو مقدار المساحة الفارغة التي نريد ملؤها بالأصفار، لذلك عدد كتلة 1 ميغابايت هو 10240.
    •  if يعني “ملف الإدخال”. هنا يجب عليك تحديد المصدر الذي تريد نسخ البيانات منه. في حالتنا، هو /dev/zero – ملف خاص (جهاز زائف) يوفر أحرفًا فارغة بقدر ما تريد قراءتها منه.
    •  of يعني “ملف الإخراج”. هنا تقوم بتحديد الوجهة التي تريد فيها كتابة/لصق بياناتك (في حالتنا، اسم الملف هو zero).

    بعد تنفيذ الأمر أعلاه، ينمو حجم ملف VMDK لدينا. هذه هي الناتج التي نراها بعد اكتمال الأمر بنجاح:

    10240+0 سجلات داخلية
    10240+0 سجلات خارجية
    10737418240 بايت (10 جيجابايت) تم نسخها، 59،4348 ثانية، 181 ميغابايت/ث
    تم إكمال الأمر بنجاح.

    لذلك، الآن حجم ملف VMDK لدينا هو 11,321,856 كيلوبايت (10.8 جيجابايت)، مما يعني أنه قد تم توسيعه. أيضًا، إذا قمنا بتشغيل الأمر df -h / مرة أخرى، سنرى ما يلي:

    نظام الملفات   الحجم   المستخدم   المتبقي   الاستخدام%   المرفق على
    /dev/sda7    17 جيجابايت    15 جيجابايت    569 ميجابايت    97%    /

    هذا يعني أنه تم استغلال ما يقرب من كامل القسم الرئيسي (أي 97%). هذا بسبب أننا قمنا بملأ معظم المساحة “المتاحة” سابقًا بالأصفار. الآن، قرص الكمبيوتر الظاهري الذي تم توفيره بشكل رقيق جاهز ليتقلص.

ملاحظة: لأداء عملية التقليص، من الضروري تثبيت أدوات VMware.

  1. بالنسبة للآلات الظاهرية التي تعمل على VMware ESXi أو VMware Workstation، نقوم بتنفيذ الأمرين التاليين في نظام التشغيل الضيف Linux.a) للتأكد من توافر تقسيم القرص، نقوم بتشغيل الأمر التالي:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk list

    هذه هي النتيجة التي نراها في حالتنا (أي، نرى قائمة التقسيمات المتاحة):

    /
    /boot
    /var/log

    التقسيم الجذري موجود، لذلك يمكننا المتابعة.b) لتقليص التقسيم، نقوم بتشغيل الأمر التالي:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk shrink /

    هذه هي النتيجة التي نراها في حالتنا:

    يرجى تجاهل أي تحذيرات بشأن مساحة القرص خلال عملية التقليص.
    التقدم: 100 [===========>]
    تم التقليص بنجاح.
    

    الآن، حجم ملف VMDK الذي تم تقليصه هو 5,323,456 كيلوبايت (أي 5.08 جيجابايت – أقل بكثير من الـ 10.8 جيجابايت التي كانت عليه قبل ذلك).

الآن، حجم ملف VMDK المقلص لدينا هو 5،323،456 كيلوبايت (أي، 5.08 جيجابايت – أقل بكثير من 10.8 جيجابايت كما كانت).ملاحظة:

  1. إذا كانت آلة الضيف الافتراضية الخاصة بك تعمل على خادم ESXi، بعد ملء الكتل بالأصفار، يمكنك اتباع هذه الخطوات:
  2. أوقف تشغيل الآلة الافتراضية، أو قم بفصل القرص الافتراضي الذي تريد تقليصه.
  3. اتصل بمضيف ESXi باستخدام عميل SSH.
  4. انتقل إلى مجلد الآلة الافتراضية.
  5. تحقق من استخدام القرص باستخدام du -h.
  6. قم بتشغيل vmkfstools -K test-virtual-machine.vmdk.

تحقق مرة أخرى من استخدام القرص باستخدام du -h.تقليص أقراص VMware ذات التخصيص الرفيع في نظام Windows

مثل لينكس، لا يقوم ويندوز تلقائياً بصفر الكتل بعد حذف الملفات. لتكون قادرًا على صفر المساحة الحرة لأقراص الهدف على جهاز الكمبيوتر الظاهري الخاص بك، تحتاج إلى تنزيل SDelete – أداة مجانية من Microsoft’s Sysinternals Suite – وفك ضغط الملفات من الأرشيف المُنزَّل إلى c:\program files\sdelete

ثم اتبع هذه الخطوات:

  1. قم بتشغيل cmd
  2. انتقل إلى الدليل الذي يوجد فيه SDelete. في حالتنا، هو: cd c:\program files\sdelete

  3. لكل قسم في وحدة التحكم، استخدم الأمر sdelete -z. هذا ما لدينا في حالتنا:

    sdelete -z c:
    sdelete -z d:

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

  4. تأكد من تثبيت أدوات VMware على جهاز الكمبيوتر الظاهري الخاص بك التابع لنظام ويندوز. بشكل افتراضي، يتم تثبيت أدوات VMware إلى c:\program files\vmware\vmware tools\

    انتقل إلى هذا الدليل عن طريق كتابة:

    cd c:\program files\vmware\vmware tools\

  5. لعرض أقسام القرص المتاحة، اكتب:

    vmwaretoolboxcmd disk list

  6. قم بتقليص أقسام القرص التي تحتاج إليها. في حالتنا، قمنا بتشغيل الأوامر التالية:

    vmwaretoolboxcmd disk shrink c:\
    vmwaretoolboxcmd disk shrink d:\

    انتظر حتى انتهاء البرنامج من تقليص القرص.

يمكنك استخدام هذه الطريقة للأجهزة الظاهرية التي تعمل على VMware ESXi أو VMware Workstation.

مجدول الموارد الموزع للتخزين VMware (VMware Storage Distributed Resource Scheduler)

أعلاه، ذكرنا حلاً لتقليص أقراص البيانات المُرخَّصة رقيقة الإعداد يدويًا. ومع ذلك، هناك طريقة أخرى لإدارة أقراصك الافتراضية (سواء كانت رقيقة الإعداد أو سميكة الإعداد)، إذا كنت تستخدم مجموعة تخزين البيانات في vSphere. توفر VMware ترحيل أقراص افتراضية تلقائيًا داخل مجموعة تخزين البيانات لتجنب تجاوز تخزين القرص حيث توجد أقراص البيانات الافتراضية الرقيقة الإعداد ولتوازن موارد الإدخال/الإخراج.

إذا كان لديك أكثر من مجموعة تخزين مشتركة مرتبطة بخادم ESXi، يمكنك إعداد جدولة موارد التخزين الموزع (Storage DRS). Storage DRS هو ميزة ذكية في خادم vCenter لإدارة تخزين VMFS و NFS بكفاءة وتوفير وضع وترحيل تلقائي لأقراص الآلة الافتراضية. يمكنك أيضًا ضبط Storage DRS لوضع يدوي إذا كنت تفضل الموافقة على توصيات الترحيل يدويًا.

اتبع هذه الخطوات لتمكين Storage DRS:

  1. انتقل إلى مجموعة تخزين البيانات في عميل vSphere Web.
  2. انتقل إلى vCenter > Datastore Clusters.
  3. حدد مجموعة تخزين البيانات الخاصة بك وانقر فوق Manage > Settings > Services > Storage DRS.
  4. انقر فوق Edit.
  5. قم بتكوين إعدادات الأتمتة والوظائف المتعلقة بالإدخال/الإخراج والخيارات المتقدمة التي تحتاجها.
  6. انقر فوق OK لإنهاء العملية.

إذا لم تكن هناك مجموعات تخزين البيانات في بيئة vSphere الخاصة بك، فاتبع هذه الخطوات لإنشاء وإعداد مجموعة تخزين بيانات جديدة:

  1. انتقل إلى vCenter > مراكز البيانات في عميل vSphere Web.
  2. انقر بزر الماوس الأيمن على مركز البيانات الخاص بك وحدد عنصر تجميع جديد لمخزن البيانات.
  3. أدخل اسم مجموعة مخازن البيانات الخاصة بك وحدد خانة الاختيار بجوار “تشغيل التخزين DRS“.
  4. حدد إعدادات الأتمتة والوظائف المتعلقة بالإدخال/الإخراج، والخيارات المتقدمة التي تحتاج إليها.
  5. انقر على موافق لإنهاء.

الاستنتاج

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

يمكنك إنشاء قرص افتراضي بحجم أقصى أكبر من المساحة الفعلية المتاحة (“تكافؤ القدرة”) وإضافة المزيد من التخزين الفعلي في المستقبل، ولكن تذكر أنه إذا امتلأت مساحة القرص الفعلية ولم يتمكن القرص الافتراضي الرفيع من النمو لاستيعاب المزيد من البيانات، فستصبح الآلات الافتراضية غير قابلة للاستخدام – لذا لا تنسى أن تراقب كمية المساحة الفارغة. كما تناولنا طرق تقليل أقراص VMware الافتراضية الرفيعة المخصصة، في حالة تفضيلك عدم إضافة المزيد من التخزين وتحتاج إلى تقليل المساحة المأخوذة.

Source:
https://www.nakivo.com/blog/thick-and-thin-provisioning-difference/