การเพิ่มโหนด Cassandra

เมื่อเพิ่มโหนด Cassandra ไปยังคลัสเตอร์ คุณต้องพิจารณาประเด็นสำคัญ 2 ประการต่อไปนี้

  • ตำแหน่งที่มีอยู่ของโหนดในวงแหวน Cassandra ไม่ควรเปลี่ยนแปลงเพื่อลดการสตรีมและคงวงแหวนที่สมดุล
  • จำนวนโหนดในศูนย์ข้อมูลทั้งหมดต้องสอดคล้องกัน

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

ตัวอย่างเช่น หากคุณเริ่มต้นจากโทโพโลยีการติดตั้งคลัสเตอร์ 12 โหนดแบบมาตรฐานที่กระจายอยู่ในศูนย์ข้อมูล 2 แห่ง คุณจะมีโหนด Cassandra ทั้งหมด 6 โหนด โดย 3 โหนดในศูนย์ข้อมูลแต่ละแห่ง ในการขยายคลัสเตอร์นี้ คุณควรเพิ่มโหนด 3 โหนดให้กับศูนย์ข้อมูลแต่ละแห่ง โดยเพิ่มจำนวนโหนดทั้งหมดเป็น 12 โหนด (6 โหนดในศูนย์ข้อมูลแต่ละแห่ง) หากต้องมีการขยายเพิ่มเติม คุณควรเพิ่มโหนดอีก 6 โหนดให้กับศูนย์ข้อมูลแต่ละแห่ง ทำให้มีจำนวนโหนดทั้งหมดเท่ากับ 24 (12 โหนดในแต่ละศูนย์ข้อมูล)

เอกสารนี้ระบุวิธีการเพิ่มโหนด Cassandra ใหม่ 3 รายการไปยัง Edge สำหรับการติดตั้ง Private Cloud ที่มีอยู่ คุณสามารถทำตามขั้นตอนเดียวกันนี้เพื่อเพิ่มโหนดอีก โปรดตรวจสอบทุกครั้งว่าเมื่อขยายคลัสเตอร์ เพิ่มจำนวนโหนดเป็น 2 เท่า

ดูรายการข้อกำหนดของระบบสำหรับโหนด Cassandra ได้ที่ส่วนข้อกำหนดการติดตั้ง

การกำหนดค่า Edge ที่มีอยู่

โทโพโลยี Edge ทั้งหมดที่รองรับสำหรับระบบเวอร์ชันที่ใช้งานจริง ระบุว่าจะใช้ Cassandra 3 รายการ มีการระบุโหนด 3 โหนดให้กับพร็อพเพอร์ตี้ CASS_HOSTS ในไฟล์การกำหนดค่า ดังที่แสดงด้านล่าง

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

โปรดทราบว่าพร็อพเพอร์ตี้ REGION ระบุชื่อภูมิภาคเป็น "dc-1" คุณจำเป็นต้องมี เมื่อเพิ่มโหนด Cassandra ใหม่

การแก้ไขไฟล์การกำหนดค่าเพื่อเพิ่ม โหนด Cassandra ใหม่ทั้ง 3 โหนด

ในตัวอย่างนี้ โหนด Cassandra ใหม่ทั้ง 3 โหนดจะอยู่ที่ที่อยู่ IP ต่อไปนี้

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

คุณต้องอัปเดตไฟล์การกำหนดค่า Edge ก่อน เพื่อเพิ่มโหนดใหม่ ดังนี้

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

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

กำหนดค่า Edge

หลังจากแก้ไขไฟล์การกำหนดค่าแล้ว คุณต้องดำเนินการดังนี้

  • กำหนดค่าโหนด Cassandra ที่มีอยู่อีกครั้ง
  • ติดตั้ง Cassandra บนโหนดใหม่
  • กำหนดค่าเซิร์ฟเวอร์การจัดการใหม่

กำหนดค่า Cassandra ที่มีอยู่อีกครั้ง โหนด

