Cassandra র‍্যাক সহায়তা যোগ করা

এই বিভাগে, Cassandra-কে প্রাইভেট ক্লাউডের জন্য Apigee Edge-এ র‍্যাক সচেতন করে Cassandra-র অপারেশন স্কেল করার জন্য সাধারণ নির্দেশিকা প্রদান করা হয়েছে।

আপনার Cassandra রিং র‍্যাককে সচেতন করা কেন গুরুত্বপূর্ণ সেই সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত সম্পদ দেখুন:

র‍্যাক কী?

ক্যাসান্ড্রা র‍্যাক হল রিংয়ের মধ্যে ক্যাসান্ড্রা নোডের একটি লজিক্যাল গ্রুপিং। Cassandra র‍্যাক ব্যবহার করে যাতে এটি নিশ্চিত করতে পারে যে রেপ্লিকাগুলি বিভিন্ন লজিক্যাল গ্রুপের মধ্যে ডিস্ট্রিবিউট করা হয়েছে। এর ফলে, অপারেশন শুধুমাত্র একটি নোডে নয়, একাধিক নোডে পাঠানো হয়, প্রতিটি আলাদা আলাদা র্যাকে থাকে, যা আরও বেশি ফল্ট টলারেন্স এবং উপলভ্যতা প্রদান করে।

এই বিভাগে দেওয়া উদাহরণে তিনটি Cassandra র‍্যাক ব্যবহার করা হয়েছে, এটি হল প্রোডাকশন টপোলজিতে Apigee-এর দ্বারা কাজ করে এমন র‍্যাকের সংখ্যা।

প্রাইভেট ক্লাউডের জন্য Apigee Edge-এ Cassandra-র ডিফল্ট ইনস্টলেশন একটি লজিক্যাল র‍্যাক ধরে নেয় এবং এর মধ্যে একটি ডেটা সেন্টারে সব নোড প্লেস করে। এই কনফিগারেশন ইনস্টল ও ম্যানেজ করা সহজ হলেও, নোডগুলির মধ্যে কোনও একটিতে অপারেশন ব্যর্থ হলে এটিও ব্যর্থ হতে পারে।

নিচের ছবিতে Cassandra রিংয়ের ডিফল্ট কনফিগারেশন দেখানো হয়েছে:

৩টি নোড সহ ১টি র‍্যাক
(ছবি ১) ডিফল্ট কনফিগারেশন: একটি র‍্যাকে সব নোড

আরও শক্তিশালী কনফিগারেশনে, প্রতিটি নোডকে আলাদা আলাদা র‍্যাক অ্যাসাইন করা হবে এবং অপারেশনগুলিও সেইসব র‍্যাকের প্রতিটি রেপ্লিকার উপর এক্সিকিউট করা হবে।

নিচের ছবিতে ৩-নোড রিং দেখানো হয়েছে। এই ছবিতে দেখানো হয়েছে যে কীভাবে অপারেশনগুলি রিং জুড়ে (ঘড়ির কাঁটার দিকে) রেপ্লিকেট করা হয় এবং এটি হাইলাইট করে যে কোনও দুটি নোড একই র‍্যাকে থাকে না:

৩টি র‌্যাক, প্রতিটি র‌্যাকে ১টি করে নোড
(ছবি ২) র‍্যাক সচেতন কনফিগারেশন: তিনটি নোড, প্রতিটি র‍্যাকে একটি করে

এই কনফিগারেশনে, অপারেশন একটি নোডে পাঠানো হয়, কিন্তু সেই নোডের রেপ্লিকাও অন্যান্য র‍্যাকে (ঘড়ির কাঁটার ক্রমে) পাঠানো হয়।

র‍্যাকের ব্যাপারে সচেতনতা যোগ করুন (৩টি নোড সহ)

প্রাইভেট ক্লাউডের জন্য Apigee Edge-এর সব প্রোডাকশন ইনস্টলেশন টপোলজিতে অন্তত তিনটি Cassandra নোড থাকে, যেগুলিকে এই বিভাগে "IP1", "IP2" ও "IP3" হিসেবে উল্লেখ করা হয়েছে। ডিফল্ট হিসেবে, এইসব নোডের প্রতিটি একই র‍্যাকে, "ra-1" থাকে।

এই বিভাগে বর্ণনা করা হয়েছে কীভাবে Cassandra নোডকে আলাদা আলাদা র‍্যাকে অ্যাসাইন করতে হয় যাতে সমস্ত অপারেশন রিংয়ের মধ্যে আলাদা আলাদা লজিক্যাল গ্রুপে রেপ্লিকা নোডে পাঠানো যায়।

