第4章 ファイルシステム

4.1 概要

HA8000クラスタシステムでは合計1PBの大容量ストレージと各ノードのローカルディスクが使用できます。利用者データの格納場所としては並列ファイルシステム上のホームディレクトリおよび小容量NFS領域が使用できます。申込制で大容量NFS領域も使用できます。また、計算中の一時データ格納領域としては5日で削除される容量制限のない領域および各計算ノードのローカルディスクが使用できます。本章ではこれらのディスク領域の特徴や典型的な使い方を紹介します。

4.2 使用可能領域

利用者データの保存には以下のディレクトリが使用できます。

• /home/ログイン名

• /nfs/all/ログイン名

• /nfs/グループ名/ログイン名(申込制)

一時データの格納場所としては次の場所が使用できます。

• /short/ログイン名

• /tmp

それぞれのディレクトリには次のような特徴があります。

/home/ログイン名 (各コースの上限容量まで使用可)

/homeはホームディレクトリであり,ここに作られたファイルは利用者自身で削除するまで保存されます。この領域にはすべてのノードからアクセスできます。ファイルシステムにはHSFS(Hitachi Striping File System)が使用されています。HSFSは複数のファイルサーバに負荷を分散する機能を持ち、多数のノードからの大量入出力を処理することができます。そのため/homeは並列アプリケーションからのデータ入出力に向いています。一方、HSFSはファイル操作のレスポンスがよくないため、プログラムの編集やコンパイルなどの日常作業には不向きです。ログインノードにおける作業時など、細かいファイル操作が多いときはNFS領域をご利用ください。

/nfs/all/ログイン名 (1アカウントあたり10GBまで使用可)

/nfs/all はログインノードにおける作業時などファイル操作に対するレスポンスを重視する場合に使用する領域です。プログラムの編集やコンパイル作業などにお使い下さい。ファイルシステムにはNFSを用いています。この領域にはすべてのノードからアクセスできますが、NFSはサーバの負荷を分散する機能を持たないため、多数のノードからの同時アクセスを苦手とします。そのため、並列アプリケーションからのデータ入出力にこの領域を使うことはご遠慮ください。

/nfs/グループ名/ログイン名 (申込制)

上記のNFS領域では容量不足である利用者、または並列アプリケーションからの入出力にNFS領域を使用したい利用者のための領域です。申込制となっており、容量は申込時にセンターとの話し合いにより決定させていただきます。パーソナルコースの方もお申し込み可能です(「/nfs/personal/ログイン名」などの名前になります)。この領域と/homeの合計容量が各コースのディスク容量(ディスク増量をされている方は増量後の容量)となるよう、各ディレクトリの使用量制限値を設定させていただきます。/nfs/allとは別のサーバ、別のディスクを使用します。/nfs/allとは異なり、MPIなどの並列アプリケーションからご利用いただくことができます。NFSが負荷分散機能を持たないこと、また他の利用者の影響も受けることをご理解の上ご利用ください。

/short/ログイン名 (容量制限なし)

一時的に必要なデータ等を置くためのディレクトリです。ここに作られたファイルは作成(または最終更新)から5日後に削除されます。バックアップはありません。ファイルシステムはHSFSで、すべてのノードから同じファイルにアクセスできます。

/tmp (ノードあたり140GB)

短時間の作業のために使用するディレクトリです。ここに作られたファイルはログインノードでは2日以内、計算ノードではジョブ終了時に削除されます。計算ノード、ログインノードとも、各ノードのローカルディスクなので他のノードからのアクセスはできません。

4.3 並列ファイルシステムHSFSについて

4.3.1 HSFS概要

HA8000クラスタシステムのように大量のノードが存在するシステムではNFSのようなファイルサーバが一台しか配置できないようなネットワークファイルシステムではサーバが過負荷となる可能性があります。そこで /home /short には日立製作所の HSFS(Hitachi Striping File System) と呼ばれる並列ファイルシステムが使われています。このシステムではNFSとは異なり、複数のクライアントからのアクセスを複数のサーバで処理することができるため、大量のノードからのアクセスに耐えるだけのサーバを配置できます。本システムでは952台のノードが16台のファイルサーバに接続されています。

下図のようにHSFSはディレクトリ構造やファイルの実体の存在場所を記録したメタデータサーバとファイルの実体を格納するサーバを持ちます。HSFSを使用するノードはメタデータサーバにファイルの場所を問い合わせた上で実体を持つサーバと通信を行いファイルにアクセスします。これらの操作はシステムにより自動的に行われるため利用者はHSFSの仕組みをそれほど意識する必要はなく、ローカルディスクのファイルを扱うのと同じ操作でファイルを扱うことができます。

file-stripe.eps

図7 HSFSの動作概要

4.3.2 HSFSの使い方

HA8000クラスタシステムのHSFSを高い性能で使うため、以下の点に注意してご利用ください。

同時アクセスは別のファイルに対して行う

HA8000クラスタシステムのHSFSは「ファイルストライプモード」と呼ばれるモードに設定されています。このモードではファイル単位で実体を保存するサーバが選択されます。単一のファイルが複数のサーバに分割されて格納されることはありません。そのため、同一ファイルに多数のノードからアクセスすると一つのサーバに負荷が集中し、高い性能は得られません。

大きなバッファで入出力を行う

HSFSは大規模ファイルの入出力に特化して最適化されており、小規模の入出力では高い性能が得られません。特にC言語をご利用の方は4MB以上のデータ入出力をまとめてファイルシステムに要求するようプログラミングしてください。日立製作所製Fortranをご利用の場合は実行時ライブラリが自動的にバッファリングして大規模リクエストを作成するので、特殊な工夫は基本的には不要です。

複数ノードからアクセスする

ネットワークやプロセッサの負荷分散の観点から、並列アプリケーションからの入出力は複数のノードから行うようにプログラミングしてください。代表ノードのみが入出力を行うタイプのアプリケーションはHA8000クラスタシステムでは高い性能は得られません。