ページの先頭行へ戻る
Interstage Information StorageV10.0.0 解説書

3.2.1 共用ファイルシステムの概要

DSS ファイルシステムは、共用ディスク装置を接続した複数の Linux システムから同時アクセス可能なファイルシステムです。(このようなファイルシステムを共用ファイルシステムと呼びます。ext3 など、1つのノード内で使用するファイルシステムをローカルファイルシステムと呼びます。)

DSSファイルシステム は ext2 および ext3 と API 互換を持つ、高信頼および高性能なファイルシステムです。

DSS ファイルシステムでは、複数ノードからのファイルデータ更新に対して、一貫性/整合性を保ちます。これにより、複数ノードで分散アプリケーションを実行する場合に、従来の API をそのまま使用して該当アプリケーションのデータの受渡しを実現できます。

また、ノードがダウンしても他のノードでのファイルオペレーションが継続できるため、ファイルシステムへの高可用性が求められる環境に特に適しています。

DSS ファイルシステムの主な機能には、以下があります。

3.2.1.1 一貫性を維持した同時共用アクセス

DSS ファイルシステムは、共用ディスク装置に存在するファイルシステムへの、複数ノードからの同時参照・更新を実現します。また、ファイル、ファイルシステムへの複数ノードからの更新に対して、一貫性・整合性を維持しています。

これにより、ファイルの参照や更新を行うアプリケーションが複数ノードに存在した場合に、相互のデータ更新や最新データの読み出しなどが実現できます。

これらは、従来の UNIX のファイルシステム API を使用することで可能となります。

図3.1 ファイル連携アプリケーションの分散実行

3.2.1.2 高可用性

DSSファイルシステムでは、ノードダウン、ディスクのブロック故障が発生した場合でもファイルシステムのアクセス継続を可能としています。

ノードダウン時の運用継続性

複数のノードから 1つの DSS ファイルシステムを利用している場合に、1つのノードがノードダウンしても、他のノードからのファイルアクセスは継続できます。ダウンしたノードが保持していたファイルシステム情報は、残ったノードの DSS ファイルシステムの内部で自動的に整合性回復します。つまり、残ったノードで動作しているアプリケーションプログラムには、他のノードのノードダウンの影響でファイルシステム操作がエラーとなることなく処理が継続できます。

参照

運用継続機能の詳細については、本書の“3.2.2 ダウンリカバリ機能”を参照してください。

図3.2 ノードダウン時の運用継続性

高速ファイルシステムリカバリ

ノードダウンが発生した場合、通常のファイルシステムでは、fsck(8) によるファイルシステムの整合性回復処理を実行する必要があります。多くのファイルシステムでは、ファイルシステムの整合性回復の際に、ファイルシステムのメタデータ全体を調査する必要があります。また、ノードダウン発生時に、ファイルシステムを実際に利用できるまでに多くの時間を必要とすることがあります。

DSS ファイルシステムでは、アップデートログと呼ぶ領域に、ファイルシステムの構造を変更する操作 (ファイル作成・削除など) を記録します。この領域の情報を利用することによって、システム障害から、高速で回復することができます。

システム障害から回復するとき、DSS ファイルシステムの回復処理では、アップデートログを検索します。そして、システム障害時に行っていたファイルシステム操作を無効にするか、完了させるかを判定し、反映します。その後、ファイルシステム構造のフルチェックをすることなく、マウントして利用することが可能となります。

“ノードダウン時の運用継続性”で述べたように、複数ノードで動作している DSSファイルシステムではノードダウン時に自動的に整合性回復処理が動作するので sfcfsck(8) の実行は必要ありません。

注意

sfcfsck(8) のフルチェックモードも提供しています。ディスクのハードウェア障害などでファイルシステム復旧する場合にフルチェックのsfcfsck(8) の実行が必要な場合があります。

ディスクブロック故障時の領域再割当て

DSS ファイルシステムでは、新規に割り当てたメタデータ領域にディスクブロックのハードウェア障害が発生した場合に、別のディスクブロックを自動的に割り当てます。これにより、ディスクの特定ブロックだけの故障の場合に、ファイルシステム処理を継続することができます。

注意

