تقليل حجم قرص الجهاز الظاهري vmware. كيفية تقليص قرص VirtualBox متضخم

في عملية العمل مع Hyper-v ، قد يكون من الضروري تغيير الحجم محركات الأقراص الصلبةالأجهزة الظاهرية. لسوء الحظ، الوسائل القياسية Windows 2008 R2 لا تسمح بتقليل الحجم القرص الصلب- فقط توسيع القرص أو التحويل من ديناميكي إلى ثابت (والعكس صحيح).

أداة VHD Resizer

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

Powershell على نظام التشغيل Windows 2012

في الإصدارات السابقة من Hyper-V ، لم تكن هناك وظيفة لتقليل تبديل القرص الظاهري على الإطلاق. بدءًا من Windows Server 2012 ، ظهر خيار قياسي لقطع الأقراص الافتراضية ، لكن استخدامه لا يزال غير سهل للغاية. الحقيقة هي أنه لتقليل حجم VHD ، يجب أن تكون هناك مساحة خالية غير مخصصة بداخله. خلاف ذلك ، لا يتوفر خيار تقليص ويفقد من واجهة المستخدم الرسومية ، وسيفشل PowerShell عند محاولة تقليص القرص باستخدام Resize-VHD.

على سبيل المثال ، لنأخذ جهازًا افتراضيًا SRV01 بقرص افتراضي بسعة 40 جيجابايت ونقوم بتقليصه إلى 30 جيجابايت. للقيام بذلك ، ضع VM أولاً في متغير واعرض خصائص القرص الافتراضي الخاص به:

$ vm = Get-VM -Name SRV01
الحصول على VHD -VMId $ vm.VMId

في خصائص VHD ، نحن مهتمون بمعلمات مثل:

  1. حجم الملف هو الحجم الحالي لملف VHD. يظهر الحجم الحقيقي مساحة القرصالذي يأخذ قرص افتراضي.
  2. الحجم هو الحجم الحالي للقرص الظاهري. في حالة VHD الديناميكي ، فإنه يُظهر الحجم الأقصى الذي يمكن أن ينمو إليه.
  3. MinimumSize - الحجم الأدنى للقرص الظاهري ، أو أصغر حجم ممكن ، يمكن قص VHD إليه.

كما ترون من المثال ، لدينا VHD يتوسع ديناميكيًا بحجم 40 جيجابايت ، منها هذه اللحظةأكثر بقليل من 20 غيغابايت مشغولة. هناك مساحة حرة ، ولكن الحالية و الأبعاد الدنياهي نفسها تقريبًا ، لذلك لن تتمكن من قطع القرص.

بالنسبة لعمليات التلاعب اللاحقة ، يجب إيقاف تشغيل الجهاز الظاهري ، لذلك نتحقق من حالته ، وإذا لزم الأمر ، نقوم بإيقاف تشغيله:

$ vm.State $ vm | Stop-VM -Force

ثم سنقوم بتركيب VHD على النظام الأصلي وعرض خصائص القرص الناتج:

Mount-VHD -Path $ vm.HardDrives.Path -Passthru | احصل على القرص

نأخذ رقم القرص الناتج ونعرض جميع الأقسام الموجودة عليه:

الحصول على التقسيم - رقم القرص 3

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

تغيير الحجم-التقسيم -DriveLetter E-Size 30GB
Get-Partition -DriveLetter هـ

قم بإلغاء تحميل VHD من النظام الأصلي:

Dismount-VHD -Path $ vm.HardDrives.Path

وقمنا بتخفيضها إلى أدنى قيمة ممكنة:

تغيير الحجم- VHD -Path $ vm.HardDrives.Path -ToMinimumSize

كما ترى ، نجح كل شيء ، تم تقليص القرص الافتراضي إلى 30 جيجابايت. كل ما تبقى هو بدء تشغيل VM.

