หยุดทำงานเพื่อเพิ่มพื้นที่เก็บข้อมูล AWS RDS หรือไม่


22

ฉันกำลังมองหาที่จะเพิ่มที่เก็บข้อมูลของอินสแตนซ์ RDS สองรายการ (เฉพาะพื้นที่เก็บข้อมูลที่จัดสรรไม่ใช่ประเภทของอินสแตนซ์หรือพารามิเตอร์อื่น ๆ ) เอกสารที่https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.ModifyingExistingแนะนำ:

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

แน่นอนฉันจะกำหนดเวลาการบำรุงรักษาหน้าต่างก่อนที่จะทำการเปลี่ยนแปลง แต่เอกสารดูเหมือนจะคลุมเครือเล็กน้อยในบริเวณนี้ สำหรับใครบางคนที่อาจเคยทำสิ่งนี้มาก่อน "การหยุดทำงานเพียงเล็กน้อยถึงไม่มีเลย" คืออะไร ฉันสามารถคาดหวัง 5 วินาทีหรือมากกว่า 5 นาที?

อัปเดตกรกฎาคม, 2019:

ฉันได้อัปเดตลิงก์ไปยังเอกสาร AWS ที่ถูกต้องและได้รับการอัปเดตแล้ว (ซึ่งเสีย) เอกสารที่ใหม่กว่ามีการประกาศแจ้งที่ช่วยตอบคำถามเดิมเช่นกัน:

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

อย่างไรก็ตามกรณีพิเศษคือถ้าคุณมีอินสแตนซ์ SQL Server DB และยังไม่ได้แก้ไขการกำหนดค่าการจัดเก็บตั้งแต่เดือนพฤศจิกายน 2017 ในกรณีนี้คุณอาจประสบปัญหาไฟดับในระยะเวลาไม่กี่นาทีเมื่อคุณปรับเปลี่ยนอินสแตนซ์ DB เพื่อเพิ่มการจัดสรร การเก็บรักษา หลังจากที่หยุดทำงานอินสแตนซ์ DB ออนไลน์ แต่อยู่ในสถานะ Storage-optimization ประสิทธิภาพอาจลดลงในระหว่างการเพิ่มประสิทธิภาพการจัดเก็บ

คำตอบ:


21

ครั้งแรกที่ทราบว่าคุณอาจจะมองที่การดำเนินการที่ไม่ถูกต้อง - คุณอธิบายว่าคุณต้องการที่จะจัดเก็บการเปลี่ยนแปลงขนาดแต่ได้ยกเอกสารที่อธิบายถึงการจัดเก็บข้อมูลประเภท นี่คือความแตกต่างที่สำคัญ: RDS แนะนำว่าคุณจะไม่ประสบปัญหาไฟดับสำหรับการเปลี่ยนขนาดพื้นที่เก็บข้อมูล แต่คุณจะได้สัมผัสกับไฟดับสำหรับการเปลี่ยนประเภทการจัดเก็บ

คาดว่าประสิทธิภาพที่ลดลงสำหรับการเปลี่ยนขนาดพื้นที่จัดเก็บระยะเวลาและผลกระทบที่จะขึ้นอยู่กับปัจจัยหลายประการ:

  • ประเภทอินสแตนซ์ RDS ของคุณ
  • องค์ประกอบ
    • สิ่งนี้จะเกิดขึ้นระหว่างการบำรุงรักษาหรือไม่?
    • การเปลี่ยนแปลงเหล่านี้จะเกิดขึ้นเป็นอันดับแรกใน Multi-AZ slave ของคุณหรือไม่
  • ขนาดฐานข้อมูลปัจจุบัน
  • ขนาดฐานข้อมูลผู้สมัคร
  • ความสามารถของ AWS ในการจัดการคำขอนี้ในเวลาที่คุณร้องขอ ณ โซนความพร้อมใช้งานที่ร้องขอของคุณในภูมิภาคที่คุณร้องขอ
  • ชนิดของเครื่องยนต์ (สำหรับผู้ใช้ Amazon Aurora การเพิ่มพื้นที่เก็บข้อมูลได้รับการจัดการโดย RDS ตามความต้องการโดยเพิ่มขึ้นทีละ 10 GB ดังนั้นการสนทนานี้จึงเป็นสิ่งที่ต้องพิจารณา)

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

  • การกู้คืนอินสแตนซ์ RDS ใหม่จากสแน็ปช็อตของอินสแตนซ์ที่มีอยู่ของคุณและทำการดำเนินการนี้กับโคลนใหม่
  • ด้วยโคลนนี้:
    • เพิ่มขนาดในช่วงเวลาที่แตกต่างกันของวันเมื่อคุณคาดว่าจะโหลดที่แตกต่างกันใน AWS
    • เพิ่มขนาดแตกต่างกัน
    • ลองด้วยมัลติ AZ ดูว่าการหยุดทำงานจริงของคุณเปลี่ยนไปหรือไม่เมื่อเทียบกับการไม่เปิดใช้งาน multi-AZ
    • ลองระหว่างการบำรุงรักษาและเปรียบเทียบกับการใช้การเปลี่ยนแปลงทันที