本機能は、I/O エラーの発生したブロックの使用を一時的に抑止するだけで、同じブロックを使用する要求が出た場合に、再度 I/O エラーが発生してしまうことがあります。

I/O エラーが発生する場合には、該当要求への応答時間が長くなるため、I/O エラーの原因を早く取り除くことが必要です。

I/O エラーによるブロックの再割当てが発生した場合にはまず、ファイルシステムをバックアップします。そして、ディスク交換などによりハードウェアの不良原因を取り除き、バックアップしたデータをリストアすることでファイルシステムの復旧を実施してください。

バックアップ、リカバリについては、“運用ガイド”の“第2章 バックアップ・リカバリ”を参照してください。

3.2.1.3 ファイルアクセスの高速化

DSS ファイルシステムでは、以下に説明する機能によりファイルシステムアクセスを高速化しています。

データアクセス性能

DSS ファイルシステムでは、共用ディスク装置のファイルシステムを複数のノードからアクセスすることが可能です。従来の分散ファイルシステムでは、サーバからクライアントへファイルデータをネットワークによって転送していました。

しかし、DSS ファイルシステムでは、要求ノードから直接ディスクにアクセスします。これにより、ネットワーク負荷を軽減するだけでなく、読み出し・書き込み要求に対するレスポンス時間を NFS などに比べ短縮しています。

連続ブロック割当て

DSS ファイルシステムでは、ファイルデータに対して連続ブロックを割り当てることで、一括した I/O で処理できる機会を増やしファイルシステム性能を改善します。DSS ファイルシステムでは、このような割付管理のために、領域をエクステントベースで管理しています。連続獲得可能な範囲については、ファイルオフセット、開始ブロック番号、使用ブロック数の組で、領域割当てを管理しています。

また、ファイルサイズを拡張する場合にも、連続ブロックになるように考慮しています。

たとえば、図3.3では、100メガバイトのファイルシステムを作成した場合に、ディスクの空ファイルデータ領域の状態により、表が示すような形で記憶/管理しています。先頭の 64メガバイトには、64メガバイトの連続領域、その後ろ 64メガバイト ~ 96メガバイトのオフセット位置には 32メガバイトの連続領域、残りの 4メガバイト (96メガバイト ~ 100メガバイト) は 4メガバイトの連続領域です。

図3.3 連続ブロック割当て

また、空ファイルデータ領域の管理もエクステントベースで行っています。これにより最適な空き領域を高速に割り当てることを実現しています。

マルチパーティション構成

DSS ファイルシステムでは、複数のパーティションを 1つのファイルシステムにまとめる機能を提供しています。

DSS ファイルシステムでは、パーティションを追加することによって、領域不足を容易に解消することができます。

また、DSS ファイルシステムでは、マルチパーティション構成の場合、ファイルごとに別々のパーティションからファイルデータ領域を使用するラウンドロビンアロケーション方式を採用しています。これにより、複数のディスクに I/O 負荷を分散することができファイルシステム性能を改善します。

独自のメタキャッシュ管理

DSS ファイルシステムでは、メタデータのキャッシュ管理を独自に構築しています。従来からある多くのファイルシステムではメタデータについては一様にキャッシュ管理していました。しかし、DSS ファイルシステムでは、ディスクの iノード、ディレクトリブロック、間接ブロックなどの領域を、アクセスの性質を考慮して、別々に管理しています。これにより、キャッシュヒット率の向上と、使用資源量の削減を実現しました。

3.2.1.4 高拡張性

DSS ファイルシステムでは、空いているディスクパーティションを指定することで簡単にファイルシステムを拡張することができます。これにより、ファイルシステムの空き領域不足が発生した場合に短時間で解決できます。

また、DSS ファイルシステムを共用するノードは、32ノードまで拡張することができます。

ファイルシステムの拡張

DSS ファイルシステムでは、既存のファイルシステムにファイルデータパーティションを追加する機能を提供しています。この機能を使用することで、ファイルシステムのバックアップおよび再作成といった、わずらわしい作業をしなくても領域不足を解消できます。

図3.4 パーティション追加

共用ノードの追加

DSS ファイルシステムを共用するノードは、DSS サーバとDSS クライアントを合わせて、32ノードまで設定/追加できます。

図3.5 共用ノードの追加