วิธีเพิ่มขนาดของดิสก์บนอินสแตนซ์ที่ทำงานอยู่บน Amazon EC2


14

ฉันได้รับอินสแตนซ์ที่ทำงานอยู่ของการตั้งค่าเซิร์ฟเวอร์ EC 2 กับ Ubunto วิธีที่ดีที่สุดในการเพิ่มขนาดดิสก์โดยไม่มีการหยุดทำงานและความเสี่ยงน้อยที่สุดคืออะไร

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

คำตอบ:


14

Amazon AWS เพิ่งเปิดตัว (วันที่ 13 กุมภาพันธ์ 2017) ฟีเจอร์ใหม่ที่ช่วยให้สามารถเปลี่ยนขนาดของ EBS volume

แหล่งที่มา: https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

วิธีนี้ช่วยเพิ่มขนาดของ EBS volume ในอินสแตนซ์ที่มีอยู่ขณะที่กำลังทำงาน

เป็นสิ่งสำคัญที่จะต้องทราบว่าการเปลี่ยนขนาดเสียงไม่เปลี่ยนขนาดของระบบไฟล์บนโวลุ่ม (สำหรับระบบไฟล์ส่วนใหญ่) อาจจำเป็นต้องมีขั้นตอนเพิ่มเติม (ขึ้นอยู่กับระบบไฟล์) ในระบบปฏิบัติการเอง ตัวอย่างเช่น a resizefsบนext4ระบบไฟล์ที่ใช้โดย Linux OS ส่วนใหญ่ในปัจจุบัน

เอกสารฉบับเต็มจาก AWS ที่อธิบายกระบวนการสามารถดูได้ที่http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

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

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


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

@ Tensibai ขออภัยฉันไม่เข้าใจว่า "การบล็อกพาร์ทิชันทางกายภาพสำหรับการปรับขนาดที่ร้อนแรง" หมายถึงอะไร คุณหมายถึงว่าการแก้ไขขนาดโวลุ่มโดยใช้ AWS API จะบล็อกการเขียน / อ่านไปยังโวลุ่มหรือไม่?
Evgeny

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

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

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

2

สิ่งที่ฉันทำ (และนั่นไม่ใช่การตอบคำถามของคุณอย่างแน่นอน) มีดังนี้:

  1. สร้างโวลุ่ม EBS และแนบไปกับdocอินสแตนซ์อยู่ที่นี่
  2. สแกนบัส scsi อีกครั้งecho '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(คุณอาจต้องปรับหมายเลขโฮสต์)
  3. สร้างฟิสิคัลวอลุ่มด้วยpvcreateบนดิสก์ใหม่ที่พบ ( fdisk -lเพื่อแสดงรายการดิสก์ทั้งหมด)
  4. สร้างกลุ่มวอลุ่มจากนั้นโลจิคัลวอลุ่มบนมัน ( vgcreateและlvcreate)
  5. จัดรูปแบบโลจิคัลวอลุ่มด้วยระบบไฟล์ที่คุณต้องการ
  6. tar เป้าหมาย mountpoint เพื่อเรียกคืน
  7. เมานต์โวลุ่มนี้ที่คุณต้องการพื้นที่ใหม่
  8. คืนค่า tar ในพื้นที่ที่เพิ่งติดตั้งใหม่นี้

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

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


0

การปรับขนาดระบบไฟล์ ZFS Zero Downtime บน AWS (หรือที่อื่น ๆ )

Upsize

  1. ติดตั้ง ZFS บน EC2

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. สร้าง zpool สำหรับข้อมูลจำนวนมากของคุณโดยใช้ปริมาณ EBS
  3. เพิ่ม EBS อื่นเพื่อรับพื้นที่เก็บข้อมูลเพิ่มเติม (หรือตั้งค่า autoexpand = true และเพิ่ม EBS ของคุณ)
  4. เพิ่ม EBS ใหม่ลงใน zpool ของคุณเพื่อให้มีพื้นที่ว่าง (ยกเว้นว่าคุณใช้ autoexpand และเพิ่มขนาด EBS)

ลดขนาด

  1. สร้าง zpool ใหม่ด้วย EBS ใหม่ใหญ่พอที่จะเก็บข้อมูลที่หดได้ (ไม่จำเป็นต้องทำการติดตั้งหรือแม้แต่ใน EC2 เดียวกัน)
  2. ถ่ายภาพสวนสัตว์ที่ใหญ่เกินไป
  3. zfs- ส่งภาพรวมไปยัง zpool ใหม่
  4. โปรโมตสแน็ปช็อตที่ได้รับบนพูลใหม่และติดตั้ง
  5. ทำลายสระเก่า
  6. ทำลาย EBS ของสระว่ายน้ำเก่า

0

หลังจากปรับขนาดปริมาณ EBS นี่คือสิ่งที่ฉันเพิ่งดำเนินการเมื่อฉันต้องการขยายพูล ZFS:

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.