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:
- Replikasi (dokumentasi Cassandra)
- Strategi Faktor Replikasi & Arsitektur Cassandra
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:
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:
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:
- 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.
- 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"
- 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. - 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
- 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:- Node 1 (IP1)
- Node 2 (IP2)
- 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:
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:
- Node 1 (IP1)
- Node 4 (IP4)*
- Node 2 (IP2)
- Node 5 (IP5)
- Node 3 (IP3)
- 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:
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:
- Node 1 (IP1)
- Node 7 (IP7)*
- Node 4 (IP4)
- Node 8 (IP8)
- Node 2 (IP2)
- Node 9 (IP9)
- Node 5 (IP5)
- Node 10 (IP10)
- Node 3 (IP3)
- Node 11 (IP11)
- Node 6 (IP6)
- 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).