ฉันได้ติดตามบทช่วยสอนหลายบทที่พูดในสิ่งเดียวกันซึ่งโดยพื้นฐานแล้ว:

  1. หยุดอินสแตนซ์
  2. ถอดระดับเสียง
  3. สร้างสแนปชอตของโวลุ่ม
  4. สร้างวอลลุ่มที่ใหญ่ขึ้นจากสแนปชอต
  5. แนบโวลุ่มใหม่กับอินสแตนซ์
  6. เริ่มการสำรองอินสแตนซ์
  7. วิ่ง resize2fs /dev/xxx

อย่างไรก็ตาม ขั้นตอนที่ 7 คือจุดเริ่มต้นของปัญหา ไม่ว่าในกรณีใดการทำงานresize2fsมักจะบอกฉันว่า xxxxx บล็อกใหญ่อยู่แล้วและไม่ทำอะไรเลย แม้จะ-fผ่านไปแล้วก็ตาม ดังนั้นฉันจึงเริ่มดำเนินการกับบทช่วยสอนซึ่งโดยพื้นฐานแล้วพูดในสิ่งเดียวกัน นั่นคือ:

  1. ลบพาร์ติชั่นทั้งหมด
  2. สร้างมันขึ้นมาใหม่เป็นเหมือนเดิม ยกเว้นขนาดที่ใหญ่กว่า
  3. รีบูตอินสแตนซ์และเรียกใช้ resize2fs

(ฉันได้ลองทำตามขั้นตอนเหล่านี้แล้วทั้งจากอินสแตนซ์สดและโดยการแนบโวลุ่มกับอินสแตนซ์อื่นและเรียกใช้คำสั่งที่นั่น) ปัญหาหลักคืออินสแตนซ์จะไม่เริ่มต้นสำรองอีกครั้งและบันทึกข้อผิดพลาดของระบบที่ให้ไว้ในคอนโซล AWS ไม่ ไม่ให้ข้อผิดพลาดใด ๆ (อย่างไรก็ตาม มันหยุดที่ grub bootloader ซึ่งสำหรับฉันแสดงว่ามันไม่ชอบพาร์ติชั่น (ใช่ แฟล็กการบูตถูกสลับบนพาร์ติชั่นโดยไม่มีผลกระทบ)) สิ่งอื่นที่เกิดขึ้นโดยไม่คำนึงถึงสิ่งที่ฉันทำการเปลี่ยนแปลง พาร์ติชั่นคืออินสแตนซ์ที่แนบโวลุ่มเพื่อแจ้งว่าพาร์ติชั่นมีหมายเลขเวทย์มนตร์ที่ไม่ถูกต้องและซุปเปอร์บล็อกเสียหาย อย่างไรก็ตาม หากฉันไม่ทำการเปลี่ยนแปลงและแนบไดรฟ์ข้อมูลเข้าไปใหม่ อินสแตนซ์จะทำงานโดยไม่มีปัญหา

ใครสามารถให้ความกระจ่างเกี่ยวกับสิ่งที่ฉันอาจทำผิดได้บ้าง?


แก้ไข

ในไดรฟ์ข้อมูลใหม่ของฉัน 20GB พร้อมอิมเมจ 6GB df -hพูดว่า:

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            5.8G  877M  4.7G  16% /
tmpfs                 836M     0  836M   0% /dev/shm 

และfdisk -l /dev/xvdeพูดว่า:

Disk /dev/xvde: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7d833f39

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1               1         766     6144000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvde2             766         784      146432   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.

ยังsudo resize2fs /dev/xvde1พูดว่า:

resize2fs 1.41.12 (17-May-2010)
The filesystem is already 1536000 blocks long.  Nothing to do!
answer

