การเติบโตขนาดปริมาณ Amazon EBS [ปิด]


154

ฉันค่อนข้างประทับใจกับบริการ EC2 และ EBS ของ Amazon ฉันต้องการทราบว่าเป็นไปได้ไหมที่จะเพิ่มปริมาณ EBS

ตัวอย่างเช่น: หากฉันมีปริมาณ 50 GB และฉันเริ่มมีพื้นที่เหลือฉันสามารถชนได้ถึง 100 GB เมื่อต้องการหรือไม่


2
ฉันได้เขียนบทช่วยสอนเพื่อเพิ่มขนาดของปริมาณ ebs ของคุณที่ - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik

8
เป็นคำถามที่ดี (+1) เหมาะกว่าสำหรับ Server Fault หรือไม่
Jonik

1
โปรดอัปเดตคำตอบนี้เพราะมันทันสมัยมากขึ้น: stackoverflow.com/a/15229477/163461
David

1
@ Jonik ฉันเห็นด้วยทั้งหมด สำหรับผู้ที่สามารถ (และเห็นด้วย) โปรดลงคะแนนเพื่อเปิดคำถามนี้อีกครั้งเพื่อให้สามารถโยกย้ายได้ เว้นแต่จะมี mod ที่อ่านสิ่งนี้สามารถทำเช่นเดียวกันได้หรือไม่?
Yuck

นี้ควรจะถูกย้ายไปยังเซิร์ฟเวอร์ผิดถ้าไม่มีเหตุผลอื่นมากกว่าที่จะช่วยให้คำตอบที่เป็นปัจจุบันมากขึ้น (เช่นหนึ่งที่เอกสารอ้างอิง AWS ในหัวข้อนี้ได้ที่docs.aws.amazon.com/AWSEC2/latest/UserGuide/... )
Jeromy ฝรั่งเศส

คำตอบ:


9

คำแนะนำที่ดีทั้งหมดและฉันคิดว่าฉันจะเพิ่มบทความนี้ที่ฉันพบซึ่งเกี่ยวข้องกับการขยายอินสแตนซ์ EBS ของ Windows Amazon EC2 โดยใช้เครื่องมือ Amazon Web UI เพื่อทำการเปลี่ยนแปลงที่จำเป็น หากคุณไม่สะดวกในการใช้ CLI สิ่งนี้จะทำให้การอัพเกรดของคุณง่ายขึ้นมาก

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

ขอบคุณ TekGoblin ที่โพสต์บทความนี้


103

คุณสามารถเพิ่มพื้นที่เก็บข้อมูลได้ แต่ก็ไม่สามารถทำได้ในทันที คุณจะต้องใช้สแนปชอตของบล็อกปัจจุบันเพิ่มบล็อกใหม่ที่ใหญ่กว่าและแนบสแนปชอตของคุณอีกครั้ง

มีคำแนะนำง่ายๆที่นี่โดยใช้เครื่องมือบรรทัดคำสั่ง EC2 ของ Amazon


2
คุณจะต้องปรับขนาดระบบไฟล์ด้วย คุณอาจกำลังมองหา "resize2fs - ตัวแก้ไขระบบไฟล์ ext2 / ext3 / ext4"
James Moore

8
ฉันเพิ่งไปที่ Google สิ่งนี้ ฉันตอบคำถามนี้และวิดีโอนี้ในเวลาเดียวกัน นี่เป็น walk Walk ที่ยอดเยี่ยมจริงๆขอบคุณมากสำหรับผู้สร้าง: youtube.com/watch?v=ouYjQ3_I3BA (ฉันคิดทุกอย่างด้วยตัวเองยกเว้นบิตตัวปรับขนาดใหม่อย่าง James Moore ที่กล่าวถึง)
Chris Allen Lane

