ディスク障害からの復旧

(The bot translated the original post https://lists.apache.org/thread/cm8o2phhgwoqz21hwbm511gc5zbnr4qh into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
こんにちは。
私は SolrCloud を GKE(Google Kubernetes Engine)上で動かしており、Pod を新しいディスクタイプに移行しようとしています。その際、ディスクは完全に新しいものになります。
しかし、現在リーダーからデータが同期されない状態になっており、そこからの復旧方法がわからず困っています。
状況を具体的に説明します。以下の2つのノードがあるとします:
- solr-0
- solr-1
この2つはどちらもアクティブで、完全にレプリケーションされています。
私は solr-1
を停止し、それを新しい(空の)ディスクに接続し、再び起動しました。
サーバーは正常に起動し、UI から solr-1
にアクセスすることはできますが、復旧はされず、「Cloud → Graph」UI 上では solr-1
上の shard がダウンしている状態になっています。
「Cloud → Nodes」GUI 上ではノード自体は起動状態(up)として表示されていますが、そのコレクションの状態がおかしいです。例えば:postcodes-006_s1r9_(down): undefined
と表示されており、対照的に solr-0
では postcodes-006_s1r11: 847.3Mb
と正しく表示されています。
私は、ノードが起動してディスクが空であることを検知すれば、自動的にリーダーからデータを再同期するものだと期待していました。
しかし実際には、何も起こらず、ノードはただ「座っている」状態です…。
今回、新しいディスクに移行したという点は本質的な問題ではなく、もっと広い意味で、「もしノードのデータが何らかの理由で失われた場合、自動的には復旧しない」ということが分かりました。
私はずっと(盲目的に)Solr は自動で復旧してくれると考えていました。というのも、新しい名前のノードを立ち上げたときには自動で復旧していたからです。
何が間違っていたのか、また、ノードにデータを完全に再送信させるためには、どうすればよいのかをご存じの方がいれば教えていただけませんか?
以下は API が返している内容です:
"shard1": {
"range": "80000000-7fffffff",
"replicas": {
"core_node10": {
"core": "postcodes-006_shard1_replica_n9",
"node_name": "solr-1.search-solr-next.svc.cluster.local:80_solr",
"type": "NRT",
"state": "down",
"force_set_state": "false",
"base_url": "http://solr-1.search-solr-next.svc.cluster.local:80/solr"
},
"core_node12": {
"core": "postcodes-006_shard1_replica_n11",
"node_name": "solr-0.search-solr-next.svc.cluster.local:80_solr",
"type": "NRT",
"state": "active",
"leader": "true",
"force_set_state": "false",
"base_url": "http://solr-0.search-solr-next.svc.cluster.local:80/solr",
"property.preferredleader": "true"
}
},
"state": "active",
"health": "ORANGE"
}
トピックへ返信するには、ログインが必要です。