SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • Products
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • การทดสอบอาหารสัตว์
  • ข่าวสารและกิจกรรม
  • ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์
  • เรื่องราวความสำเร็จ
  • ติดต่อเรา
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

Archives for ธันวาคม 2018

SQL Server for Linux – ตัวอย่างสาธารณะพร้อมใช้งานแล้ว

ธันวาคม 21, 2018 by Jason Aw Leave a Comment

SQL Server for Linux – ตัวอย่างสาธารณะพร้อมใช้งานแล้ว

มีการดูตัวอย่างสาธารณะสำหรับ SQL Server v.Next ในขณะนี้แล้ว Microsoft ได้เพิ่มการสนับสนุนลีนุกซ์แล้ว  ดูลิงก์ด้านล่างสำหรับข้อมูลเพิ่มเติม   ฉันจะดาวน์โหลดและมองหาคุณลักษณะการมีอยู่สูงในไม่ช้า  คอยติดตาม!

SQL Server v.Next Public Preview: https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux ข้อความประกาศ SQL Server Linux ต้นฉบับ: https://blogs.microsoft.com / blog / 2016/03/07 / announcing-sql-server-on-linux / ทำซ้ำได้รับอนุญาตจาก Linuxclustering

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: SQL Server สำหรับ Linux

กำหนดค่าคลัสเตอร์ Failover Linux ใน Amazon EC2 โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน

ธันวาคม 20, 2018 by Jason Aw Leave a Comment

ทีละขั้นตอนวิธีการกำหนดค่าคลัสเตอร์ล้มเหลวลินุกซ์ใน Microsoft Azure IaaS ไม่มีที่เก็บข้อมูลที่ใช้ร่วมกันสีฟ้า sanless

ทีละขั้นตอน: วิธีการกำหนดค่าคลัสเตอร์ Failover ใน Amazon EC2 โดยไม่ใช้ที่เก็บข้อมูลร่วมกัน #amazon #aws #sanless #cluster

ในขั้นตอนนี้ฉันจะแนะนำคุณในทุกขั้นตอนที่จำเป็นในการกำหนดค่าคลัสเตอร์ MySQL แบบ 2 โหนด (พร้อมเซิร์ฟเวอร์พยาน) ที่มีความยืดหยุ่นสูงใน Elastic Compute Cloud ของ Amazon (Amazon EC2)  คู่มือนี้รวมทั้งภาพหน้าจอคำสั่งเชลล์และข้อมูลโค้ดตามความเหมาะสม  ฉันคิดว่าคุณคุ้นเคยกับ Amazon EC2 และมีบัญชีอยู่แล้ว  ถ้าไม่คุณสามารถสมัครวันนี้  ฉันจะสมมติว่าคุณมีทักษะในการบริหารระบบลินุกซ์ขั้นพื้นฐานและเข้าใจแนวคิด failover clustering พื้นฐานเช่น Virtual IPs เป็นต้น

ข้อจำกัดความรับผิดชอบ: เมฆกำลังเคลื่อนที่เป้าหมายอย่างรวดเร็ว ดังนั้นคุณลักษณะ / หน้าจอ / ปุ่มจึงต้องเปลี่ยนแปลงไปตามช่วงเวลาเพื่อให้ประสบการณ์ของคุณอาจแตกต่างจากที่คุณเห็นด้านล่างเล็กน้อย  แม้ว่าคู่มือนี้จะแสดงวิธีการสร้างฐานข้อมูล MySQL ที่พร้อมให้บริการคุณสามารถปรับข้อมูลและกระบวนการนี้เพื่อปกป้องโปรแกรมหรือฐานข้อมูลอื่น ๆ เช่น SAP, Oracle, PostgreSQL, NFS file servers และอื่น ๆ ได้ นี่คือขั้นตอนระดับสูงเพื่อสร้างฐานข้อมูล MySQL ที่มีอยู่ใน Amazon EC2:

  1. สร้าง Virtual Private Cloud (VPC)
  2. สร้างเกตเวย์อินเทอร์เน็ต
  3. สร้าง Subnets (โซนที่มีอยู่)
  4. กำหนดค่าตารางเส้นทาง
  5. กำหนดค่ากลุ่มรักษาความปลอดภัย
  6. เปิดใช้อินสแตนซ์
  7. สร้าง Elastic IP
  8. สร้างรายการเส้นทางสำหรับ Virtual IP
  9. ปิดใช้งานการตรวจสอบแหล่งที่มา / ปลายทางสำหรับ ENI's
  10. ขอรับคีย์รหัสการเข้าถึงและรหัสลับการเข้าถึง
  11. การกำหนดค่าระบบปฏิบัติการ Linux
  12. ติดตั้ง EC2 API Tools
  13. ติดตั้งและกำหนดค่า MySQL
  14. ติดตั้งและกำหนดค่าคลัสเตอร์
  15. ทดสอบ Cluster Connectivity

ภาพรวม

บทความนี้จะอธิบายถึงวิธีการสร้างคลัสเตอร์ภายในภูมิภาค Amazon EC2 เดียว  โหนดคลัสเตอร์ (node1, node2 และเซิร์ฟเวอร์พยาน) จะอยู่โซนความพร้อมใช้งานที่แตกต่างกันสำหรับความพร้อมใช้งานสูงสุด  นี่ก็หมายความว่าโหนดจะอยู่ใน subnet ที่ต่างกัน การกำหนดค่าจะมีลักษณะดังนีAWS-ลินุกซ์ MySQL้: จะใช้ที่อยู่ IP ต่อไปนี้:

  • node1: 10.0.0.4
  • node2: 10.0.1.4
  • พยาน: 10.0.2.4
  • เสมือน / "ลอย" IP: 10.1.0.10

สร้าง Virtual Private Cloud (VPC)

ก่อนอื่นให้สร้าง Virtual Private Cloud (aka VPC) VPC เป็นเครือข่ายที่แยกได้ภายใน Amazon Cloud ที่ทุ่มเทให้กับคุณ  คุณสามารถควบคุมสิ่งต่างๆเช่นบล็อกที่อยู่ IP และเครือข่ายย่อยตารางเส้นทางกลุ่มรักษาความปลอดภัย (เช่นไฟร์วอลล์) และอื่น ๆ  คุณจะได้เปิดตัวเครื่องเสมือน (VMs) Azure Iaas ของคุณลงใน Virtual Network ของคุณ จากหน้าแดชบอร์ด AWS หลักเลือก“ VPC” vpc1ใต้“ VPC ของคุณ” ตรวจสอบให้แน่ใจว่าคุณได้เลือกภูมิภาคที่เหมาะสมที่ด้านบนขวาของหน้าจอ  ในคู่มือนี้จะใช้พื้นที่ "US West (Oregon)" เนื่องจากเป็นพื้นที่ที่มีเขตการใช้งาน 3 แห่ง   สำหรับข้อมูลเพิ่มเติมเกี่ยวกับภูมิภาคและโซนว่างคลิกทvpc2ี่นี่ตั้งชื่อ VPC และระบุบล็อก IP ที่คุณต้องการใช้  10.0.0.0/16 จะถูกใช้ในคู่มือนี้vpc3: คุณควรเห็น VPC ที่สร้างขึ้นใหม่บนหน้าจอ“ Your VPCs”: vpc4  

สร้างเกตเวย์อินเทอร์เน็ต

จากนั้นสร้าง Internet Gateway  จำเป็นต้องใช้ถ้าคุณต้องการให้อินสแตนซ์ (VM) ของคุณสามารถสื่อสารกับอินเทอร์เน็ตได้ ที่เมนูด้านซ้ายเลือก Internet Gateways และคลิกปุ่ม Create Internet Gateway  ตั้งชื่อและสร้าง: ถัดไปอินเทอร์เน็ต gateway1แนบเกตเวย์อินเทอร์เน็ตกับ VPC ของคุณ:อินเทอร์เน็ต gateway2 เลือก VPC ของคุณและคลิกแนบ: อินเทอร์เน็ต gateway3

สร้าง Subnets (โซนที่มีอยู่)

ถัดไปสร้าง 3 เครือข่ายย่อย  แต่ละเครือข่ายย่อยจะอยู่ในเขตจำหน่ายของตนเอง  อินสแตนซ์ 3 ตัว (VMs: node1, node2, witness) จะถูกเปิดใช้งานในเครือข่ายย่อยที่แยกกัน (และโซนความพร้อมใช้งาน) เพื่อให้ความล้มเหลวของโซนความพร้อมใช้งานจะไม่เกิดขึ้นจากหลายโหนดของคลัสเตอร์ ภูมิภาคตะวันตกของสหรัฐฯ (Oregon) หรือ aka us-west-2 มีพื้นที่ให้บริการ 3 แห่ง (us-west-2a, us-west-2b, us-west-2c)  สร้าง 3 เครือข่ายย่อยหนึ่งแห่งในแต่ละโซนที่มีให้บริการ 3 แห่ง ภายใต้แผงควบคุม VPC นำทางไปยังเครือข่ายย่อยแล้วสร้างซับsubnets1เน็ต: ตั้งชื่อซับเน็ตแรก (“ Subnet1)” เลือกโซนความพร้อมใช้งาน us-west-2a และกำหนดบล็อกเครือข่าย (10.0.0.0/24)subnets2: ทำซ้ำ สร้างโซนความพร้อมเครือข่ายย่อยที่สอง us-west-2b:subnets3 ทำซ้ำเพื่อสร้างเครือข่ายย่อยที่สามในโซนความพร้อมใช้งาน ussubnets4-west-2c: เมื่อเสร็จแล้วให้ตรวจสอบว่ามีการสร้างเครือข่ายย่อย 3 แห่งแต่ละแห่งด้วย CIDR ที่แตกต่างกัน โซนเท่าที่เห็นด้านล่าง: subnets5

กำหนดค่าตารางเส้นทาง

อัปเดตตารางเส้นทางของ VPC เพื่อให้การรับส่งข้อมูลไปยังโลกภายนอกถูกส่งไปยัง Internet Gateway ที่สร้างขึ้นในขั้นตอนก่อนหน้า  จากหน้าแดชบอร์ด VPC เลือกเส้นทางตาราง   ไปที่แท็บเส้นทางและโดยค่าเริ่มต้นจะมีเส้นทางเดียวเท่านั้นที่จะอนุญาตให้มีการรับส่งข้อมูลภายใน VPC เท่านั้น คลิกแก้ไข:เส้นทาง table1 เพิ่มเส้นทางอื่น: ปเส้นทาง table2ลายทางของเส้นทางใหม่จะเป็น“ 0.0.0.0/0” (อินเทอร์เน็ต) และสำหรับเป้าหมายให้เลือกเกตเวย์อินเทอร์เน็ตของคุณ  จากนั้นคลิกบันทเส้นทาง table3ึก: ถัดไปเชื่อมโยง 3 เครือข่ายย่อยกับตารางเส้นทาง   คลิกแท็บ“ เครือข่ายย่อย” และแก้ไข: ทำเเส้นทาง table4ครื่องหมายในช่องถัดจากเครือข่ายย่อยทั้ง 3เส้นทาง table5 และบันทึก: ตรวจสอบว่าเครือข่ายย่อยทั้ง 3 เกี่ยวข้องกับตเส้นทาง table6ารางเส้นทางหลัก: ต่อมาเราจะกลับมาและอัพเดตตารางเส้นทางอีกครั้ง การกำหนดเส้นทางที่จะอนุญาตให้ทราฟฟิกสื่อสารกับ IP เสมือนของคลัสเตอร์ แต่ต้องดำเนินการหลังจากสร้าง linux Instances (VMs) แล้ว

กำหนดค่ากลุ่มรักษาความปลอดภัย

แก้ไขกลุ่มความปลอดภัย (ไฟร์วอลล์เสมือน) เพื่ออนุญาตการรับส่งข้อมูล SSH และ VNC  ทั้งสองจะถูกใช้เพื่อกำหนดค่าอินสแตนซ์ linux รวมถึงการติดตั้ง / การกำหนดค่าซอฟต์แวร์คลัสเตอร์ ในเมนูด้านซ้ายเลือก "กลุ่มรักษาความปลอดภัย" แล้วคลิกแท็บ "กฎขาเข้า"  คลิกแก้ไข:การรักษาความปลอดภัยกลุ่มที่ 1 เพิ่มกฎสำหรับทั้ง SSH (พอร์ต 22) และ VNC  VNC โดยทั่วไปใช้พอร์ตใน 5900 ขึ้นอยู่กับวิธีที่คุณกำหนดค่าดังนั้นสำหรับวัตถุประสงค์ของคู่มือนี้เราจะเปิดช่วงพอร์ต 5900-5910  กำหนดค่าตามที่ตั้งค่า VNC ของคุณ: การรักษาความปลอดภัย group2  

เปิดใช้อินสแตนซ์

เราจะจัดเตรียม 3 อินสแตนซ์ (Virtual Machines) ในคู่มือนี้  สองเครื่องแรกของ VMs (เรียกว่า "node1" และ "node2") จะทำหน้าที่เป็นโหนดคลัสเตอร์ที่มีความสามารถในการนำฐานข้อมูล MySQL มาใช้และเป็นแหล่งข้อมูลออนไลน์ที่เกี่ยวข้อง  VM ที่ 3 จะทำหน้าที่เป็นเซิร์ฟเวอร์พยานของคลัสเตอร์สำหรับการป้องกันเพิ่มเติมจากสมองแยก เพื่อให้แน่ใจว่ามีความพร้อมใช้งานสูงสุดวีเอ็มวีทั้ง 3 ตัวจะถูกปรับใช้ในโซนความพร้อมใช้งานที่แตกต่างกันภายในภูมิภาคเดียว  ซึ่งหมายความว่าแต่ละอินสแตนซ์จะอยู่ในซับเน็ตที่แตกต่างกัน ไปที่แดชบอร์ด AWS หลักและเลือก EC2: เปิดตัว-instance1

สร้าง“node1”

สร้างอินสแตนซ์แรกของคุณ ("node1")  คลิกเรียกใช้อินสแตนซ์เปิดตัว-instance2: เลือกการแจกจ่าย linux ของคุณ  ซอฟต์แวร์คลัสเตอร์ที่ใช้ในภายหลังรองรับ RHEL, SLES, CentOS และ Oracle Linux  ในคู่มือนี้เราจะใช้ RHEL 7.X: ปรับขเปิดตัว-instance3นาดอินสแตนซ์ของคุณให้เหมาะสม  สำหรับวัตถุประสงค์ของคู่มือนี้และเพื่อลดค่าใช้จ่ายจะใช้ขนาด t2.micro เนื่องจากเป็นระดับฟรีที่มีสิทธิ์  ดูที่นี่สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขนาดและราคาของอินสแตนซ์ เปิดตัว-instance4 ถัดไปกำหนดค่ารายละเอียดของอินสแตนซ์  สิ่งสำคัญ: ตรวจสอบให้แน่ใจว่าได้เปิดตัวอินสแตนซ์แรกนี้ (VM) ลงใน "Subnet1" และกำหนดที่อยู่ IP ที่ถูกต้องสำหรับเครือข่ายย่อย (10.0.0.0/24) – ต่ำกว่า 10.0.0.4 เนื่องจากเป็น IP ฟรีครั้งแรกในเครือข่ายย่อย  หมายเหตุ: .1 / .2 / .3 ในซับเน็ตที่กำหนดใด ๆ ใน AWS ถูกสงวนไว้และไม่สามารถใช้ได้ เปิดตัว-instance5 จากนั้นเพิ่มดิสก์พิเศษลงในโหนดคลัสเตอร์ (ซึ่งจะทำทั้ง "node1" และ "node2")  ดิสก์นี้จะเก็บฐานข้อมูล MySQL ของเราและต่อมาจะจำลองแบบระหว่างโหนด หมายเหตุ: คุณไม่จำเป็นต้องเพิ่มดิสก์พิเศษลงในโหนด "witness"  เฉพาะ "node1" และ "node2" เพิ่มวอลุ่มใหม่และป้อนขนาดที่ต้องกาเปิดตัว-instance6ร: กำหนดแท็กสำหรับอินสแตนซ์โหนดเปิดตัว-instance7 1: เชื่อมโยงอินสแตนซ์กับกลุ่มความปลอดภัยที่มีอยู่ดังนั้นกฎไฟร์วอลล์ที่สร้างขึ้นก่อนเปิดตัว-instance8หน้านี้จะเปิเปิดตัว-instance9ดใช้งาน: คลิกเรียกใช้: สำคัญ: ในสภาพแวดล้อม AWS ของคุณคุณจะต้องสร้างคู่คีย์ใหม่  ไฟล์คีย์ส่วนตัวจะต้องถูกเก็บไว้ในที่ปลอดภัยเนื่องจากจะต้องใช้เมื่อคุณ SSH เข้าสู่อินสแตนซ์ linux เปิดตัว-instance10

สร้าง "node2"

ทำซ้ำขั้นตอนข้างต้นเพื่อสร้างอินสแตนซ์ของ linux ที่สอง (node2)  กำหนดค่าให้ตรงกับ Node1  อย่างไรก็ตามโปรดตรวจสอบให้แน่ใจว่าคุณปรับใช้แอปพลิเคชันดังกล่าวลงใน "Subnet2" (เขตความพร้อมในการใช้งานของเราตะวันตก -2b)  ช่วง IP สำหรับ Subnet2 คือ 10.0.1.0/24 ดังนั้นจึงใช้ IP ของ 10.0.1.4 ที่นี่: ตรวจสเปิดตัว-instance11อบให้แน่ใจว่าได้เพิ่มดิสก์ที่สองลงใน Node2 เช่นกัน  ควรมีขนาดที่แน่นอนเท่ากับดิสก์ที่คุณเพิ่มลงใน Node1: ใหเปิดตัว-instance12้แท็กที่สองแก่อินสแตนซ์ที่สอง “Node2”: เปิดตัว-instance13

