DSSファイルシステムはファイルシステムの厳密な一貫性を維持するため、以下のような操作を行うと、ファイルシステム処理が顕著に遅くなることがあります。
ファイルアクセス
1つのファイルに連続して I/O を行う際に、オープンからクローズまでの間に I/O をまとめて行わず、I/O 要求ごとにオープンとクローズを繰り返す場合
ファイルの連続した領域への書き込みを行う際に、大きなサイズ (1メガバイト以上) でまとめて書き込みを行わず、小さなサイズ(1メガバイト未満) に分割して複数回の書き込みを行う場合 (ファイルデータの断片化が発生する)
オープンしているファイルを、一度に 1000個以上削除する場合
これらの場合には、対象ファイルのオープン・クローズ頻度やタイミングの変更、I/O サイズの見直しを行うことで、ファイルシステム処理性能を改善できることがあります。
ノード間競合とディレクトリアクセス
更新が発生するファイルを、更新したノード以外から参照する場合
同一ファイルの同一ブロックを、複数ノードから更新する場合
複数ノードから、同一ディレクトリに対してファイルやディレクトリの作成/削除が発生し、かつ、ディレクトリの更新を readdir(2), stat(2)などにより繰り返し監視している場合
1つのディレクトリに 1万個以上のファイルが存在する状態で、ls(1) の -l オプション指定、cp(1), du(1), tar(1) などの、ディレクトリ配下のファイルの属性を必要とするコマンドを実行した場合
これらの場合には、監視やアクセスの頻度を変更したり、対象ファイルやディレクトリを分けたりすることでファイルシステム処理性能を改善できることがあります。
また、ファイルシステムのメタデータを管理するDSS サーバに CPU、I/O、メモリ負荷が集中することがあります。ファイルの作成/削除/ファイルの拡張など、ファイルシステムメタデータの更新を伴う操作が頻繁に発生する場合です。このような場合には、ファイルシステムのメタデータ領域、アップデートログ領域、そしてファイルデータ領域のディスク配置を最適化することで、ファイルシステム処理性能を改善できることがあります。また、DSS サーバの CPU 処理能力を大きくしたりメモリを増設することで、ファイルシステムの処理性能を改善できることがあります。
DSSファイルシステムでは、1つのファイルシステムを、DSSサーバを含めて最大 32ノードまで同時に共用できます。
ファイルシステムのメタデータを管理する DSS サーバがダウンしても、ファイルシステムの処理は継続できます。
このような運用を行うためには、DSSサーバを冗長化する構成を選択して、DSSサーバを 2つ選択します。プライマリ MDS を動作させたいノードをプライマリ DSS サーバ、セカンダリ MDS を動作させたいノードはセカンダリ DSS サーバとして設定します。
参照
DSS サーバの設定による影響の詳細については、“解説書”の“3.2.2 ダウンリカバリ機能”を参照してください。
上記の“2.4.2.1 ファイルシステムオペレーションとシステム負荷の影響”で説明したように、以下のことを考慮する必要があります。
DSSサーバでは、ファイルシステムのメタデータ更新による CPU、I/O 負荷が発生すること
CPU 処理能力、I/O 処理能力、メモリ容量、スワップ領域
注意
セカンダリ MDS が起動される場合、プライマリ MDS の起動の待ち合わせを行うため、起動に時間がかかる場合があります。
DSSファイルシステムでは、ファイルシステムを構成するディスク媒体上の領域を、以下の 3つに分けています。
メタデータ領域
アップデートログ領域
ファイルデータ領域
プライマリ MDS はメタデータ領域、アップデートログ領域の 2つの領域を参照/更新します。AC はファイルデータ領域を参照/更新します。
DSSファイルシステムは、1つのパーティションで構成することも、複数のパーティションで構成することもできます。複数のパーティションで構成した場合、I/O 処理性能上の効果が得られます。
例えば、ファイルデータ領域への I/O 集中でファイルシステム処理性能ネックとなることが予想される環境では、ファイルデータ領域を複数のパーティションで構成することで、ファイルデータ領域への I/O を分散することができます。
また、ファイルデータ領域を代表パーティションから分離した場合、メタデータ領域およびアップデートログ領域への I/O と、ファイルデータ領域への I/O とを分離できるため、ファイルデータアクセスのための I/O 処理性能を改善することができます。
参照
ディスクレイアウトの詳細については、“解説書”の“付録D DSSファイルシステムの構造”を参照してください。
DSSファイルシステムでは、ファイルシステムのメタデータ情報の取得、一貫性維持のための MDS への通信を LAN 経由で行っています。
以下の観点において、LAN 経路の設定を行ってください。
LAN のトラフィック量、LAN 負荷
LAN 故障に対する冗長構成定義
DSSファイルシステムでは、LAN の負荷が大きくならないように設計しています。しかし、運用によっては高負荷になることがあります。
また、他の処理により LAN の負荷が高い場合、DSS ファイルシステムへのアクセス処理のレスポンス時間が増大することがあります。LANの負荷状況は netstat(8) で調べることができます。
ファイルシステムへの負荷が大きい場合や、レスポンス時間への重要度が高い場合は、以下の構成をお勧めします。
高速な LAN を利用
専用の LAN を利用
また、DSSファイルシステムでは、MDS と他ノードの AC 間の通信ができなくなった場合、該当ノードでファイルシステムの閉塞処理を行います。これは、AC 側でファイルシステム処理の継続ができなくなったと判断することにより行われます。通信経路の故障を回避するためには以下の構成をとることをお勧めします。
GLS (伝送路二重化機能) の高速切替方式を利用して、複数の LAN 経路を論理的な 1 経路とすることで通信経路を多重化する
参照
GLS の設定の詳細については、“PRIMECLUSTER Global Link Services 説明書 (伝送路二重化機能編) (Linux版)”を参照してください。
sfcmkfs(8) による DSSファイルシステム作成時には、デフォルト設定ではある程度の拡張を考慮したファイルシステム構成を取りますが、将来、ファイルシステムを拡張することが予想される場合は、下のパラメタ値が将来の拡張で十分であるかを確認してください。
たとえばパーティション追加機能については、sfcmkfs(8) の -o maxvol パラメタを超えて追加はできません。この場合は、ファイルシステムを拡張するには、データをバックアップして一旦削除し、新規ファイルシステムを作成し、データをリストアする必要があります。
したがって、将来のファイルシステム拡張に備えて、拡張する最大サイズを予測し、ファイルシステムを作成してください。
将来の拡張に備えて確認すべきパラメタ
sfcmkfs(8)のパラメタ | 省略値 | 意味 |
---|---|---|
maxdsz | 指定時のファイルデータ領域サイズ | 最大ファイルデータ領域サイズ(メガバイト) |
maxnode | 16 | 最大共用ノード数 |
maxvol | 16 | 最大構成パーティション数 |
データブロックサイズは、値を指定しないでファイルシステムを作成した場合、ファイルデータ領域のサイズ、またはファイルシステムを構成する最大パーティションサイズをもとに、自動で算出されます。ファイルシステムサイズが大きくなると、データブロックサイズも大きくなります。また、データブロックサイズが大きくなると、最大ファイルサイズも大きくなります。
以下に、データブロックサイズを指定しないでファイルシステムを作成した場合の、ファイルシステムサイズ、データブロックサイズ、最大ファイルサイズの関係を示します。
ファイルシステムサイズ | データブロックサイズ | 最大ファイルサイズ |
---|---|---|
~1テラ | 8キロ | 1テラ -8キロ |
(1テラ+1)~2テラ | 8キロ~16キロ | (1テラ -8キロ) -(2テラ -16キロ) |
(2テラ+1)~4テラ | 8キロ~32キロ | (1テラ -8キロ) -(4テラ -32キロ) |
(4テラ+1)~8テラ | 8キロ~64キロ | (1テラ -8キロ) -(8テラ -64キロ) |
(8テラ+1)~16テラ | 16キロ~128キロ | (2テラ -16キロ) -(16テラ -128キロ) |
(16テラ+1)~32テラ | 32キロ~256キロ | (4テラ -32キロ) -(32テラ -256キロ) |
(32テラ+1)~64テラ | 64キロ~512キロ | (8テラ -64キロ) -(64テラ -512キロ) |
(64テラ+1)~128テラ | 128キロ~1メガ | (16テラ -128キロ) -(128テラ -1メガ) |
(128テラ+1)~256テラ | 256キロ~1メガ | (32テラ -256キロ) -(128テラ -1メガ) |
(256テラ+1)~512テラ | 512キロ~1メガ | (64テラ -512キロ) -(128テラ -1メガ) |
(512テラ+1)~1ぺタ | 1メガ | 128テラ―1メガ |
(1ペタ+1)~2ペタ | 2メガ | 256テラ―2メガ |
※ 単位はバイト
注意