วิธีที่ดีที่สุดในการแชร์ไดเรกทอรีอัปโหลดไฟล์ข้ามเว็บเซิร์ฟเวอร์ในแนวนอน


9

ฉันกำลังพยายามระบุคลัสเตอร์ที่ปรับขนาดได้ในแนวนอนสำหรับเว็บแอพที่ใช้ drupal ซึ่งดูเหมือนแผนภาพที่มีสีสันด้านล่าง:

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

เซิร์ฟเวอร์แอปแต่ละตัวมีดังต่อไปนี้:

  • เคลือบเงาที่ด้านหน้า
  • drupal 6 ที่อยู่ตรงกลางวิ่งบนสแต็คหลอดไฟ
  • memcached ที่ด้านหลัง

เซิร์ฟเวอร์ฐานข้อมูล mysql สองตัวนั้นอยู่บน IP ที่ใช้ร่วมกันและอยู่ในคลัสเตอร์ HA ที่มี DRBD และ Hearbeat ดังนั้นการสูญเสียเซิร์ฟเวอร์ตัวใดตัวหนึ่งจะไม่ทำให้แพลตฟอร์มทั้งหมดพัง

ป้อนคำอธิบายรูปภาพที่นี่

มีบางสิ่งที่ฉันไม่แน่ใจเกี่ยวกับที่ฉันขอขอบคุณความคิดเห็นของคุณใน:

สเกลไฟล์ควรจัดเก็บในแนวนอนอย่างไร?

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

มีแนวทางใดบ้างที่ควรปฏิบัติตามเพื่อหาจำนวนเซิร์ฟเวอร์ที่ควรแบ่งปันไดเรกทอรีผ่าน NFS ด้วยวิธีนี้

HA ควรมีวิธีการอย่างไรในการจัดเก็บไฟล์ที่ใช้ร่วมกันที่นี่?

ปัญหาหนึ่งที่นี่คือเซิร์ฟเวอร์ NFS เป็นจุดเดียวของความล้มเหลว

เรากำลังใช้ Heartbeat และ DRBD บนเซิร์ฟเวอร์ Mysql และฉันต้องการเก็บจำนวนเทคโนโลยีที่เกี่ยวข้องในสแต็กให้น้อยที่สุดเท่าที่จะเป็นไปได้ - สิ่งที่ผิดพลาดจะเกิดขึ้นถ้าฉันใช้กลยุทธ์ HA เดียวกันสำหรับไฟล์ เซิร์ฟเวอร์ด้วยหรือไม่

วิธีการทางเลือก

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

ระบุว่า

  • มีการ จำกัด ปริมาณการใช้ข้อมูลที่เราคาดหวังได้
  • การเพิ่มการเพิ่ม HA ลงในไฟล์เซิร์ฟเวอร์และการออกแบบการตั้งค่าเพื่อปรับขนาดตามแนวนอนเช่นนี้ทำให้เกิดความซับซ้อนมาก

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

  • ไฟล์เหล่านั้นยังคงซิงค์กันอยู่ (เซสชันปักหมุดให้ผู้ใช้บนเซิร์ฟเวอร์เดียวกับที่พวกเขาอัปโหลดไฟล์ไป)
  • การสูญเสียหนึ่งหมายถึงไซต์ยังคงทำงานอยู่

เสียงนี้เป็นวิธีที่เป็นไปได้ในการแก้ปวดหัวที่ซับซ้อนของ NFS / DRBD HA หรือไม่?

ขอบคุณ

คำตอบ:


3

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

ข้อเสนอแนะของฉันจะเน้นการเขียนทั้งหมดในหนึ่งในเซิร์ฟเวอร์แอป (อาจมีเซิร์ฟเวอร์แอปหนึ่งที่ทุ่มเทเพื่อเขียนบนเซิร์ฟเวอร์ NFS) และเซิร์ฟเวอร์แอปสำหรับเครื่องอ่านจำนวนมากติดตั้งอ่านอย่างเดียว (ฉันรู้ว่า drupal มีภาพขนาดย่อบางส่วนที่จำเป็น เขียน แต่คุณสามารถใช้ประโยชน์สูงสุดจาก RO fs) คุณจะต้องใช้เซิร์ฟเวอร์ NFS อย่างน้อยสองเครื่อง (การใช้ DRBD เป็นตัวเลือกที่ดีที่สุดที่นี่หากคุณไม่มีที่เก็บข้อมูลที่ใช้ร่วมกันเช่น SAN) เพื่อให้แน่ใจว่า HA

สุดท้ายให้ดูที่ Gluster และระบบกระจายอื่น ๆ


0

คุณสามารถลอง mogileFS ฉันใช้มันเป็นหนึ่งในโครงการของเรา มันใช้งานง่ายและกำหนดค่าและสามารถปรับขนาดและไม่มีจุดล้มเหลวเดียว

http://danga.com/mogilefs/


0

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

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

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