นอกจากนี้ยังมีวิธีการตั้งค่า EBS ปริมาณขนาดใช้ AWS-SDKโดยการสอบถามครั้งแรก VolumeSize ของภาพรวมของตนเป็นหนึ่งของความยืดหยุ่นในประโยชน์โดยใช้ EBS
Chetabahana

คุณสามารถจริงปรับขนาดปริมาณการอยู่ในขณะนี้จากคอนโซล AWS ดูเหมือนว่าจะทำงานกับอินสแตนซ์ของ SSD (gp2, io1) เท่านั้นและคุณสามารถสลับจากประเภทหนึ่งเป็นประเภทอื่นได้ ฉันไม่แน่ใจว่าเมื่อมันถูกเพิ่มเข้ามา แต่นี่เป็นการแก้จุดปวดที่สำคัญ
STRML

44

คุณไม่สามารถ 'ชน' พื้นที่มากขึ้นในทันทีหากคุณต้องการ แต่คุณสามารถปรับขนาดพาร์ติชันด้วยภาพรวม

ขั้นตอนต่อไปนี้:

  1. unmount ปริมาณ ebs
  2. สร้างสแน็ปช็อต ebs
  3. เพิ่มปริมาณใหม่ที่มีพื้นที่มากขึ้น
  4. สร้างตารางพาร์ติชันขึ้นใหม่และปรับขนาดระบบไฟล์
  5. กำหนดปริมาณ ebs ใหม่

ดูhttp://aws.amazon.com/ebs/ - EBS Snapshot:

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


22

ฉันทำตามคำตอบทั้งหมดมีบางอย่างขาดหายไปด้วยความเคารพ

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

เราไม่ได้แตะระดับเสียงรูทที่นี่

ไปที่คอนโซล AWS ของคุณ:

  1. ปิดอินสแตนซ์ของคุณ (จะใช้เวลาสองสามนาทีเท่านั้น)
  2. ถอดโวลุ่มที่คุณวางแผนจะเติบโต (พูด / dev / xvdf)
  3. สร้างสแน็ปช็อตของไดรฟ์
  4. สร้างวอลลุ่มใหม่ที่มีขนาดใหญ่ขึ้นโดยใช้สแนปชอตที่คุณเพิ่งสร้างขึ้น
  5. แนบโวลุ่มใหม่เข้ากับอินสแตนซ์ของคุณ
  6. เริ่มอินสแตนซ์ของคุณ

SSH สำหรับอินสแตนซ์ของคุณ:

 $ sudo fdisk -l

สิ่งนี้ให้สิ่งที่คุณต้องการ:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

จดบันทึกStart and Idค่า(ในกรณีนี้ 2048 และ 83)

