كيفية تقليص حجم * الجذر * EBS على AWS EC2 (Amazon Linux)

إذا سبق لك إنشاء وحدة تخزين EBS كبيرة بشكل خاص لمثيل EC2 عن طريق الخطأ ، فستلاحظ أن AWS لا تجعل من السهل تقليل حجم وحدة التخزين. انه ممكن! وليس هذا صعبًا. وستحتفظ بجميع بياناتك (وستتمكن من التمهيد مرة أخرى) ، مع توفير بعض المال. لكن عليك اتباع هذه الخطوات عن كثب:

  1. لديك مثيل EC2 موجود ، مع حجم جذر كبير جدًا. في هذا المثال ، لي 100GB. قم بتدوين معلومات منطقة المرفق والتوافر على وحدة التخزين الحالية:
وحدة التخزين الخاصة بي مرفقة حاليًا بـ / dev / sda1 ، وفي AZ us-west-2a.

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

مدافع ح

3. قم بالخروج ، وقم بإيقاف مثيلك ، إذا لم تكن بالفعل (من صفحة المثيلات).

3. قم بإنشاء لقطة لوحدة التخزين الكبيرة جدًا (من صفحة المجلدات):

لا تحذف هذه اللقطة على الأقل حتى تتحقق من أن كل شيء يعمل في النهاية. طالما كنت تحافظ على ذلك ، يمكنك دائمًا تكرار الخطوات.

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

5. قم بإنشاء وحدة تخزين جديدة تمامًا (وليس من لقطة) صغيرة بما يكفي لتلبية احتياجات قرش القرص ، وكبيرة بما يكفي للاحتفاظ ببياناتك مع مساحة لتجنيبها (انظر الخطوة 2):

في حالتي ، تشغل بياناتي 14 جيجا بايت ، لذلك سأحصل على 20 جيجا بايت.

6. يجب أن يكون لديك الآن ثلاثة مجلدات في قائمتك ، مع إرفاق مجلد واحد فقط بمثيلك:

7. قم بإرفاق المجلدين الجديدين اللذين قمت بإنشائهما للتو ، ولاحظ معلومات المرفقات لهذه:

لاحظ أن لي مرتبط بـ / dev / sdf و / dev / sdg. سوف تظهر هذه في Linux كـ / dev / xvdf و / dev / xvdg على التوالي.

8. قم ببدء المثيل الخاص بك من صفحة المثيلات ، و ssh في:

ssh -i [ssh_private_key] ec2-user @ ipv4-address

9. لمعرفة الأجزاء الموجودة وأي وحدات التخزين المثبتة حاليًا (يجب أن تكون فقط حجم الجذر الأصلي الآن) ، قم بتشغيل:

lsblk

(في حالتي ، يظهر هذا أن / dev / xvda يحتوي على قسم واحد على / dev / xvda1 والذي تم تثبيته على / ، / dev / xvdf به قسم واحد في / dev / xvdf1 ، و / dev / xvdg ليس به أقسام بعد)

11. قم بإنشاء جدول قسم ونظام ملفات جديد على وحدة التخزين المستهدفة (الأصغر) (لاحظ ، يوجد هنا أصغر وحدة التخزين الخاصة بي عند / dev / xvdg ؛ قد يكون حجمك مختلفًا):

sudo fdisk / dev / xvdg
wipefs
sudo fdisk / dev / xvdg
n [للقسم الجديد]
ع [للقسم الأساسي]
[قبول جميع الإعدادات الافتراضية عن طريق ضرب إدخال بشكل متكرر]
ث [للكتابة والاستقالة]

12. قم بتشغيل lsblk مرة أخرى للتحقق من إنشاء القسم الجديد على / dev / xvdg1.

12. قم بإنشاء نظام ملفات جديد على القسم الجديد لوحدة التخزين الهدف (الأصغر) ، وقم بتسمية نظام الملفات حتى يتمكن Linux من التعرف على القسم والتمهيد منه:

sudo mkfs.ext4 / dev / xvdg1
sudo e2label / dev / xvdg1 /

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

سودو mkdir / المصدر / الهدف
sudo mount -t ext4 / dev / xvdf1 / source
sudo mount -t ext4 / dev / xvdg1 / target
sudo rsync -HAXxSPa / المصدر / / الهدف
[ملحوظة! مهم جدا! لا يوجد "/" بعد / الهدف!

14. الخروج والعودة إلى وحدة التحكم AWS. توقف عن حالتك. انتقل إلى صفحة المجلدات ، وقم بفصل جميع المجلدات الثلاثة. الآن ، أعد حجم أصغر (هدفك) إلى / dev / xvda.

15. إقلع حالتك مرة أخرى. يجب أن تأتي بنجاح ، ولكن الآن مع حجم أصغر فقط المرفقة.

تاه-داه!

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

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

في صحتك،

أ