Menambahkan dukungan rak Cassandra

Bagian ini memberikan panduan umum untuk penskalaan operasi Cassandra dengan membuat Cassandra di Apigee Edge untuk Private Cloud rack aware.

Untuk informasi selengkapnya tentang alasan pentingnya membuat rak ring Cassandra Anda sadar, lihat referensi berikut:

Apa itu rak?

Rak Cassandra adalah pengelompokan logis node Cassandra dalam ring. Cassandra menggunakan rak untuk memastikan replika didistribusikan di antara berbagai pengelompokan logis. Akibatnya, operasi dikirim bukan hanya ke satu node, tetapi ke beberapa node, masing-masing di rak terpisah, sehingga memberikan toleransi fault dan ketersediaan yang lebih besar.

Contoh di bagian ini menggunakan tiga rak Cassandra, yang merupakan jumlah rak yang didukung oleh Apigee dalam topologi produksi.

Penginstalan default Cassandra di Apigee Edge untuk Private Cloud mengasumsikan satu rak logis dan menempatkan semua node di pusat data di dalamnya. Meskipun mudah diinstal dan dikelola, konfigurasi ini rentan mengalami kegagalan jika operasi gagal pada salah satu node tersebut.

Gambar berikut menunjukkan konfigurasi default cincin Cassandra:

1 rak dengan 3 node
(Gambar 1) Konfigurasi default: Semua node di satu rak

Dalam konfigurasi yang lebih andal, setiap node akan ditetapkan ke rak terpisah dan operasi juga akan dijalankan pada replika di setiap rak tersebut.

Gambar berikut menampilkan cincin 3 node. Gambar ini menunjukkan urutan operasi direplikasi melintasi lingkaran (searah jarum jam) dan memperjelas fakta bahwa tidak ada dua node yang berada di rak yang sama:

3 rak, dengan 1 node di setiap rak
(Gambar 2) Konfigurasi yang mendukung rak: Tiga node, satu di setiap rak

Dalam konfigurasi ini, operasi dikirim ke node, tetapi juga dikirim ke replika node tersebut di rak lain (dalam urutan searah jarum jam).

Tambahkan awareness terhadap rak (dengan 3 node)

Semua Topologi penginstalan produksi Apigee Edge untuk Private Cloud memiliki setidaknya tiga node Cassandra, yang disebut sebagai "IP1", "IP2", dan "IP3". Secara default, setiap node ini berada di rak yang sama, "ra-1".

Bagian ini menjelaskan cara menetapkan node Cassandra ke rak terpisah sehingga semua operasi dikirim ke node replika dalam pengelompokan logis yang terpisah dalam ring.

Untuk menetapkan node Cassandra ke rak yang berbeda selama penginstalan:

  1. Sebelum menjalankan penginstal, login ke node Cassandra dan buka file konfigurasi senyap berikut untuk diedit:
    /opt/silent.conf

    Buat file jika tidak ada dan pastikan untuk menjadikan pengguna "apigee" sebagai pemilik.

  2. Edit properti CASS_HOSTS, daftar alamat IP yang dipisahkan spasi (bukan entri DNS atau nama host) yang menggunakan sintaksis berikut:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    Nilai defaultnya adalah cincin Cassandra tiga node dengan setiap node ditetapkan ke rak 1 dan pusat data 1, seperti yang ditunjukkan pada contoh berikut:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Ubah penetapan rak sehingga node 2 ditetapkan ke rak 2 dan node 3 ditetapkan ke rak 3, seperti yang ditunjukkan pada contoh berikut:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Dengan mengubah penetapan rak, Anda menginstruksikan Cassandra untuk membuat dua pengelompokan logis tambahan (rak), yang kemudian menyediakan replika yang menerima semua operasi yang diterima oleh node pertama.

    Untuk informasi selengkapnya tentang penggunaan properti konfigurasi CASS_HOSTS, lihat Referensi File Konfigurasi Edge.

  4. Simpan perubahan ke file konfigurasi dan jalankan perintah berikut untuk menginstal Cassandra dengan konfigurasi yang telah diupdate:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Contoh:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Ulangi prosedur ini untuk setiap node Cassandra dalam ring, sesuai urutan penetapan node dalam properti CASS_HOSTS. Dalam hal ini, Anda harus menginstal Cassandra dengan urutan berikut:
    1. Node 1 (IP1)
    2. Node 2 (IP2)
    3. Node 3 (IP3)

