Alibaba Cloud Elasticsearch クラスターをアップグレードする前に、必要な手動チェックを完了し、クラスターのステータスと構成がターゲットバージョンと互換性があることを確認する必要があります。このトピックでは、チェック内容、各チェックの重要性、およびアップグレードを進める前に問題を修正する方法について説明します。
このトピックのすべてのコマンドは、Kibana コンソールで実行できます。アクセス手順の詳細については、「Kibana コンソールへのログイン」をご参照ください。
前提条件
開始する前に、以下を確認してください。
-
ご利用のクラスターの Kibana コンソールへのアクセス権があること
-
アップグレード予定のクラスターバージョンが確定していること (サポートされているアップグレードパスについては、「クラスターのバージョンをアップグレード」をご参照ください)
必須チェック
アップグレードを開始する前に、以下のチェックをすべて完了してください。
クローズされたインデックスのチェック
次のコマンドを実行して、すべてのインデックスとそのステータスを一覧表示します。
GET _cat/indices?v
health status index
green open .monitoring-es-6-2020.10.29
green open .monitoring-logstash-6-2020.10.31
green open filebeat-6.7.0-2020.10.31
green open .monitoring-kibana-6-2020.10.27
close test
出力には、各インデックスとそのステータスが status 列に表示されます。いずれかのインデックスが close ステータスを示している場合は、アップグレード前にそのインデックスをオープンしてください。
POST test/_open
カーネルバージョンの可用性のチェック
アップグレードの一環としてクラスターカーネルを更新する予定の場合は、ご利用のクラスターの [基本情報] ページで、より新しいカーネルバージョンが利用可能であることを確認します。
[バージョン] 行で、現在のインスタンスバージョン (例: 7.10.0) を確認します。バージョン番号の後に [アップグレード可能なカーネルパッチあり] リンクが表示される場合、カーネルパッチ更新が利用可能です。
カーネルは、より新しいバージョンがリストされている場合にのみ更新できます。
クライアントの互換性のチェック
クライアントがクラスターに接続している場合は、そのバージョンがターゲットのクラスターバージョンと互換性があることを確認してください。バージョンの互換性の詳細については、「互換性」をご参照ください。バージョンに互換性がない場合は、続行する前にクライアントをアップグレードしてください。
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 に変更されます。
クラスターのステータスチェック
アップグレードを開始する際に [事前チェック] をクリックすると、クラスターのステータスとロードの自動チェックが実行されます。両方のチェックに合格した場合にのみ、アップグレードが続行されます。[事前チェック] をクリックする前に、以下の表を使用してこれらの条件を手動で確認してください。
| 確認項目 | 正常な状態 |
|---|---|
| クラスターのステータス | 正常 (緑色) |
| 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 vs 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": {} }
次のステップ
すべてのチェックを完了し、互換性のない構成を修正した後、アップグレードに進みます。詳細については、「クラスターのバージョンをアップグレード」をご参照ください。