Alibaba Cloud Elasticsearch クラスターをアップグレードする前に、必要な手動チェックを完了し、クラスターのステータスと構成がターゲットバージョンと互換性があることを確認してください。このトピックでは、チェックする内容、各チェックが重要である理由、およびアップグレードを進める前に問題を修正する方法について説明します。
このトピックのすべてのコマンドは、Kibana コンソールで実行できます。アクセス手順については、「Kibana コンソールにログインする」をご参照ください。
前提条件
開始する前に、以下を確認してください。
-
ご利用のクラスターの Kibana コンソールへのアクセス
-
アップグレードを計画しているクラスターバージョンが確認済みであること (サポートされているアップグレードパスについては、「クラスターのバージョンをアップグレードする」をご参照ください)
必要なチェック
アップグレードを開始する前に、以下のすべてのチェックを完了してください。
クローズされたインデックスのチェック
すべてのインデックスとそのステータスをリストするには、次のコマンドを実行します。
GET _cat/indices?v
出力には、各インデックスが status 列にそのステータスとともにリストされます。いずれかのインデックスが close ステータスを示している場合は、アップグレード前に開いてください。
POST test/_open
カーネルバージョンの可用性のチェック
スペックアップの一環としてクラスターのカーネルを更新する予定がある場合は、クラスターの[基本情報]ページで、より新しいカーネルバージョンが利用可能であることを確認してください。
カーネルは、より新しいバージョンがリストされている場合にのみ更新できます。
クライアントの互換性のチェック
クライアントがクラスターに接続する場合は、そのバージョンがターゲットクラスターバージョンと互換性があることを確認してください。バージョンの互換性の詳細については、「Compatibility」をご参照ください。バージョンが互換性がない場合は、続行する前にクライアントをアップグレードしてください。
V5.X から V6.X へのアップグレードに関する追加チェック
V5.X から V6.X にアップグレードする場合は、上記の必要なチェックに加えて、以下のチェックを完了してください。
マルチタイプインデックスの分割
V6.X 以降はマルチタイプインデックスをサポートしていません。クラスターにマルチタイプインデックスがある場合、アップグレード後もそれらのインデックスへの書き込みは機能しますが、V6.X で新しいマルチタイプインデックスを作成するとエラーが発生します。アップグレード前に、各マルチタイプインデックスをシングルタイプインデックスに分割してください。
クラスター間検索の無効化
クラスター間検索が有効になっているかどうかを確認するには、次のコマンドを実行します。
GET _cluster/settings
結果に search.remote が null 以外の値で表示される場合、クラスター間検索が有効になっています。アップグレード前に無効にしてください。
PUT _cluster/settings
{
"persistent": {
"search.remote.*": null
},
"transient": {
"search.remote.*": null
}
}
アップグレード後、クラスター間検索を再度有効にすることができます。
V5.X では、クラスター間検索は search.remote パラメーターを使用します。V6.X では、このパラメーターは cluster.remote に変更されます。
クラスターのステータスチェック
スペックアップを開始すると、[Precheck] をクリックして、クラスターのステータスとロードの自動チェックを実行します。両方のチェックが合格した場合に限り、スペックアップが続行されます。 [Precheck] をクリックする前に、以下の表を使用してこれらの条件を手動で確認してください。
| 確認項目 | 正常な状態 |
|---|---|
| クラスターのステータス | 正常 (緑) |
| JVM ヒープメモリ使用量 | 75% 未満 |
| ディスク使用量 | cluster.routing.allocation.disk.watermark.low |
| レプリカシャード | すべてのインデックスにレプリカシャードが構成されています。マルチゾーンクラスターの場合、インデックスあたりのレプリカシャード数はゾーン数未満である必要があります。 |
| スナップショット | 過去 1 時間以内にスナップショットが作成されました。 |
| カスタムプラグイン | カスタムプラグインはインストールされていません。 |
| Elastic Compute Service (ECS) インスタンス | クラスターのゾーンで十分な ECS インスタンスが利用可能です。 |
| YML 構成ファイル | 以前のバージョンの YML 構成がターゲットバージョンと互換性があります。 |
アップグレード中、システムはターゲットバージョンを実行しているノードを追加し、元のノードから新しいノードにデータを移行し、その後元のノードを削除します。アップグレードを開始する前に、ゾーンに十分な ECS インスタンスがあることを確認してください。
構成の互換性チェック
V6.X へのアップグレード時、システムは互換性のない構成を自動的にチェックします。アップグレード前に手動でチェックするには、以下を実行します。
GET _cluster/settings
GET */_settings?flat_settings=true
以下の構成は V6.X と互換性がありません。
| No. | 構成レベル | 構成カテゴリ | パラメーター |
|---|---|---|---|
| 1 | クラスター | スナップショット設定 | cluster.routing.allocation.snapshot.relocation_enabled |
| 2 | クラスター | ストレージ速度制限設定 | indices.store.throttle.type および indices.store.throttle.max_bytes_per_sec |
| 3 | インデックス | 類似性設定 | index.similarity.base |
| 4 | インデックス | シャドウレプリカ設定 | index.shared_filesystem および index.shadow_replicas |
| 5 | インデックス | インデックスストレージ設定 | index.store.type |
| 6 | インデックス | ストレージ速度制限設定 | index.store.throttle.type および index.store.throttle.max_bytes_per_sec |
| 7 | インデックス | include_in_all マッピング設定 | include_in_all |
| 8 | インデックス | インデックス作成のバージョン設定 | index.version.created |
| 9 | インデックステンプレート | 類似性設定 | index.similarity.base |
| 10 | インデックステンプレート | シャドウレプリカ設定 | index.shared_filesystem および index.shadow_replicas |
| 11 | インデックステンプレート | インデックスストレージ設定 | index.store.type |
| 12 | インデックステンプレート | ストレージ速度制限設定 | index.store.throttle.type および index.store.throttle.max_bytes_per_sec |
| 13 | インデックステンプレート | include_in_all マッピング設定 | include_in_all |
| 14 | インデックステンプレート | _all マッピング設定 | _all |
| 15 | インデックステンプレート | マッピング内の複数タイプ設定 | — |
上記の表のすべてのパラメーターは、V6.0 以降で非推奨です。詳細については、「Breaking changes in 6.0」をご参照ください。
CRITICAL と WARNING の確認項目:
-
CRITICAL: クラスターはアップグレードできません。互換性のない構成を修正し、再確認してください。
-
WARNING: クラスターは引き続きアップグレードできます。構成はアップグレード後に無視されます。
インデックステンプレートにこの表のいずれかの構成が含まれている場合、アップグレード後にそのテンプレートを使用してインデックスを作成することはできません。
特定のパラメーターに関する注意事項:
-
include_in_all(項目 7): V5.X から V6.X へのアップグレード前にこのパラメーターが構成されたインデックスは、アップグレード後も引き続き使用可能です。アップグレード後に作成されたインデックスは、このパラメーターをサポートしません。 -
index.version.created(項目 8): このパラメーターは、メジャーバージョン間のインデックスアップグレードを防止します。たとえば、V5.X で作成されたインデックスは、V7.X に直接アップグレードできません。V5.X から V7.X にアップグレードする前に、Reindex API を使用してデータを V7.X クラスターに移行し、その後 V5.X インデックスを削除してください。 -
項目 15 (インデックステンプレートマッピング内の複数タイプ): インデックステンプレートのマッピング構成に複数タイプ設定が含まれているかどうかを確認してください。
互換性のない構成の修正
クラスターレベルの構成
クラスターレベルの互換性のない構成は、その値を null に設定することで無効にしてください。
スナップショット設定:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
},
"transient": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
}
}
ストレージ速度制限設定:
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
}
}
インデックスレベルの構成
インデックスレベルの互換性のない構成は、その値を null に設定することで無効にしてください。test_index をご利用のインデックス名に置き換えてください。
| 構成カテゴリ | コマンド |
|---|---|
| 類似性設定 | PUT test_index/_settings と "index.similarity.base.*": null |
| シャドウレプリカ設定 | PUT test_index/_settings と "index.shared_filesystem": null, "index.shadow_replicas": null |
| インデックスストレージ設定 | PUT test_index/_settings と "index.store.type": null |
| ストレージ速度制限設定 | PUT test_index/_settings と "index.store.throttle.type": null, "index.store.throttle.max_bytes_per_sec": null |
類似性設定では、最初にインデックスをクローズする必要があります。クローズされたインデックスは読み取りまたは書き込みができません。変更を加えた後、インデックスを再度開いてください。
インデックスをクローズします。
POST test_index/_close
設定を更新します。
PUT test_index/_settings
{
"index.similarity.base.*": null
}
インデックスを開きます。
POST test_index/_open
シャドウレプリカ設定:
PUT test_index/_settings
{
"index.shared_filesystem": null,
"index.shadow_replicas": null
}
インデックスストレージ設定:
PUT test_index/_settings
{
"index.store.type": null
}
ストレージ速度制限設定:
PUT test_index/_settings
{
"settings": {
"index.store.throttle.type": null,
"index.store.throttle.max_bytes_per_sec": null
}
}
include_in_all が構成されたインデックスは、V6.X でも引き続き使用可能です。このパラメーターの変更は不要です。
インデックステンプレートレベルの構成
以下の例は、test_template という名前のインデックステンプレート内の互換性のない構成を修正する方法を示しています。
-
現在のテンプレートを取得します。
GET _template/test_template結果には、互換性のない構成が表示されます。この例では、インデックスストレージ設定、
_all、およびinclude_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": {} } } -
互換性のない構成を削除し、テンプレートを更新します。
PUT _template/test_template { "order": 0, "template": "test_*", "settings": { }, "mappings": { "test_type": { "properties": { "test_field": { "type": "text" } } } }, "aliases": {} }
次のステップ
すべてのチェックを完了し、互換性のない構成を修正した後、アップグレードを進めてください。「クラスターのバージョンをアップグレードする」をご参照ください。