NFS อัตโนมัติล้มเหลวหรือโหลดบาลานซ์หรือทำคลัสเตอร์?


11

ฉันใช้NFS (และเป็นเพียงไฟล์เดียวที่ฉันรู้จักดีในไฟล์เครือข่าย)เป็นเวลาสองสามปี แต่ก็ยังไม่สามารถหา ..

  • วิธีทำให้NFSเซิร์ฟเวอร์ในการออกแบบเป็นกลุ่ม (หรือโหลดบาลานซ์)
  • หรืออย่างน้อยก็มีการปรับใช้บนเซิร์ฟเวอร์มากกว่าหนึ่งแล้วและ "Automatic Failover"

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


เนื่องจากฉันไม่ทราบวิธีการทำให้ถูกต้องจนถึงตอนนี้ฉันได้คิดค้นด้วยตัวเองคือ:

  1. NFS บนเซิร์ฟเวอร์ 2 เครื่อง
  2. RSYNC จากเซิร์ฟเวอร์อันดับที่ 1 (สันนิษฐานว่าเป็นโท) ไปยังเซิร์ฟเวอร์ที่ 2 อื่น
  3. จากเซิร์ฟเวอร์ของแอปพลิเคชัน (เว็บและอื่น ๆ ) ให้ใส่ a Shell Scriptเพื่อตรวจสอบสถานะที่สมบูรณ์ของจุดเมานต์เซิร์ฟเวอร์ NSF-Master จากนั้นหากต้องการให้ยกเลิกการต่อเชื่อมอัตโนมัติจากมัน (ออก) แล้วเมานต์อัตโนมัติจากที่สอง
  4. ฟังก์ชั่นหลักที่ฉันใช้ใน Shell Script อัตโนมัติของฉันคือnfsstat -m.. เพื่อตรวจสอบสถานะของจุดเชื่อมต่อ

(ฉันใช้Redhat )

แต่อย่างไรก็ตามฉันยังคงไม่คิดว่ามันเป็นวิธีที่ปลอดภัยและเป็นมาตรฐาน

คำตอบ:


8

บทช่วยสอนนี้, หัวข้อ: Highly Available NFS Cluster: Setup Corosync & Pacemakerแสดงวิธีตั้งค่า NFS active / active โดยใช้ NFS, Corosync, & Pacemaker หรือคุณสามารถทำตามคำแนะนำนี้ได้ที่: Highly Available NFS Storage พร้อม DRBD และ Pacemakerซึ่งแสดงการตั้งค่าแอ็คทีฟ / แอ็คทีฟโดยใช้ DRDB & Pacemaker

คุณอาจต้องการดูลิงค์อื่น ๆ เหล่านี้เพื่อทำความคุ้นเคยกับเทคโนโลยีและคำศัพท์ต่างๆ

ServerFault คำถามที่ถามบ่อยนี้ควรพิสูจน์ว่าเป็นประโยชน์กับระบบไฟล์ของ linux แบบคลัสเตอร์

การอ้างอิงเพิ่มเติม


@AndrewSavinykh - ลิงก์นั้นแสดงว่าคุณใช้งานอยู่หรือไม่ได้ใช้งานหากคุณกำลังมองหา
slm

5

นี่เป็นเพียงหนึ่งในหลาย ๆ วิธีที่ NFS sucks

ไม่มีวิธีที่จะทำเช่นนี้ได้เฉพาะกับ NFS จนถึงเวอร์ชัน 3 คุณจะต้องเพิ่มฟังก์ชันการทำงานด้วยตนเอง

นี่อาจหมายถึง:

  • การจำลองข้อมูลหรือที่เก็บข้อมูลที่ใช้ร่วมกันบางส่วน
  • การยึดทรัพย์สินทางปัญญา
  • การตรวจสอบการเต้นของหัวใจบางประเภท
  • การจัดการกลุ่ม

มีแพ็คเกจออกมีให้ทำทั้งหมดนี้ แต่คุณจะต้องรวมเข้ากับองค์กรของคุณ

โครงการ Linux HA ก่อตั้งขึ้นเมื่อหลายปีก่อนเพื่อนำสิ่งเหล่านี้มาใช้ http://www.linux-ha.org/

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

น่าสังเกต ... สาเหตุที่ใหญ่ที่สุดของความล้มเหลวของระบบ (โดยไกล) คือข้อผิดพลาดในการดูแลระบบและกลุ่ม HA โดยการกำหนดระบบที่ซับซ้อนและมีแนวโน้มที่จะเกิดข้อผิดพลาดของผู้ดูแลระบบมากขึ้น

ตกลงนอกเหนือจาก NFS v4, NFS v4 เริ่มใช้งานฟังก์ชั่นการปรับขนาดความปลอดภัยและความพร้อมใช้งานบางอย่างที่ AFS มีมานานกว่า 20 ปีมันไม่ได้มีการใช้งานอย่างสมบูรณ์หรืออย่างกว้างขวาง หากคุณใช้ NFS ให้เริ่มด้วย v4 และดูว่ามีอะไรบ้างที่นำไปใช้งานบนแพลตฟอร์มของคุณแล้ว


AFS นั้นยอดเยี่ยมมากและถูกลืมไปแล้ว ... +1 สำหรับการกล่าวถึงอย่างมีเกียรติ
แกล้ง

2