สร้าง "พยาน"

ทำซ้ำขั้นตอนข้างต้นเพื่อสร้างอินสแตนซ์ linux ที่สาม (พยาน)  กำหนดค่าให้เหมือนกับ Node1 และ Node2 ยกเว้นคุณไม่ต้องเพิ่มดิสก์อันดับที่ 2 เนื่องจากอินสแตนซ์นี้จะทำหน้าที่เป็นพยานให้กับคลัสเตอร์เท่านั้นและจะไม่นำ MySQL online มาใช้ ตรวจสอบให้แน่ใจว่าคุณได้ใช้งาน "Subnet3" (โซนความพร้อมในการใช้งานของเราตะวันตก -2c)  ช่วง IP สำหรับ Subnet2 คือ 10.0.2.0/24 ดังนั้นจึงใช้ IP ของ 10.0.2.4 ที่นเปิดตัว-instance14ี่: หมายเหตุ: การกำหนดค่าดิสก์เริ่มต้นนั้นใช้ได้สำหรับโหนดพยาน  ไม่จำเป็นต้องใช้ดิสก์ตัวที่สอเปิดตัว-instance15ง: ติดแท็กโหนดโหนดพยาน: เปิดตัว-instance16

อาจใช้เวลาสักครู่ในการจัดเตรียม 3 กรณีของคุณ  หลังจากเสร็จสิ้นคุณจะเห็นรายชื่อที่แสดงอยู่ในแผงควบคุม EC2: เปิดตัว-instance17

สร้าง Elastic IP

จากนั้นสร้าง Elastic IP ซึ่งเป็นที่อยู่ IP สาธารณะที่จะใช้ในการเชื่อมต่อกับอินสแตนซ์ของคุณจากโลกภายนอก  เลือก Elastic IPs ในเมนูด้านซ้ายจากนั้นคลิก“ จัดสรรที่อยู่ใหม่ยืดหยุ่น IP1”: เลือก IP แบบยืดหยุ่นที่สร้างขึ้นใหม่คลิกขวาและเลือก“ เชื่อมโยงที่ยืดหยุ่น IP2อยู่”: เชื่อมโยง IP ยืดหยุ่นนี้กยืดหยุ่น IP3ับ Node1: ทำซ้ำสิ่งนี้สำหรับอีกสองอิน คุณต้องการให้พวกเขามีอินเทอร์เน็ตหรือสามารถใช้ SSH / VNC โดยตรง

สร้างรายการเส้นทางสำหรับ Virtual IP

ณ จุดนี้ทั้ง 3 อินสแตนซ์ถูกสร้างขึ้นและตารางเส้นทางจะต้องได้รับการปรับปรุงอีกครั้งเพื่อให้ IP เสมือนของคลัสเตอร์ทำงานได้  ในการกำหนดค่าคลัสเตอร์แบบหลายซับเน็ตนี้ Virtual IP ต้องอาศัยอยู่นอกช่วงของ CIDR ที่จัดสรรให้กับ VPC ของคุณ กำหนดเส้นทางใหม่ที่จะนำการเข้าชมไปยัง Virtual IP (10.1.0.10) ของคลัสเตอร์ไปยังโหนดโหนดหลัก (Node1) จากแดชบอร์ด VPC เลือกตารางเส้นทางคลิกแก้ไข  เพิ่มเส้นทางสำหรับ "10.1.0.10/32" กับปลายทางของ Node1: เส้นทางตารางหลังเช่นการสร้าง

ปิดใช้งานการตรวจสอบแหล่งที่มา / ปลายทางสำหรับ ENI's

ถัดไปปิดการใช้งานการตรวจสอบแหล่งที่มา / ปลายทางสำหรับ Elastic Network Interfaces (ENI) ของโหนดคลัสเตอร์ของคุณ นี่เป็นสิ่งจำเป็นเพื่อให้อินสแตนซ์สามารถรับแพ็กเก็ตเครือข่ายสำหรับที่อยู่ IP เสมือนของคลัสเตอร์ได้ ทำเช่นนี้สำหรับ ENI ทั้งหมด เลือก "Network Interfaces" (การเชื่อมต่อเครือข่าย) คลิกขวาที่ ENI และเลือก "Change Source / Dest Check" ปิดการใช้งาน-แหล่งปลายทาง-CHECK1 เลือก "ปิดใช้งาน": ปิดการใช้งาน-แหล่งปลายทาง-check2

ขอรับคีย์รหัสการเข้าถึงและรหัสลับการเข้าถึง

ต่อมาในคู่มือซอฟต์แวร์คลัสเตอร์จะใช้ AWS Command Line Interface (CLI) เพื่อจัดการกับรายการตารางเส้นทางสำหรับ Virtual IP ของคลัสเตอร์เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังโหนดคลัสเตอร์ที่ใช้งานอยู่  เพื่อให้สามารถใช้งานได้คุณจะต้องได้รับรหัสการเข้าถึงและรหัสลับการเข้าถึงเพื่อให้ AWS CLI สามารถตรวจสอบสิทธิ์ได้อย่างถูกต้อง ที่ด้านบนขวาของแดชบอร์ด EC2 คลิกที่ชื่อของคุณและใต้เลือก“ ข้อมูลรับรองความปลอดภัย” จากรายการแบบหล่นลง: ขยเข้าถึง key1ายส่วน“ คีย์การเข้าถึง (รหัสการเข้าถึงและรหัสการเข้าถึงข้อมูลลับ)” จากนั้นคลิก “ สร้างรหัสการเข้าถึงใหม่”  ดาวน์โหลดไฟล์คีย์และเก็บไฟล์ไว้ในที่ปลอดภัย เข้าถึง key2

การกำหนดค่าระบบปฏิบัติการ Linux

เชื่อมต่อกับอินสแตนซ์ลินุกซ์:

หากต้องการเชื่อมต่อกับอินสแตนซ์ linux ที่สร้างขึ้นใหม่ (ผ่าน SSH) ให้คลิกขวาที่อินสแตนซ์และเลือก "เชื่อมต่อ"  ซึ่งจะแสดงคำแนะนำสำหรับการเชื่อมต่อกับอินสแตนซ์  คุณจะต้องใช้ไฟล์กุญแจส่วนตัวที่คุณสร้าง / ดาวน์โหลดในขั้นตอนconnect1ก่อนหน้connect2า: ตัวอย่าง: ที่นี่เราจะปล่อยแดชบอร์ด EC2 ไว้สักครู่แล้วปล่อยให้มือสกปรกในบรรทัดคำสั่งซึ่งในฐานะผู้ดูแลระบบ Linux คุณควรใช้ ถึงตอนนี้ คุณไม่ได้รับรหัสผ่าน root ไปยัง Linux VM ของคุณใน AWS (หรือบัญชี "ec2-user" เริ่มต้น) ดังนั้นเมื่อคุณเชื่อมต่อแล้วให้ใช้คำสั่ง "sudo" เพื่อรับสิทธิ์ root:

$ sudo su -

แก้ไข / etc / hosts

ถ้าคุณไม่มีการตั้งค่าเซิร์ฟเวอร์ DNS คุณจะต้องสร้างรายการไฟล์โฮสต์บนเซิร์ฟเวอร์ทั้ง 3 เครื่องเพื่อให้สามารถแก้ไขกันได้ดีโดยใช้ชื่อเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ / etc / hosts ของคุณ:

10.0.0.4 node1
10.0.1.4 node2
10.0.2.4 พยาน
10.1.0.10 mysql-vip

ปิดใช้งาน SELinux

แก้ไข / etc / sysconfig / linux และตั้งค่า "SELINUX = disabled":

# vi / etc / sysconfig / selinux

# แฟ้มนี้ควบคุมสถานะ SELinux ในระบบ
# SELINUX = สามารถใช้หนึ่งในสามค่าต่อไปนี้:
# enforcing - ใช้นโยบายความปลอดภัยของ SELinux
# permissive - SELinux พิมพ์คำเตือนแทนการบังคับใช้
# disabled - ไม่มีนโยบาย SELinux ถูกโหลด
SELINUX = คนพิการ
# SELINUXTYPE = สามารถใช้หนึ่งในสองค่านี้:
เป้าหมาย # - กระบวนการกำหนดเป้าหมายได้รับการป้องกัน,
# mls - การป้องกันความปลอดภัยแบบหลายระดับ
SELINUXTYPE = การกำหนดเป้าหมาย

ตั้งชื่อโฮสต์

โดยค่าเริ่มต้นแลปท็อปเหล่านี้จะมีชื่อโฮสต์ที่อิงตามที่อยู่ IP ของเซิร์ฟเวอร์เช่น "ip-10-0-0-4.us-west-2.compute.internal" คุณอาจสังเกตเห็นว่าถ้าคุณพยายามที่จะ (เช่นการแก้ไข / etc / sysconfig / network, etc) หลังจากรีบูตเครื่องแต่ละตัวจะย้อนกลับไปสู่ต้นฉบับ! ฉันพบหัวข้อที่ยอดเยี่ยมในฟอรัมการสนทนาของ AWS ที่อธิบายถึงวิธีทำให้ชื่อโฮสต์คงที่โดยปกติหลังจากรีบูต รายละเอียดที่นี่: https://forums.aws.amazon.com/message.jspa?messageID=560446 แสดงความคิดเห็นออกโมดูลที่ตั้งชื่อโฮสต์ในไฟล์ "/etc/cloud/cloud.cfg" โมดูลต่อไปนี้สามารถแสดงความคิดเห็นโดยใช้ #

# - set_hostname
# - update_hostname

จากนั้นให้เปลี่ยนชื่อโฮสต์ของคุณใน / etc / hostname

โหนดรีสตาร์ทคลัสเตอร์

รีบูตทั้ง 3 กรณีเพื่อให้ SELinux ถูกปิดใช้งานและการเปลี่ยนชื่อโฮสต์จะมีผล

ติดตั้งและกำหนดค่า VNC (และแพคเกจที่เกี่ยวข้อง)

เพื่อเข้าถึง GUI ของเซิร์ฟเวอร์ลินุกซ์ของเราและเพื่อติดตั้งและกำหนดค่าคลัสเตอร์ของเราติดตั้งเซิร์ฟเวอร์ VNC รวมทั้งแพ็กเกจที่จำเป็นอื่น ๆ (ซอฟต์แวร์คลัสเตอร์ต้องการ redhat-lsb และ patch rpms)

# yum groupinstall "ระบบหน้าต่าง X"
# yum groupinstall "เซิร์ฟเวอร์ที่มี GUI"
# yum install tigervnc-server xterm wget เปิดเครื่องรูด redhat-lsb
# vncpasswd

สำหรับ RHEL 7.x / CentOS7.x: URL ต่อไปนี้เป็นแนวทางที่ดีในการเรียกใช้เซิร์ฟเวอร์ VNC บน RHEL 7 / CentOS 7: https://www.digitalocean.com/community/tutorials/how-to-install-and -configure-vnc-remote-access-for-the-gnome-desktop-on-centos-7 หมายเหตุ: การกำหนดค่าตัวอย่างนี้รัน VNC บนจอแสดงผล 2 (: 2, aka พอร์ต 5902) และเป็น root (ไม่ปลอดภัย)  ปรับตาม!

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
# vi /etc/systemd/system/vncserver@:2.service


[บริการ]
type = ฟอร์ก
# ทำความสะอาดไฟล์ที่มีอยู่ใน /tmp/.X11-unix environment
ExecStartPre = / bin / sh -c '/ usr / bin / vncserver -kill% i> / dev / null 2> & 1 || :'
ExecStart = / sbin / runuser -l root -c "/ usr / bin / vncserver% i -geometry 1024x768"
PIDFile = / ราก / .vnc / H%% i.pid
ExecStop = / bin / sh -c '/ usr / bin / vncserver -kill% i> / dev / null 2> & 1 || :'


# dactl ระบบโหลดซ้ำ
# systemctl enable vncserver @: 2.service
# vncserver: 2-geometry 1024x768

สำหรับระบบ RHEL / CentOS 6.x:

# vi / etc / sysconfig / vncservers

      VNCSERVERS = "2: ราก"
      VNCSERVERARGS [2] = "- รูปทรงเรขาคณิต 1024x768"

# vncserver เริ่มบริการ
# chkconfig vncserver บน

เปิดไคลเอ็นต์ VNC และเชื่อมต่อกับ <ElasticIP: 2>  ถ้าคุณไม่สามารถรับได้ก็มีแนวโน้มที่ไฟร์วอลล์ linux ของคุณอยู่ในทาง  เปิดพอร์ต VNC ที่เราใช้อยู่ที่นี่ (พอร์ต 5902) หรือตอนนี้ปิดการใช้งานไฟร์วอลล์ (ไม่แนะนำสำหรับสิ่งแวดล้อมในการผลิต):

# systemctl หยุด firewalld
# systemctl ปิดการใช้งาน firewalld

 

พาร์ทิชันและฟอร์แมตดิสก์ "ข้อมูล"

เมื่อเปิดใช้งานอินสแตนซ์ linux และเพิ่มดิสก์เพิ่มลงในโหนดแต่ละโหนดเพื่อเก็บข้อมูลแอ็พพลิเคชันที่เราจะปกป้อง  ในกรณีนี้เป็นฐานข้อมูล MySQL ดิสก์ที่สองควรปรากฏเป็น / dev / xvdb  คุณสามารถเรียกใช้คำสั่ง“ fdisk -l” เพื่อตรวจสอบ  คุณจะเห็นว่า / dev / xvda (OS) กำลังใช้งานอยู่

# fdisk -l

ดิสก์ / dev / xvda: 10.7 GB, 10737418240 ไบต์, เซ็กเตอร์ 20971520 หน่วย = เซกเตอร์ของ 1 * 512 = 512 ไบต์ขนาดเซกเตอร์ (ตรรกะ / กายภาพ): 512 ไบต์ / 512 ไบต์ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์ชนิดของป้ายชื่อดิสก์: gpt # เริ่มขนาดสิ้นสุดประเภทชื่อ 1 2048 4095 1M BIOS สำหรับการบูตส่วนที่ 2 4096 20971486 10G Microsoft ดิสก์พื้นฐาน / dev / xvdb: 2147 MB, 2147483648 ไบต์, ภาค 4194304 หน่วย = ภาคของ 1 * 512 = 512 ไบต์ ขนาดเซกเตอร์ (ตรรกะ / กายภาพ): 512 ไบต์ / 512 ไบต์ขนาด I / O (ต่ำสุด / เหมาะสมที่สุด): 512 ไบต์ / 512 ไบต์ที่นี่ฉันจะสร้างพาร์ติชัน (/ dev / xvdb1) จัดรูปแบบและติดตั้งที่ค่าเริ่มต้น ตำแหน่งสำหรับ MySQL ซึ่งเป็น / var / lib / mysql  ทำขั้นตอนต่อไปนี้บนทั้ง“ node1” และ“ node2”:

# fdisk / dev / xvdb
ยินดีต้อนรับสู่ fdisk (util-linux 2.23.2)

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

อุปกรณ์ไม่มีตารางพาร์ติชันที่รู้จัก
สร้าง DOS disklabel ใหม่พร้อมตัวระบุดิสก์ 0x8c16903a

คำสั่ง (m สำหรับความช่วยเหลือ): n
ประเภทพาร์ติชัน:
   p หลัก (0 หลัก, 0 ขยาย, 4 ฟรี)
   e ขยาย
เลือก (ค่าเริ่มต้น p): p
หมายเลขพาร์ติชัน (1-4 ค่าเริ่มต้น 1): 1
ภาคแรก (2048-4194303 เริ่มต้น 2048): <enter>
ใช้ค่าเริ่มต้น 2048
ภาคสุดท้ายภาคหรือขนาด {K, M, G} (2048-4194303, ค่าเริ่มต้น 4194303): <enter>
ใช้ค่าเริ่มต้น 4194303
พาร์ติชัน 1 ของชนิด Linux และขนาด 2 GiB ถูกตั้งค่า

คำสั่ง (m สำหรับความช่วยเหลือ): w
มีการเปลี่ยนแปลงตารางพาร์ติชัน!

การเรียก ioctl () เพื่ออ่านตารางพาร์ติชันอีกครั้ง
กำลังซิงค์ดิสก์

# mkfs.ext4 / dev / xvdb1 # mkdir / var / lib / mysql บนโหนด 1 ติดตั้งระบบไฟล์:

# mount / dev / xvdb1 / var / lib / mysql

ติดตั้ง EC2 API Tools

เครื่องมือ EC2 API (EC2 CLI) จะต้องติดตั้งบนแต่ละโหนดคลัสเตอร์เพื่อให้ซอฟต์แวร์คลัสเตอร์สามารถจัดการ Route Tables ในภายหลังทำให้สามารถเชื่อมต่อกับ IP เสมือนได้ URL ต่อไปนี้เป็นแนวทางที่ดีในการตั้งค่า: http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html นี่คือขั้นตอนสำคัญ: ดาวน์โหลด เปิดเครื่องรูดและย้ายเครื่องมือ CLI ไปยังตำแหน่งมาตรฐาน (/ opt / aws):

# wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
# unzip ec2-api-tools.zip
# mv ec2-api-tools-1.7.5.1 / / opt / aws /
# export EC2_HOME = "/ opt / aws"

