LinuCレベル4 システムアーキテクト ネットワークとストレージの選定 問15
ネットワークとストレージの選定/ストレージとアクセスプロトコル5台のLinuxのアプリケーションサーバーが、同じディレクトリにある帳票ファイル群を同時に読み書きする。既存のアプリケーションはPOSIXのファイル操作でファイルの一部を書き換え、他のサーバーとの排他にはファイルロックを使っている。アプリケーションは改修しない前提である。ストレージの提供形態とプロトコルの選択として最も適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「ネットワークとストレージの選定」に対応。実際の試験問題ではありません)
- A1つのiSCSIのLUNを5台すべてに接続し、各サーバーでEXT4としてマウントして、同じファイルをそれぞれ直接読み書きする
- Bオブジェクトストレージにファイルを置き、各サーバーがオブジェクト単位で取得と上書きを行い、ロックは各サーバー内で取る
- C各サーバーのローカルディスクに同じファイル群を置き、定期的にrsyncで内容を同期して、サーバー間の差分をそろえる
- DファイルストレージをNFSv4で提供して5台でマウントし、NFSのロック機能を使って共有ファイルへの更新を排他する
正解:D
解説
複数のサーバーから同じファイルをPOSIXのセマンティクスで共有し、ロックで排他するという要件には、ファイルストレージが合います。NFSv4はロックの機能をプロトコル自体に含んでおり、あるクライアントが取ったファイルロックを他のクライアントも尊重するため、既存のアプリケーションを変えずに共有できます。ブロックストレージは1台のホストが専有するのが基本で、EXT4のような単一ノード向けのファイルシステムを複数台で同時にマウントするとデータが壊れます。オブジェクトストレージは部分的な書き換えやPOSIXのロックを前提としないため、改修なしでは使えません。
選択肢ごとの解説
- A誤り。EXT4は複数ノードからの同時マウントを想定しておらず、各サーバーのキャッシュやメタデータが食い違ってファイルシステムが壊れます。
- B誤り。オブジェクトストレージはオブジェクト全体の置き換えが基本で、部分的な書き換えやサーバー間で有効なファイルロックを提供しないため、改修が必要です。
- C誤り。各サーバーが別々のファイルを更新するため同時更新が衝突し、サーバー間の排他もできず、同期までの間は内容が食い違います。
- D正しい。ファイルストレージを複数台で共有でき、NFSv4のロックによってサーバー間の排他もアプリケーションを変えずに実現できます。