ความพร้อมใช้งานสูงหลายเว็บไซต์


15

เรามีแอปพลิเคชัน SaaS ที่เราต้องการให้มีให้ใช้งานสูง เรามีคลัสเตอร์ล้มเหลว Hyper-V ที่มีราคาแพงและได้รับการบำรุงรักษาเป็นอย่างดี แต่วันนี้ศูนย์ข้อมูลที่เราโฮสต์นั้นมีไฟดับห้าชั่วโมงซึ่งทำให้เราออฟไลน์โดยสิ้นเชิง ตอนนี้เรากำลังสงสัยว่าวิธีการที่ดีกว่าอาจใช้เซิร์ฟเวอร์ที่ศูนย์ข้อมูลสองแห่งแยกกันหรือไม่ สมมติว่าเราได้รับการจำลองแบบไฟล์แบ็คเอนด์ทั้งหมดและการเรพลิเคทข้อมูลทำงานระหว่างสองไซต์นี้เราสงสัยว่าจะจัดการกับการกำหนดเส้นทางส่วนหน้าได้อย่างไร - ไม่น่าแปลกใจที่เราจัดการกับปัญหา จุดเดียวของความล้มเหลว

ดังนั้นคำถามคือ ... เราจะตั้งค่าการทำโหลดบาลานซ์ระหว่างสองเว็บไซต์ที่โฮสต์ได้อย่างไรซึ่ง load balancer ไม่ใช่จุดเดียวที่ล้มเหลว มีวิธีการใช้ตัวโหลดบาลานซ์สองตัวแยกกันหรือไม่ เราควรพิจารณา DNS แบบปัดเศษหรือไม่

คำตอบ:


14

หากต้องการทำสิ่งนี้อย่างถูกต้องคุณต้องมี:

  • อินสแตนซ์แยกสองรายการในสองดาต้าเซ็นเตอร์ (ตามที่คุณได้กำหนดไว้แล้ว)
  • การประสานข้อมูลระหว่างสองดาต้าเซ็นเตอร์ (ตามที่คุณได้กำหนดไว้แล้ว)
  • วิธีการส่งต่อไคลเอ็นต์จากที่หนึ่งไปอีกที่หนึ่งในกรณีที่เกิดความล้มเหลว

มีสองวิธีทั่วไปในการทำเช่นนี้ เรียบง่ายหนึ่งอัน ... ไม่

DNS

Round-Robin DNS ไม่ใช่สิ่งที่คุณต้องการเพราะโอกาสที่คุณต้องการให้คำขอทั้งหมดไปที่ DC หลักและ DC ที่สองจะถูกใช้เฉพาะในช่วงเวลาที่หยุดทำงานของครั้งแรก

สิ่งที่คุณสามารถทำได้คือตั้งค่า TTL ที่ต่ำมากบน DNS ของคุณ (เช่น 30 วินาทีหรือ 5 นาที) ซึ่งหมายความว่าถ้า DC ของคุณลงไปคุณแค่อัปเดต DNS ของคุณและภายใน 5 นาทีหรือทั้งหมด ลูกค้าของคุณจะชี้ไปที่ DC อื่น ๆ ของคุณ

ซึ่งหมายความว่าเนื่องจาก DC สองเครื่องของคุณจะมีเลย์เอาต์ IP ที่แตกต่างกันคุณจะต้องปรับเปลี่ยนในการตั้งค่าดาต้าเซ็นเตอร์

BGP

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

เราเตอร์ BGP ของคุณหยุดโฆษณาที่ดาต้าเซ็นเตอร์หลักของคุณและเริ่มการโฆษณาที่ดาต้าเซ็นเตอร์รองของคุณ จากนั้นอินเทอร์เน็ตจะกำหนดเส้นทางไปรอบ ๆ ศูนย์ข้อมูลออฟไลน์และส่งปริมาณข้อมูลไปยัง DC ใหม่ของคุณ


ถ้าคุณใช้เวอร์ชวลไลเซชันด้วย ESXi และ vSphere, VMWare มีผลิตภัณฑ์ที่ค่อนข้างดีที่เราทำการทดลองครั้งหนึ่งเรียกว่าVMWare Site Recovery Managerซึ่งโดยพื้นฐานแล้วทำทุกอย่างให้คุณ มันช่วยให้การกำหนดค่า VM ของคุณซิงค์และเพิ่มประสิทธิภาพให้กับไซต์ที่ 2 เมื่อไซต์ที่ 1 ออฟไลน์ มันเป็นเรื่องใหญ่มาก


แม้จะใช้ SRM คุณยังคงต้องได้รับการคัดลอกข้อมูลและ IP failover บางประเภท
EEAA

จริงแม้ว่า esxi5 จะมีผลิตภัณฑ์การจำลองแบบที่ไม่ใช่ซานใหม่ ฉันไม่ได้มองมันมากนัก
Mark Henderson

โอ้ถูกต้องแล้ว ฉันจำได้ว่าเคยได้ยินอะไรบางอย่างเกี่ยวกับเรื่องนั้น
EEAA

1

คุณต้องโหลดบาลานซ์บาลานซ์

คุณสามารถทำได้ด้วย DNS round-robin แต่วิธีการนั้นมีปัญหามากมาย คุณไม่สามารถควบคุมไคลเอนต์ที่แคชรายการนานกว่าที่คุณต้องการและคุณไม่สามารถบังคับให้ปริมาณการใช้ข้อมูลไปยังตำแหน่งที่แน่นอน

คุณสามารถทำได้ด้วย Global Server Load Balancing (GSLB) นี่เป็นวิธีขั้นสูงในการใช้ DNS เพื่อให้คุณสามารถมองเห็นศูนย์ข้อมูลหลายแห่งจากอินเทอร์เน็ต กล่าวโดยย่อคือคุณตั้งค่ากลไกบางอย่างเพื่อแยกทราฟฟิกเป็นชิ้น ๆ และใช้ DNS เพื่อเลือกชิ้น เราใช้แฮชของตัวแก้ไข DNS ที่กำหนดค่าให้ทำการค้นหาสำหรับไคลเอ็นต์ คนอื่น ๆ ใช้ภูมิศาสตร์เพื่อกำหนดเส้นทางไปยังศูนย์ข้อมูล "ใกล้เคียงที่สุด" คุณจะต้องเพิ่มกลไกบางอย่างเพื่อลบ IP ออกจาก GSLB อย่างรวดเร็วหากเกิดความล้มเหลวในจุดเดียวสำหรับศูนย์ข้อมูลหรือคลัสเตอร์นั้น

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

ในที่สุดผู้ใช้ขั้นสูงบางคนจัดการปัญหานี้กับ Anycast DNS นี่เป็นอีกครั้งที่พยายามจะใช้ประโยชน์จากแนวทางของศูนย์ข้อมูล "ใกล้เคียงที่สุด" การให้บริการของคุณหมายความว่าคุณจะต้องขจัด "สถานะทั้งหมด" สิ่งนี้อาจพิสูจน์ได้ยาก


ดูเหมือนว่าวิธีการนี้ยังคงมีจุดล้มเหลวเพียงจุดเดียว "เซิร์ฟเวอร์หลัก" ที่อธิบายไว้ในลิงก์ที่คุณให้ไว้
Mike

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