สิ่งนี้จะมีค่าใช้จ่ายอีกเล็กน้อย (ไม่จำเป็นต้อง ... คุณสามารถทำอย่างนั้นได้ใน 1-3 ชั่วโมงต่อชั่วโมง) แต่คุณจะได้รับคำตอบที่สะอาดกว่าการเร่ขายประสบการณ์ของเราใน RDS ที่แตกต่างกันมากมาย สภาพแวดล้อม

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

สำหรับการอ้างอิงฉันล่าสุดใช้การดำเนินการที่แน่นอนนี้เพื่อเพิ่ม 10GB เป็น 40GB db.m1.small ประเภทอินสแตนซ์ในบ่ายวันเสาร์ (ใน EST) อินสแตนซ์นี้ยังคงอยู่ในสถานะ "แก้ไข" เป็นเวลาประมาณ 17 นาที หมายเหตุว่ารัฐแก้ไขไม่ได้อธิบายถึงการหยุดทำงานจริง แต่ระยะเวลาที่ดำเนินการจะถูกนำมาใช้ คุณจะไม่สามารถใช้การเปลี่ยนแปลงเพิ่มเติมกับอินสแตนซ์ที่เกิดขึ้นจริง (แม้ว่าคุณจะยังสามารถเข้าถึงฐานข้อมูลของตัวเองได้) และนี่ก็เป็นช่วงเวลาที่คุณสามารถคาดหวังว่าการเสื่อมประสิทธิภาพจะเกิดขึ้น

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


ย่อหน้าสุดท้ายนั้นเป็นสิ่งที่ฉันทำ ที่ช่วยได้มาก ขอบคุณ!
Andy Shinn

3
ฉันใช้เวลามากกว่าหนึ่งชั่วโมงในการเพิ่ม 10GB ไปยัง 10GB m3.x ใหญ่ DB ที่ 3AM เมื่อแทบไม่มีปริมาณการใช้งาน
Neo

2
อีกหนึ่งดาต้าพอยน์ยืนยัน ~ เชิงเส้น ใช้เวลา 2 ชั่วโมง 50 นาทีในการเพิ่ม 100G ไปยังฐานข้อมูล 300G
Joan Smith

2
การเพิ่มความจุ 10G เป็น 100G ใช้เวลาเพียง 23 นาทีสำหรับฉันบน db.t2.small ด้วย General Purpose (SSD) และ MultiAZ โปรดทราบว่าหากคุณเพิ่มขนาดเนื่องจากฐานข้อมูลเต็มแล้วจะยังคงใช้งานไม่ได้จนกว่าการดำเนินการจะเสร็จสิ้น
davur

1
เพิ่มจาก 100 ถึง 200GB ของหน่วยความจำ PIOPS ภายใต้การโหลด ~ 10am แปซิฟิกใช้เวลาประมาณ 30 นาทีและไม่มีผลต่อปริมาณงาน / ความหน่วงแฝง (อ่าน / เขียน IOPS ถูกแทงอย่างมีนัยสำคัญในช่วงเวลานี้)
เทย์เลอร์ฮิวจ์

7

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

การอ้างอิงที่คุณอ้างถึงนั้นไม่ชัดเจนเนื่องจากเป็นการพูดถึงการเปลี่ยนประเภทของที่เก็บข้อมูลในเวลาเดียวกันกับที่กล่าวถึงการเปลี่ยนขนาดของที่เก็บข้อมูล หากคุณดู 'Allocated Storage' ในตารางแทนที่นี่:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html

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

สำหรับการอ้างอิงเมื่อเปลี่ยนฐานข้อมูล 15MB db.m3.medium MySQL เป็น 20GB ใน eu-west-1 ระหว่างวันทำการการเชื่อมต่อของแอพของฉันไปยังฐานข้อมูลนั้นไม่ขาดตอน อย่างไรก็ตามการอ่าน / เขียน IOPS ทั้งสองเพิ่มขึ้นเป็นระหว่าง 400-700 / s เพียงภายใต้ 20 นาทีดังนั้นการอ้างอิงถึงประสิทธิภาพที่ลดลงที่ฉันคิด สิ่งนี้ถูกรายงานสำหรับอินสแตนซ์ฐานข้อมูลทั้ง AZ เดี่ยวและหลาย AZ (อินสแตนซ์ถูกรายงานว่าเป็น 'การปรับเปลี่ยน' นานกว่านี้เล็กน้อย - ประมาณ 25 นาที)

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


1
การเปลี่ยนประเภทการจัดเก็บ (Magnetic <-> gp2 / IOPS ที่จัดสรร) จะส่งผลให้ไฟดับ การเพิ่มปริมาณการเปลี่ยน gp2 <-> IOPS ที่จัดเตรียมไว้หรือการปรับ IOPS ที่จัดเตรียมไว้ไม่ควรส่งผลให้ระบบดับ คุณไม่สามารถลดระดับเสียง
notpeter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.