ฉันจะใช้เส้นทางที่ปลอดภัยกว่า และดูเหมือนว่าคุณกำลังทำสิ่งที่ซับซ้อนอยู่แล้ว แนบโวลุ่มเก่ากับอินสแตนซ์ที่เปิดตัวด้วย Amazon Linux หรือ Ubuntu หรืออะไรก็ได้ที่คุณสะดวกใช้ ติดตั้งแบบอ่าน/เท่านั้น จากนั้นสร้างวอลลุ่มใหม่ที่ใหญ่กว่าที่คุณต้องการ แนบไปกับอินสแตนซ์เดียวกันที่จดหมายอุปกรณ์อื่น จัดรูปแบบโดยใช้ป้ายกำกับเดียวกัน (หรือ UUID เดียวกันหาก fstab ของคุณเมานต์โดย UUID ... ไม่จำเป็นจริง ๆ สำหรับสิ่งนั้นใน AWS แต่นั่นไม่รับประกันว่าจะไม่ทำ) เมานต์อ่าน-เขียน. คัดลอกโครงสร้างไฟล์จากโวลุ่มเก่าไปยังโวลุ่มใหม่ คุณสามารถใช้ cp หรือ rsync สำหรับสิ่งนั้น

คุณอาจต้องดำเนินการขั้นตอนอื่นเพื่อให้บูตได้หากคุณไม่ได้ใช้ PVGRUB "bootloader kernels" เพื่อโหลดเคอร์เนลจริงของคุณจากโวลุ่ม

อย่าลืมสร้างสแนปชอตของโวลุ่มเก่าก่อนหน้านี้ และสแนปชอตของโวลุ่มใหม่หลังจากนี้

โดยทั่วไป ปัญหาที่นี่คือ คุณกำลังพยายามเพิ่มขนาดของระบบไฟล์เพื่อเติมเต็มพาร์ติชั่น แต่พาร์ติชั่นก็ยังไม่ได้เพิ่มขนาดจริงๆ

เคล็ดลับที่นี่คือการติดตั้งสแน็ปช็อตของโวลุ่มไปยังอินสแตนซ์อื่น เช่น /dev/xdf จากนั้นใช้ parted หรือ fdisk เพื่อลบพาร์ติชั่นสว็อปที่ /dev/xdf2

parted /dev/xdf
rm 2

จากนั้นคุณสามารถปรับขนาดพาร์ติชั่นอื่นเพื่อเติมดิสก์

parted /dev/xdf
resize 1

จากนั้นใช้ค่าเริ่มต้นสำหรับพาร์ติชั่นเริ่มต้นและหมายเลขที่เหมาะสมสำหรับตำแหน่งสิ้นสุด จากนั้นสร้างพาร์ติชั่นสว็อปใหม่ หากคุณรัน resize2fs /dev/sdf มันควรจะเพิ่มขนาดของพาร์ติชั่น จากนั้น unmount ดิสก์นั้นและใช้เป็นไดรฟ์ข้อมูลรูทของอินสแตนซ์ใหม่

ปัญหาคือคุณใช้ AMI ที่แย่ซึ่งตั้งค่าพาร์ติชั่นสว็อป เครื่องเสมือนของ Amazon ไม่ต้องการพาร์ติชั่นสว็อป และบทช่วยสอนที่คุณติดตามจะถือว่าโวลุ่ม EBS ของคุณไม่ได้ถูกแบ่งพาร์ติชั่น ผมอยากแนะนำให้เริ่มต้นด้วยUbuntu AMI จาก Alestic.comหรือใช้Amazon ลินุกซ์ AMI

หากคุณต้องใช้ AMI ที่คุณใช้อยู่ต่อไป สิ่งที่คุณต้องทำคือลบพาร์ติชั่นสว็อปและปรับขนาดพาร์ติชั่น ext4 ด้วยfdiskจากนั้นคุณสามารถปรับขนาดระบบไฟล์ได้ การทำแบบนั้นค่อนข้างยาว ซับซ้อน และน่ากลัว และฉันไม่เคยทำมาก่อนเลยจะไม่อธิบายวิธีการทำ คุณสามารถหาคำแนะนำผ่าน Google ได้หากคุณกล้า