ইনস্টলেশনের সময় Cassandra নোডকে আলাদা আলাদা র‍্যাকে অ্যাসাইন করতে:

  1. ইনস্টলার চালানোর আগে, Cassandra নোডে লগ-ইন করুন এবং এডিট করার জন্য নিম্নলিখিত সাইলেন্ট কনফিগারেশন ফাইল খুলুন:
    /opt/silent.conf

    ফাইলটি না থাকলে সেটি তৈরি করুন এবং "apigee" ব্যবহারকারীকে মালিক হিসেবে সেট করতে ভুলবেন না।

  2. CASS_HOSTS প্রপার্টি এডিট করুন, এটি হল IP অ্যাড্রেসের স্পেস-সেপারেটেড তালিকা (DNS বা হোস্টনেম এন্ট্রি নয়) যা নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    ডিফল্ট ভ্যালু হল তিনটি নোড সহ ক্যাসান্ড্রা রিং, প্রতিটি নোডকে র‍্যাক ১ ও ডেটা সেন্টার ১-এ অ্যাসাইন করা হয়, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. র‍্যাক অ্যাসাইনমেন্ট পরিবর্তন করুন যাতে নোড ২, র‍্যাক ২-এ এবং নোড ৩, র‍্যাক ৩-এ অ্যাসাইন করা হয়, যেমনটি নিচের উদাহরণে দেখানো হয়েছে:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    র‍্যাক অ্যাসাইনমেন্ট পরিবর্তন করার মাধ্যমে, আপনি Cassandra-কে দুটি অতিরিক্ত লজিক্যাল গ্রুপিং (র‍্যাক) তৈরি করার নির্দেশ দেন, যা পরে এমন রেপ্লিকা প্রদান করে যা প্রথম নোড দ্বারা প্রাপ্ত সমস্ত অপারেশন গ্রহণ করে।

    CASS_HOSTS কনফিগারেশন প্রপার্টি ব্যবহার করা সম্পর্কে আরও জানতে, Edge কনফিগারেশন ফাইল রেফারেন্স দেখুন।

  4. কনফিগারেশন ফাইলে আপনার করা পরিবর্তন সেভ করুন এবং আপনার আপডেট করা কনফিগারেশন সহ Cassandra ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    যেমন:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. রিংয়ের প্রতিটি Cassandra নোডের জন্য এই পদ্ধতিটি পুনরাবৃত্তি করুন, যে ক্রমে নোডগুলি CASS_HOSTS প্রপার্টিতে অ্যাসাইন করা হয়েছে। এই ক্ষেত্রে, আপনাকে অবশ্যই Cassandra নিচের ক্রমে ইনস্টল করতে হবে:
    1. নোড ১ (IP1)
    2. নোড ২ (IP2)
    3. Node 3 (IP3)

ইনস্টল করার পরে, আপনাকে Cassandra কনফিগারেশন চেক করতে হবে।

Cassandra কনফিগারেশন চেক করুন

র‍্যাক-অ্যাওয়ার ক্যাসান্ড্রা কনফিগারেশন ইনস্টল করার পরে, আপনি nodetool status কমান্ড ব্যবহার করে চেক করতে পারবেন যে নোডগুলি বিভিন্ন র‍্যাকে অ্যাসাইন করা হয়েছে, যেমন নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

/opt/apigee/apigee-cassandra/bin/nodetool status

(আপনি Cassandra নোডের মধ্যে একটিতে এই কমান্ডটি এক্সিকিউট করেন।)

ফলাফলটি নিম্নলিখিত ফলাফলের মতো হওয়া উচিত, যেখানে র‍্যাক কলামে প্রতিটি নোডের জন্য আলাদা আলাদা র‍্যাক আইডি দেখানো হয়েছে:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

আপনি Cassandra-র জন্য JMX যাচাইকরণ চালু করলে, আপনাকে অবশ্যই nodetool-এ নিজের ইউজারনেম ও পাসওয়ার্ড দিতে হবে। আরও তথ্যের জন্য, ক্লাস্টার নোড ম্যানেজ করতে nodetool ব্যবহার করুন দেখুন।

ছয়টি নোড সহ রিং ইনস্টল করা

অতিরিক্ত রিডান্ডেন্সির জন্য, আপনি Cassandra রিংকে ছয়টি নোডে প্রসারিত করতে পারেন। এই ক্ষেত্রে, আপনি তিনটি র‍্যাকের প্রতিটিতে দুটি করে নোড অ্যাসাইন করেন। এই কনফিগারেশনের জন্য আরও তিনটি নোড প্রয়োজন: নোড ৪ (IP4), নোড ৫ (IP5) ও নোড ৬ (IP6)।