يوم جيد!. المهمة بسيطة ، تقليل حجم القرص الظاهري vmdkفي ESXI 5 أو 6.5. قد تنشأ مثل هذه الحاجة مع التخطيط غير السليم ، أو ببساطة بسبب المعلومات غير الصحيحة من الشخص الذي وضع المهمة. ما لدينا هو آلة افتراضية مع مشغل برامج وندوز 2008 R2 disk C 50 GB مشغول بـ 20 غيغابايت والقرص D 100 غيغابايت ، لكن 1 مستخدم ، تحتاج إلى تصغيره ، إلى 10 ، على سبيل المثال ، حتى يظل سميكًا. لسوء الحظ ، لا يمكن القيام بذلك باستخدام الوسائل العادية ، فهو ليس كما هو الحال في Hyper-V حيث دخلت في الإعدادات وأخذت المبلغ المطلوب. ولكن ، لحسن الحظ ، ليست هناك طريقة كئيبة لحل هذه المشكلة ، وهي الأداة المساعدة VMware vCenter Converter Standalone 5-6.2 ، فقد وصفت مثالاً على عملها.

نفتح الأداة. حدد "الجهاز الظاهري لـ VMware Infrastructure" ، وأدخل بيانات الاعتماد للاتصال بالمضيف أو خادم vCenter. بعد ذلك.

نختار مضيفًا وجهازًا افتراضيًا لتقليص حجم الأقراص.

ندخل الوجهة والوصول إلى البيانات ، في المثال الخاص بي ، هذا هو نفس خادم vcenter.

حدد مجلد التثبيت والاسم

نختار مضيفًا ، أوصي بـ vmtools الإصدار 9 ، بحيث يمكنك التحرير من عميل سميك في windows ومخزن بيانات ، وإلا فسيتعين عليك الرجوع إلى إصدار المعدات الافتراضية.

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

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

قبل تنفيذ الإجراء الخاص بتقليل حجم القرص الظاهري على برنامج VMWare ESXi ، تأكد من:

  • احذف جميع لقطات الجهاز الظاهري ، وإلا فقد تتلف القرص الظاهري
  • قم بإنشاء نسخة كاملة أو قم فقط بعمل نسخة من ملف vmdk لتصغيره باستخدام الأوامر: cp vmname.vmdk backup_vmname.vmdk cp vmname-flat.vmdk backup_vmname-flat.vmdk

هناك خطوتان لتقليل حجم القرص الافتراضي:

تقليص القسم داخل نظام التشغيل الضيف

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

لنفترض أننا نريد تقليل حجم القرص بمقدار 19.5 جيجابايت. هذا يعني أنه يجب تقليل حجم وحدة التخزين بمقدار 19968 ميجابايت (19.5 جيجابايت × 1024). هذه هي القيمة التي تحتاج إلى إدخالها في حقل تقليص حجم المعالج. بعد تقليل حجم القسم ، ستبقى مساحة معينة على القرص الخاص بنا (في مثالنا ، 19.5 جيجابايت)

تقليل حجم ملف VMDK لجهاز ظاهري VMware

ننتقل إلى العملية الثانية - قمت بتغيير حجم ملف VMDK مباشرة إلى نظام الملفاتبرنامج VMWare VMFS.

  1. قم بإيقاف تشغيل الجهاز الظاهري الذي تريد تقليل حجم قرصه الظاهري
  2. قم بالاتصال عبر SSH بوحدة التحكم الخاصة بـ ESXi hypervisor الذي تم تسجيل الجهاز الظاهري عليه
  3. التغيير إلى الدليل حيث يتم تخزين ملف VM vmdk (يمكن العثور على المسار في خصائص القرص الظاهري في عميل رسومية vSphere): cd / vmfs / volumes / datastore / VM-name

  4. لنعرض محتويات ملف التكوين بامتداد * .vmdk باستخدام الأمر cat: cat VM-name.vmdk

    يتم تعيين حجم قرص vmdk في القسم # وصف إضافي(بعد رموز RW). الخامس هذه القضيةالرقم المشار إليه 83886080 (40 جيجا * 1024 * 1024 * 1024/512)

  5. نريد تقليص حجم قرص vmdk من 40 إلى 20 جيجا بايت. هذا يعني أنك بحاجة إلى تحديد قيمة في قسم وصف النطاق: 41943040 (20 جيجا * 1024 * 1024 * 1024/512). اضبط الحجم الجديد للقرص الظاهري باستخدام محرر النص(السادس أو نانو).
  6. يبقى استنساخ أو ترحيل (Storage VMotion) الجهاز الظاهري إلى وحدة تخزين أخرى (مخزن بيانات). بعد نقل ملفات الجهاز الظاهري ، ستعرض خصائصه الحجم الجديد للقرص الظاهري.

    النصيحة... إذا لم يكن هناك vCenter ، أو كان هناك تخزين VMFS واحد فقط ، فإن هذه العمليات غير متاحة. في هذه الحالة ، يمكنك استنساخ قرص vmdk بالأمر:

    Vmkfstools -i vmname.vmdk vmname-new-size.vmdk

    احذف القرص الأصلي واستنسخ قرص vmdk مرة أخرى ، وأعده إلى اسمه الأصلي:

    Rm vmname.vmdk rm vmname-flat.vmdk vmkfstools -i vmname-new-size.vmdk vmname.vmdk

  7. كل ما تبقى هو بدء تشغيل نظام التشغيل الضيف والتأكد من اختفاء المنطقة غير المخصصة.

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

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

