Menambahkan dukungan rak Cassandra

Bagian ini memberikan panduan umum untuk menskalakan operasi Cassandra dengan membuat Cassandra di Apigee Edge for Private Cloud mengetahui rak.

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

Apa yang dimaksud dengan rak?

Rak Cassandra adalah grup logis node Cassandra dalam ring. Cassandra menggunakan rak sehingga dapat memastikan replika didistribusikan di antara grup logis yang berbeda. Akibatnya, operasi dikirim tidak hanya ke satu node, tetapi ke beberapa node, masing-masing di rak terpisah, sehingga memberikan toleransi kesalahan 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 konfigurasi ini mudah diinstal dan dikelola, konfigurasi ini rentan terhadap kegagalan jika operasi gagal di salah satu node tersebut.

Gambar berikut menunjukkan konfigurasi default ring Cassandra:

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

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

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

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

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

Menambahkan rack awareness (dengan 3 node)

Semua Topologi penginstalan produksi Apigee Edge untuk Private Cloud memiliki setidaknya tiga node Cassandra, yang dalam bagian ini 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 grup logis 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 otomatis berikut untuk diedit:
    /opt/silent.conf

    Buat file jika belum 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 ring Cassandra tiga node dengan setiap node ditetapkan ke rack 1 dan pusat data 1, seperti yang ditunjukkan 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 dalam 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 mengetahui informasi selengkapnya tentang cara menggunakan properti konfigurasi CASS_HOSTS, lihat Referensi File Konfigurasi Edge.

  4. Simpan perubahan Anda pada file konfigurasi dan jalankan perintah berikut untuk menginstal Cassandra dengan konfigurasi yang telah diperbarui:
    /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 di 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 mendukung rack, Anda dapat memeriksa apakah node ditetapkan ke rack yang berbeda menggunakan perintah nodetool status, seperti yang ditunjukkan dalam contoh berikut:

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

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

Hasilnya akan terlihat seperti berikut, dengan kolom Rack menampilkan 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 Anda mengaktifkan autentikasi JMX untuk Cassandra, Anda juga harus meneruskan nama pengguna dan sandi ke nodetool. Untuk mengetahui informasi selengkapnya, lihat Menggunakan nodetool untuk mengelola node cluster.

Menginstal ring enam node

Untuk redundansi tambahan, Anda dapat memperluas ring Cassandra menjadi enam node. Dalam hal ini, Anda menetapkan dua node ke masing-masing dari tiga 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 seluruh ring (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) Ring Cassandra 6 node: Dua node di masing-masing dari tiga rak

Dalam konfigurasi ini, setiap node memiliki dua replika lagi: satu di setiap 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, dalam urutan searah jarum jam.

Untuk memperluas ring Cassandra tiga node menjadi ring Cassandra enam node, konfigurasikan node dengan cara berikut dalam file konfigurasi otomatis 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 Anda di file konfigurasi imajiner sebelum menjalankan utilitas penyiapan di node keempat (mesin kedua dalam urutan penginstalan Cassandra).

Perluas ke 12 node

Untuk lebih meningkatkan fault tolerance dan ketersediaan, 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 seluruh ring (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) Ring Cassandra 12 node: Empat node di masing-masing dari tiga rak

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

Untuk memperluas ke ring Cassandra 12 node, konfigurasikan node dengan cara berikut dalam 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 halnya ring tiga dan enam node, Anda harus menjalankan penginstal pada node sesuai urutan kemunculan 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 melakukan perubahan ini sebelum menginstal Apigee Edge for Private Cloud di node ke-7 (mesin kedua dalam urutan penginstalan Cassandra).