หาก java ยังไม่ได้ติดตั้ง (เรียกใช้“ java ใดที่ต้องตรวจสอบ”) ให้ติดตั้ง:

# yum ติดตั้ง java-1.8.0-openjdk

ตัวอย่าง (ขึ้นอยู่กับการกำหนดค่าเริ่มต้นของระบบ RHEL 7.2  ปรับตาม)

# export JAVA_HOME = "/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64 / jre /"

คุณจะต้องมีรหัสการเข้าถึง AWS และรหัสลับ AWS ของคุณ  เก็บค่าเหล่านี้ไว้เป็นประโยชน์เพราะจำเป็นในภายหลังในระหว่างการตั้งค่าคลัสเตอร์ด้วย! อ้างถึง URL ต่อไปนี้สำหรับข้อมูลเพิ่มเติม: https://console.aws.amazon.com/iam/home?#security_credential

# export AWS_ACCESS_KEY = your-aws-access-key-id
# export AWS_SECRET_KEY = your-aws-secret-key

ทดสอบฟังก์ชันการทำงานของยูทิลิตี้ CLI:

# / opt / aws / bin / ec2-description-region

ภูมิภาค eu-west-1 ec2.eu-west-1.amazonaws.com
ภูมิภาค ap-southeast-1 ec2.ap-southeast-1.amazonaws.com
ภูมิภาค ap-southeast-2 ec2.ap-southeast-2.amazonaws.com
ภูมิภาค eu-central-1 ec2.eu-central-1.amazonaws.com
ภูมิภาค ap-northeast-2 ec2.ap-northeast-2.amazonaws.com
ภูมิภาค ap-northeast-1 ec2.ap-northeast-1.amazonaws.com
ภูมิภาค us-east-1 ec2.us-east-1.amazonaws.com
ภูมิภาค sa-east-1 ec2.sa-east-1.amazonaws.com
ภูมิภาค us-west-1 ec2.us-west-1.amazonaws.com
ภูมิภาค us-west-2 ec2.us-west-2.amazonaws.com

 

ติดตั้งและกำหนดค่า MySQL

จากนั้นติดตั้งแพคเกจ MySQL เริ่มต้นฐานข้อมูลตัวอย่างและตั้งค่ารหัสผ่าน "root" สำหรับ MySQL  ใน RHEL7.X แพ็คเกจ MySQL ถูกแทนที่ด้วยแพ็คเกจ MariaDB

บน“ node1”:

# yum ติดตั้ง mariadb mariadb-server
# mount / dev / xvdb1 / var / lib / mysql
# / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" --user = mysql
# mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 - ข้อมูล = / var / lib / mysql --log &
#
# # หมายเหตุ: คำสั่งถัดไปนี้อนุญาตการเชื่อมต่อระยะไกลจากโฮสต์ใด ๆ  ไม่ใช่ความคิดที่ดีสำหรับการผลิต!
# echo“ อัปเดตผู้ใช้ตั้งค่า Host = '%' โดยที่ Host = 'node1'; สิทธิ์ล้างข้อมูล mysql mysql
#
# #Set รหัสผ่านรูทของ MySQL เป็น 'SIOS'
# echo "อัปเดตชุดผู้ใช้รหัสผ่าน = PASSWORD ('SIOS') โดยที่ User = 'root'; สิทธิ์ล้าง" | mysql mysql

สร้างไฟล์คอนฟิกูเรชัน MySQL เราจะวางสิ่งนี้ลงในดิสก์ข้อมูล (ซึ่งจะถูกจำลองแบบในภายหลัง – /var/lib/mysql/my.cnf)  ตัวอย่าง:

# vi /var/lib/mysql/my.cnf

[mysqld]
datadir = / var / lib / MySQL
ซ็อกเก็ต = / var / lib / MySQL / mysql.sock
pid = ไฟล์ / var / ทำงาน / MariaDB / mariadb.pid
ผู้ใช้ = ราก
พอร์ต = 3306
# แนะนำให้ปิดการใช้งานลิงก์สัญลักษณ์เพื่อป้องกันความเสี่ยงด้านความปลอดภัยที่หลากหลาย
สัญลักษณ์การเชื่อมโยง = 0
 
[mysqld_safe]
เข้าสู่ระบบข้อผิดพลาด = / var / log / MariaDB / mariadb.log
pid = ไฟล์ / var / ทำงาน / MariaDB / mariadb.pid 
 
[ลูกค้า]
ผู้ใช้ = ราก
รหัสผ่าน = SIOS

ย้ายไฟล์การกำหนดค่า MySQL ต้นฉบับไว้ถ้ามีอยู่:

# mv /etc/my.cnf /etc/my.cnf.orig

บน“ node2”:

บน“ node2” คุณจะต้องติดตั้งแพ็คเกจ MariaDB / MySQL เท่านั้น  ขั้นตอนอื่น ๆ ไม่จำเป็น:

[root @ node2 ~] # yum ติดตั้ง mariadb mariadb-server

ติดตั้งและกำหนดค่าคลัสเตอร์

ณ จุดนี้เราพร้อมที่จะติดตั้งและกำหนดค่าคลัสเตอร์ของเรา  SIOS Protection Suite สำหรับ Linux (aka SPS-Linux) จะใช้ในคู่มือนี้เป็นเทคโนโลยีการทำคลัสเตอร์  มันมีทั้งฟีเจอร์การคลัสเตอร์ล้มเหลวที่มีความพร้อมใช้งานสูง (LifeKeeper) รวมถึงการจำลองข้อมูลระดับบล็อกแบบเรียลไทม์ (DataKeeper) ในโซลูชันเดียวที่รวมเข้าด้วยกัน  SPS-Linux ช่วยให้คุณสามารถปรับใช้คลัสเตอร์“ SANLess” หรือที่เรียกว่าคลัสเตอร์“ ไม่มีอะไรที่ใช้ร่วมกัน” ซึ่งหมายความว่าโหนดของคลัสเตอร์ไม่มีที่เก็บข้อมูลใด ๆ ที่แชร์เช่นกรณีของ EC2 Instances

ติดตั้ง SIOS Protection Suite สำหรับ Linux

ทำขั้นตอนต่อไปนี้บน ALL 3 VMs (node1, node2, พยาน): ดาวน์โหลดไฟล์อิมเมจการติดตั้ง SPS-Linux (sps.img) และขอรับใบอนุญาตทดลองใช้งานหรือซื้อสิทธิ์ใช้งานถาวร  ติดต่อ SIOS เพื่อรับข้อมูลเพิ่มเติม คุณจะวนลูปติดตั้งและรันสคริปต์“ การตั้งค่า” ภายในเช่นเดียวกับรูท (หรือ“ sudo su -” เพื่อรับรูทเชลล์) ตัวอย่าง:

# mkdir / tmp / install
# mount -o loop sps.img / tmp / install
# cd / tmp / install
# ./ติดตั้ง

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

  • บนหน้าจอชื่อ“ High Availability NFS” คุณอาจเลือก“ n” เนื่องจากเราจะไม่สร้างเซิร์ฟเวอร์ NFS ที่มีความพร้อมใช้งานสูง
  • ในตอนท้ายของสคริปต์การตั้งค่าคุณสามารถเลือกที่จะติดตั้งรหัสสัญญาอนุญาตรุ่นทดลองใช้ทันทีหรือใหม่กว่า เราจะติดตั้งรหัสลิขสิทธิ์ในภายหลังเพื่อให้คุณสามารถเลือก“ n” ได้อย่างปลอดภัยในจุดนี้
  • ในหน้าจอสุดท้ายของ“ การตั้งค่า” เลือก ARKs (ชุดกู้คืนแอพพลิเคชั่นเช่น "ตัวแทนตัวแทน") ที่คุณต้องการติดตั้งจากรายการที่แสดงบนหน้าจอ
    • ARK จำเป็นต้องใช้กับ“ node1” และ“ node2” เท่านั้น  คุณไม่จำเป็นต้องติดตั้งใน "พยาน"
    • นำทางรายการด้วยลูกศรขึ้น / ลงและกด SPACEBAR เพื่อเลือกรายการต่อไปนี้:
      • lkDR – DataKeeper สำหรับ Linux
      • lkSQL – ชุดการกู้คืน LifeKeeper MySQL RDBMS
    • สิ่งนี้จะส่งผลให้มีการติดตั้ง RPM เพิ่มเติมต่อไปนี้บน“ node1” และ“ node2”:
      • Steeleye-lkDR-9.0.2-6513.noarch.rpm
      • Steeleye-lkSQL-9.0.2-6513.noarch.rpm

ติดตั้งแพ็คเกจ Witness / Quorum

แพคเกจการสนับสนุน Quorum / Witness Server สำหรับ LifeKeeper (steeleye-lkQWK) รวมกับกระบวนการ failover ที่มีอยู่ของแกน LifeKeeper ช่วยให้การล้มเหลวของระบบเกิดขึ้นพร้อมความมั่นใจในสถานการณ์ที่เครือข่ายล้มเหลวทั้งหมด สิ่งนี้มีประสิทธิภาพหมายถึงการล้มเหลวสามารถทำได้ในขณะที่ลดความเสี่ยงของสถานการณ์ "สมองแตก" อย่างมาก ติดตั้ง Witness / Quorum rpm บนทั้ง 3 โหนด (โหนด 1, โหนด 2, พยาน):

# cd / tmp / install / quorum
# rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm

บนโหนดทั้ง 3 (node1, node2, พยาน), แก้ไข / etc / default / LifeKeeper, ตั้งค่า NOBCASTPING = 1 เฉพาะเซิร์ฟเวอร์ Witness (“ พยาน”), แก้ไข / etc / default / LifeKeeper, ตั้งค่า WITNESS_MODE = off / none

ติดตั้งแพ็คเกจการกู้คืน EC2

SPS-Linux มีคุณสมบัติเฉพาะที่ช่วยให้ทรัพยากรสามารถเข้าแทนที่ระหว่างโหนดในโซนความพร้อมใช้งานที่แตกต่างกันและภูมิภาค ที่นี่ชุดการกู้คืน EC2 (ตัวแทนเอเจนต์คลัสเตอร์) ใช้เพื่อจัดการรูทเทเบิ้ลเพื่อให้การเชื่อมต่อกับ IP เสมือนถูกส่งไปยังโหนดคลัสเตอร์ที่ใช้งาน ติดตั้ง EC2 รอบต่อนาที (node1, node2):

# cd / tmp / install / amazon
# rpm -Uvh steeleye-lkECC-9.0.2-6513.noarch.rpm

ติดตั้งรหัสสิทธิ์การใช้งาน

บนทั้ง 3 โหนดใช้คำสั่ง“ lkkeyins” เพื่อติดตั้งไฟล์ลิขสิทธิ์ที่คุณได้รับจาก SIOS:

# / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic

เริ่ม LifeKeeper

บนทั้ง 3 โหนดใช้คำสั่ง“ lkstart” เพื่อเริ่มซอฟต์แวร์คลัสเตอร์:

# / opt / LifeKeeper / bin / lkstart

ตั้งค่าการอนุญาตผู้ใช้สำหรับ LifeKeeper GUI

ในทั้ง 3 โหนดให้สร้างบัญชีผู้ใช้ linux ใหม่ (เช่น“ tony” ในตัวอย่างนี้)  แก้ไข / etc / group และเพิ่มผู้ใช้“ tony” ให้กับกลุ่ม“ lkadmin” เพื่อให้สิทธิ์การเข้าถึง LifeKeeper GUI  โดยค่าเริ่มต้นเฉพาะ "รูท" เป็นสมาชิกของกลุ่มและเราไม่มีรหัสผ่านรูทที่นี่:

# useradd tony
# passwd tony
# vi / etc / group

lkadmin: x 1001: ราก tony

เปิด LifeKeeper GUI

สร้างการเชื่อมต่อ VNC ไปยังที่อยู่ IP แบบยืดหยุ่น (Public IP) ของ node1  ตามการกำหนดค่า VNC จากด้านบนคุณจะเชื่อมต่อกับ <Public_IP>: 2 โดยใช้รหัสผ่าน VNC ที่คุณระบุไว้ก่อนหน้านี้  เมื่อเข้าสู่ระบบเปิดหน้าต่างเทอร์มินัลและเรียกใช้ LifeKeeper GUI โดยใช้คำสั่งต่อไปนี้:

# / opt / LifeKeeper / bin / lkGUIapp &

คุณจะได้รับแจ้งให้เชื่อมต่อกับโหนดคลัสเตอร์แรกของคุณ (“ node1”)  ป้อนรหัสผู้ใช้ linux และรหัสผ่านที่ระบุในระหว่างการสร้าง VLK-GUI-connect1M: ถัดไปเชื่อมต่อกับทั้ง "node2" และ "พยาน" โดยคลิกที่ปุ่ม "เชื่อมต่อกับเซิร์ฟเวอร์" เน้นในภาพหน้าจอต่อไปนี้: ตอนนLK-GUI-connect2ี้คุณควรเห็นเซิร์ฟเวอร์ทั้ง 3 แห่งใน GUI ไอคอนเครื่องหมายถูกสีเขียวแสดงว่าพวกเขาออนไลน์และมีสุขภาพดี: LK-GUI-connect3

สร้างเส้นทางการสื่อสาร

คลิกขวาที่“ node1” และเลือกสร้างเส้นทางการสืcomm path1่อสารเลือกทั้ง“ node2” และ“ พยาน” แล้วทำตามตัวช่วยสร้าง  สิ่งนี้จะสร้างเส้นทางการสื่อสารระหว่าง:

  • node1 & node2
  • โหนด 1 & พยาน

comm path2 ต้องสร้างเส้นทางการสื่อสารระหว่าง node2 และผู้ชม   คลิกขวาที่“ node2” และเลือกสร้างเส้นทางการสื่อสาร  ทำตามตัวช่วยสร้างและเลือก“ พยาน” เป็นเซิร์ฟเวอร์ระยcomm path3ะไกล: ณ จุดนี้มีการสร้างเส้นทางการสื่อสารต่อไปนี้:

  • node1 <—> node2
  • โหนด 1 <—> พยาน
  • โหนด 2 <—> พยาน

ไอคอนที่อยู่ด้านหน้าของเซิร์ฟเวอร์เปลี่ยนจาก "เครื่องหมายถูก" สีเขียวเป็น "สัญญาณอันตราย" สีเหลือง  นี่เป็นเพราะเรามีเพียงเส้นทางการสื่อสารเดียวระหว่างโหนด หาก VMs มี NIC หลายตัว (ข้อมูลเกี่ยวกับการสร้าง Azure VM ที่มี NIC หลายตัวสามารถพบได้ที่นี่ แต่จะไม่ครอบคลุมในบทความนี้) คุณจะสร้างเส้นทาง comm ที่ซ้ำซ้อนระหว่างแต่ละเซิร์ฟเวอร์ comm path4 ในการลบไอคอนคำเตือนให้ไปที่เมนูมุมมองและยกเลิกการเลือก“ คำเตือนความซ้ำซ้อนของเส้นทางเส้นทาง”: comm path5ผลลัพธ์: comm path6

ตรวจสอบเส้นทางการสื่อสาร

ใช้คำสั่ง“ lcdstatus” เพื่อดูสถานะของทรัพยากรคลัสเตอร์  รันคำสั่งต่อไปนี้เพื่อตรวจสอบว่าคุณได้สร้าง comm path อย่างถูกต้องบนแต่ละโหนดไปยังอีกสองเซิร์ฟเวอร์ที่เกี่ยวข้อง: # / opt / LifeKeeper / bin / lcdstatus -q -d node1 เครื่องจักรที่อยู่เครือข่าย / อุปกรณ์สถานะ PRIO node2 TCP 10.0.0.4/ 10.0.1.4 ยังมีชีวิตอยู่ 1 พยาน TCP 10.0.0.4/10.0.2.4 ยังมีชีวิตอยู่ 1 # / opt / LifeKeeper / bin / lcdstatus –q -d node2 ที่อยู่เครือข่ายเครื่องจักร / อุปกรณ์สถานะ PRIO PRIO โหนด 1 TCP 10.0.1.4/10.0.0.4 มีชีวิต 1 พยาน TCP 10.0.1.4/10.0.2.4 ALIVE 1 # / opt / LifeKeeper / bin / lcdstatus -q -d ร่วมเป็นสักขีพยานที่อยู่เครือข่ายของเครื่อง / อุปกรณ์สถานะ PRIO โหนด 1 TCP 10.0.2.4/10.0.0.4 มีชีวิต 1 node2 TCP 10.0.2.4/10.0.1.4 ยังมีชีวิตอยู่ 1

สร้างทรัพยากรคลัสเตอร์การจำลองแบบข้อมูล (เช่น กระจกเงา)

จากนั้นสร้างรีซอร์ส Data Replication เพื่อทำซ้ำพาร์ติชัน / var / lib / mysql จาก node1 (ต้นทาง) ถึง node2 (เป้าหมาย)  คลิกที่ไอคอน“ บวกสีเขียว” เพื่อสร้างทรัพยากรใหม่: การจำลองข้อมูล 1ทำตามตัวช่วยสร้างด้วยตัวเลือกเหล่านี้:

โปรดเลือกชุดการกู้คืน: การจำลองข้อมูล
ประเภท Switchback: อัจฉริยะ
เซิร์ฟเวอร์: node1
ประเภทลำดับชั้น: ทำซ้ำระบบไฟล์ที่ออก
จุดเมานต์ที่มีอยู่: / var / lib / mysql
แท็กทรัพยากรการจำลองแบบข้อมูล: datarep-mysql
แท็บทรัพยากรระบบไฟล์: / var / lib / mysql
ไฟล์ Bitmap: (ค่าเริ่มต้น)
เปิดใช้งานการจำลองแบบอะซิงโครนัส: ไม่

