okuyamaの開発者たちがファイルシステムを実装してみたらこうなった。});はじめにこのたび、3回にわたって筆者が開発している分散キーバリューストア(以下KVS)「okuyama」を使って実装したファイルシステムokuyamaFuseという内容で連載を執筆する岩瀬です。キーバリューストアでファイルシステム??いまいちピンとこないと思いますが、ごく簡単に紹介すると「ファイルシステムに保存されるデータが全てKVSに保存されている」というものです。KVSでファイルシステムを作ることにしたのか、本連載ではその背景から、具体的な実装の仕組み、性能、使い方までを紹介します。そもそもファイルシステムとは......本稿ではまず、本題である「okuyamaFuse」を紹介する前に、そもそもファイルシステムとは何か、という点について少しおさらいをしておきましょう。ファイルシステムとは何でしょう?ファイルシステムをすこし堅めの言葉で表現するならば「記憶装置に記録されているデータを管理する方式」と言えます(注1)。日々読者の皆さんが使われているものでいうとWindowsであればNTFSですし、LinuxであればExt3、Ext4、xfsなどです。以下はWikipediaに載っていたファイルシステムの一覧ですが、すごく多くの種類があることが分かります。e-Wordの定義を引用しています。表1を見ても分かるように、ファイルシステムの種類はいろいろとありますが、「記憶装置に記録されているデータを管理する」という同じ目的で開発されたものです。具体的にどういった仕組みなのかを改めて見ていきましょう。ファイルシステムの仕組みを「配列」でイメージしてみるファイルシステムはコンピュータを使う上であまりに身近なものであるために普段仕組みまで意識することは少ないと思います。皆さんも知らず知らずのうちに複数のファイルシステムを使われていると思います。身近なファイルシステムは、皆さんが使っているPCに搭載されているローカルのファイルシステムでしょう。会社などであれば、ファイルサーバなどの、ネットワーク越しに操作可能なNASが導入されていたりもするでしょう。NASであれ、ローカルのファイルであれ、ユーザーの皆さんから見ると同じような操作で扱えます。明らかに異なるこういった仕組みを同じような操作で扱えているのでしょう。それは、ファイルシステムが利用ユーザーと実際にデータを保存する記憶装置の間を取り持ち、決められた操作のみを利用ユーザーに提供しているからです。現在、最も主流な記憶装置はハードディスク(以下、HDD)ですが、普段HDDがどのようにデータを記録しているかは気にしないことがほとんどです。Windows環境であれば、エクスプローラでファイルをコピーすれば同じデータを簡単に複製でき、HDD上でもきっちり実態となるデータが複製されています。このように、ファイルシステムは、主にユーザーの動作を記憶装置の動作に変換する役目を担っています。ここでは記憶装置を「配列」に例えて簡単に仕組みを紹介してみます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。