ในโหนด Cassandra ที่มีอยู่:

  1. เรียกใช้ Setup.sh อีกครั้งโดยใช้ "-p c" profile และไฟล์การกำหนดค่าใหม่ดังนี้
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

ติดตั้ง Cassandra บนโหนดใหม่

ใช้ขั้นตอนด้านล่างเพื่อติดตั้ง Cassandra บนโหนดใหม่

ในแต่ละโหนด Cassandra ใหม่ ให้ทำดังนี้

  1. ติดตั้ง Cassandra บน 3 โหนดต่อไปนี้
    1. ติดตั้ง apigee-setup ใน โหนดแรกตามที่อธิบายไว้ใน ติดตั้งโหนด ยูทิลิตีการตั้งค่า Apigee ของ Edge
    2. ติดตั้ง Cassandra ในโหนดแรกโดยใช้ไฟล์การกำหนดค่าที่อัปเดตแล้ว
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. ทำซ้ำ 2 ขั้นตอนนี้กับโหนด Cassandra ใหม่ที่เหลืออยู่
  2. สร้างโหนด Cassandra ใหม่ 3 โหนดโดยระบุชื่อภูมิภาคที่จะใช้เป็นศูนย์ข้อมูล ที่คุณกำลังเพิ่มโหนด (dc-1, dc-2 เป็นต้น) ในตัวอย่างนี้คือ dc-1:
    1. ในโหนดแรก ให้เรียกใช้คำสั่งต่อไปนี้
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      โดยที่ nodeIP คือที่อยู่ IP ของโหนด Cassandra

      คุณต้องส่งชื่อผู้ใช้และรหัสผ่านเฉพาะในกรณีต่อไปนี้ เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

    2. ทำขั้นตอนนี้ซ้ำกับโหนด Cassandra ใหม่ที่เหลืออยู่

กำหนดค่าเซิร์ฟเวอร์การจัดการใหม่

ในโหนดการจัดการเซิร์ฟเวอร์

  1. เรียกใช้ Setup.sh อีกครั้งเพื่ออัปเดตเซิร์ฟเวอร์การจัดการสำหรับโหนด Cassandra ที่เพิ่มเข้ามาใหม่
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

รีสตาร์ทเราเตอร์และ Messages ทั้งหมด ผู้ประมวลผลข้อมูล

  1. ในเราเตอร์ทั้งหมด
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. ในตัวประมวลผลข้อความทั้งหมด:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

เพิ่มพื้นที่ว่างในดิสก์ โหนดคาสซานดรา

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

ในการเพิ่มพื้นที่ดิสก์ในโหนด Cassandra ที่มีอยู่หลังจากเพิ่มโหนดใหม่ ให้ใช้คำสั่ง คำสั่งต่อไปนี้

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

คุณต้องส่งชื่อผู้ใช้และรหัสผ่านเฉพาะในกรณีต่อไปนี้ เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

ยืนยันการสร้างใหม่

ใช้คำสั่งต่อไปนี้เพื่อยืนยันว่าการสร้างใหม่สำเร็จ

nodetool [-u username -pw password] -h nodeIP netstats

คำสั่งนี้ควรระบุ MODE: Normal เมื่อโหนดเริ่มทำงานและดัชนี ของ Google

nodetool [-u username -pw password] -h nodeIP statusthrift

ควรระบุว่าเซิร์ฟเวอร์ของมือสองกำลังทำงานอยู่ ซึ่งทำให้ Cassandra รับไคลเอ็นต์ใหม่ได้ คำขอ

nodetool [-u username -pw password] -h nodeIP statusbinary

ควรระบุว่าการส่งแบบเนทีฟ (หรือ โปรโตคอลไบนารี) กำลังทำงานอยู่

nodetool [-u username -pw password] -h nodeIP describecluster

โหนดใหม่จะแสดงใช้สคีมาเวอร์ชันเดียวกับโหนดเก่า

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ nodetool โปรดดู เอกสารการใช้งาน Nodetool