Sebelum melakukan upgrade kluster Alibaba Cloud Elasticsearch, lengkapi pemeriksaan manual yang diperlukan dan pastikan status serta konfigurasi kluster kompatibel dengan versi target. Topik ini mencakup hal-hal yang perlu diperiksa, pentingnya setiap pemeriksaan tersebut, serta cara memperbaiki masalah sebelum proses upgrade dimulai.
Semua perintah dalam topik ini dapat dijalankan di konsol Kibana. Untuk petunjuk akses, lihat Masuk ke konsol Kibana.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Akses ke konsol Kibana untuk kluster Anda
-
Versi kluster yang akan di-upgrade telah dikonfirmasi (lihat Upgrade versi kluster untuk jalur upgrade yang didukung)
Pemeriksaan wajib
Lengkapi semua pemeriksaan berikut sebelum memulai upgrade.
Periksa indeks yang ditutup
Jalankan perintah berikut untuk menampilkan daftar semua indeks beserta statusnya:
GET _cat/indices?v
Output menampilkan setiap indeks dengan statusnya di kolom status. Jika ada indeks yang menunjukkan status close, buka indeks tersebut sebelum upgrade:
POST test/_open
Periksa ketersediaan versi kernel
Jika Anda berencana memperbarui kernel kluster sebagai bagian dari upgrade, verifikasi bahwa versi kernel yang lebih baru tersedia di halaman Basic Information kluster Anda.
Anda hanya dapat memperbarui kernel jika versi yang lebih baru tercantum.
Periksa kompatibilitas client
Jika client terhubung ke kluster, pastikan versinya kompatibel dengan versi kluster target. Untuk detail kompatibilitas versi, lihat Compatibility. Jika versinya tidak kompatibel, upgrade client terlebih dahulu sebelum melanjutkan.
Pemeriksaan tambahan untuk upgrade dari V5.X ke V6.X
Jika melakukan upgrade dari V5.X ke V6.X, lengkapi pemeriksaan berikut selain pemeriksaan wajib di atas.
Pisahkan indeks multi-tipe
V6.X dan versi setelahnya tidak mendukung indeks multi-tipe. Jika kluster memiliki indeks multi-tipe, penulisan ke indeks tersebut tetap berfungsi setelah upgrade, tetapi pembuatan indeks multi-tipe baru di V6.X akan menyebabkan error. Pisahkan setiap indeks multi-tipe menjadi indeks single-tipe sebelum upgrade.
Nonaktifkan pencarian lintas klaster
Jalankan perintah berikut untuk memeriksa apakah pencarian lintas klaster diaktifkan:
GET _cluster/settings
Jika search.remote muncul dalam hasil dengan nilai non-null, berarti pencarian lintas klaster diaktifkan. Nonaktifkan fitur ini sebelum upgrade:
PUT _cluster/settings
{
"persistent": {
"search.remote.*": null
},
"transient": {
"search.remote.*": null
}
}
Setelah upgrade, Anda dapat mengaktifkan kembali pencarian lintas klaster.
Di V5.X, pencarian lintas klaster menggunakan parameter search.remote. Di V6.X, parameter ini berubah menjadi cluster.remote.
Pemeriksaan status kluster
Saat memulai upgrade, klik Precheck untuk menjalankan pemeriksaan otomatis terhadap status dan beban kluster. Upgrade hanya akan dilanjutkan jika kedua kondisi tersebut lolos. Gunakan tabel berikut untuk memverifikasi kondisi-kondisi ini secara manual sebelum mengklik Precheck.
| Item pemeriksaan | Status normal |
|---|---|
| Status kluster | Normal (hijau) |
| Penggunaan memori heap JVM | Kurang dari 75% |
| Penggunaan disk | Kurang dari nilai cluster.routing.allocation.disk.watermark.low |
| Shard replika | Semua indeks memiliki shard replika yang dikonfigurasi; untuk kluster multi-zona, jumlah shard replika per indeks harus kurang dari jumlah zona |
| Snapshots | Snapshot dibuat dalam satu jam terakhir |
| Plugin kustom | Tidak ada plugin kustom yang diinstal |
| Instance Elastic Compute Service (ECS) | Tersedia instance ECS yang cukup di zona kluster |
| File konfigurasi YML | Konfigurasi YML versi sebelumnya kompatibel dengan versi target |
Selama upgrade, sistem menambahkan node yang menjalankan versi target, memigrasikan data dari node asli ke node baru, lalu menghapus node asli. Pastikan zona tersebut memiliki instance ECS yang cukup sebelum upgrade dimulai.
Pemeriksaan kompatibilitas konfigurasi
Saat melakukan upgrade ke V6.X, sistem secara otomatis memeriksa konfigurasi yang tidak kompatibel. Untuk memeriksa secara manual sebelum upgrade, jalankan:
GET _cluster/settings
GET */_settings?flat_settings=true
Konfigurasi berikut tidak kompatibel dengan V6.X:
| No. | Tingkat konfigurasi | Kategori konfigurasi | Parameter |
|---|---|---|---|
| 1 | Kluster | Pengaturan snapshot | cluster.routing.allocation.snapshot.relocation_enabled |
| 2 | Kluster | Pengaturan pembatasan kecepatan penyimpanan | indices.store.throttle.type dan indices.store.throttle.max_bytes_per_sec |
| 3 | Indeks | Pengaturan similarity | index.similarity.base |
| 4 | Indeks | Pengaturan shadow replica | index.shared_filesystem dan index.shadow_replicas |
| 5 | Indeks | Pengaturan penyimpanan indeks | index.store.type |
| 6 | Indeks | Pengaturan pembatasan kecepatan penyimpanan | index.store.throttle.type dan index.store.throttle.max_bytes_per_sec |
| 7 | Indeks | Pengaturan pemetaan include_in_all | include_in_all |
| 8 | Indeks | Pengaturan versi untuk pembuatan indeks | index.version.created |
| 9 | Templat indeks | Pengaturan similarity | index.similarity.base |
| 10 | Templat indeks | Pengaturan shadow replica | index.shared_filesystem dan index.shadow_replicas |
| 11 | Templat indeks | Pengaturan penyimpanan indeks | index.store.type |
| 12 | Templat indeks | Pengaturan pembatasan kecepatan penyimpanan | index.store.throttle.type dan index.store.throttle.max_bytes_per_sec |
| 13 | Templat indeks | Pengaturan pemetaan include_in_all | include_in_all |
| 14 | Templat indeks | Semua pengaturan Pemetaan | _all |
| 15 | Templat indeks | Pengaturan multiple type dalam pemetaan | — |
Semua parameter dalam tabel di atas sudah tidak digunakan lagi (deprecated) di V6.0 dan versi setelahnya. Untuk detailnya, lihat Breaking changes in 6.0.
Item pemeriksaan KRITIS vs PERINGATAN:
-
KRITIS: Kluster tidak dapat di-upgrade. Perbaiki konfigurasi yang tidak kompatibel dan periksa ulang.
-
PERINGATAN: Kluster tetap dapat di-upgrade. Konfigurasi tersebut akan diabaikan setelah upgrade.
Jika templat indeks berisi konfigurasi apa pun dari tabel ini, templat tersebut tidak dapat digunakan untuk membuat indeks setelah upgrade.
Catatan mengenai parameter tertentu:
-
include_in_all(item 7): Indeks yang dibuat sebelum upgrade dari V5.X ke V6.X dan memiliki parameter ini tetap dapat digunakan setelah upgrade. Indeks yang dibuat setelah upgrade tidak mendukung parameter ini. -
index.version.created(item 8): Parameter ini mencegah upgrade indeks lintas versi mayor. Misalnya, indeks yang dibuat di V5.X tidak dapat langsung di-upgrade ke V7.X. Sebelum melakukan upgrade dari V5.X ke V7.X, gunakan API Reindex untuk memigrasikan data ke kluster V7.X, lalu hapus indeks V5.X. -
Item 15 (multiple types dalam pemetaan templat indeks): Periksa apakah konfigurasi pemetaan dalam templat indeks berisi pengaturan multiple type.
Perbaiki konfigurasi yang tidak kompatibel
Konfigurasi tingkat kluster
Nonaktifkan konfigurasi tidak kompatibel tingkat kluster dengan mengatur nilainya menjadi null.
Pengaturan snapshot:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
},
"transient": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
}
}
Pengaturan pembatasan kecepatan penyimpanan:
PUT _cluster/settings
{
"persistent": {
"indices.store.throttle.type": null,
"indices.store.throttle.max_bytes_per_sec": null
},
"transient": {
"indices.store.throttle.type": null,
"indices.store.throttle.max_bytes_per_sec": null
}
}
Konfigurasi tingkat indeks
Nonaktifkan konfigurasi tidak kompatibel tingkat indeks dengan mengatur nilainya menjadi null. Ganti test_index dengan nama indeks Anda.
| Kategori konfigurasi | Perintah |
|---|---|
| Pengaturan Kemiripan | PUT test_index/_settings dengan "index.similarity.base.*": null |
| Pengaturan shadow replica | PUT test_index/_settings dengan "index.shared_filesystem": null, "index.shadow_replicas": null |
| Pengaturan penyimpanan indeks | PUT test_index/_settings dengan "index.store.type": null |
| Pengaturan pembatasan kecepatan penyimpanan | PUT test_index/_settings dengan "index.store.throttle.type": null, "index.store.throttle.max_bytes_per_sec": null |
Pengaturan similarity memerlukan penutupan indeks terlebih dahulu. Indeks yang ditutup tidak dapat dibaca atau ditulis. Buka kembali indeks setelah melakukan perubahan.
Tutup indeks:
POST test_index/_close
Perbarui pengaturan:
PUT test_index/_settings
{
"index.similarity.base.*": null
}
Buka indeks:
POST test_index/_open
Pengaturan shadow replica:
PUT test_index/_settings
{
"index.shared_filesystem": null,
"index.shadow_replicas": null
}
Pengaturan penyimpanan indeks:
PUT test_index/_settings
{
"index.store.type": null
}
Pengaturan pembatasan kecepatan penyimpanan:
PUT test_index/_settings
{
"settings": {
"index.store.throttle.type": null,
"index.store.throttle.max_bytes_per_sec": null
}
}
Indeks yang memiliki include_in_all yang dikonfigurasi tetap dapat digunakan di V6.X. Tidak diperlukan perubahan untuk parameter ini.
Konfigurasi tingkat templat indeks
Contoh berikut menunjukkan cara memperbaiki konfigurasi tidak kompatibel dalam templat indeks bernama test_template.
-
Ambil templat saat ini:
GET _template/test_templateHasilnya menampilkan konfigurasi yang tidak kompatibel — dalam contoh ini, pengaturan penyimpanan indeks,
_all, daninclude_in_all:{ "test_template": { "order": 0, "template": "test_*", "settings": { "index": { "store": { "throttle": { "max_bytes_per_sec": "100m" } } } }, "mappings": { "test_type": { "_all": { "enabled": true }, "properties": { "test_field": { "type": "text", "include_in_all": true } } } }, "aliases": {} } } -
Hapus konfigurasi yang tidak kompatibel dan perbarui templat:
PUT _template/test_template { "order": 0, "template": "test_*", "settings": { }, "mappings": { "test_type": { "properties": { "test_field": { "type": "text" } } } }, "aliases": {} }
Langkah selanjutnya
Setelah menyelesaikan semua pemeriksaan dan memperbaiki konfigurasi yang tidak kompatibel, lanjutkan dengan upgrade. Lihat Upgrade versi kluster.