สร้างคลัสเตอร์ Nextcloud ที่ทนทานด้วย Galera

สร้างคลัสเตอร์ฐานข้อมูลก่อน จากนั้นวางโหนดแอปพลิเคชัน Nextcloud ที่เหมือนกันหลายๆ โหนดไว้ด้านหลังโหลดบาลานเซอร์ที่ตรวจสอบสถานะแล้ว สำหรับการตั้งค่าที่เสถียร โหนดแอปพลิเคชันทั้งหมดต้องใช้พื้นที่จัดเก็บไฟล์ที่ทนทาน การกำหนดค่า บริการล็อก Redis หรือ Valkey เดียวกัน และปลายทางฐานข้อมูลที่กำหนดเส้นทางการเขียนไปยังสมาชิก Galera ที่มีสุขภาพดีเท่านั้น คู่มือการดูแลระบบปัจจุบันของ Nextcloud ระบุว่า MariaDB เป็นฐานข้อมูลที่รองรับ แต่ไม่ได้เผยแพร่สูตรการปรับใช้เฉพาะสำหรับ Galera ตรวจสอบเวอร์ชัน Nextcloud, MariaDB, Galera และพร็อกซีที่แน่นอนกับผู้จำหน่ายก่อนใช้งานจริง

ณ วันที่ 9 ตุลาคม 2026 หน้าข้อกำหนดระบบของ Nextcloud 35 ระบุว่ารองรับ MariaDB เวอร์ชัน 10.11, 11.4, 11.8 และ 12.3 โดยเวอร์ชัน 12.3 ระบุว่าเป็นเวอร์ชันที่แนะนำ นี่เป็นเพียงรายการเวอร์ชันฐานข้อมูลของ Nextcloud ไม่ใช่การรับประกันว่า Galera หรือพร็อกซีทุกเวอร์ชันจะได้รับการรับรอง ควรเริ่มต้นด้วยการตรวจสอบข้อกำหนดระบบของ Nextcloud 35และตารางการสนับสนุน Galera ของ MariaDB เวอร์ชันที่คุณใช้

1. กำหนดขอบเขตความล้มเหลว

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

วางแผนส่วนประกอบเหล่านี้ก่อนทำการติดตั้ง:

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

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

2. ติดตั้งและตรวจสอบความถูกต้องของ MariaDB Galera ก่อน

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

Nextcloud ต้องการ InnoDB และREAD-COMMITTEDระดับการแยกธุรกรรมสำหรับ MySQL หรือ MariaDB หน้าฐานข้อมูลของ Nextcloud ปัจจุบันยังแนะนำให้ใช้การบันทึกแบบไบนารีตามแถว (row-based binary logging) ตรวจสอบค่าต่างๆ บนโหนดฐานข้อมูลทุกโหนด ไม่ใช่เฉพาะโหนดที่รับการรับส่งข้อมูลในปัจจุบันเท่านั้น ดูข้อกำหนดการกำหนดค่า MariaDB ของ Nextcloud

ก่อนเชื่อมต่อ Nextcloud ให้ตรวจสอบสถานะคลัสเตอร์บนแต่ละโหนด ตัวอย่างเช่น รันคำสั่ง `cluster state` SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';และ `cluster state` SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';คลัสเตอร์ควรรายงานPrimaryส่วนประกอบ ขนาดคลัสเตอร์ที่คาดหวัง และโหนดใน สถานะต่างๆ MariaDB อธิบายว่า Quorum ต้องการสมาชิกมากกว่าครึ่งหนึ่งของจำนวนสมาชิกที่ทราบล่าสุดในคลัสเตอร์ ดังนั้นคลัสเตอร์สามโหนดจึงสามารถทนต่อการสูญเสียโหนดได้หนึ่งโหนด ไม่ใช่สองโหนด โปรดSyncedตรวจสอบคำแนะนำเกี่ยวกับ Quorum และการกู้คืน ของ MariaDB ด้วย

3. เพิ่มเอนด์พอยต์ฐานข้อมูลที่ตรวจสอบสถานะสุขภาพให้กับ Nextcloud

กำหนดค่า Nextcloud ให้เชื่อมต่อกับที่อยู่พร็อกซีฐานข้อมูลที่เสถียร ไม่ใช่เชื่อมต่อกับรายการที่อยู่ IP ของ Galera แบบวนรอบ แม้ว่า Galera จะจำลองการเขียนข้อมูลทั่วทั้งคลัสเตอร์ แต่แอปพลิเคชันยังคงต้องการการจัดการธุรกรรมที่คาดการณ์ได้ พร็อกซีที่ตรวจสอบการเป็นสมาชิกของ Galera สามารถหยุดการกำหนดเส้นทางไปยังโหนดที่ไม่พร้อมใช้งานหรือไม่ซิงโครไนซ์ และเลือกโหนดสำหรับการเขียนได้ MariaDB MaxScale's Galera Monitorเป็นหนึ่งในตัวเลือกที่มีเอกสารระบุไว้ พฤติกรรมที่แน่นอนและโหมดการกำหนดเส้นทางที่รองรับนั้นขึ้นอยู่กับเวอร์ชันและการกำหนดค่าของ MaxScale

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

4. ทำให้โหนดแอปทุกตัวมองเห็นอินสแตนซ์ Nextcloud เดียวกัน

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

