device-mapperは, ブロック層の抽象化フレームワークです. 私が開発したdm-lc(Sorry, クローズド)は, このフレームワークのプラグインとして実装されています. device-mapperを利用する(使い倒す)ことによって, dm-lcのような複雑な制御を行うキャッシュソフトウェアも, 極めてシンプルに実装することが可能となります. device-mapperは, もはやLinux運用に欠かせないツールとなったLVM(Logical Volume Manager)を始め, 様々なところで活躍していますがしかし, その実態が広く知れ渡っているわけではありません.
このシリーズでは, 私が, device-mapperの仕組みについて説明します. device-mapperは非常に柔軟なフレームワークであり, その力は計り知れません. upstreamに取り込まれているメジャーなプラグイン(ソフトウェアRAIDなど)の他にも, dm-lcやflashcache(Facebook)のようなキャッシュソフトウェアを始め, dm-green(ストレージの階層制御, 消費電力の観点から), dm-iobandのようなユニークなプラグインが存在し, あなたのユニークな閃きをコードとして表現することが待ち望まれています. このシリーズが, 人類の新たな突破口にならんことを願っています.
本シリーズは, 以下のような構成を予定しています. dm_targetを構成するメンバ関数がどのような処理を行なっているか, コードを掘り下げて説明していきます.