device-mapperの仕組み 目次

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を構成するメンバ関数がどのような処理を行なっているか, コードを掘り下げて説明していきます.

  1. device-mapperの仕組み (1) device-mapperの概要 - テストステ論
  2. device-mapperの仕組み (2) I/Oの概要 - テストステ論
  3. device-mapperの仕組み (3) dm_requestからの流れ - テストステ論
  4. device-mapperの仕組み (4) endioの仕組み - テストステ論
  5. device-mapperの仕組み (5) dm_ioでI/Oを簡単に発行しよう! - テストステ論
  6. device-mapperの仕組み (6) dm_ioで同期I/O。デッドロックに気をつけて! - テストステ論
comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。