nDiki : aufs
スポンサード リンク
Related term
2007年12月23日 (日)
■ aufs を使って Web サイトのドラフト作成する

この nDiki はローカル PC 上で Emacs で記事ファイルを書き、出来上がったら Unison で Web サーバと同期させる形でアップロード・公開している。
この方法で一つ問題なのは「書きかけの記事ファイル」の扱いが面倒なこと。 書きかけの記事ファイルがある状態で Web サーバと同期するとそれが公開されてしまうのでまずい。しかし完成している記事ファイルがあるならばそちらは同期して順次公開したい。 同期する時には書きかけの記事ファイルを退避させればいいのだが、思いっきり面倒。
ということで手元で公開用 (Web サーバ と同期用)のディレクトリツリーと、ドラフト用(ローカルの Web サーバでのレビュー用)のディレクトリツリーを分けられるようにすることにした。 この2つのディレクトリツリーの差分となる草稿・更新ファイルは aufs を使うことで簡単に管理することができる。
@ aufs
aufs は stackable unification filesystem の一つ。 同様なものとしては UnionFS がある。 UnionFS よりも aufs の方が評判が良いようなので今回は aufs を使うことにした。
aufs では複数のディレクトリ(ブランチと呼ぶ)をオーバーレイさせて、1つのディレクトリとして扱うことができる。 公開用ディレクトリツリーに、ドラフト用ディレクトリツリーをオーバーレイさせることで、元のディレクトリには変更を加えることなく透過的に変更できる仮想的なディレクトリツリーを作ることができる。
@ aufs のインストール
Debian GNU/Linux sid へはkernel 再構築とあわせて module-assistant でインストールした。
@ マウント
以下のように3つのディレクトリを作ってマウントする。
- /home/naney/www.naney.org
- 公開用ディレクトリツリー。本番モノ。公開サーバと同期する。
- /home/naney/draft.naney.org
- 草稿や修正されたファイルが書き込まれるディレクトリツリー。
- /home/naney/next.naney.org
- 公開用ディレクトリツリーに、草稿や修正されたファイルが仮想的にオーバーレイされたディレクトリツリー。プレビュー用。
mount -v -t aufs -o br:/home/naney/draft.naney.org=rw:/home/naney/www.naney.org=ro none /home/naney/next.naney.org
公開ディレクトリツリーは read only に、草稿用のディレクトリツリーは read - write になるように指定する。
これで /home/naney/www.naney.org 以下はいじらないまま、/home/naney/next.naney.org 上で草稿を書いたりファイルを編集したりすることができる。 /home/naney/next.naney.org 以下で追加したファイルや、変更したファイルは aufs が /home/naney/draft.naney.org 上に保存してくれる。
完成したものを /home/naney/draft.naney.org から /home/naney/www.naney.org に順次反映させ(移動し)、公開サーバへ同期することで公開していくことができる。
手元ではいろいろ書き散らせておけるのは、これは便利。
マウントオプションは他にいろいろあるようなので、こまかい設定は見直すかも。
@ その他
ファイルシステムレベルの処理なので、アプリケーション側では何も手を加えなくてもよいのが良い。
今回は公開用とドラフト用としたが、公開用と未公開用をローカルでミックスして表示するようにしたり、複数ユーザのコンテンツディレクトリを仮想的に1つにまとめたりと、いろいろ面白い使い方ができそうだ。
- aufs で inotify を使ってブランチ上の直接の変更をすぐに反映させる (2008-01-05)
- はいぱー日記システムで日記を開始 (2001-05-11)
- はてなブックマーク上の最新ブックマークを nDiki に (2005-05-16)
- skkinput がよく落ちるので uim-skk に乗り換え (2005-09-22)
- flickrfs で Flickr をマウントして写真をコピーする (2008-02-21)
■ Debian Linux kernel 2.6.23 をビルドする。

ThinkPad X31 に入れている Debian GNU/Linux sid の Linux kernel を随分アップデートしていなかった(2.6.17 を使用中)。 今日 aufs を入れついでに、一緒に最新(2.6.23)をビルドすることにした。 Debian kernel パッケージ構築は去年の8月以来。
今回は linux-patch-aufs を入れておいて、aufs 用のパッチを当てる。
#apt-get build-dep linux-image-2.6.23-1-686 #apt-get install linux-source-2.6.23 linux-patch-aufs #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/linux-source-2.6.23.tar.bz2 $cd linux-source-2.6.23 $make menuconfig $make-kpkg clean $fakeroot make-kpkg --added-patches put_filp,lhash,splice,ksize,sysfs_get_dentry --revision=sebastian.1.0 kernel_image $cd .. $su #dpkg -i linux-image-2.6.23_sebastian.1.0_i386.deb
パッチが一部 2.6.22 用で 2.6.23 には当たらなかったが、よしとしておく。 ここで再起動。次に MADWIFI と aufs をインストール。
module-assistant prepare module-assistant auto-install madwifi module-assistant auto-install aufs
いつも入れている shfs も同様に入れようと思ったがこちらはコンパイルエラー。 頻繁に使うわけではないので、とりあえずほっておくことにする。
コンパイルが面倒なのでそろそろ Debian 公式のを使おうかと思ったが、試してみたところ
- ThinkPad X31 ではサスペンドしない。
- ThinkPad X31 では cpufreqd が動かない。
- aufs が 2.6.22 用しかまだない。
ということ NG。 やはり自前でビルドしなければならないことを再確認。
- Debian GNU/Linux sid 環境を新 HDD へ (2006-07-29)
- Debian kernel パッケージ構築 (2004-05-09)
- ThinkPad X31 と Linux kernel 2.6 (2006-02-22)
- Debian Linux kernel 2.6.15 ビルド (2006-02-23)
- 納品前日なのに /var が壊れた! HDDからのブートで Debian ... (2005-09-27)
2008年1月4日 (金)
■ 今日のさえずり - アイスも冷凍食品も全滅っぽい