Setelah penginstalan, Anda harus Memeriksa konfigurasi Cassandra.

Memeriksa konfigurasi Cassandra

Setelah menginstal konfigurasi Cassandra yang peka rak, Anda dapat memeriksa apakah node ditetapkan ke rak yang berbeda menggunakan perintah nodetool status, seperti yang ditunjukkan contoh berikut:

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

(Anda menjalankan perintah ini pada salah satu node Cassandra.)

Hasilnya akan terlihat seperti berikut, di mana kolom Rack menunjukkan ID rak yang berbeda untuk setiap node:

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

Jika mengaktifkan autentikasi JMX untuk Cassandra, Anda juga harus meneruskan nama pengguna dan sandi ke nodetool. Untuk mengetahui informasi selengkapnya, baca Menggunakan nodetool untuk mengelola node cluster.

Menginstal cincin enam node

Untuk redundansi tambahan, Anda dapat memperluas cincin Cassandra menjadi enam node. Dalam hal ini, Anda menetapkan dua node ke masing-masing dari ketiga rak. Konfigurasi ini memerlukan tiga node tambahan: Node 4 (IP4), Node 5 (IP5), dan Node 6 (IP6).

Gambar berikut menunjukkan urutan operasi yang direplikasi di sepanjang lingkaran (searah jarum jam) dan menyoroti fakta bahwa selama replikasi, tidak ada dua node yang berdekatan berada di rak yang sama:

3 rak, dengan 2 node di setiap rak
(Gambar 3) Cincin Cassandra 6 node: Dua node di masing-masing dari tiga rak

Dalam konfigurasi ini, setiap node memiliki dua replika lagi: satu di masing-masing dari dua rak lainnya. Misalnya, node 1 di rak 1 memiliki replika di Rak 2 dan Rak 3. Operasi yang dikirim ke node 1 juga dikirim ke replika di rak lain, dengan urutan searah jarum jam.

Untuk memperluas cincin Cassandra tiga node menjadi cincin Cassandra enam node, konfigurasikan node dengan cara berikut di file konfigurasi senyap Anda:

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

Seperti halnya cincin tiga node, Anda harus menginstal Cassandra dalam urutan yang sama dengan kemunculan node di properti CASS_HOSTS:

  1. Node 1 (IP1)
  2. Node 4 (IP4)*
  3. Node 2 (IP2)
  4. Node 5 (IP5)
  5. Node 3 (IP3)
  6. Node 6 (IP6)

* Buat perubahan di file konfigurasi senyap sebelum menjalankan utilitas penyiapan pada node keempat (mesin kedua dalam urutan penginstalan Cassandra).

Luaskan ke 12 node

Untuk meningkatkan fault tolerance dan ketersediaan lebih lanjut, Anda dapat meningkatkan jumlah node Cassandra dalam ring dari enam menjadi 12. Konfigurasi ini memerlukan enam node tambahan (IP7 hingga IP12).

Gambar berikut menunjukkan urutan operasi yang direplikasi di sepanjang lingkaran (searah jarum jam) dan menyoroti fakta bahwa selama replikasi, tidak ada dua node yang berdekatan berada di rak yang sama:

3 rak, dengan 4 node di setiap rak
(Gambar 4) Cincin Cassandra 12 node: Empat node di masing-masing dari tiga rak

Prosedur untuk menginstal lingkaran 12 node mirip dengan menginstal lingkaran node tiga atau enam: tetapkan CASS_HOSTS ke nilai yang diberikan dan jalankan penginstal dalam urutan yang ditentukan.

Untuk memperluas ke lingkaran Cassandra 12 node, konfigurasi node dengan cara berikut di file konfigurasi silent Anda:

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"

Seperti pada lingkaran tiga dan enam node, Anda harus menjalankan penginstal pada node sesuai urutan munculnya node dalam file konfigurasi:

  1. Node 1 (IP1)
  2. Node 7 (IP7)*
  3. Node 4 (IP4)
  4. Node 8 (IP8)
  5. Node 2 (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)

* Anda harus membuat perubahan ini sebelum menginstal Apigee Edge untuk Private Cloud pada node ke-7 (mesin kedua dalam urutan penginstalan Cassandra).