หลังจากสร้างทรัพยากรตัวช่วยสร้าง“ ขยาย” (เช่นกำหนดเซิร์ฟเวอร์สำรอง) จะปรากฏขึ้น  ใช้ตัวเลือกต่อไปนี้:

เซิร์ฟเวอร์เป้าหมาย: node2
ประเภท Switchback: อัจฉริยะ
ลำดับความสำคัญของเทมเพลต: 1
เป้าหมายลำดับความสำคัญ: 10
Target Disk: / dev / xvdb1
แท็กทรัพยากรการจำลองแบบข้อมูล: datarep-mysql
ไฟล์ Bitmap: (ค่าเริ่มต้น)
เส้นทางการจำลองแบบ: 10.0.0.4/10.0.1.4
จุดเมานต์: / var / lib / mysql
แท็กรูต: / var / lib / mysql

คลัสเตอร์จะมีลักษณะเช่นนี้: การจำลองข้อมูล 2

สร้าง IP เสมือน

ถัดไปสร้างทรัพยากรคลัสเตอร์ IP เสมือน  คลิกที่ไอคอน“ บวกสีเขียว” เพื่อสร้างทรัพยากรใหม่ip1 เสมือน: ทำตามตัวช่วยสร้างด้วยเพื่อสร้างทรัพยากร IP ด้วยการเลือกเหล่านี้:

เลือกชุดการกู้คืน: IP
ประเภท Switchback: อัจฉริยะ
ทรัพยากร IP: 10.1.0.10
Netmask: 255.255.255.0
อินเตอร์เฟสเครือข่าย: eth0
IP Resource Tag: ip-10.1.0.10

ขยายทรัพยากร IP ด้วยการเลือกเหล่านี้:

ประเภท Switchback: อัจฉริยะ
ลำดับความสำคัญของเทมเพลต: 1
เป้าหมายลำดับความสำคัญ: 10
ทรัพยากร IP: 10.1.0.10
Netmask: 255.255.255.0
อินเตอร์เฟสเครือข่าย: eth0
IP Resource Tag: ip-10.1.0.10

คลัสเตอร์จะมีลักษณะเช่นนี้โดยสร้างทั้งทรัพยากร Mirror และ IP: คลัสเตอร์หลังกระจกและวีไอพี

กำหนดค่ารายการ Ping สำหรับทรัพยากร IP

โดยค่าเริ่มต้น SPS-Linux จะตรวจสอบสถานะของทรัพยากร IP ด้วยการดำเนินการ ping ออกอากาศ  ในสภาพแวดล้อมเสมือนจริงและระบบคลาวด์หลายแห่งการส่งสัญญาณออกอากาศไม่ทำงาน  ในขั้นตอนก่อนหน้าเราตั้งค่า“ NOBCASTPING = 1” ใน / etc / default / LifeKeeper เพื่อปิดการตรวจสอบการออกอากาศ ping เราจะกำหนดรายการ ping แทน  นี่คือรายการที่อยู่ IP ที่จะทำการ ping ในระหว่างการตรวจสอบสถานะ IP สำหรับทรัพยากร IP นี้   ในคู่มือนี้เราจะเพิ่มเซิร์ฟเวอร์พยาน (10.0.2.4) ในรายการ ping ของเรา คลิกขวาที่ทรัพยากร IP (ip-10.1.0.10) และเลือกคุณสมบัติ: คุณจะAWS-ping-List1เห็นว่าเริ่มแรกไม่มีรายการ ping ถูกกำหนดค่าสำหรับซับเน็ต 10.1.0.0 ของเรา   คลิก“ แก้ไขรายการ PingAWS-ping-List2”: ป้อน“ 10.0.2.4” (ที่อยู่ IP ของเซิร์ฟเวอร์พยานของเรา) คลิก“ เพิ่มที่อยู่” และสุดท้ายคลิก“ AWS-ping-List3บันทึกรายการ”: คุณจะกลับสู่แผงคุณสมบัติ IP และสามารถยืนยันได้ว่า เพิ่ม 10.0.2.4 ไปยังรายการ ping  คลิกตกลงเพื่อปิดหน้าต่าง: AWS-ping-list4

สร้างลำดับชั้นของทรัพยากร MySQL

ถัดไปสร้างทรัพยากรคลัสเตอร์ MySQL  ทรัพยากร MySQL มีหน้าที่รับผิดชอบในการหยุด / เริ่ม / ตรวจสอบฐานข้อมูล MySQL ของคุณ ก่อนที่จะสร้างทรัพยากร MySQL ตรวจสอบให้แน่ใจว่าฐานข้อมูลกำลังทำงานอยู่  เรียกใช้“ ps -ef | grep sql” เพื่อตรวจสอบ ถ้ามันทำงานได้ยอดเยี่ยม – ไม่มีอะไรทำ  ถ้าไม่เริ่มต้นให้สำรองฐานข้อมูล:

# mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 - ข้อมูล = / var / lib / mysql --log &

วิธีสร้างคลิกไอคอน“ สีเขียวบวก” เพื่อสร้างทรัพยากรใหม่: ทำตามตัวช่วยสร้างเพื่อสร้างทรัพยากร IP ด้วยการเลือกเหล่านี้:

เลือกชุดการกู้คืน: ฐานข้อมูล MySQL
ประเภท Switchback: อัจฉริยะ
เซิร์ฟเวอร์: node1
ตำแหน่งของ my.cnf: / var / lib / mysql
ตำแหน่งของไฟล์ปฏิบัติการ MySQL: / usr / bin
แท็กฐานข้อมูล: mysql

ขยายทรัพยากร IP ด้วยการเลือกดังต่อไปนี้:

เซิร์ฟเวอร์เป้าหมาย: node2
ประเภท Switchback: อัจฉริยะ
ลำดับความสำคัญของเทมเพลต: 1
เป้าหมายลำดับความสำคัญ: 10

เป็นผลให้คลัสเตอร์ของคุณจะมีลักษณะดังนี้  โปรดสังเกตว่าทรัพยากรการจำลองแบบข้อมูลถูกย้ายโดยอัตโนมัติภายใต้ฐานข้อมูล (สร้างการขึ้นต่อกันโดยอัตโนมัติ) เพื่อให้แน่ใจว่าจะถูกนำมาออนไลน์ก่อนฐานข้อมูลเสมอ: AWS หลังจาก MySQL-resource1

สร้างทรัพยากร EC2 เพื่อจัดการตารางเส้นทางเมื่อเกิดความล้มเหลว

SPS-Linux มีคุณสมบัติเฉพาะที่ช่วยให้ทรัพยากรสามารถเข้าแทนที่ระหว่างโหนดในโซนความพร้อมใช้งานที่แตกต่างกันและภูมิภาค ที่นี่ชุดการกู้คืน EC2 (ตัวแทนเอเจนต์คลัสเตอร์) ใช้เพื่อจัดการรูทเทเบิ้ลเพื่อให้การเชื่อมต่อกับ IP เสมือนถูกส่งไปยังโหนดคลัสเตอร์ที่ใช้งาน ในการสร้างคลิกไอคอน“ สีเขียวบวก” เพื่อสร้างทรัพยากรใหม่: ทำตามตัวช่วยสร้างเพื่อสร้างทรัพยากร EC2 ด้วยการเลือกเหล่านี้:

เลือกชุดการกู้คืน: Amazon EC2
ประเภท Switchback: อัจฉริยะ
เซิร์ฟเวอร์: node1
หน้าแรกของ EC2: / opt / aws
URL EC2: ec2.us-west-2.amazonaws.com
รหัสการเข้าถึง AWS: (ป้อนรหัสการเข้าถึงที่ได้รับก่อนหน้านี้)
AWS Secret Key: (ป้อนรหัสลับที่ได้รับก่อนหน้านี้)
ประเภททรัพยากร EC2: RouteTable (คลัสเตอร์แบ็กเอนด์)
ทรัพยากร IP: ip-10.1.0.10
แท็กทรัพยากร EC2: ec2-10.1.0.10

ขยายทรัพยากร IP ด้วยการเลือกดังต่อไปนี้:

เซิร์ฟเวอร์เป้าหมาย: node2
ประเภท Switchback: อัจฉริยะ
ลำดับความสำคัญของเทมเพลต: 1
เป้าหมายลำดับความสำคัญ: 10
แท็กทรัพยากร EC2: ec2-10.1.0.10

คลัสเตอร์จะมีลักษณะเช่นนี้  สังเกตว่าทรัพยากร EC2 อยู่ใต้ทรัพยากร IP อย่างไร: AWS หลังจาก EC2-resource1

สร้างการพึ่งพาระหว่างทรัพยากร IP และทรัพยากรฐานข้อมูล MySQL

สร้างการพึ่งพาระหว่างทรัพยากร IP และทรัพยากรฐานข้อมูล MySQL เพื่อให้ล้มเหลวพร้อมกันเป็นกลุ่ม  คลิกขวาที่ทรัพยากร“ mysql” และเลือก“ สร้างการพึ่งพาสร้าง-dependency1”: บนหน้าจอต่อไปนี้เลือกทรัพยากร“ ip-10.1.0.10” เป็นการพึ่งพา  คลิกถัดไปและดำเนินการต่อผ่านตัวช่วยสร้สร้าง-dependency2าง: ณ จุดนี้การกำหนดค่าคลัสเตอร์ SPS-Linux เสร็จสมบูรณ์  ลำดับชั้นของทรัพยากรจะมีลักษณะดังนี้: สร้าง-dependency3

ทดสอบ Cluster Connectivity

ณ จุดนี้การกำหนดค่า Amazon EC2 และคลัสเตอร์ทั้งหมดของเราเสร็จสมบูรณ์แล้ว! รีซอร์สคลัสเตอร์กำลังแอ็คทีฟบน nodeสร้าง-dependency31: ทดสอบการเชื่อมต่อกับคลัสเตอร์จากเซิร์ฟเวอร์พยาน (หรืออินสแตนซ์ linux อื่นหากคุณมีหนึ่ง) SSH ลงในเซิร์ฟเวอร์พยาน "sudo su -" เพื่อเข้าถึงรูท   ติดตั้งไคลเอนต์ mysql หากต้องการ:

[root @itness ~] # yum -y ติดตั้ง mysql

ทดสอบการเชื่อมต่อ MySQL กับคลัสเตอร์:

[root @itness ~] # mysql --host = 10.1.0.10 mysql -u root -p

ดำเนินการแบบสอบถาม MySQL ต่อไปนี้เพื่อแสดงชื่อโฮสต์ของโหนดคลัสเตอร์ที่ใช้งาน:

MariaDB [mysql]> เลือก @@ ชื่อโฮสต์;
 ------------ 
| @@ ชื่อโฮสต์ |
 ------------ 
| โหนด 1 |
 ------------ 
1 แถวในชุด (0.00 วินาที)
MariaDB [mysql]>

ใช้ LifeKeeper GUI, failover จาก Node1 -> Node2″  คลิกขวาที่ทรัพยากร mysql ใต้ node2 และเลือก“ In Service …”: หลังจากAWS-failover1 failover เสร็จสิ้นให้รันการสืบค้น MySQL อีกครั้ง  คุณจะสังเกตเห็นว่าไคลเอนต์ MySQL ตรวจพบว่าเซสชันนั้นหายไป (ระหว่างการทำงานล้มเหลว) และเชื่อมต่อใหม่โดยอัตโนมัติ: ดำเนินการแบบสอบถาม MySQL ต่อไปนี้เพื่อแสดงชื่อโฮสต์ของโหนดคลัสเตอร์ที่ใช้งานอยู่ซึ่งยืนยันว่าตอนนี้“ node2” เปิดใช้งานแล้ว:

MariaDB [mysql]> เลือก @@ ชื่อโฮสต์;
ข้อผิดพลาด 2006 (HY000): เซิร์ฟเวอร์ MySQL หายไป
ไม่มีการเชื่อมต่อ. กำลังพยายามเชื่อมต่อใหม่ ...
ID การเชื่อมต่อ: 12
ฐานข้อมูลปัจจุบัน: mysql
 ------------ 
| @@ ชื่อโฮสต์ |
 ------------ 
| โหนด 2 |
 ------------ 
1 แถวในชุด (0.53 วินาที)
MariaDB [mysql]>

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

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: AWS, Linux failover clusters, MySQL

คลัสเตอร์ failover ของ Linux ใน Microsoft Azure IaaS โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน

ธันวาคม 19, 2018 by Jason Aw Leave a Comment

ทีละขั้นตอน: วิธีกำหนดค่าคลัสเตอร์การโอนย้าย Linux ใน Microsoft Azure IaaS โดยไม่ใช้ที่เก็บข้อมูลร่วมกัน #azure #sanless

ในคู่มือทีละขั้นตอนนี้ผมจะนำคุณผ่านขั้นตอนทั้งหมดที่จำเป็นในการกำหนดค่าคลัสเตอร์ MySQL แบบ 2 โหนดพร้อมด้วยเซิร์ฟเวอร์พยานใน Microsoft Azure IaaS (Infrastructure as a Service)  คู่มือนี้รวมทั้งภาพหน้าจอคำสั่งเชลล์และข้อมูลโค้ดตามความเหมาะสม  ฉันคิดว่าคุณค่อนข้างคุ้นเคยกับ Microsoft Azure แล้วและมีบัญชี Azure กับการสมัครสมาชิกที่เกี่ยวข้อง  ถ้าไม่คุณสามารถลงชื่อสมัครใช้บัญชีฟรีได้ในวันนี้  ฉันจะสมมติว่าคุณมีทักษะในการบริหารระบบลินุกซ์ขั้นพื้นฐานและเข้าใจแนวคิด failover clustering พื้นฐานเช่น Virtual IPs เป็นต้น

ข้อควรระวัง: Azure เป็นเป้าหมายที่เคลื่อนที่อย่างรวดเร็ว  มันเริ่มดีขึ้นเรื่อย ๆ ทุกวัน! ดังนั้นคุณลักษณะ / หน้าจอ / ปุ่มจึงต้องเปลี่ยนแปลงไปตามช่วงเวลาเพื่อให้ประสบการณ์ของคุณอาจแตกต่างจากที่คุณเห็นด้านล่างเล็กน้อย  แม้ว่าคู่มือนี้จะแสดงวิธีการสร้างฐานข้อมูล MySQL ที่พร้อมให้บริการคุณสามารถปรับข้อมูลและกระบวนการนี้เพื่อปกป้องโปรแกรมหรือฐานข้อมูลอื่น ๆ เช่น SAP, Oracle, PostgreSQL, NFS file servers และอื่น ๆ ได้ นี่คือขั้นตอนระดับสูงเพื่อสร้างฐานข้อมูล MySQL ที่พร้อมใช้งานภายใน Microsoft Azure IaaS:

  1. สร้างกลุ่มทรัพยากร
  2. สร้างเครือข่ายเสมือนจริง
  3. สร้างบัญชีที่เก็บข้อมูล
  4. สร้างเครื่องเสมือนในชุดความพร้อมใช้งาน
  5. ตั้งค่าที่อยู่ IP แบบคงที่ของ VM
  6. เพิ่มดิสก์ข้อมูลลงในโหนดคลัสเตอร์
  7. สร้างกฎความปลอดภัยขาเข้าเพื่อให้เข้าถึง VNC
  8. การกำหนดค่าระบบปฏิบัติการ Linux
  9. ติดตั้งและกำหนดค่า MySQL
  10. ติดตั้งและกำหนดค่าคลัสเตอร์
  11. สร้าง Balancer โหลดภายใน
  12. ทดสอบ Cluster Connectivity

ภาพรวม

บทความนี้จะอธิบายขั้นตอนการตั้งค่า Linux Failover Cluster ใน Microsoft Azure IaaS โดยไม่ใช้ Shared Storage จะอธิบายถึงวิธีการสร้างคลัสเตอร์ภายในพื้นที่ Azure อันเดียว  โหนดคลัสเตอร์ (โหนด 1, โหนด 2 และเซิร์ฟเวอร์พยาน) จะอยู่ในชุดความพร้อมใช้งาน (3 โดเมนและโดเมนการอัปเดตที่แตกต่างกัน) เนื่องจาก Azure Resource Manager (ARM) ใหม่ เราจะสร้างแหล่งข้อมูลทั้งหมดโดยใช้ Azure Resource Manager ใหม่ การกำหนดค่าจะมีลักษณะดังนีคลัสเตอร์แผนภาพ้: จะใช้ที่อยู่ IP ต่อไปนี้:

  • node1: 10.0.0.4
  • node2: 10.0.0.5
  • พยาน: 10.0.0.6
  • เสมือน / "ลอย" IP: 10.0.0.99
  • พอร์ต MySQL: 3306

สร้างกลุ่มทรัพยากร

ขั้นแรกให้สร้างกลุ่มทรัพยากร  กลุ่มทรัพยากรของคุณจะจบลงด้วยเนื้อหาทั้งหมดที่เกี่ยวข้องกับการใช้งานคลัสเตอร์ของเรา: เครื่องเสมือนเครือข่ายเสมือนบัญชีเก็บข้อมูล ฯลฯ  ที่นี่เราจะเรียกกลุ่มทรัพยากร "resource-cluster-resources" ที่สร้างขึ้นใหม่ กลุ่มทรัพยากร 1 โปรดระวังเมื่อเลือกภูมิภาคของคุณ  ทรัพยากรทั้งหมดของคุณจะต้องอาศัยอยู่ในภูมิภาคเดียวกัน  ที่นี่เราจะปรับใช้ทุกสิ่งทุกอย่างในภูมิภาค "West US": กลุ่มทรัพยากร 2