- 12:07 冷凍室が故障か。アイスも冷凍食品全滅っぽい。
- 12:46 冷蔵庫の出張修理依頼した。修理日は明日。
- 15:20 再上陸したバーガーキングで、初ワッパー。L:大井町[mb]
- 15:41 LABI 物色中。L:大井町[mb]
- 17:50 分割ブラウザインストールしてみた。
- 18:36 地震。L:品川区
- 25:11 ようやく udba=inotify を指定できる Linux kernel 2.6.23 用 aufs ができた。
- 冷蔵庫の修理は霜取り温度ヒューズ交換 (2005-06-28)
- 冷蔵庫はコンプレッサーが駄目になった可能性大 (2008-01-05)
- 冷蔵庫が不調だとこんなにも不安になるものなのか (2005-06-24)
- 今日のさえずり - 金メダルのネックストラップには、ケータイ用のヒモが付い... (2008-08-24)
- 今日のさえずり - そうかあれネズミか (2008-01-05)
2008年1月5日 (土)
■ aufs で inotify を使ってブランチ上の直接の変更をすぐに反映させる

最近 aufs を使って Web サイトのドラフトを作成する(記事)ようにしているが、使っていて1つ不具合が出てきた。 今の設定だと、ブランチ側(今回の使い方だと公開ディレクトリツリー)のファイルを直接変更しても、aufs のキャッシュによりマウントしたディレクトリ側ではその変更されたファイルではなく、変更される前のファイルが見えてしまう。 これはちょっと不便。
マニュアルを見るとマウント時のオプションで udba=inotify を指定して inotify を使うようにすれば良いとのこと。
早速指定してみたがマウント時にエラー。 どうやら udba=inotify を使えるようにモジュールをコンパイルしていなかったようだ。
@ aufs モジュールを作り直し (Debian GNU/Linux sid)
aufs のマニュアルを見ると CONFIG_INOTIFY と CONFIG_AUFS_UDBA_INOTIFY を有効にする必要があるとある。前者は Linux kernel ビルド時に指定済み。
後者を有効にして aufs を作り直す必要がある。
module-assistant だと設定の仕方がわからないので、aufs.tar.gz2 展開して直接 make-kpkg module_image でビルドするようにした。
aufs.tar.gz2 を展開後、debian/conf.mk を編集して
- export CONFIG_AUFS_HINOTIFY = y 行を追加
- EXTRA_CFLAGS 指定のところで、-DCONFIG_AUFS_HINOTIFY を追加
とし、後は普通に make-kpkg を使う。 マニュアルとは設定名/マクロ名が違うので、ちょっとはまったがこれで udba=inotify を使えるようになった。
@ マウントする
前回のマウント方法をちょっと修正して以下のようにする。
mount -v -t aufs -o br:/home/naney/draft.naney.org=rw:/home/naney/www.naney.org=ro,udba=inotify none /home/naney/next.naney.org
これで /home/naney/www.naney.org 以下を修正すると、すぐさま /home/naney/next.naney.org の方でも反映されるようになった。
メデタシメデタシ。
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- aufs を使って Web サイトのドラフト作成する (2007-12-23)
- DBD::Oracle 1.16 を Debian GNU/Linux s... (2005-05-19)
- 古い Crypto++ は古い GCC で (2006-02-07)
- sid の CinePaint がプラグイン読み込みでエラー (2006-04-15)
スポンサード リンク
Related web page
フラッシュメモリデバイスなディスクに Linux をインストールしたい ⇒ 書き換え限度回数が心配だよ ⇒ CDROM bootable な OS にすればいいよ ⇒ システムの変更やアップデートのときが面倒だよ ⇒ read only filesystem の上にかぶせることができる UnionFS を使えばいいよ ⇒ UnionFS より <strong>aufs</strong> のほうがおすすめだよ ということで,CentOS 5.2 に <strong>aufs</strong> をいれてみました。ちなみに「やってみた」レhttp://d.hatena.ne.jp/dayflower/20080714/1216010519
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.082695s / load averages: 0.15, 0.16, 0.16
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク