知っているようで知らない「POSIX」とは何か:オブジェクトストレージとPOSIX【前編】
普段、「POSIX準拠」か否かを意識することはない。30年以上前に生まれたこの規格は今でも使われ続けている。改めてPOSIXがなぜ重要なのかを説明する。
ストレージには
- ブロックストレージ
- ファイルストレージ
- オブジェクトストレージ
がある。このうちブロックストレージとファイルストレージがPOSIXに準拠する。大半のユーザーはこのようなことを理解する必要はない。だが、ITインフラを設計または調達するのであれば、特にオブジェクトストレージベースのクラウドが普及している現在では、この違いが重要になる。
本稿では前後編に分けてPOSIXとは何か、POSIXが提供すること、POSIXの制限事項、特にオブジェクトストレージの制限について説明する。さらに、その制限についてストレージメーカーやソフトウェアメーカーが行っている取り組みも紹介する。
そもそもPOSIXとは何か
POSIXは「Portable Operating System Interface」の略称であり、IEEEが定めた規格を指す。POSIXはUNIX間におけるアプリケーションの移植を可能にするため、1980年代に考案された。
POSIXのルーツはUNIXにあり、「AIX」「HP-UX」「macOS」などはIEEEからPOSIX準拠として認定されている。UNIXライクOSの「Linux」や「Android」はおおむねPOSIX準拠だが、IEEEの認定は受けていない。「Windows」も「Cygwin」などの環境を使えばおおむねPOSIX準拠と言える(訳注)。
訳注:もともとWindows NTはPOSIXサブシステムを搭載していたが後に削除され、Microsoft自身がCygwinを代替手段として推奨した時代もあった。「Windows 10」から、WSL(Windows Subsystem for Linux)によって再びPOSIX準拠のサブシステムを搭載した。
関連記事
- 意外に難しい「オブジェクトストレージへの簡単なアクセス」を解決
- ディレクトリ構造の限界とフラットなオブジェクトストレージの可能性
- いまさら聞けないAmazon S3&オブジェクトストレージ
- ファイルストレージとオブジェクトストレージの統合の課題
- ファイル/オブジェクトストレージ統合の可能性
ストレージにとってPOSIXが重要な理由
POSIXではファイルシステムをマウントするルールやファイル名など、ストレージにとって重要な機能が定義されている。さらに重要なことに、ファイルへのアクセスに関するルールとファイル内のブロック数が定義され、階層型ディレクトリ構造でこれらを設定する方法が規定されている。
POSIX準拠のファイルシステムは次の特徴を備えていなければならない。
- 厳密な一貫性
書き込みが発生した場合、書き込まれたデータをそのまま返さなければならない
- アトミックな書き込み
読み取りでは、書き込まれたデータを全て返すか全くデータを返さないかのいずれかとする。不完全な書き込みは返さない
- アクセス制御
さまざまなアクセス権を使ってファイルへのアクセスを制御する
POSIXに準拠することで、ファイルやファイルの一部への書き込み、アクセス、読み取りの方法について明確なルールが確保される。これはアプリケーションの操作やトランザクションの整合性の確保に役立つ。ただし、パフォーマンス上の理由などからPOSIXに完全準拠しないOSもあることに注意が必要だ。
POSIXに準拠することが非常に重要な機能もある。ビジネスプロセスやトランザクションの整合性にとっては明らかに重要だ。企業アプリケーションの大半はPOSIXに準拠する必要があり、POSIX準拠を軸に作成されている。
Copyright © ITmedia, Inc. All Rights Reserved.