ملحوظة... غالبًا ما تُستخدم المخططات التالية كطرق بديلة شائعة لضغط أقراص vmdk الافتراضية:

  • تقليل حجم القرص الظاهري عن طريق تحويل جهاز افتراضي باستخدام محول VMware vCenter (عند التحويل ، يُشار إلى حجم القرص الناتج على أنه أصغر من الأصلي)
  • استنساخ محتويات قرص افتراضي باستخدام برنامج الطرف الثالث(على سبيل المثال ، أكرونيس الصورة الحقيقيةأو Symantec Ghost32). يتم تنفيذ العملية عن طريق إضافة قرص جديد أصغر حجمًا إلى الجهاز الظاهري واستنساخ محتويات القرص الأكبر إليه. ثم تتم إزالة القرص الكبير.

تقليل حجم القرص الظاهري عن طريق التحويل باستخدام VMware vCenter Converter Standalone

هناك طريقة أخرى لتقليل حجم الأقراص الظاهرية في VMs على VMWare باستخدام واجهة المستخدم الرسومية وهي الاستخدام محول مجاني — .

عيب:

  • الطريق ليس سريعا
  • لا حاجة لفتح وحدة تحكم مضيف vCenter أو ESXi
  • يتم إنشاء نسخة طبق الأصل من الجهاز الظاهري
  • لن ينكسر المصدر إذا كان هناك خطأ في تعيين معلمات مهمة التحويل

فيما يلي إرشادات خطوة بخطوة

ملحوظةيجب أن يكون الجهاز الظاهري الذي سنقوم بتحويله (تغيير حجم الأقراص وما إلى ذلك) إيقاف.

إيقاف تشغيله.
أي قبل التحويل ، على الجهاز الظاهري الأصلي ، تحتاج إلى تشغيل: اغلقأو انقطاع التيار الكهربائي، لكن لا تعليق.

نحدد عنوان مضيف ESXi.

حدد المصدر VM.

نشير إلى معلمات VM الجديد.

انتقل إلى وضع تحرير القرص (البيانات المراد نسخها -> تحرير)

حدد وضع النسخ: حدد وحدات التخزين المراد نسخها

نشير إلى حجم القرص المطلوب في VM الجديد. كما ترى القرص في الضيف هو 48 جيجا بايت ، وحجم القرص نفسه 150. سنقوم بتصغيره إلى 60 جيجا بايت.



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

على عكس الإجراء الخاص بتوسيع قرص جهاز ظاهري VMWare ، والذي يمكن إجراؤه مباشرة أثناء التنقل ، فإن إجراء تقليل حجم ملف vmdk على برنامج Hypervisor VMWare ESXi يعد مهمة أكثر تعقيدًا ، ومن المستحيل من حيث المبدأ قم بتنفيذها مباشرة من خلال الواجهة الرسومية لعميل vSphere - ببساطة تحديد حجم أصغر لن يعمل.

