投稿

11月, 2022の投稿を表示しています

VxRail クラスタ起動時のタイムアウト値について詳細調査

 イントロ VxRail は、VxRail クラスタShutdown機能を利用してクラスタをシャットダウンすると次回起動時に自動的にメンバーノードのメンテナンスモードが解除され、vSANが再度有効化されたのちにSystemVMが自動で起動するようになっている。 起動時に上記の動作を提供するスクリプトが仕込まれており、それは以下のスクリプトファイルである。 /etc/rc.local.d/998.start_vm.py このスクリプトには上記の動作を安定化させるためにいくつかの待機フェーズが仕込まれている。この記事では、スクリプト内で利用される各待機フェーズにおけるタイムアウト値を調査した 免責 本記事内容は、7.0.320 で稼働するノードの該当スクリプトを解析しています。 調査結果についてはベストエフォートであり、必ずしもその正確性や網羅性を保証するものではありません。 スクリプトの動作を確認 スクリプト内で以下の部分がメイン関数であるとわかる      546 def main():     547     parser = argparse.ArgumentParser()     548     parser.add_argument('-d', dest='debug', help='Debug mode (no run in background)', action='store_true')     549     550     args = parser.parse_args()     551     if not args.debug:     552         daemonize()     553     do_start_vms() do_start_vms という関数が呼び出されている     422 def do_start_vms():     423     """     424     Wait for VSAN ready.. only wait if VSAN has MARVIN_CONFIGURED_VSAN_PREFIX prefix     425     This waits two things.     426