নিচের ছবিতে দেখানো হয়েছে যে কীভাবে রিং জুড়ে অপারেশন রেপ্লিকেট করা হয় (ঘড়ির কাঁটার দিকে) এবং এটিও হাইলাইট করা হয়েছে যে রেপ্লিকেশনের সময়, কোনও দুটি সংলগ্ন নোড একই র‍্যাকে থাকে না:

৩টি র‌্যাক, প্রতিটি র‌্যাকের মধ্যে ২টি করে নোড
(ছবি ৩) ৬-নোড ক্যাসান্ড্রা রিং: প্রতিটি তিনটি র‍্যাকে দুটি করে নোড

এই কনফিগারেশনে, প্রতিটি নোডের আরও দুটি রেপ্লিকা আছে: অন্য দুটি র‍্যাকের প্রতিটিতে একটি করে। যেমন, র‍্যাক ১-এর নোড ১-এর রেপ্লিকা র‍্যাক ২ ও র‍্যাক ৩-এ আছে। নোড ১-এ পাঠানো অপারেশনগুলিও ঘড়ির কাঁটার ক্রমে অন্যান্য র‍্যাকে রেপ্লিকায় পাঠানো হয়।

তিনটি নোড বিশিষ্ট Cassandra রিংকে ছয়টি নোড বিশিষ্ট Cassandra রিংয়ে প্রসারিত করতে, আপনার সাইলেন্ট কনফিগারেশন ফাইলে নিচের পদ্ধতিতে নোড কনফিগার করুন:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

থ্রি-নোড রিংয়ের মতো, আপনাকে অবশ্যই Cassandra-কে সেই একই ক্রমে ইনস্টল করতে হবে, যে ক্রমে নোডগুলি CASS_HOSTS প্রপার্টিতে দেখা যায়:

  1. নোড ১ (IP1)
  2. Node 4 (IP4)*
  3. নোড ২ (IP2)
  4. Node 5 (IP5)
  5. Node 3 (IP3)
  6. Node 6 (IP6)

* চতুর্থ নোডে (Cassandra ইনস্টলেশন অর্ডারে দ্বিতীয় মেশিন) সেট-আপ ইউটিলিটি চালানোর আগে সাইলেন্ট কনফিগারেশন ফাইলে পরিবর্তন করুন ।

১২টি নোড পর্যন্ত বড় করা

ফল্ট টলারেন্স ও উপলভ্যতা আরও বাড়াতে, আপনি রিংয়ে Cassandra নোডের সংখ্যা ছয় থেকে ১২ পর্যন্ত বাড়াতে পারেন। এই কনফিগারেশনের জন্য অতিরিক্ত ছয়টি নোড (IP7 থেকে IP12) প্রয়োজন।

নিচের ছবিতে দেখানো হয়েছে যে কীভাবে রিং জুড়ে অপারেশন রেপ্লিকেট করা হয় (ঘড়ির কাঁটার দিকে) এবং এটিও হাইলাইট করা হয়েছে যে রেপ্লিকেশনের সময়, কোনও দুটি সংলগ্ন নোড একই র‍্যাকে থাকে না:

৩টি র‌্যাক, প্রতিটি র‌্যাকে ৪টি করে নোড
(ছবি ৪) ১২-নোড ক্যাসান্ড্রা রিং: তিনটি র‍্যাকের প্রত্যেকটিতে চারটি করে নোড থাকে

১২-নোড রিং ইনস্টল করার পদ্ধতিটি তিন বা ছয় নোড রিং ইনস্টল করার মতোই: প্রদত্ত মানগুলিতে CASS_HOSTS সেট করুন এবং নির্দিষ্ট ক্রমে ইনস্টলার চালান।

১২-নোড Cassandra রিংয়ে এক্সপ্যান্ড করতে, আপনার সাইলেন্ট কনফিগারেশন ফাইলে নিম্নলিখিত উপায়ে নোড কনফিগার করুন:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

তিন ও ছয়টি নোড সহ রিংয়ের ক্ষেত্রে, কনফিগারেশন ফাইলে নোডগুলি যেভাবে দেখানো হয়েছে, সেই ক্রম অনুযায়ী আপনাকে নোডগুলিতে ইনস্টলার চালাতে হবে:

  1. নোড ১ (IP1)
  2. Node 7 (IP7)*
  3. Node 4 (IP4)
  4. Node 8 (IP8)
  5. নোড ২ (IP2)
  6. Node 9 (IP9)
  7. Node 5 (IP5)
  8. Node 10 (IP10)
  9. Node 3 (IP3)
  10. Node 11 (IP11)
  11. Node 6 (IP6)
  12. Node 12 (IP12)

* আপনাকে অবশ্যই ৭ম নোডে (Cassandra ইনস্টলেশন অর্ডারে দ্বিতীয় মেশিন) Apigee Edge for Private Cloud ইনস্টল করার আগে এইসব পরিবর্তন করতে হবে।