ฉันใช้ AWS เพื่อบู๊ตอินสแตนซ์ RHEL64 แต่ดิสก์ไม่สามารถปรับขนาดให้พอดีกับโวลุ่มที่ฉันเลือกได้

นี่คือสถานการณ์: ฉันเปิดใช้อินสแตนซ์ที่ทำงานอยู่จาก Marketplace AMI ami-517eec6b (ซึ่งเป็นอิมเมจ RHEL64 ที่ได้รับอนุมัติของ RedHat) และเลือกขนาดไดรฟ์ข้อมูลที่ว่า 30GB อินสแตนซ์เปิดตัวได้สำเร็จ แต่เอาต์พุต fdisk และ df ไม่ตรงกัน

เช่น df แสดงระบบไฟล์ที่รายงานเพียง 8GB (ขนาดเริ่มต้น)

$ df -h 
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      5.7G  2.3G  3.4G  41% /
none            1.8G     0  1.8G   0% /dev/shm

fdisk กำลังแสดงปริมาณเป็น 30gb ที่ถูกต้อง

$ sudo fdisk -l 

Disk /dev/xvda: 32.2 GB, 32212254720 bytes
4 heads, 32 sectors/track, 491520 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00072e87
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1               1       93750     5999984   83  Linux

ฉันคิดว่าฉันสามารถปรับขนาดระบบไฟล์นี้ได้ (ตามความคิดเห็นที่ฉันพบจากบทความอื่น ๆ ) แต่ดูเหมือนว่าจะใช้ไม่ได้ผล

$ sudo resize2fs /dev/xvda1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 1499996 blocks long.  Nothing to do!

นี่คือเวอร์ชัน O/S

$ uname -a 
Linux ip-10-100-155-254 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

ฉันเดาว่าฉันอาจจะแนบสิ่งนี้กับอินสแตนซ์อื่นและปรับขนาดระบบไฟล์ได้ แต่ฉันกังวลมากกว่าที่ AMI จะไม่สามารถตรวจจับโวลุ่มที่นำเสนอได้

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

เกิดอะไรขึ้นและฉันจะแก้ไขสิ่งนี้เมื่อบูตได้อย่างไร

ขอบคุณล่วงหน้า!

answer

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

ขั้นตอนที่จำเป็นคือ:

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

จึงพบสิ่งนี้ในการขุดของฉัน

ขออภัย นี่เป็นจุดบกพร่องที่ทราบใน RHEL/CentOS 6.5 AMI อย่างไรก็ตาม มีวิธีแก้ไขปัญหาชั่วคราวสองวิธีในการขยายระบบไฟล์ตามที่คุณร้องขอ:

คุณสามารถเมาต์โวลุ่มกับอินสแตนซ์อื่นและใช้ parted เพื่อขยายขอบเขตพาร์ติชั่นสำหรับโวลุ่มที่รูท FS เปิดอยู่ดังที่กล่าวไว้ในลิงค์ด้านล่าง: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ storage_expand_partition.html

คุณสามารถใช้โมดูล dracut growroot ซึ่งจะสร้าง initramfs ใหม่และขยายพาร์ติชั่นให้มีขนาดเท่ากับโวลุ่ม สามารถทำได้โดยใช้สิ่งต่อไปนี้:

  1. ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน EPEL repo และถ้าไม่เปิดใช้งาน repo ให้ทำดังนี้: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm - ฉัน epel-release-6-8.noarch.rpm

  2. สั่งให้ dracut สร้าง initramfs ใหม่ด้วยโมดูล growroot dracut:

    dracut --force --add growroot /boot/initramfs-$(uname -r).img

  3. รีบูทอินสแตนซ์และยืนยันว่าขนาดพาร์ติชั่นขยายโดยใช้ lsblk และ df คุณยังสงสัยว่าเหตุใด PV จึงไม่รองรับประเภทอินสแตนซ์ T2 ใหม่ ทั้งนี้เนื่องจาก PV ให้สิ่งที่เป็นนามธรรมระหว่างอินสแตนซ์และเลเยอร์ฮาร์ดแวร์ ซึ่งป้องกันไม่ให้เครดิต CPU ในประเภทอินสแตนซ์ T2 ทำงาน โดยทั่วไปแล้ว HVM เป็นเทคโนโลยีเวอร์ชวลไลเซชั่นทั่วไปที่เราใช้อยู่เนื่องจากชุดคำสั่งใหม่บน CPU ของ Intel ที่ PV ไม่รองรับ

หลังจากทำสิ่งนี้แล้วมันจะปรับขนาดใหม่เมื่อบูตตามที่ฉันต้องการ