ملحوظة

لاحظ أنه في احدث اصداربرنامج Microsoft Hypervisor - توجد تقنية لتغيير الحجم الديناميكي (كل من التوسع والانكماش) ​​للأقراص الافتراضية تسمى Hyper –V Online VHDX Resize.

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

قبل تنفيذ الإجراء الخاص بتقليل حجم القرص الظاهري على برنامج VMWare ESXi ، تأكد من:

    احذف جميع لقطات الجهاز الظاهري ، وإلا فقد تتلف القرص الظاهري

    قم بإنشاء ملف دعمجهاز ظاهري ، أو قم فقط بعمل نسخة من ملف vmdk المصغر باستخدام الأوامر:

cp vmname.vmdk backup_vmname.vmdk cp vmname-flat.vmdk backup_vmname-flat.vmdk

هناك خطوتان لتقليل حجم القرص الافتراضي:

    تقليص القسم داخل نظام التشغيل الضيف

    تقليل حجم ملف VMDK لجهاز ظاهري VMware

تقليص القسم داخل نظام التشغيل الضيف

تتمثل الخطوة الأولى في تقليل حجم قسم القرص داخل نظام التشغيل الضيف. يمكن القيام بذلك من إدارة الأقراص (عملية تقليص حجم الصوت ، المدعومة منذ Windows Vista) أو باستخدام أدوات مساعدة خارجية (مثل Acronis Disk Director). إذا لم تقم بذلك ، فقد ينتهي بك الأمر بنظام ملفات غير قابل للاستخدام بعد تقليص القرص الظاهري.

لنفترض أننا نريد تقليل حجم القرص بمقدار 19.5 جيجابايت. هذا يعني أنه يجب تقليل حجم وحدة التخزين بمقدار 19968 ميجابايت (19.5 جيجابايت × 1024). هذه هي القيمة التي تحتاج إلى إدخالها في حقل تقليص حجم المعالج. بعد تقليل حجم القسم ، ستبقى مساحة معينة على القرص الخاص بنا (في مثالنا ، 19.5 جيجابايت)

تقليل حجم ملف VMDK لجهاز ظاهري VMware

ننتقل إلى العملية الثانية - أقوم بتغيير حجم ملف VMDK مباشرة على نظام ملفات VMWare VMFS.

    قم بإيقاف تشغيل الجهاز الظاهري الذي تريد تقليل حجم قرصه الظاهري

    قم بالاتصال عبر SSH بوحدة التحكم الخاصة بـ ESXi hypervisor الذي تم تسجيل الجهاز الظاهري عليه

    غيّر إلى الدليل حيث يتم تخزين ملف VM vmdk (يمكن العثور على المسار في خصائص القرص الظاهري في عميل vSphere الرسومي):

cd / vmfs / volumes / datastore / VM-name

4. لنعرض محتويات ملف التكوين بامتداد * .vmdk باستخدام الأمر cat:

القط VM-name.vmdk

يتم تعيين حجم قرص vmdk في قسم الوصف #Extent (بعد رموز RW). في هذه الحالة يكون الرقم 83886080 (40 جيجا * 1024 * 1024 * 1024/512)

5. نريد تقليص حجم قرص vmdk من 40 إلى 20 جيجا بايت. هذا يعني أنه في قسم وصف النطاق ، تحتاج إلى تحديد القيمة: 41943040 (20 جيجابايت * 1024 * 1024 * 1024/512). قم بتعيين حجم جديد للقرص الظاهري باستخدام محرر نصوص (vi أو nano).

6. يبقى استنساخ أو ترحيل (Storage VMotion) الجهاز الظاهري إلى وحدة تخزين أخرى (مخزن بيانات). بعد نقل ملفات الجهاز الظاهري ، ستعرض خصائصه الحجم الجديد للقرص الظاهري.

إذا كان vCenter مفقودًا ، أو كان هناك تخزين VMFS واحد فقط ، فلن تكون هذه العمليات متاحة. في هذه الحالة ، يمكنك استنساخ قرص vmdk بالأمر:

