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:
- Replikasi (dokumentasi Casssandra)
- Strategi Arsitektur & Faktor Replikasi Cassandra
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:
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:
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:
- 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.
- 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"
- 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. - 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
- 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:- Node 1 (IP1)
- Node 2 (IP2)
- 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:
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
:
- Node 1 (IP1)
- Node 4 (IP4)*
- Node 2 (IP2)
- Node 5 (IP5)
- Node 3 (IP3)
- 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:
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:
- 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 membuat perubahan ini sebelum menginstal Apigee Edge untuk Private Cloud pada node ke-7 (mesin kedua dalam urutan penginstalan Cassandra).