สร้างเครือข่ายเสมือนจริง (VNet)

การสร้างเครือข่ายเสมือนจริงจะเป็นขั้นตอนต่อไปในการกำหนดคอนฟิกคลัสเตอร์ Failover Clustering ใน Microsoft Azure IaaS โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน เครือข่ายเสมือนเป็นเครือข่ายที่แยกได้ภายในเมฆ Azure ที่ทุ่มเทให้กับคุณ  คุณสามารถควบคุมสิ่งต่างๆเช่นบล็อกที่อยู่ IP และเครือข่ายย่อยเส้นทางนโยบายด้านความปลอดภัย (เช่นไฟร์วอลล์) การตั้งค่า DNS และอื่น ๆ  คุณจะได้เปิดตัวเครื่องเสมือน (VMs) Azure Iaas ของคุณลงใน Virtual Network ของคุณ เครือข่ายเสมือน 1 ตรวจสอบให้แน่ใจว่าคุณเลือก Resource Manager เป็นรูปแบบการปรับใช้งานเมื่อคุณได้รับตเครือข่ายเสมือน 2ัวเลือก: ให้ Virtual Network ใหม่เป็นชื่อ ("virtual-network") และตรวจสอบว่าคุณเลือกกลุ่มทรัพยากรที่สร้างขึ้นในขั้นตอนก่อนหน้า (" ทรัพยากร”)  เครือข่ายเสมือนของคุณต้องอาศัยอยู่ในภูมิภาคเดียวกับกลุ่มทรัพยากรของคุณ  เราจะปล่อยค่า IP Address และ Subnet ให้เป็นค่าเริ่มต้น เครือข่ายเสมือน 3

สร้างบัญชีที่เก็บข้อมูล

ก่อนที่คุณจะจัดเตรียมเครื่องเสมือนใด ๆ คุณจะต้องสร้างบัญชีพื้นที่เก็บข้อมูลที่จะจัดเก็บ บัญชีที่เก็บข้อมูล 1 อีกครั้งให้แน่ใจว่าคุณเลือก Resource Manager เป็นรูปแบบการปรับใช้ตลอดเวลาที่คุณได้รับตัวเลือก: จากนั้ที่เก็บข้อมูล account2นให้ตั้งชื่อบัญชีพื้นที่เก็บข้อมูลใหม่ของคุณ  ชื่อบัญชีพื้นที่เก็บข้อมูลต้องไม่ซ้ำกันใน * ALL * ของ Azure  (ทุกๆวัตถุที่คุณเก็บไว้ใน Azure Storage มีที่อยู่ URL ที่ไม่ซ้ำกัน ชื่อบัญชีพื้นที่เก็บข้อมูลจะสร้างโดเมนย่อยของที่อยู่นั้น) ในตัวอย่างนี้ฉันเรียกบัญชีเก็บข้อมูล "linuxclusterstorage" ของฉัน แต่คุณจะต้องเลือกสิ่งที่แตกต่างออกไปในขณะที่คุณตั้งค่าบัญชีของคุณเอง เลือกประเภทพื้นที่เก็บข้อมูลตามความต้องการและงบประมาณของคุณ  สำหรับจุดประสงค์ของคู่มือนี้ฉันได้เลือก "Standard-LRS" (กล่าวคือ Redundant) เพื่อลดต้นทุน ตรวจสอบว่าบัญชี Storage ใหม่ของคุณถูกเพิ่มลงในกลุ่มทรัพยากรที่คุณสร้างไว้ในขั้นตอนที่ 1 ("ทรัพยากรคลัสเตอร์") ในตำแหน่งเดียวกัน ("West US" ในตัวอย่างนี้): ที่เก็บข้อมูล account3

สร้างเครื่องเสมือนในชุดความพร้อมใช้งาน

เราจะเตรียมเครื่องเสมือน 3 เครื่องไว้ในคู่มือนี้  VMs แรก 2 ตัว (ฉันจะเรียกว่า "node1" และ "node2") จะทำหน้าที่เป็นโหนดคลัสเตอร์ที่มีความสามารถในการนำฐานข้อมูล MySQL มาใช้และเป็นแหล่งข้อมูลออนไลน์ที่เกี่ยวข้อง  VM ที่ 3 จะทำหน้าที่เป็นเซิร์ฟเวอร์พยานของคลัสเตอร์เพื่อเพิ่มการป้องกันการแยกสมอง เพื่อให้มีพื้นที่ว่างสูงสุด VM ทั้ง 3 เครื่องจะถูกเพิ่มลงในชุดการตั้งค่าความพร้อมกันเพื่อให้แน่ใจว่าพวกเขาจะลงท้ายด้วยโดเมนฟอลต์และโดเมนการอัปเดตที่แตกต่างกัน

สร้าง "node1" VM

สร้าง VM เครื่องแรกของคุณ ("node1")  ในคู่มือนี้เราจะใช้ CentOS 6.X: ตรวจสอสร้าง vm1บให้แน่ใจว่าคุณใช้รูปแบบการปรับใช้ Resource Manager  ควรเลือกโดยค่าเริ่มต้น: ใสร้าง vm2ห้ VM ชื่อโฮสต์ ("node1") และชื่อผู้ใช้ / รหัสผ่านที่จะใช้ใน SSH ในระบบต่อไป  ตรวจสอบให้แน่ใจว่าคุณได้เพิ่ม VM นี้ลงใน Resource Group ("cluster-resources") และอยู่ในพื้นที่เดียวกันกับทรัพยากรอื่น ๆ ทั้งหมดของสร้าง vm3คุณ: ถัดไปเลือกขนาดของอินสแตนซ์  สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขนาดต่างๆที่มีให้คลิกที่นี่ สำหรับจุดประสงค์ของคู่มือนี้ฉันใช้ "A3 Standard" สำหรับ Node1 และ Node2 เพื่อลดต้นทุนเนื่องจากจะไม่ใช้ปริมาณการผลิต  ฉันใช้แม้แต่ขนาดเล็ก "A1 มาตรฐาน" ขนาดสำหรับเซิร์ฟเวอร์พยาน  เลือกขนาดอินสแตนซ์ที่เหมาะสมกับคุณมากที่สุด สร้าง vm4 ถ้าคุณต้องการเชื่อมต่อ VM จากภายนอกให้ตั้งค่าที่อยู่ IP สาธารณะ  ฉันทำอย่างนี้เพื่อให้สามารถใช้ SSH และ VNC ในระบบได้ต่อไปข้สร้าง vm5อสำคัญ: โดยค่าเริ่มต้น VM ของคุณจะไม่ถูกเพิ่มลงในชุดการตั้งค่าความพร้อมใช้งาน  ในหน้าจอการตั้งค่าระหว่างตรวจสอบให้แน่ใจว่าคุณได้สร้างชุดข้อมูลการให้บริการใหม่แล้วเราจะเรียก "cluster-availability-set"  Azure Resource Manager (ARM) ช่วยให้คุณสามารถสร้างชุดการตั้งค่าความพร้อมใช้งานได้โดยใช้โดเมนที่เป็นเท็จ 3 แห่ง  ค่าดีฟอลต์ที่นี่ดูดี: ตรวจสอบคุสร้าง vm6ณสมบัติ VM ของคุณและคลิก OK เพื่อสร้าง VM เครื่องแรกของคุณ: สร้าง vm7

สร้าง "node2" และ "witness" VMs

ทำซ้ำขั้นตอนข้างต้นสองครั้งเพื่อสร้าง VM อีกสองเครื่อง  ฉันสร้างอีกขนาด "A3 Standard" ขนาด VM ที่เรียกว่า "node2" และ "A1 Standard" ขนาด VM ที่เรียกว่า "witness" ข้อแตกต่างเพียงอย่างเดียวคือคุณจะเพิ่ม VM เหล่านี้ลงในชุดการตั้งค่าความพร้อมใช้งาน (cluster-availability-set) ซึ่งเราเพิ่งสร้างขึ้น: อาจสร้าง vm8ใช้เวลาสักครู่เพื่อให้อุปกรณ์ 3 เครื่องของคุณสามารถจัดหาได้  เมื่อเสร็จสิ้นคุณจะเห็น VM ของคุณแสดงอยู่ในหน้าจอเครื่องเสมือนภายใน Azure Portal ของคุณ: สร้าง vm9

ตั้งค่าที่อยู่ IP แบบคงที่ของ VM

VM จะถูกตั้งค่าด้วยที่อยู่ IP ต่อไปนี้:

  • node1: 10.0.0.4
  • node2: 10.0.0.5
  • พยาน: 10.0.0.6

ทำซ้ำขั้นตอนนี้สำหรับแต่ละ VM  เลือก VM ของคุณและแก้ไข Network Interfaceip แบบคงที่s เลือกอินเตอร์เฟซเครือข่ายที่เกี่ยวข้องกับ VM และแก้ไขที่อยู่ IP  เลือก "คงที่" และระบุที่อยู่ IP ที่ต้องการ: static ip address2

เพิ่มดิสก์ข้อมูลลงในโหนดคลัสเตอร์

ต่อไปเราจะต้องเพิ่มดิสก์พิเศษของโหนดคลัสเตอร์ของเรา ("node1" และ "node2")  ดิสก์นี้จะเก็บฐานข้อมูล MySQL ของเราและต่อมาจะจำลองแบบระหว่างโหนด หมายเหตุ: คุณไม่จำเป็นต้องเพิ่มดิสก์พิเศษลงในโหนด "witness"  เฉพาะ "node1" และ "node2" แก้ไข VM เลือกดิสก์แล้วใส่ดิสก์ใหม่: เลือกปdisk1 ที่สองระเภทดิสก์ (Standard หรือ Premium SSD) และขนาดตามปริมาณงานของคุณ  ที่นี่ฉันจะสร้างดิสก์มาตรฐานขนาด 10GB ทั้งโหนดคลัสเตอร์ของฉัน  หากแคช Host แคชไป "None" หรือ "Read only" cache ก็ไม่เป็นไร  ฉันไม่แนะนำให้ใช้ "อ่าน / เขียน" เนื่องจากอาจทำให้ข้อมูลสูญหายได้: disk2 ที่สอง

สร้างกฎความปลอดภัยขาเข้าเพื่อให้เข้าถึง VNC

หาก VM ของคุณเป็นส่วนหนึ่งของ Network Security Group (NSG) ซึ่งโดยปกติจะเป็นไปได้ว่าคุณจะไม่ได้ใช้งานในระหว่างการสร้าง VM พอร์ตเฉพาะที่เปิดอยู่ใน "Azure firewall" คือ SSH (พอร์ต 22)  ในคู่มือนี้ฉันจะใช้ VNC เพื่อเข้าถึงเดสก์ท็อปของ "node1" และกำหนดค่าคลัสเตอร์โดยใช้ GUI  สร้างกฎความปลอดภัยขาเข้าเพื่อเปิดการเข้าถึง VNC  ในพอร์ตคู่มือ 5902 นี้ถูกใช้  ปรับค่านี้ตามการกำหนดค่า VNC ของคุณ (เลือก NIC) -> กลุ่มรักษาความปลอดภัยเครือข่าย -> (เลือก NSG) -> กฎความปลอดภัยขาเข้า -> เพิ่ม กฎความปลอดภัยขาเข้า 1

การกำหนดค่าระบบปฏิบัติการ Linux

นี่คือจุดที่เราจะออกจาก Azure Portal นิดหน่อยและทำให้มือของเราสกปรกในบรรทัดคำสั่งซึ่งในขณะนี้คุณควรจะเป็นผู้ดูแลระบบ Linux  คุณไม่ได้รับรหัสผ่าน root ไปยัง Linux VM ของคุณใน Azure ดังนั้นเมื่อคุณล็อกอินเป็นผู้ใช้ที่ระบุในระหว่างการสร้าง VM ให้ใช้คำสั่ง "sudo" เพื่อรับสิทธิ์ root:

$ sudo su -

แก้ไข / etc / hosts

ถ้าคุณไม่มีการตั้งค่าเซิร์ฟเวอร์ DNS คุณจะต้องสร้างรายการไฟล์โฮสต์บนเซิร์ฟเวอร์ทั้ง 3 เครื่องเพื่อให้สามารถแก้ไขกันได้ดีโดยใช้ชื่อเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ / etc / hosts ของคุณ:

10.0.0.4 node1
10.0.0.5 node2
10.0.0.6 พยาน
10.0.0.99 mysql-vip

ปิดใช้งาน SELinux

แก้ไข / etc / sysconfig / linux และตั้งค่า "SELINUX = disabled":

# vi / etc / sysconfig / selinux

# แฟ้มนี้ควบคุมสถานะ SELinux ในระบบ
# SELINUX = สามารถใช้หนึ่งในสามค่าต่อไปนี้:
# enforcing - ใช้นโยบายความปลอดภัยของ SELinux
# permissive - SELinux พิมพ์คำเตือนแทนการบังคับใช้
# disabled - ไม่มีนโยบาย SELinux ถูกโหลด
SELINUX = คนพิการ
# SELINUXTYPE = สามารถใช้หนึ่งในสองค่านี้:
เป้าหมาย # - กระบวนการกำหนดเป้าหมายได้รับการป้องกัน,
# mls - การป้องกันความปลอดภัยแบบหลายระดับ
SELINUXTYPE = การกำหนดเป้าหมาย

กำหนดค่า iptables เพื่อให้คลัสเตอร์ IP เสมือนทำงานได้

สิ่งสำคัญ: เพื่อให้สามารถเชื่อมต่อกับ Virtual IP ของคลัสเตอร์และตรวจสอบทรัพยากร IP ได้ต้องมีการตั้งค่ากฎ iptables บางอย่าง  หมายเหตุ: 10.0.0.99 คือ Virtual IP ที่เราจะใช้ในคลัสเตอร์ของเราและ 3306 เป็นพอร์ตดีฟอลต์ที่ใช้ MySQL ของฉัน ที่ node1 (10.0.0.4) ให้รันคำสั่งต่อไปนี้:

# iptables - ไหล
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
- ไปยังปลายทาง 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p-icmp -s 10.0.0.99 -j SNAT 
- แหล่งที่มา 10.0.0.4
# iptables บริการประหยัด
# chkconfig iptables บน

บน Node2 (10.0.0.5) เรียกใช้คำสั่งต่อไปนี้:

# iptables - ไหล
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
- ไปยังปลายทาง 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p-icmp -s 10.0.0.99 -j SNAT 
- แหล่งที่มา 10.0.0.5
# iptables บริการประหยัด
# chkconfig iptables บน

ติดตั้งและกำหนดค่า VNC (และแพคเกจที่เกี่ยวข้อง)

ในการเข้าถึง GUI ของเซิร์ฟเวอร์ linux ของเราเพื่อกำหนดค่าคลัสเตอร์ของเราให้ติดตั้งเซิร์ฟเวอร์ VNC ในโหนดคลัสเตอร์ของคุณในภายหลัง  ในการตั้งค่าของฉันฉันเท่านั้นนี้ใน "node1"

# yum install tigervnc-server xterm
# vncpasswd
# vi / etc / sysconfig / vncservers

      VNCSERVERS = "2: ราก"
      VNCSERVERARGS [2] = "- รูปทรงเรขาคณิต 1024x768"

# vncserver เริ่มบริการ
# chkconfig vncserver บน

ทดสอบการเชื่อมต่อโดยการเปิดโปรแกรม VNC บนแล็ปท็อป / เดสก์ท็อปและเชื่อมต่อกับ Public IP ของโหนดคลัสเตอร์ของคุณ

โหนดรีสตาร์ทคลัสเตอร์

รีบูตโหนดคลัสเตอร์ของคุณเพื่อให้ SELinux ถูกปิดใช้งานและตรวจพบดิสก์ที่ 2 ที่คุณเพิ่มไว้ก่อนหน้านี้ เฉพาะ "node1" และ "node2" เท่านั้นที่ต้องบูตเครื่องใหม่

พาร์ทิชันและฟอร์แมตดิสก์ "ข้อมูล"

ในขั้นตอนที่ 6 ของคู่มือนี้ ("เพิ่มดิสก์ข้อมูลไปยังโหนดคลัสเตอร์") เราได้ดำเนินการดังนี้ … เพิ่มดิสก์พิเศษในแต่ละโหนดคลัสเตอร์เพื่อเก็บข้อมูลแอ็พพลิเคชันที่เราจะปกป้อง  ในกรณีนี้เป็นฐานข้อมูล MySQL ใน Azure IaaS Linux Virtual Machines ใช้การจัดเรียงต่อไปนี้สำหรับดิสก์:

  • / dev / sda – ดิสก์ระบบปฏิบัติการ
  • / dev / sdb – ดิสก์ชั่วคราว
  • / dev / sdc – ดิสก์ข้อมูลที่ 1
  • / dev / sdd – ดิสก์ข้อมูลที่ 2
  • …
  • / dev / sdj – ดิสก์ข้อมูลที่ 8

ดิสก์ที่เราเพิ่มในขั้นตอนที่ 6 ของคู่มือนี้ควรปรากฏเป็น / dev / sdc  คุณสามารถเรียกใช้คำสั่ง "fdisk -l" เพื่อยืนยัน  คุณจะเห็นว่า / dev / sda (OS) และ / dev / sdb (ชั่วคราว) มีพาร์ติชันดิสก์อยู่และกำลังใช้อยู่

# fdisk -l

ดิสก์ / dev / sdb: 306.0 GB, 306016419840 ไบต์
255 หัว 63 เซกเมนต์ / แทร็ก 37204 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0xd3920649

Device Boot เริ่มระบบ End Block Block
/ dev / sdb1 * 1 37205 298842112 83 Linux

ดิสก์ / dev / sdc: 10.7 GB, 10737418240 ไบต์
255 หัว 63 เซกเมนต์ / แทรค, 1305 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0x00000000

ดิสก์ / dev / sda: 32.2 GB, 32212254720 ไบต์
255 หัว 63 เซกเมนต์ / แทร็ก 3916 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0x000c23d3

Device Boot เริ่มระบบ End Block Block
/ dev / sda1 * 1 3789 30432256 83 Linux
/ dev / sda2 3789 3917 1024000 82 Linux swap / Solaris

  ที่นี่ฉันจะสร้างพาร์ติชัน (/ dev / sdc1) จัดรูปแบบและติดตั้งไว้ที่ตำแหน่งเริ่มต้นสำหรับ MySQL ซึ่งเป็น / var / lib / mysql  ทำตามขั้นตอนต่อไปนี้ทั้ง BOTH "node1" และ "node2":

# fdisk / dev / sdc
คำสั่ง (m สำหรับความช่วยเหลือ): n
Command action
e ขยาย
พาร์ติชันหลัก p (1-4)
พี
หมายเลขพาร์ติชัน (1-4): 1
ถังแรก (1-1305, ค่าเริ่มต้น 1): <enter>
ใช้ค่าเริ่มต้น 1
กระบอกสูบถังหรือขนาด {K, M, G} (1-1305, ค่าเริ่มต้น 1305): <enter>
ใช้ค่าเริ่มต้น 1305
 
คำสั่ง (m สำหรับความช่วยเหลือ): w
ตารางพาร์ทิชันได้รับการเปลี่ยนแปลง!
เรียก ioctl () เพื่ออ่านตารางพาร์ทิชันอีกครั้ง
การซิงค์ดิสก์
[root @ node1 ~] #

# mkfs.ext4 / dev / sdc1
# mkdir / var / lib / mysql

ใน node1 ให้ติดตั้งระบบไฟล์:

# mount / dev / sdc1 / var / lib / mysql

ติดตั้งและกำหนดค่า MySQL

ถัดไปติดตั้งติดตั้งชุด MySQL, initialize ฐานข้อมูลตัวอย่างและตั้งรหัสผ่าน root สำหรับ MySQL

บน "node1":

# yum -y ติดตั้ง mysql mysql-server
# / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" - user = mysql
# mysqld_safe - ผู้ใช้ = root --socket = / var / lib / mysql / mysql.sock --port = 3306 
--datadir = / var / lib / mysql --log &
#
# # หมายเหตุ: คำสั่งต่อไปนี้อนุญาตให้เชื่อมต่อระยะไกลจากโฮสต์ใดก็ได้  
ไม่ใช่ความคิดที่ดีสำหรับการผลิต!
# echo "update user set Host = '%' ที่ Host = 'node1'; สิทธิ์การล้าง mysql mysql
#
# # ตั้งรหัสผ่าน root ของ MySQL ให้เป็น 'SIOS'
# echo "ตั้งค่าผู้ใช้รหัสผ่าน = PASSWORD ('SIOS') โดยที่ User = 'root'; flush privileges" 
| mysql mysql

สร้างแฟ้มการกำหนดค่า MySQL เราจะวางข้อมูลนี้ลงในดิสก์ข้อมูล (ซึ่งจะมีการจำลองแบบ – /var/lib/mysql/my.cnf)  ตัวอย่าง:

# vi /var/lib/mysql/my.cnf

[mysqld]
datadir = / var / lib / MySQL
ซ็อกเก็ต = / var / lib / MySQL / mysql.sock
pid = ไฟล์ / var / lib / MySQL / mysqld.pid
ผู้ใช้ = ราก
พอร์ต = 3306
# การปิดใช้งานการเชื่อมโยงสัญลักษณ์แนะนำเพื่อป้องกันความเสี่ยงด้านความปลอดภัยต่างๆ
สัญลักษณ์การเชื่อมโยง = 0
 
[mysqld_safe]
เข้าสู่ระบบข้อผิดพลาด = / var / log / mysqld.log
pid = ไฟล์ / var / ทำงาน / mysqld / mysqld.pid
 
[ลูกค้า]
ผู้ใช้ = ราก
รหัสผ่าน = SIOS

ลบไฟล์การกำหนดค่า MySQL ต้นฉบับที่อยู่ใน / etc ถ้ามีอยู่:

# rm /etc/my.cnf

ใน "node2":

ใน "node2" คุณจำเป็นต้องติดตั้งแพคเกจ MySQL เท่านั้น  ขั้นตอนอื่น ๆ ไม่จำเป็นต้องมี:

[root @ node2 ~] # yum -y ติดตั้ง mysql mysql-server

ติดตั้งและกำหนดค่าคลัสเตอร์

ณ จุดนี้เราพร้อมที่จะติดตั้งและกำหนดค่าคลัสเตอร์ของเราแล้ว  SIOS Protection Suite สำหรับ Linux (aka SPS-Linux) จะใช้ในคู่มือนี้เป็นเทคโนโลยีการจัดกลุ่ม  มีคุณสมบัติ failover clustering ที่มีประสิทธิภาพสูง (LifeKeeper) ตลอดจนแบบจำลองข้อมูลระดับ (DataKeeper) ในแบบเรียลไทม์ในโซลูชันแบบรวม  SPS-Linux ช่วยให้คุณสามารถปรับใช้คลัสเตอร์ "SANLess" หรือที่เรียกว่า "shared nothing" cluster ซึ่งหมายความว่าโหนดคลัสเตอร์ไม่มีที่จัดเก็บข้อมูลร่วมกันเช่นในกรณีที่มี Azure VMs

ติดตั้ง SIOS Protection Suite สำหรับ Linux

ทำตามขั้นตอนต่อไปนี้บน VM 3 เครื่อง (ดาวน์โหลดไฟล์การติดตั้ง SPS-Linux (sps.img)  ติดต่อ SIOS สำหรับข้อมูลเพิ่มเติม คุณจะวนลูปเมาท์และเรียกใช้สคริปต์ "setup" ภายในเป็น root (หรือ "sudo su" แรก "เพื่อให้ได้ root shell) ตัวอย่างเช่น:

# mkdir / tmp / install
# mount -o loop sps.img / tmp / install
# cd / tmp / install
# ./ติดตั้ง

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

  • บนหน้าจอ "High Availability NFS" คุณสามารถเลือก "n" ได้เนื่องจากเราจะไม่สร้างเซิร์ฟเวอร์ NFS ที่มีประสิทธิภาพสูง
  • ในตอนท้ายสคริปต์การตั้งค่าคุณสามารถเลือกที่จะติดตั้งคีย์สิทธิ์การใช้งานทดลองตอนนี้หรือใหม่กว่าได้ เราจะติดตั้งคีย์ใบอนุญาตในภายหลังเพื่อให้คุณสามารถเลือก "n" ได้อย่างปลอดภัย ณ จุดนี้
  • ในหน้าจอสุดท้ายของ "การตั้งค่า" เลือก ARK (ชุดการกู้คืนแอ็พพลิเคชัน ได้แก่ "ตัวแทนของคลัสเตอร์") ที่คุณต้องการติดตั้งจากรายการที่แสดงบนหน้าจอ
    • ARK จะต้องใช้เฉพาะ "node1" และ "node2" เท่านั้น  คุณไม่จำเป็นต้องติดตั้ง "พยาน"
    • เลื่อนรายการด้วยลูกศรขึ้น / ลงและกด SPACEBAR เพื่อเลือกรายการต่อไปนี้:
      • lkDR – DataKeeper สำหรับ Linux
      • lkSQL – ชุดกู้คืนข้อมูล RDBMS ของ LifeKeeper
    • ซึ่งจะส่งผลให้ RPM เพิ่มเติมที่ติดตั้งใน "node1" และ "node2":
      • Steeleye-lkDR-9.0.2-6513.noarch.rpm
      • Steeleye-lkSQL-9.0.2-6513.noarch.rpm

ติดตั้ง Witness / Quorum package

แพคเกจสนับสนุน Quorum / Witness Server สำหรับ LifeKeeper (steeleye-lkQWK) พร้อมกับกระบวนการ failover ที่มีอยู่ของ LifeKeeper core ช่วยให้ failover ระบบเกิดขึ้นได้ด้วยความมั่นใจมากขึ้นในสถานการณ์ที่ความล้มเหลวของเครือข่ายทั้งหมดอาจเป็นเรื่องปกติ นี้มีประสิทธิภาพหมายความว่า failovers สามารถทำได้ในขณะที่ช่วยลดความเสี่ยงของ "แยกสมอง" สถานการณ์ ติดตั้ง Witness / Quorum rpm บนโหนดทั้ง 3 โหนด (โหนด 1, โหนด 2, พยาน):

# cd / tmp / install / quorum
# รอบต่อนาที - เหล็กหล่อเหล็ก - lkQWK-9.0.2-6513.noarch.rpm

บน nodes ทั้งหมด 3 โหนด (node1, node2, witness), แก้ไข / etc / default / LifeKeeper, ตั้งค่า NOBCASTPING = 1 เฉพาะบนเซิร์ฟเวอร์ Witness เท่านั้น ("witness"), แก้ไข / etc / default / LifeKeeper, ตั้งค่า WITNESS_MODE = off / none

ติดตั้งคีย์ใบอนุญาต

ใน 3 โหนดทั้งหมดใช้คำสั่ง "lkkeyins" เพื่อติดตั้งไฟล์ใบอนุญาตที่คุณได้รับจาก SIOS:

# / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic

เริ่ม LifeKeeper

บนโหนดทั้ง 3 โหนดให้ใช้คำสั่ง "lkstart" เพื่อเริ่มต้นซอฟต์แวร์คลัสเตอร์:

# / opt / LifeKeeper / bin / lkstart

ตั้งค่าสิทธิ์ผู้ใช้สำหรับ LifeKeeper GUI

ในทั้ง 3 โหนดให้แก้ไข / etc / group และเพิ่มผู้ใช้ "tony" (หรือชื่อผู้ใช้ที่คุณระบุในระหว่างการสร้าง VM) ไปยังกลุ่ม "lkadmin" เพื่อให้สิทธิ์การเข้าถึง LifeKeeper GUI  โดยค่าเริ่มต้น "root" เป็นสมาชิกของกลุ่มเท่านั้นและเราไม่มีรหัสผ่าน root ใน:

# vi / etc / group

lkadmin: x 1001: ราก tony

เปิด LifeKeeper GUI

ทำการเชื่อมต่อ VNC กับที่อยู่ IP สาธารณะของ node1  จากการกำหนดค่า VNC และการกำหนดค่าความปลอดภัยขาเข้าจากด้านบนคุณจะต้องเชื่อมต่อกับ <Public_IP>: 2 โดยใช้รหัสผ่าน VNC ที่คุณระบุไว้ก่อนหน้านี้  เมื่อเข้าสู่ระบบแล้วให้เปิดหน้าต่างเทอร์มินัลและรัน LifeKeeper GUI โดยใช้คำสั่งต่อไปนี้:

# / opt / LifeKeeper / bin / lkGUIapp &

คุณจะได้รับพร้อมท์ให้เชื่อมต่อกับโหนดคลัสเตอร์แรกของคุณ ("node1") LK-GUI-connect3

 

  

  •  
  •  

    

  •  
  •  
  •  

       

 

  

  

  

 
 
 
 
 
 
 
 
 

  

 
 
 
 
 
 
 
 
 
 

  

 

  

 
 
 
 
 
 

 

 
 
 
 
 
 
 

 

          

 

   

 
 
 
 
 
 

 

 
 
 
 

   

 

       

 

               

 

  

 

 

 

 

 
  
 
  
 
  
 
 

   

 
 
  
 
 
  
 
  
 
  
 
 

 

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: linux failover cluster ในไมโครซอฟต์ไมโครซอฟท์โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน, MySQL

คลัสเตอร์ failover ของ Linux ใน Microsoft Azure IaaS โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน

ธันวาคม 19, 2018 by Jason Aw Leave a Comment

ทีละขั้นตอน: วิธีกำหนดค่าคลัสเตอร์การโอนย้าย Linux ใน Microsoft Azure IaaS โดยไม่ใช้ที่เก็บข้อมูลร่วมกัน #azure #sanless

ในคู่มือทีละขั้นตอนนี้ผมจะนำคุณผ่านขั้นตอนทั้งหมดที่จำเป็นในการกำหนดค่าคลัสเตอร์ MySQL แบบ 2 โหนดพร้อมด้วยเซิร์ฟเวอร์พยานใน Microsoft Azure IaaS (Infrastructure as a Service)  คู่มือนี้รวมทั้งภาพหน้าจอคำสั่งเชลล์และข้อมูลโค้ดตามความเหมาะสม  ฉันคิดว่าคุณค่อนข้างคุ้นเคยกับ Microsoft Azure แล้วและมีบัญชี Azure กับการสมัครสมาชิกที่เกี่ยวข้อง  ถ้าไม่คุณสามารถลงชื่อสมัครใช้บัญชีฟรีได้ในวันนี้  ฉันจะสมมติว่าคุณมีทักษะในการบริหารระบบลินุกซ์ขั้นพื้นฐานและเข้าใจแนวคิด failover clustering พื้นฐานเช่น Virtual IPs เป็นต้น

ข้อควรระวัง: Azure เป็นเป้าหมายที่เคลื่อนที่อย่างรวดเร็ว  มันเริ่มดีขึ้นเรื่อย ๆ ทุกวัน! ดังนั้นคุณลักษณะ / หน้าจอ / ปุ่มจึงต้องเปลี่ยนแปลงไปตามช่วงเวลาเพื่อให้ประสบการณ์ของคุณอาจแตกต่างจากที่คุณเห็นด้านล่างเล็กน้อย  แม้ว่าคู่มือนี้จะแสดงวิธีการสร้างฐานข้อมูล MySQL ที่พร้อมให้บริการคุณสามารถปรับข้อมูลและกระบวนการนี้เพื่อปกป้องโปรแกรมหรือฐานข้อมูลอื่น ๆ เช่น SAP, Oracle, PostgreSQL, NFS file servers และอื่น ๆ ได้ นี่คือขั้นตอนระดับสูงเพื่อสร้างฐานข้อมูล MySQL ที่พร้อมใช้งานภายใน Microsoft Azure IaaS:

  1. สร้างกลุ่มทรัพยากร
  2. สร้างเครือข่ายเสมือนจริง
  3. สร้างบัญชีที่เก็บข้อมูล
  4. สร้างเครื่องเสมือนในชุดความพร้อมใช้งาน
  5. ตั้งค่าที่อยู่ IP แบบคงที่ของ VM
  6. เพิ่มดิสก์ข้อมูลลงในโหนดคลัสเตอร์
  7. สร้างกฎความปลอดภัยขาเข้าเพื่อให้เข้าถึง VNC
  8. การกำหนดค่าระบบปฏิบัติการ Linux
  9. ติดตั้งและกำหนดค่า MySQL
  10. ติดตั้งและกำหนดค่าคลัสเตอร์
  11. สร้าง Balancer โหลดภายใน
  12. ทดสอบ Cluster Connectivity

ภาพรวม

บทความนี้จะอธิบายขั้นตอนการตั้งค่า Linux Failover Cluster ใน Microsoft Azure IaaS โดยไม่ใช้ Shared Storage จะอธิบายถึงวิธีการสร้างคลัสเตอร์ภายในพื้นที่ Azure อันเดียว  โหนดคลัสเตอร์ (โหนด 1, โหนด 2 และเซิร์ฟเวอร์พยาน) จะอยู่ในชุดความพร้อมใช้งาน (3 โดเมนและโดเมนการอัปเดตที่แตกต่างกัน) เนื่องจาก Azure Resource Manager (ARM) ใหม่ เราจะสร้างแหล่งข้อมูลทั้งหมดโดยใช้ Azure Resource Manager ใหม่ การกำหนดค่าจะมีลักษณะดังนีคลัสเตอร์แผนภาพ้: จะใช้ที่อยู่ IP ต่อไปนี้:

  • node1: 10.0.0.4
  • node2: 10.0.0.5
  • พยาน: 10.0.0.6
  • เสมือน / "ลอย" IP: 10.0.0.99
  • พอร์ต MySQL: 3306

สร้างกลุ่มทรัพยากร

ขั้นแรกให้สร้างกลุ่มทรัพยากร  กลุ่มทรัพยากรของคุณจะจบลงด้วยเนื้อหาทั้งหมดที่เกี่ยวข้องกับการใช้งานคลัสเตอร์ของเรา: เครื่องเสมือนเครือข่ายเสมือนบัญชีเก็บข้อมูล ฯลฯ  ที่นี่เราจะเรียกกลุ่มทรัพยากร "resource-cluster-resources" ที่สร้างขึ้นใหม่ กลุ่มทรัพยากร 1 โปรดระวังเมื่อเลือกภูมิภาคของคุณ  ทรัพยากรทั้งหมดของคุณจะต้องอาศัยอยู่ในภูมิภาคเดียวกัน  ที่นี่เราจะปรับใช้ทุกสิ่งทุกอย่างในภูมิภาค "West US": กลุ่มทรัพยากร 2

สร้างเครือข่ายเสมือนจริง (VNet)

การสร้างเครือข่ายเสมือนจริงจะเป็นขั้นตอนต่อไปในการกำหนดคอนฟิกคลัสเตอร์ Failover Clustering ใน Microsoft Azure IaaS โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน เครือข่ายเสมือนเป็นเครือข่ายที่แยกได้ภายในเมฆ Azure ที่ทุ่มเทให้กับคุณ  คุณสามารถควบคุมสิ่งต่างๆเช่นบล็อกที่อยู่ IP และเครือข่ายย่อยเส้นทางนโยบายด้านความปลอดภัย (เช่นไฟร์วอลล์) การตั้งค่า DNS และอื่น ๆ  คุณจะได้เปิดตัวเครื่องเสมือน (VMs) Azure Iaas ของคุณลงใน Virtual Network ของคุณ เครือข่ายเสมือน 1 ตรวจสอบให้แน่ใจว่าคุณเลือก Resource Manager เป็นรูปแบบการปรับใช้งานเมื่อคุณได้รับตเครือข่ายเสมือน 2ัวเลือก: ให้ Virtual Network ใหม่เป็นชื่อ ("virtual-network") และตรวจสอบว่าคุณเลือกกลุ่มทรัพยากรที่สร้างขึ้นในขั้นตอนก่อนหน้า (" ทรัพยากร”)  เครือข่ายเสมือนของคุณต้องอาศัยอยู่ในภูมิภาคเดียวกับกลุ่มทรัพยากรของคุณ  เราจะปล่อยค่า IP Address และ Subnet ให้เป็นค่าเริ่มต้น เครือข่ายเสมือน 3

สร้างบัญชีที่เก็บข้อมูล

ก่อนที่คุณจะจัดเตรียมเครื่องเสมือนใด ๆ คุณจะต้องสร้างบัญชีพื้นที่เก็บข้อมูลที่จะจัดเก็บ บัญชีที่เก็บข้อมูล 1 อีกครั้งให้แน่ใจว่าคุณเลือก Resource Manager เป็นรูปแบบการปรับใช้ตลอดเวลาที่คุณได้รับตัวเลือก: จากนั้ที่เก็บข้อมูล account2นให้ตั้งชื่อบัญชีพื้นที่เก็บข้อมูลใหม่ของคุณ  ชื่อบัญชีพื้นที่เก็บข้อมูลต้องไม่ซ้ำกันใน * ALL * ของ Azure  (ทุกๆวัตถุที่คุณเก็บไว้ใน Azure Storage มีที่อยู่ URL ที่ไม่ซ้ำกัน ชื่อบัญชีพื้นที่เก็บข้อมูลจะสร้างโดเมนย่อยของที่อยู่นั้น) ในตัวอย่างนี้ฉันเรียกบัญชีเก็บข้อมูล "linuxclusterstorage" ของฉัน แต่คุณจะต้องเลือกสิ่งที่แตกต่างออกไปในขณะที่คุณตั้งค่าบัญชีของคุณเอง เลือกประเภทพื้นที่เก็บข้อมูลตามความต้องการและงบประมาณของคุณ  สำหรับจุดประสงค์ของคู่มือนี้ฉันได้เลือก "Standard-LRS" (กล่าวคือ Redundant) เพื่อลดต้นทุน ตรวจสอบว่าบัญชี Storage ใหม่ของคุณถูกเพิ่มลงในกลุ่มทรัพยากรที่คุณสร้างไว้ในขั้นตอนที่ 1 ("ทรัพยากรคลัสเตอร์") ในตำแหน่งเดียวกัน ("West US" ในตัวอย่างนี้): ที่เก็บข้อมูล account3

สร้างเครื่องเสมือนในชุดความพร้อมใช้งาน

เราจะเตรียมเครื่องเสมือน 3 เครื่องไว้ในคู่มือนี้  VMs แรก 2 ตัว (ฉันจะเรียกว่า "node1" และ "node2") จะทำหน้าที่เป็นโหนดคลัสเตอร์ที่มีความสามารถในการนำฐานข้อมูล MySQL มาใช้และเป็นแหล่งข้อมูลออนไลน์ที่เกี่ยวข้อง  VM ที่ 3 จะทำหน้าที่เป็นเซิร์ฟเวอร์พยานของคลัสเตอร์เพื่อเพิ่มการป้องกันการแยกสมอง เพื่อให้มีพื้นที่ว่างสูงสุด VM ทั้ง 3 เครื่องจะถูกเพิ่มลงในชุดการตั้งค่าความพร้อมกันเพื่อให้แน่ใจว่าพวกเขาจะลงท้ายด้วยโดเมนฟอลต์และโดเมนการอัปเดตที่แตกต่างกัน

สร้าง "node1" VM

สร้าง VM เครื่องแรกของคุณ ("node1")  ในคู่มือนี้เราจะใช้ CentOS 6.X: ตรวจสอสร้าง vm1บให้แน่ใจว่าคุณใช้รูปแบบการปรับใช้ Resource Manager  ควรเลือกโดยค่าเริ่มต้น: ใสร้าง vm2ห้ VM ชื่อโฮสต์ ("node1") และชื่อผู้ใช้ / รหัสผ่านที่จะใช้ใน SSH ในระบบต่อไป  ตรวจสอบให้แน่ใจว่าคุณได้เพิ่ม VM นี้ลงใน Resource Group ("cluster-resources") และอยู่ในพื้นที่เดียวกันกับทรัพยากรอื่น ๆ ทั้งหมดของสร้าง vm3คุณ: ถัดไปเลือกขนาดของอินสแตนซ์  สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขนาดต่างๆที่มีให้คลิกที่นี่ สำหรับจุดประสงค์ของคู่มือนี้ฉันใช้ "A3 Standard" สำหรับ Node1 และ Node2 เพื่อลดต้นทุนเนื่องจากจะไม่ใช้ปริมาณการผลิต  ฉันใช้แม้แต่ขนาดเล็ก "A1 มาตรฐาน" ขนาดสำหรับเซิร์ฟเวอร์พยาน  เลือกขนาดอินสแตนซ์ที่เหมาะสมกับคุณมากที่สุด สร้าง vm4 ถ้าคุณต้องการเชื่อมต่อ VM จากภายนอกให้ตั้งค่าที่อยู่ IP สาธารณะ  ฉันทำอย่างนี้เพื่อให้สามารถใช้ SSH และ VNC ในระบบได้ต่อไปข้สร้าง vm5อสำคัญ: โดยค่าเริ่มต้น VM ของคุณจะไม่ถูกเพิ่มลงในชุดการตั้งค่าความพร้อมใช้งาน  ในหน้าจอการตั้งค่าระหว่างตรวจสอบให้แน่ใจว่าคุณได้สร้างชุดข้อมูลการให้บริการใหม่แล้วเราจะเรียก "cluster-availability-set"  Azure Resource Manager (ARM) ช่วยให้คุณสามารถสร้างชุดการตั้งค่าความพร้อมใช้งานได้โดยใช้โดเมนที่เป็นเท็จ 3 แห่ง  ค่าดีฟอลต์ที่นี่ดูดี: ตรวจสอบคุสร้าง vm6ณสมบัติ VM ของคุณและคลิก OK เพื่อสร้าง VM เครื่องแรกของคุณ: สร้าง vm7

สร้าง "node2" และ "witness" VMs

ทำซ้ำขั้นตอนข้างต้นสองครั้งเพื่อสร้าง VM อีกสองเครื่อง  ฉันสร้างอีกขนาด "A3 Standard" ขนาด VM ที่เรียกว่า "node2" และ "A1 Standard" ขนาด VM ที่เรียกว่า "witness" ข้อแตกต่างเพียงอย่างเดียวคือคุณจะเพิ่ม VM เหล่านี้ลงในชุดการตั้งค่าความพร้อมใช้งาน (cluster-availability-set) ซึ่งเราเพิ่งสร้างขึ้น: อาจสร้าง vm8ใช้เวลาสักครู่เพื่อให้อุปกรณ์ 3 เครื่องของคุณสามารถจัดหาได้  เมื่อเสร็จสิ้นคุณจะเห็น VM ของคุณแสดงอยู่ในหน้าจอเครื่องเสมือนภายใน Azure Portal ของคุณ: สร้าง vm9

ตั้งค่าที่อยู่ IP แบบคงที่ของ VM

VM จะถูกตั้งค่าด้วยที่อยู่ IP ต่อไปนี้:

  • node1: 10.0.0.4
  • node2: 10.0.0.5
  • พยาน: 10.0.0.6

ทำซ้ำขั้นตอนนี้สำหรับแต่ละ VM  เลือก VM ของคุณและแก้ไข Network Interfaceip แบบคงที่s เลือกอินเตอร์เฟซเครือข่ายที่เกี่ยวข้องกับ VM และแก้ไขที่อยู่ IP  เลือก "คงที่" และระบุที่อยู่ IP ที่ต้องการ: static ip address2

เพิ่มดิสก์ข้อมูลลงในโหนดคลัสเตอร์

ต่อไปเราจะต้องเพิ่มดิสก์พิเศษของโหนดคลัสเตอร์ของเรา ("node1" และ "node2")  ดิสก์นี้จะเก็บฐานข้อมูล MySQL ของเราและต่อมาจะจำลองแบบระหว่างโหนด หมายเหตุ: คุณไม่จำเป็นต้องเพิ่มดิสก์พิเศษลงในโหนด "witness"  เฉพาะ "node1" และ "node2" แก้ไข VM เลือกดิสก์แล้วใส่ดิสก์ใหม่: เลือกปdisk1 ที่สองระเภทดิสก์ (Standard หรือ Premium SSD) และขนาดตามปริมาณงานของคุณ  ที่นี่ฉันจะสร้างดิสก์มาตรฐานขนาด 10GB ทั้งโหนดคลัสเตอร์ของฉัน  หากแคช Host แคชไป "None" หรือ "Read only" cache ก็ไม่เป็นไร  ฉันไม่แนะนำให้ใช้ "อ่าน / เขียน" เนื่องจากอาจทำให้ข้อมูลสูญหายได้: disk2 ที่สอง

สร้างกฎความปลอดภัยขาเข้าเพื่อให้เข้าถึง VNC

หาก VM ของคุณเป็นส่วนหนึ่งของ Network Security Group (NSG) ซึ่งโดยปกติจะเป็นไปได้ว่าคุณจะไม่ได้ใช้งานในระหว่างการสร้าง VM พอร์ตเฉพาะที่เปิดอยู่ใน "Azure firewall" คือ SSH (พอร์ต 22)  ในคู่มือนี้ฉันจะใช้ VNC เพื่อเข้าถึงเดสก์ท็อปของ "node1" และกำหนดค่าคลัสเตอร์โดยใช้ GUI  สร้างกฎความปลอดภัยขาเข้าเพื่อเปิดการเข้าถึง VNC  ในพอร์ตคู่มือ 5902 นี้ถูกใช้  ปรับค่านี้ตามการกำหนดค่า VNC ของคุณ (เลือก NIC) -> กลุ่มรักษาความปลอดภัยเครือข่าย -> (เลือก NSG) -> กฎความปลอดภัยขาเข้า -> เพิ่ม กฎความปลอดภัยขาเข้า 1

การกำหนดค่าระบบปฏิบัติการ Linux

นี่คือจุดที่เราจะออกจาก Azure Portal นิดหน่อยและทำให้มือของเราสกปรกในบรรทัดคำสั่งซึ่งในขณะนี้คุณควรจะเป็นผู้ดูแลระบบ Linux  คุณไม่ได้รับรหัสผ่าน root ไปยัง Linux VM ของคุณใน Azure ดังนั้นเมื่อคุณล็อกอินเป็นผู้ใช้ที่ระบุในระหว่างการสร้าง VM ให้ใช้คำสั่ง "sudo" เพื่อรับสิทธิ์ root:

$ sudo su -

แก้ไข / etc / hosts

ถ้าคุณไม่มีการตั้งค่าเซิร์ฟเวอร์ DNS คุณจะต้องสร้างรายการไฟล์โฮสต์บนเซิร์ฟเวอร์ทั้ง 3 เครื่องเพื่อให้สามารถแก้ไขกันได้ดีโดยใช้ชื่อเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ / etc / hosts ของคุณ:

10.0.0.4 node1
10.0.0.5 node2
10.0.0.6 พยาน
10.0.0.99 mysql-vip

ปิดใช้งาน SELinux

แก้ไข / etc / sysconfig / linux และตั้งค่า "SELINUX = disabled":

# vi / etc / sysconfig / selinux

# แฟ้มนี้ควบคุมสถานะ SELinux ในระบบ
# SELINUX = สามารถใช้หนึ่งในสามค่าต่อไปนี้:
# enforcing - ใช้นโยบายความปลอดภัยของ SELinux
# permissive - SELinux พิมพ์คำเตือนแทนการบังคับใช้
# disabled - ไม่มีนโยบาย SELinux ถูกโหลด
SELINUX = คนพิการ
# SELINUXTYPE = สามารถใช้หนึ่งในสองค่านี้:
เป้าหมาย # - กระบวนการกำหนดเป้าหมายได้รับการป้องกัน,
# mls - การป้องกันความปลอดภัยแบบหลายระดับ
SELINUXTYPE = การกำหนดเป้าหมาย

กำหนดค่า iptables เพื่อให้คลัสเตอร์ IP เสมือนทำงานได้

สิ่งสำคัญ: เพื่อให้สามารถเชื่อมต่อกับ Virtual IP ของคลัสเตอร์และตรวจสอบทรัพยากร IP ได้ต้องมีการตั้งค่ากฎ iptables บางอย่าง  หมายเหตุ: 10.0.0.99 คือ Virtual IP ที่เราจะใช้ในคลัสเตอร์ของเราและ 3306 เป็นพอร์ตดีฟอลต์ที่ใช้ MySQL ของฉัน ที่ node1 (10.0.0.4) ให้รันคำสั่งต่อไปนี้:

# iptables - ไหล
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
- ไปยังปลายทาง 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p-icmp -s 10.0.0.99 -j SNAT 
- แหล่งที่มา 10.0.0.4
# iptables บริการประหยัด
# chkconfig iptables บน

บน Node2 (10.0.0.5) เรียกใช้คำสั่งต่อไปนี้:

# iptables - ไหล
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
- ไปยังปลายทาง 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p-icmp -s 10.0.0.99 -j SNAT 
- แหล่งที่มา 10.0.0.5
# iptables บริการประหยัด
# chkconfig iptables บน

ติดตั้งและกำหนดค่า VNC (และแพคเกจที่เกี่ยวข้อง)

ในการเข้าถึง GUI ของเซิร์ฟเวอร์ linux ของเราเพื่อกำหนดค่าคลัสเตอร์ของเราให้ติดตั้งเซิร์ฟเวอร์ VNC ในโหนดคลัสเตอร์ของคุณในภายหลัง  ในการตั้งค่าของฉันฉันเท่านั้นนี้ใน "node1"

# yum install tigervnc-server xterm
# vncpasswd
# vi / etc / sysconfig / vncservers

      VNCSERVERS = "2: ราก"
      VNCSERVERARGS [2] = "- รูปทรงเรขาคณิต 1024x768"

# vncserver เริ่มบริการ
# chkconfig vncserver บน

ทดสอบการเชื่อมต่อโดยการเปิดโปรแกรม VNC บนแล็ปท็อป / เดสก์ท็อปและเชื่อมต่อกับ Public IP ของโหนดคลัสเตอร์ของคุณ

โหนดรีสตาร์ทคลัสเตอร์

รีบูตโหนดคลัสเตอร์ของคุณเพื่อให้ SELinux ถูกปิดใช้งานและตรวจพบดิสก์ที่ 2 ที่คุณเพิ่มไว้ก่อนหน้านี้ เฉพาะ "node1" และ "node2" เท่านั้นที่ต้องบูตเครื่องใหม่

พาร์ทิชันและฟอร์แมตดิสก์ "ข้อมูล"

ในขั้นตอนที่ 6 ของคู่มือนี้ ("เพิ่มดิสก์ข้อมูลไปยังโหนดคลัสเตอร์") เราได้ดำเนินการดังนี้ … เพิ่มดิสก์พิเศษในแต่ละโหนดคลัสเตอร์เพื่อเก็บข้อมูลแอ็พพลิเคชันที่เราจะปกป้อง  ในกรณีนี้เป็นฐานข้อมูล MySQL ใน Azure IaaS Linux Virtual Machines ใช้การจัดเรียงต่อไปนี้สำหรับดิสก์:

  • / dev / sda – ดิสก์ระบบปฏิบัติการ
  • / dev / sdb – ดิสก์ชั่วคราว
  • / dev / sdc – ดิสก์ข้อมูลที่ 1
  • / dev / sdd – ดิสก์ข้อมูลที่ 2
  • …
  • / dev / sdj – ดิสก์ข้อมูลที่ 8

ดิสก์ที่เราเพิ่มในขั้นตอนที่ 6 ของคู่มือนี้ควรปรากฏเป็น / dev / sdc  คุณสามารถเรียกใช้คำสั่ง "fdisk -l" เพื่อยืนยัน  คุณจะเห็นว่า / dev / sda (OS) และ / dev / sdb (ชั่วคราว) มีพาร์ติชันดิสก์อยู่และกำลังใช้อยู่

# fdisk -l

ดิสก์ / dev / sdb: 306.0 GB, 306016419840 ไบต์
255 หัว 63 เซกเมนต์ / แทร็ก 37204 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0xd3920649

Device Boot เริ่มระบบ End Block Block
/ dev / sdb1 * 1 37205 298842112 83 Linux

ดิสก์ / dev / sdc: 10.7 GB, 10737418240 ไบต์
255 หัว 63 เซกเมนต์ / แทรค, 1305 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0x00000000

ดิสก์ / dev / sda: 32.2 GB, 32212254720 ไบต์
255 หัว 63 เซกเมนต์ / แทร็ก 3916 กระบอกสูบ
หน่วย = กระบอกสูบ 16065 * 512 = 8225280 ไบต์
ขนาดของเซกเตอร์ (ตรรกะ / ทางกายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / ดีที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0x000c23d3

Device Boot เริ่มระบบ End Block Block
/ dev / sda1 * 1 3789 30432256 83 Linux
/ dev / sda2 3789 3917 1024000 82 Linux swap / Solaris

  ที่นี่ฉันจะสร้างพาร์ติชัน (/ dev / sdc1) จัดรูปแบบและติดตั้งไว้ที่ตำแหน่งเริ่มต้นสำหรับ MySQL ซึ่งเป็น / var / lib / mysql  ทำตามขั้นตอนต่อไปนี้ทั้ง BOTH "node1" และ "node2":

# fdisk / dev / sdc
คำสั่ง (m สำหรับความช่วยเหลือ): n
Command action
e ขยาย
พาร์ติชันหลัก p (1-4)
พี
หมายเลขพาร์ติชัน (1-4): 1
ถังแรก (1-1305, ค่าเริ่มต้น 1): <enter>
ใช้ค่าเริ่มต้น 1
กระบอกสูบถังหรือขนาด {K, M, G} (1-1305, ค่าเริ่มต้น 1305): <enter>
ใช้ค่าเริ่มต้น 1305
 
คำสั่ง (m สำหรับความช่วยเหลือ): w
ตารางพาร์ทิชันได้รับการเปลี่ยนแปลง!
เรียก ioctl () เพื่ออ่านตารางพาร์ทิชันอีกครั้ง
การซิงค์ดิสก์
[root @ node1 ~] #

# mkfs.ext4 / dev / sdc1
# mkdir / var / lib / mysql

ใน node1 ให้ติดตั้งระบบไฟล์:

# mount / dev / sdc1 / var / lib / mysql

ติดตั้งและกำหนดค่า MySQL

ถัดไปติดตั้งติดตั้งชุด MySQL, initialize ฐานข้อมูลตัวอย่างและตั้งรหัสผ่าน root สำหรับ MySQL

บน "node1":

# yum -y ติดตั้ง mysql mysql-server
# / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" - user = mysql
# mysqld_safe - ผู้ใช้ = root --socket = / var / lib / mysql / mysql.sock --port = 3306 
--datadir = / var / lib / mysql --log &
#
# # หมายเหตุ: คำสั่งต่อไปนี้อนุญาตให้เชื่อมต่อระยะไกลจากโฮสต์ใดก็ได้  
ไม่ใช่ความคิดที่ดีสำหรับการผลิต!
# echo "update user set Host = '%' ที่ Host = 'node1'; สิทธิ์การล้าง mysql mysql
#
# # ตั้งรหัสผ่าน root ของ MySQL ให้เป็น 'SIOS'
# echo "ตั้งค่าผู้ใช้รหัสผ่าน = PASSWORD ('SIOS') โดยที่ User = 'root'; flush privileges" 
| mysql mysql

สร้างแฟ้มการกำหนดค่า MySQL เราจะวางข้อมูลนี้ลงในดิสก์ข้อมูล (ซึ่งจะมีการจำลองแบบ – /var/lib/mysql/my.cnf)  ตัวอย่าง:

# vi /var/lib/mysql/my.cnf

[mysqld]
datadir = / var / lib / MySQL
ซ็อกเก็ต = / var / lib / MySQL / mysql.sock
pid = ไฟล์ / var / lib / MySQL / mysqld.pid
ผู้ใช้ = ราก
พอร์ต = 3306
# การปิดใช้งานการเชื่อมโยงสัญลักษณ์แนะนำเพื่อป้องกันความเสี่ยงด้านความปลอดภัยต่างๆ
สัญลักษณ์การเชื่อมโยง = 0
 
[mysqld_safe]
เข้าสู่ระบบข้อผิดพลาด = / var / log / mysqld.log
pid = ไฟล์ / var / ทำงาน / mysqld / mysqld.pid
 
[ลูกค้า]
ผู้ใช้ = ราก
รหัสผ่าน = SIOS

ลบไฟล์การกำหนดค่า MySQL ต้นฉบับที่อยู่ใน / etc ถ้ามีอยู่:

# rm /etc/my.cnf

ใน "node2":

ใน "node2" คุณจำเป็นต้องติดตั้งแพคเกจ MySQL เท่านั้น  ขั้นตอนอื่น ๆ ไม่จำเป็นต้องมี:

[root @ node2 ~] # yum -y ติดตั้ง mysql mysql-server

ติดตั้งและกำหนดค่าคลัสเตอร์

ณ จุดนี้เราพร้อมที่จะติดตั้งและกำหนดค่าคลัสเตอร์ของเราแล้ว  SIOS Protection Suite สำหรับ Linux (aka SPS-Linux) จะใช้ในคู่มือนี้เป็นเทคโนโลยีการจัดกลุ่ม  มีคุณสมบัติ failover clustering ที่มีประสิทธิภาพสูง (LifeKeeper) ตลอดจนแบบจำลองข้อมูลระดับ (DataKeeper) ในแบบเรียลไทม์ในโซลูชันแบบรวม  SPS-Linux ช่วยให้คุณสามารถปรับใช้คลัสเตอร์ "SANLess" หรือที่เรียกว่า "shared nothing" cluster ซึ่งหมายความว่าโหนดคลัสเตอร์ไม่มีที่จัดเก็บข้อมูลร่วมกันเช่นในกรณีที่มี Azure VMs

ติดตั้ง SIOS Protection Suite สำหรับ Linux

ทำตามขั้นตอนต่อไปนี้บน VM 3 เครื่อง (ดาวน์โหลดไฟล์การติดตั้ง SPS-Linux (sps.img)  ติดต่อ SIOS สำหรับข้อมูลเพิ่มเติม คุณจะวนลูปเมาท์และเรียกใช้สคริปต์ "setup" ภายในเป็น root (หรือ "sudo su" แรก "เพื่อให้ได้ root shell) ตัวอย่างเช่น:

# mkdir / tmp / install
# mount -o loop sps.img / tmp / install
# cd / tmp / install
# ./ติดตั้ง

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

  • บนหน้าจอ "High Availability NFS" คุณสามารถเลือก "n" ได้เนื่องจากเราจะไม่สร้างเซิร์ฟเวอร์ NFS ที่มีประสิทธิภาพสูง
  • ในตอนท้ายสคริปต์การตั้งค่าคุณสามารถเลือกที่จะติดตั้งคีย์สิทธิ์การใช้งานทดลองตอนนี้หรือใหม่กว่าได้ เราจะติดตั้งคีย์ใบอนุญาตในภายหลังเพื่อให้คุณสามารถเลือก "n" ได้อย่างปลอดภัย ณ จุดนี้
  • ในหน้าจอสุดท้ายของ "การตั้งค่า" เลือก ARK (ชุดการกู้คืนแอ็พพลิเคชัน ได้แก่ "ตัวแทนของคลัสเตอร์") ที่คุณต้องการติดตั้งจากรายการที่แสดงบนหน้าจอ
    • ARK จะต้องใช้เฉพาะ "node1" และ "node2" เท่านั้น  คุณไม่จำเป็นต้องติดตั้ง "พยาน"
    • เลื่อนรายการด้วยลูกศรขึ้น / ลงและกด SPACEBAR เพื่อเลือกรายการต่อไปนี้:
      • lkDR – DataKeeper สำหรับ Linux
      • lkSQL – ชุดกู้คืนข้อมูล RDBMS ของ LifeKeeper
    • ซึ่งจะส่งผลให้ RPM เพิ่มเติมที่ติดตั้งใน "node1" และ "node2":
      • Steeleye-lkDR-9.0.2-6513.noarch.rpm
      • Steeleye-lkSQL-9.0.2-6513.noarch.rpm

ติดตั้ง Witness / Quorum package

แพคเกจสนับสนุน Quorum / Witness Server สำหรับ LifeKeeper (steeleye-lkQWK) พร้อมกับกระบวนการ failover ที่มีอยู่ของ LifeKeeper core ช่วยให้ failover ระบบเกิดขึ้นได้ด้วยความมั่นใจมากขึ้นในสถานการณ์ที่ความล้มเหลวของเครือข่ายทั้งหมดอาจเป็นเรื่องปกติ นี้มีประสิทธิภาพหมายความว่า failovers สามารถทำได้ในขณะที่ช่วยลดความเสี่ยงของ "แยกสมอง" สถานการณ์ ติดตั้ง Witness / Quorum rpm บนโหนดทั้ง 3 โหนด (โหนด 1, โหนด 2, พยาน):

# cd / tmp / install / quorum
# รอบต่อนาที - เหล็กหล่อเหล็ก - lkQWK-9.0.2-6513.noarch.rpm

บน nodes ทั้งหมด 3 โหนด (node1, node2, witness), แก้ไข / etc / default / LifeKeeper, ตั้งค่า NOBCASTPING = 1 เฉพาะบนเซิร์ฟเวอร์ Witness เท่านั้น ("witness"), แก้ไข / etc / default / LifeKeeper, ตั้งค่า WITNESS_MODE = off / none

ติดตั้งคีย์ใบอนุญาต

ใน 3 โหนดทั้งหมดใช้คำสั่ง "lkkeyins" เพื่อติดตั้งไฟล์ใบอนุญาตที่คุณได้รับจาก SIOS:

# / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic

เริ่ม LifeKeeper

บนโหนดทั้ง 3 โหนดให้ใช้คำสั่ง "lkstart" เพื่อเริ่มต้นซอฟต์แวร์คลัสเตอร์:

# / opt / LifeKeeper / bin / lkstart

ตั้งค่าสิทธิ์ผู้ใช้สำหรับ LifeKeeper GUI

ในทั้ง 3 โหนดให้แก้ไข / etc / group และเพิ่มผู้ใช้ "tony" (หรือชื่อผู้ใช้ที่คุณระบุในระหว่างการสร้าง VM) ไปยังกลุ่ม "lkadmin" เพื่อให้สิทธิ์การเข้าถึง LifeKeeper GUI  โดยค่าเริ่มต้น "root" เป็นสมาชิกของกลุ่มเท่านั้นและเราไม่มีรหัสผ่าน root ใน:

# vi / etc / group

lkadmin: x 1001: ราก tony

เปิด LifeKeeper GUI

ทำการเชื่อมต่อ VNC กับที่อยู่ IP สาธารณะของ node1  จากการกำหนดค่า VNC และการกำหนดค่าความปลอดภัยขาเข้าจากด้านบนคุณจะต้องเชื่อมต่อกับ <Public_IP>: 2 โดยใช้รหัสผ่าน VNC ที่คุณระบุไว้ก่อนหน้านี้  เมื่อเข้าสู่ระบบแล้วให้เปิดหน้าต่างเทอร์มินัลและรัน LifeKeeper GUI โดยใช้คำสั่งต่อไปนี้:

# / opt / LifeKeeper / bin / lkGUIapp &

คุณจะได้รับพร้อมท์ให้เชื่อมต่อกับโหนดคลัสเตอร์แรกของคุณ ("node1") LK-GUI-connect3

 

  

  •  
  •  

    

  •  
  •  
  •  

       

 

  

  

  

 
 
 
 
 
 
 
 
 

  

 
 
 
 
 
 
 
 
 
 

  

 

  

 
 
 
 
 
 

 

 
 
 
 
 
 
 

 

          

 

   

 
 
 
 
 
 

 

 
 
 
 

   

 

       

 

               

ทดสอบ Cluster Connectivity

  

 

 

 

 

 
  
 
  
 
  
 
 

   

 
 
  
 
 
  
 
  
 
  
 
 

 

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: linux failover cluster ในไมโครซอฟต์ไมโครซอฟท์โดยไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน, MySQL

คู่มือการเชื่อมต่อกับเป้าหมาย iSCSI โดยใช้ซอฟต์แวร์เริ่มต้น iSCSI Initiator

ธันวาคม 18, 2018 by Jason Aw Leave a Comment

ทีละขั้นตอน: เชื่อมต่อกับเป้าหมาย iSCSI โดยใช้ Open-iSCSI Initiator Software

บทความนี้จะแสดงวิธีตั้งค่าคอนฟิกูเรชัน Open-iSCSI (ไคลเอ็นต์) เพื่อเชื่อมต่อกับเป้าหมาย iSCSI (เซิร์ฟเวอร์) ที่มีอยู่  ฉันจะไม่ตรวจสอบวิธีการตั้งค่า iSCSI Target ในบทความนี้ หากคุณยังไม่มี iSCSI Target ที่มีอยู่ในสิ่งแวดล้อมของคุณคุณอาจลองดู OpenFiler

ในคู่มือนี้ฉันใช้ระบบ CentOS 6.5 เป็น iSCSI initiator (client) และจะเชื่อมต่อกับเป้าหมาย iSCSI ที่มีอยู่

ติดตั้งซอฟต์แวร์ Open-iSCSI

ในระบบ CentOS 6.5 ระบบไม่ได้ติดตั้งแพคเกจ iscsi initiator แบบเปิดโดยค่าเริ่มต้น  คุณสามารถตรวจสอบดูว่าระบบของคุณมีแพคเกจติดตั้งหรือไม่โดยใช้คำสั่งต่อไปนี้: [root @ linux ~] # rpm -qa | grep iscsi-initiator-utils หากแพคเกจ iscsi-initiator-utils ไม่ได้ติดตั้งไว้ให้ใช้คำสั่ง "yum" เพื่อติดตั้ง: [root @ linux ~] # yum iscsi-initiator-utils

เริ่มบริการ iSCSI

หลังจากติดตั้งแพ็ค iscsi-initiator-utils แล้วให้เริ่มต้นบริการ iscsid และกำหนดค่าเซอร์วิส iscsid และ iscsi โดยอัตโนมัติทุกครั้งที่เริ่มระบบ: [root @ linux ~] # /etc/init.d/iscsid start [root @ linux ~] # chkconfig iscsid บน [root @ linux ~] # chkconfig iscsi บน

ค้นพบเป้าหมาย iSCSI

ใช้คำสั่ง iscsiadm เพื่อค้นหาเป้าหมาย iSCSI ทั้งหมดบนเซิร์ฟเวอร์เป้าหมาย iSCSI ของคุณ (เช่น iSCSI SAN ของคุณ  ในกรณีนี้เซิร์ฟเวอร์ของฉันใช้ OpenFiler): [root @ linux ~] # iscsiadm -m การค้นพบ -t sendtargets -p 192.168.197.201 192.168.197.201:3260,1 iqn.2006-01.com.openfiler: tsn.target1 หมายเหตุ: ในตัวอย่างของฉันชื่อโฮสต์ของ iSCSI Target (SAN) คือ "openfiler.mydomain.com" และมีที่อยู่ IP 192.168.197.201

ล็อกอินเข้าสู่เป้าหมาย iSCSI และกำหนดค่าล็อกอินโดยอัตโนมัติเมื่อเริ่มระบบ

[root @ linux ~] # iscsiadm -m โหนด -T iqn.2006-01.com.openfiler: tsn.target1 -p 192.168.197.201 --login [root @ linux ~] # iscsiadm -m โหนด -T iqn.2006 -01.com.openfiler: tsn.target1 -p 192.168.197.201 - อัปเดต -n node.startup-v โดยอัตโนมัติตรวจสอบ iSCSI เซสชั่นทำงานอยู่ [root @ linux ~] # iscsiadm -m session tcp: [1] 192.168 197.201: 3260,1 iqn.2006-01.com.openfiler: tsn.target1 ระบุอุปกรณ์ที่เป้าหมาย iSCSI กำหนดเป้าหมายไปที่ [root @ linux ~] # (cd / dev / disk / by-path; ls -l * iscsi * | awk '{FS = ""; พิมพ์ $ 9 "" $ 10 "" $ 11}') ip-192.168.197.201: 3260-iscsi-iqn.2006-01.com.openfiler: tsn.target1-lun-0 ->. ./../sdc นี้บอกเราว่าเป้าหมาย iSCSI ถูกแม็ปกับ / dev / sdc ในระบบ  จากที่นี่ใช้คำสั่งแบ่งพาร์ติชั่น / ฟอร์แมตมาตรฐาน (fdisk, mkfs ฯลฯ ) เพื่อติดตั้งดิสก์ตามที่ต้องการ! หากคุณสนใจที่จะทราบวิธีการเชื่อมต่อกับเป้าหมาย iSCSI โดยใช้ Open-iSCSI Initiator Software โปรดอ่านบล็อกของเราที่ทำซ้ำโดยได้รับอนุญาตจาก Linuxclustering

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: เปิดตัวเริ่มต้น iscsi

  • 1
  • 2
  • 3
  • Next Page »

โพสต์ล่าสุด

  • 10 ข้อควรพิจารณาในการเลือกโซลูชันความพร้อมใช้งานสูงในสภาพแวดล้อม Nutanix
  • เซิร์ฟเวอร์ของฉันเป็นแบบใช้แล้วทิ้งหรือไม่? ซอฟต์แวร์ความพร้อมใช้งานสูงสอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดของคลาวด์อย่างไร
  • กลยุทธ์การกู้คืนข้อมูลสำหรับโลกที่เสี่ยงต่อภัยพิบัติ
  • DataKeeper และเบสบอล: กลยุทธ์ในการกู้คืนจากภัยพิบัติ
  • การจัดทำงบประมาณสำหรับความเสี่ยงจากการหยุดทำงานของ SQL Server

กระทู้ยอดนิยม

เข้าร่วมรายชื่อผู้รับจดหมายของเรา

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in