vmkfstools -i vmname.vmdk vmname-new-size.vmdk

احذف القرص الأصلي واستنسخ قرص vmdk مرة أخرى ، وأعده إلى اسمه الأصلي:

rm vmname-flat.vmdk

vmkfstools -i vmname-new-size.vmdk vmname.vmdk

7. يبقى بدء تشغيل نظام التشغيل الضيف والتأكد من اختفاء المنطقة غير المخصصة.

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

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

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

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

ملحوظة... عند حذف البيانات في Windows (و Linux ، ينطبق هذا أيضًا) ، لا يملأ النظام المساحة المخصصة بالأصفار ، ولكنه ببساطة يحدد المناطق كما تم حذفها في البيانات الوصفية للقسم (يمكن استخدامها للكتابة). اتضح أن خادم ESXi لا يمكنه تحديد الكتل المعطاة له بشكل مستقل

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

في هذه المقالة سوف نصف طريقة سهلة لضغط قرص vmdk رقيق في ESXi.

  1. في المرحلة الأولى ، تحتاج إلى مساعدة برنامج Hypervisor بملء كل شيء مكان خالعلى الأقراص الموجودة داخل نظام التشغيل الضيف مع الأصفار. يمكنك صفر كتل مجانية في Windows باستخدام الأداة المساعدة SDelete الخاصة بـ Mark Rusinovich (في وقت كتابة هذا التقرير ، كانت آخر الإصدار المتاح SDelete v1.61 ، إذا كنت تستخدم إصدارًا سابقًا من SDelete ، فاعلم أنه قد يستخدم معلمات مختلفة قليلاً). يمكنك تنزيل SDelete من هنا: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx.

    فك ضغط الأرشيف على القرص ، وفتح سطر الأوامر(بالطبع مع حقوق المسؤول) وقم بتشغيل الأمر التالي

    sdelete –z c:

    في هذه الحالة ، c: هو قرص vmdk الرقيق الافتراضي الذي نخطط لتقليصه.

    في Linux ، يمكن عمل ذلك باستخدام dd

    Dd if = / dev / zero bs = 64k of = zero.temp ؛ جمهورية مقدونيا صفر

  2. قم بإيقاف تشغيل نظام التشغيل الضيف (إيقاف التشغيل).

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

  3. نتصل بخادم ESXi عبر SSH كجذر (لا تنس تمكين خدمة SSH والسماح بحركة المرور الواردة على جدار الحماية ESXi). انتقل إلى الدليل الذي يحتوي على ملفات الجهاز الظاهري:
    قرص مضغوط vmfs / مجلدات / تخزين 1 / vm1

    حيث Storage1 هو اسم التخزين ، و vm1 هو الدليل حيث يتم تخزين الملفات التي تحتوي على أقراص vmdk للجهاز الظاهري

  4. دعونا نعرض الحجم "الكامل" للقرص الظاهري.
    ls -lh * .vmdk

    يمكن العثور على الحجم "الحقيقي" للقرص الظاهري الذي يشغله على نظام الملفات على النحو التالي:

    دو –h * .vmdk

    كما ترى ، يستهلك القرص الرفيع مساحة تخزين تبلغ 33 جيجابايت (الحد الأقصى لحجمه هو 40 جيجابايت). علاوة على ذلك ، يتم احتلال 15 غيغابايت فقط داخل نظام تشغيل Windows Guest OS.

  5. ضغط قرص vmdk باستخدام vmkfstools. سيبدو أمر ضغط القرص الرقيق كما يلي:
    vmkfstools --punchzero /vmfs/volumes/storage1/vm1/vm1.vmdk

    استغرق إجراء الضغط في مثالنا حوالي 5 دقائق (السرعة مقابل حجم القرص وسرعة واستخدام التخزين و SAN). بعد الانتهاء من إجراء الضغط ، تحقق من الحجم الحالي لملف vmdk.

    كما ترى فقد تقلص قرص vmdk إلى 15 جيجا بايت!

ملحوظة... إذا كان هناك عدة أقراص ، فيجب تنفيذ هذا الإجراء لكل منها.