restoreを実行後にずっとUNASSIGNED
のままactiveにならずに困ってしまった
結果的にインデックスを一度削除して、もう一度restoreしたら解消したので原因不明なのだが、調査中にみた以下の記事が有益だったのでまとめておく
Elasticsearchのバージョンは6
UNASSIGNEDの簡単な理由をしる
restore中はだいたいこのコマンドで状態をみている
$ curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason hoge-index-1 0 p UNASSIGNED NEW_INDEX_RESTORED hoge-index-1 0 r UNASSIGNED NEW_INDEX_RESTORED hoge-index-1 0 r UNASSIGNED NEW_INDEX_RESTORED
UNASSIGNED
の簡単な理由が表示される
通常はrestoreしたらプライマリシャードがINITIALIZING
になるのだが、UNASSIGNED
のままなのが今回の問題
理由がNEW_INDEX_RESTORED
なのはいつも通りなので情報がたりない
UNASSIGNEDの詳細をしる
以下のコマンドを実行するとUNASSIGNED
の詳細が表示される
$ curl -XGET localhost:9200/_cluster/allocation/explain?pretty { "index" : "hoge-index-1", "shard" : 0, "primary" : false, "current_state" : "unassigned", "unassigned_info" : { "reason" : "NEW_INDEX_RESTORED", "at" : "2020-03-04T04:45:24.034Z", "details" : "restore_source[my_gcs_repository/hoge-20200304-1]", "last_allocation_status" : "no_attempt" }, "can_allocate" : "no", "allocate_explanation" : "cannot allocate because allocation is not permitted to any of the nodes", ... }
allocate_explanation
にはcannot allocate because allocation is not permitted to any of the nodes
とあるが、
このメッセージも原因を1つに特定するものではなくいくつか理由があるみたい
上に貼った記事では6つの理由が記載してあり、その理由のひとつに「ディスク容量」が関係しているらしいので、ディスク容量は十分のはずではあるが一応不要なindexを削除した上でrestoreを再実行したら解消した
「ディスク容量」が関係してたのかわからないが、つまったら一旦インデックスを削除してみるのもいいかも