2 「富岳」の運用

2-3 運用の高度化に向けた取組

「富岳」の共用運用は2021年3月に開始されたが、共用開始後に発覚した問題への取組や実施した運用改善の内容などについて以下に示す。

2-3-1 障害対策

障害の中でもファイルシステム障害はシステム停止を引き起こす原因になることもあり、その対策は安定運用を実現するために非常に重要な問題である。2021年度に実施したファイルシステム障害対策について以下に示す。

(1)第二階層ファイルシステム障害発生時の対策

「富岳」では、第二階層ファイルシステムを6ボリュームに分割して提供している。共用開始時点では、ジョブがアクセスするファイルがどのボリュームに置かれていても問題ないように、計算ノードは全てのボリュームをマウントしていた。この場合、どれかのボリュームが障害等でアクセスできなくなると全ての計算ノードに影響があり、最悪の場合、計算ノードが停止することもある。これを回避するため、ジョブ投入時にジョブが必要とするボリュームを指定し、計算ノードはそのボリュームのみマウントする仕組みを実装した。この方式では、ユーザーがマウントするボリュームを明示的に指示する必要があるが、障害発生時の影響は最小限にすることが可能となる。

(2)MDS障害対策

第二階層ファイルシステムの各ボリュームには、ファイルを管理するメタデータサーバ(MDS)があり、このMDSがダウンするとそのボリュームはアクセス不可となる。例えば、同一ディレクトリに同時に多数のファイル生成などのリクエストが発生した場合、MDSはそれらのリクエストを排他的に処理する。この時、そのリクエストがハングアップすると後続のリクエストが処理できなくなり、その結果MDSが停止しそのボリュームが利用不可となる。これを回避するため、MDSへのリクエストのハングアップを検出・キャンセルする仕組みを実装した。

(3)LLIO障害検出

「富岳」の第1階層ファイルシステムであるLLIOは、SSDを使用した高速なファイルシステムであるが、同一ファイルへの同時アクセス数制限や同時ファイルオープン数制限などの機能上の制限がいくつかある。これらの制限に抵触した場合、そのジョブだけでなく第1階層ファイルシステムを提供しているSIOがダウンするなどの影響がでる。これを未然に回避するため、ジョブ実行時のLLIO利用制限を超過するジョブを検出する仕組みを実装した。利用制限超過を検出した場合、当該ユーザーに問題点と改善方法を伝え、ジョブ実行方法の改善を促し、重大障害の発生を防ぐ取組を行っている。

2-3-2 運用改善

(1)計算ノードの有効活用

「富岳」の通常運用時は、ジョブの規模に応じた2種類のリソースグループ small と large を設定している。smallは規模の小さなジョブ用のリソースグループで、離散形式と呼ばれるノード単位でのスケジューリングを行う。この形式では割り当てられたノードが隣接することは保証されないが、必要な計算ノード数が確保できればノードの位置関係に関係なく実行することができる。largeは規模の大きなジョブ用のリソースグループで、第1階層ファイルシステムを専有できるようにLLIOの最小単位であるshelf単位(48ノード)でスケジューリングを行う。そのため、largeはsmallと比べてジョブ間の隙間ができやすい。この隙間の計算ノードを有効に活用するため、smallの一部ジョブをlargeの隙間で実行する仕組みを実装した。具体的には、smallに投入されたジョブから設定した条件を満たすジョブのみlargeの隙間で実行する。ジョブの選択条件は自由に変更できるため、今後の運用において様々な状況で活用していく予定である。

(2)シングルアカウント化

「富岳」のアカウントは、共用開始直後は課題毎にユーザーに発行していた。これは、課題毎に完全に環境を切り替えることができる反面、多数の課題に属している場合には都度アカウントを切り替えて利用する必要がある他、所属する課題間でのデータ利活用が容易ではないといった問題があった。ユーザーの利便性を向上させるため、ユーザーアカウントの発行を課題単位からユーザー単位に変更し、一つのアカウントで複数課題の作業が可能となるシングルアカウントを導入した。あわせて、課題のデータ領域をユーザー自身で管理できる仕組みを導入した。これにより、課題で使用するボリュームをユーザーが自由に設定することが可能となり、ユーザーの利便性が向上した 。