กำหนดค่าโหนดแอปพลิเคชันทั้งหมดให้ใช้บริการ Redis หรือ Valkey เดียวกันสำหรับแคชแบบกระจายและการล็อกไฟล์ แคชภายในเครื่อง เช่น APCu สามารถคงไว้ในโหนดเดียวได้ แต่memcache.distributedต้องmemcache.lockingชี้ไปยังบริการทั่วไป ไม่ใช่ของแต่ละเซิร์ฟเวอร์localhostตัวอย่างเช่น การกำหนดค่า Redis ของ Nextcloud สามารถใช้'memcache.locking' => '\OC\Memcache\Redis'และโฮสต์ Redis ที่ใช้ร่วมกันใน การกำหนดค่าได้ ปฏิบัติตาม คู่มือการกำหนดค่าแคชและคู่มือการล็อกไฟล์แบบทำธุรกรรมฉบับredisปัจจุบันMemcached ไม่เหมาะสมสำหรับการล็อกไฟล์แบบทำธุรกรรมของ Nextcloud

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

5. ทดสอบระบบสำรองก่อนที่จะเรียกมันว่าระบบที่มีความพร้อมใช้งานสูง

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

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

การสูญเสีย Quorum เป็นเพียงการหยุดเพื่อความปลอดภัย ไม่ใช่หลักฐานว่าข้อมูลหายไปแล้ว อย่าบังคับบูตหลายโหนดหรือเลือกโหนดใดโหนดหนึ่งแบบสุ่ม คู่มือการกู้คืนของ MariaDB แนะนำให้ระบุโหนดที่มีความก้าวหน้ามากที่สุดและบูตเฉพาะโหนดนั้น จากนั้นจึงเชื่อมต่อโหนดอื่นๆ กลับเข้าไปใหม่ ตรวจสอบให้แน่ใจว่าคุณได้ทดสอบการสำรองข้อมูลฐานข้อมูลและพื้นที่จัดเก็บไฟล์แล้ว การจำลองแบบ Galera จะจำลองการเปลี่ยนแปลงของฐานข้อมูลและไม่ได้แทนที่การสำรองข้อมูล ณ จุดเวลาใดเวลาหนึ่ง

ตรวจสอบผลลัพธ์

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

ฝากความเห็น

แก้ปัญหา CPU กระชากเร็วใน Nextcloud Preview ด้วยคิวที่กำหนดเวลาไว้

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

รับการซิงค์ข้อมูลบนเดสก์ท็อป Nextcloud โดยไม่ต้องแสดงสถานะ “กำลังประมวลผลไฟล์” อีกต่อไป

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

ล้างคำเตือน Nextcloud OPcache โดยการปรับขีดจำกัดให้ถูกต้อง

ค้นหาข้อจำกัดของ PHP OPcache ที่ทำให้เกิดคำเตือนของ Nextcloud อัปเดตการตั้งค่า PHP สำหรับเว็บให้ถูกต้อง รีสตาร์ทอย่างปลอดภัย และตรวจสอบผลลัพธ์

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เปรียบเทียบ CODE ที่ติดตั้งมากับระบบและ CODE ที่ใช้ Docker จากนั้นเชื่อมต่อ Collabora Online กับ Nextcloud ผ่านพร็อกซีแบบย้อนกลับ HTTPS ที่ปลอดภัย

สร้างคลัสเตอร์ Nextcloud ที่ทนทานด้วย Galera

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

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

กำหนดค่าและตรวจสอบรีเลย์ TURN ที่สามารถเข้าถึงได้สำหรับ Nextcloud Talk เมื่อไฟร์วอลล์หรือ NAT ที่จำกัดปิดกั้นสื่อการโทรโดยตรง

ล้างคำเตือนเกี่ยวกับความสมบูรณ์ของข้อมูลใน Nextcloud โดยการกู้คืนไฟล์ที่ถูกต้อง

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

เชื่อมต่อ Gmail หรือ Microsoft 365 กับ Nextcloud Mail โดยใช้ OAuth2

ตั้งค่า OAuth2 สำหรับ Nextcloud Mail กับ Gmail หรือ Microsoft 365 ตรวจสอบการรับและส่ง และแก้ไขปัญหาการขอความยินยอมและข้อผิดพลาด SMTP ทั่วไป

แก้ไขปัญหา Nextcloud ค้างในโหมดบำรุงรักษาอย่างปลอดภัยด้วย OCC

แก้ไขปัญหา Nextcloud ค้างในโหมดบำรุงรักษาอย่างปลอดภัยด้วย OCC

ใช้ OCC เพื่อกู้คืนการเข้าถึง Nextcloud ตรวจสอบสถานะการย้ายฐานข้อมูล และเลือกคำสั่งที่ถูกต้องสำหรับการติดตั้งแบบเก็บถาวร Docker หรือ Snap

ตั้งค่าการเข้าสู่ระบบ Nextcloud LDAP และ Active Directory

เชื่อมต่อ Nextcloud กับ LDAP หรือ Active Directory จำกัดการเข้าถึงด้วยตัวกรองผู้ใช้และกลุ่ม และตรวจสอบการรับรองความถูกต้องที่ปลอดภัยก่อนเปิดใช้งาน