คุณไม่สามารถมี NFS เป็นคลัสเตอร์ที่ใช้งานอยู่เท่าที่ฉันรู้ ตอนนี้สำหรับ Active-Passive มีเครื่องมือบางอย่างที่ช่วยให้คุณประสบความสำเร็จ ฉันคุ้นเคยกับ Solaris OS และ Solaris Cluster ที่ให้ความเป็นไปได้ในการสร้างการแชร์ / การแบ่งปัน NFS ที่มีความพร้อมใช้งานสูงขึ้นอยู่กับวัตถุประสงค์ของคุณ

สิ่งหนึ่งที่คุณจะต้องมีคือที่เก็บข้อมูลที่ใช้ร่วมกันซึ่งสามารถย้ายจากเซิร์ฟเวอร์ A ไปยังเซิร์ฟเวอร์ B และในทางกลับกันในกรณีที่ต้องการ iSCSI หรือ SAN Storage และ IP ที่เกี่ยวข้องกับการแบ่งปัน NFS

คลัสเตอร์จะทำงานเช่นนี้ ในกรณีที่เซิร์ฟเวอร์ A ล้มเหลวเซิร์ฟเวอร์ B จะเปิดใช้งานการเชื่อมโยง IP กับเซิร์ฟเวอร์ NFS และเป็นเจ้าของดิสก์ที่ใช้ร่วมกันติดตั้งและเริ่มเซิร์ฟเวอร์ NFS ในกรณีที่เซิร์ฟเวอร์ B ล้มเหลวและเซิร์ฟเวอร์ A หยุดทำงาน

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

ลองดูที่นี่เพื่อRedhat


ฉันตั้งค่าคลัสเตอร์ NFS ที่แอ็คทีฟ / แอ็คทีฟโดยใช้ load balancer, CentOS, DRBD, GFS2 และ Pacemaker ดูคำตอบของฉันสำหรับข้อมูลเพิ่มเติม
doublesharp

2

ฉันตั้งค่าเซิร์ฟเวอร์ไฟล์ NFS คู่ซ้ำซ้อนในการกำหนดค่าแบบแอคทีฟ / แอคทีฟ "คู่หลัก" โดยใช้ load balancer, CentOS, NFS, DRBD (การจำลองแบบ), GFS2 (ระบบไฟล์คลัสเตอร์) และPacemaker (การจัดการคลัสเตอร์)

นี่คือคำแนะนำสำหรับการใช้งานที่ RackSpace แต่จะคล้ายกันในสภาพแวดล้อมอื่น ๆ

การติดตั้ง Howto DRBD ประถมคู่บน CentOS 6: GFS2 และผู้นำ


2

ผลิตภัณฑ์ Red Hat RHSS / RHGS (เซิร์ฟเวอร์ Red Hat Storage / Gluster) ทำสิ่งนี้ได้อย่างสมบูรณ์แบบโดยใช้ไคลเอนต์ GlusterFS ที่ใช้ FUSE เพื่อเชื่อมต่อ NFS กับพร็อกซีเซิร์ฟเวอร์ NFS กับเซิร์ฟเวอร์แบ็คเอนด์ที่ทำงานอยู่ โปร่งใสทั้งหมดไปยังฝั่งไคลเอ็นต์ นี่เป็นวิธีแก้ปัญหาที่ลื่นไหลสำหรับคุณ คุณสามารถติดตั้งโซลูชันของ EPEL / Extra RPM หรือซื้อจาก Red Hat ฝั่งไคลเอ็นต์คุณเพียงใช้ FUSE / glusterfs หรือ NFS เป็นชนิดเมานต์ใน fstab ไม่มีโควรัมยุ่งเหยิง / ฟันดาบประเด็นอะไรเลย


ฉันเห็นด้วยการทำงานได้ดีและการกำหนดค่านั้นง่าย
elbarna

1

นี่เป็นวิธีที่ดีเป็นพิเศษและเรียบง่ายวิธีการทดลองและทำงานได้ดี

https://www.howtoforge.com/high_availability_nfs_drbd_heartbeat

โดยส่วนตัวฉันชอบ lvs เพราะรวมฮากับการโหลดบาลานซ์ แต่ฉันได้ลองกับ nfs + gfs2 + drbd และทำงานได้ไม่ดีจริงๆ บางทีฉันต้องการวิธีการบางอย่าง แต่ฉันไม่พบใครเกี่ยวกับ lvs + nfs ha


แต่ฉันจะVirtual IPพูดถึงที่นั่นอย่างไรบนเซิร์ฟเวอร์? (ฉันไม่รู้)
夏期劇場

ฉันกำลังติดตั้งเซิร์ฟเวอร์ lvs สำหรับสร้าง virtualip ที่คุณต้องการ lvs และถ้าคุณต้องการมีเว็บอินเตอร์เฟสที่ดีที่เรียกว่า pirahna gui สำหรับสร้าง virtualip.Read pdf นี้ตัวอย่างเช่นguug.de/lokal/hamburg/talks/Linux -Terminal-Cluster-UNIHH.pdf
elbarna

ตอนนี้ฉันกำลังลองตั้งค่า lvs, virtualip..is ใกล้เป็นไปไม่ได้, เมื่อติดตั้ง nfs จากรีโมต, และเซิร์ฟเวอร์หนึ่งไม่ทำงาน, nfs ถูกบล็อกแม้ในเซิร์ฟเวอร์ตัวสุดท้ายและไคลเอนต์ระยะไกล
elbarna

ไม่มีทางเป็นไปไม่ได้ใช้งาน / ใช้งานคลัสเตอร์ที่มี nfs
elbarna

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