ใช้ fdisk ลบพาร์ติชัน xvdf1 และสร้างพาร์ติชันใหม่ที่เริ่มต้นจากบล็อกเดียวกัน (2048) เราจะให้รหัสเดียวกัน (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

ขั้นตอนนี้อธิบายได้ดีที่นี่: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

เกือบเสร็จแล้วเราเพียงแค่ติดตั้งวอลลุ่มและรัน resize2fs:

กำหนดปริมาณ ebs: (ของฉันอยู่ที่ / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

และปรับขนาด:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

ทำ! ใช้df -hเพื่อตรวจสอบขนาดใหม่


19

ตราบใดที่คุณยังโอเคกับการหยุดทำงานไม่กี่นาที Eric Hammond ได้เขียนบทความที่ดีเกี่ยวกับการปรับขนาดรูตดิสก์บนอินสแตนซ์ EBS ที่ใช้งานอยู่: http://alestic.com/2010/02/ec2-resize-running-ebs -ราก


1
แรงบันดาลใจจากสิ่งนี้ฉันเริ่มเขียน "awscripts", @ github.com/moejay/awscriptsมันมีคำสั่งของ Eric รวมถึงคนที่จะเปลี่ยนประเภทของอินสแตนซ์ด้วยสคริปต์ 'crontabbable' ที่ง่าย
jay

5

ตอนนี้คุณสามารถทำได้ผ่าน AWS Management Console กระบวนการเหมือนกันกับคำตอบอื่น ๆ แต่คุณไม่จำเป็นต้องไปที่บรรทัดคำสั่งอีกต่อไป


7
คุณสามารถโพสต์ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งนี้ผ่านเว็บคอนโซลได้หรือไม่? คอนโซลอาจปรับขนาดไดรฟ์ข้อมูล แต่จะจัดการกับการปรับขนาดพาร์ติชันภายในไดรฟ์ข้อมูลได้อย่างไรโดยเฉพาะอย่างยิ่งหากเป็นประเภทเช่น XFS, BRTFS เป็นต้น
Riyad Kalla

สิ่งนี้ควรเป็นความคิดเห็นเนื่องจากเป็นการเพิ่มคำตอบที่มีอยู่เท่านั้นและไม่ได้เพิ่มสิ่งใหม่ในตัวมันเอง
Yuck

1
คำแนะนำในการใช้เว็บคอนโซลมีอยู่ที่นี่: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov

4

BTW: เช่นเดียวกับดิสก์ทางกายภาพมันอาจจะสะดวกในการใช้ LVM อดีต:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

ข้อได้เปรียบที่ยิ่งใหญ่: มันช่วยให้การเพิ่ม (หรือลบ) พื้นที่แบบไดนามิก

นอกจากนี้ยังสามารถเคลื่อนย้ายได้อย่างง่ายดายระหว่าง / ระหว่างอินสแตนซ์

คำเตือน:

  • จะต้องกำหนดค่าล่วงหน้า
  • การตั้งค่า JBOD อย่างง่ายหมายความว่าคุณสูญเสียทุกสิ่งหากคุณทำ "ดิสก์" หนึ่งแผ่น

4

ขั้นตอนของฉัน:

  1. หยุดอินสแตนซ์
  2. ค้นหาวอลุ่ม ebs ที่แนบกับอินสแตนซ์และสร้างสแน็ปช็อตของมัน
  3. สร้างโวลุ่มใหม่ด้วยพื้นที่ดิสก์ที่ใหญ่กว่าโดยใช้สแน็ปช็อตด้านบน น่าเสียดายที่ UI บนคอนโซล aws เพื่อสร้างสแนปชอตนั้นแทบจะใช้ไม่ได้เพราะมันแสดงสแน็ปช็อตทั้งหมดใน aws การใช้เครื่องมือบรรทัดคำสั่งนั้นง่ายกว่ามากเช่นนี้

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. แยกปริมาณ ebs ที่มีอยู่ (เล็กกว่า) ออกจากอินสแตนซ์

  5. แนบไดรฟ์ข้อมูลใหม่ (ใหญ่กว่า) ลงในอินสแตนซ์และตรวจสอบให้แน่ใจว่าได้แนบกับอุปกรณ์เดียวกันกับที่อินสแตนซ์คาดหวัง (ในกรณีของฉันคือ / dev / sda1)
  6. เริ่มอินสแตนซ์

คุณทำเสร็จแล้ว!

นอกเหนือจากขั้นตอนที่ 3 ข้างต้นคุณสามารถทำทุกอย่างได้โดยใช้คอนโซลการจัดการ aws

ทราบด้วยดังที่กล่าวไว้ที่นี่:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

อุปกรณ์บนอินสแตนซ์ ec2 ของคุณอาจเป็น / dev / xv * ในขณะที่ aws เว็บคอนโซลบอกคุณว่าเป็น / dev / s *


2
ตั้งแต่เดือนพฤศจิกายน 2556 คุณสามารถเลือกสแน็ปช็อตที่สร้างขึ้นใหม่จากนั้นคลิก 'สร้างปริมาณ' ที่ด้านบนของหน้า สิ่งนี้จะสร้างวอลลุ่มจากสแนปชอตและคุณสามารถหลีกเลี่ยงการทำขั้นตอนที่ 3 ด้านบนจากบรรทัดคำสั่ง
Matt C

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

3

ใช้คำสั่ง "diskpart" สำหรับ Windows OS ดูที่นี่: ใช้http://support.microsoft.com/kb/300415 ต่อไปนี้เป็นขั้นตอนที่ฉันติดตามสำหรับดิสก์ที่ไม่ใช่รูท (ดิสก์พื้นฐานไม่ใช่ไดนามิก)

เมื่อคุณถ่ายสแนปชอตแล้วให้ยกเลิกการปรับระดับเสียง EBS เก่า (กล่าวคือ 600GB) และสร้างโวลุ่ม EBS ที่ใหญ่ขึ้น (พูด 1TB) และติดตั้งไดรฟ์ EBS ใหม่นี้ - คุณต้องแจ้งให้ Windows ทราบถึงการปรับขนาด (จาก 600GB ถึง 1TB) ที่ command prompt (เรียกใช้ในฐานะผู้ดูแลระบบ)

Diskpart.exe

เลือกดิสก์ = 9

เลือกระดับเสียง = Z

ต่ออายุ

[ดิสก์ 9 ของฉัน, ไดรฟ์ข้อมูล Z, เป็นไดรฟ์ข้อมูลขนาด 1TB ที่สร้างจากสแน็ปช็อต ec2 ขนาด 600GB - ฉันต้องการปรับขนาด 600GB เป็น 1TB และสามารถทำตามขั้นตอนด้านบน]


ทำงานได้ดีเยี่ยมสำหรับระบบ Datacenter Win Server 2003 R2 ของฉัน ขอบคุณสำหรับทิป!
Jeff Hay

โพสต์ที่ยอดเยี่ยมช่วยฉันมาก!
user1326293

0

ฉันขอแนะนำ Logical Volume Manager (LVM) สำหรับ EBS ทั้งหมดหากระบบปฏิบัติการของคุณรองรับ ลีนุกซ์รุ่นลีนุกซ์มักจะทำ มันยอดเยี่ยมด้วยหลายสาเหตุ

  1. การปรับขนาดและการเคลื่อนย้ายของโลจิคัลวอลุ่มสามารถทำได้สดได้ดังนั้นแทนที่จะเปลี่ยนเป็นสแนปช็อตออฟไลน์ทั้งหมดซึ่งต้องการการหยุดทำงานคุณสามารถเพิ่มสร้าง EBS ที่มีขนาดใหญ่กว่าเดิมเพิ่มเข้าไปในพูล LVM โลจิคัลวอลุ่ม (LV) ให้ลบฟิสิคัลวอลุ่มเก่าออกจากพูลและลบวอลุ่ม EBS เก่า จากนั้นคุณปรับขนาดโลจิคัลวอลุ่มและปรับขนาดระบบไฟล์บน สิ่งนี้ไม่จำเป็นต้องหยุดทำงานเลย!

  2. มันเป็นนามธรรมเก็บข้อมูลของคุณจากอุปกรณ์ 'ทางกายภาพ' ของคุณ การเคลื่อนย้ายพาร์ติชั่นข้ามอุปกรณ์โดยไม่จำเป็นต้องหยุดทำงานหรือเปลี่ยนเป็นจุดเมานท์ / fstab นั้นมีประโยชน์มาก

มันจะดีถ้า Amazon จะทำให้สามารถปรับขนาดปริมาณ EBS ได้ทันที แต่ด้วย LVM ไม่จำเป็นต้องทำเช่นนั้น


0

หากปริมาณรูทของคุณคือระบบไฟล์ xfs ให้รันคำสั่งนี้ xfs_growfs /


ต้องมีรายละเอียดเพิ่มเติมเล็กน้อยเพื่อพิจารณาคำตอบที่สมบูรณ์และใช้งานได้
Yuck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.