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

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

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

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

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

เอกสารนี้จะแสดงวิธีการเพิ่มโหนด Cassandra ใหม่ 3 โหนดลงในการติดตั้ง Edge for 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" และไฟล์การกําหนดค่าใหม่
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

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

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

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

  1. ติดตั้ง Cassandra ในโหนด 3 โหนด ดังนี้
    1. ติดตั้ง apigee-setup ในโหนดแรกตามที่อธิบายไว้ในติดตั้งยูทิลิตี apigee-setup ของ Edge
    2. ติดตั้ง Cassandra ในโหนดแรกโดยใช้ไฟล์การกําหนดค่าที่อัปเดตแล้ว โดยทําดังนี้
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. ทำขั้นตอนที่ 2 และ 3 ซ้ำสำหรับโหนด 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

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

  1. ในเราเตอร์ทุกรุ่น ให้ทำดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. ใน Message Processor ทั้งหมด
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

เพิ่มพื้นที่ว่างในดิสก์ของโหนด Cassandra ที่มีอยู่

หลังจากเพิ่มโหนดใหม่แล้ว คุณสามารถใช้คำสั่ง 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

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

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

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ nodetool ได้ที่เอกสารประกอบการใช้งาน nodetool