「P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法」という内容で、COMPSACという国際会議で代理で発表してきました。(去年の国際会議では僕が色々あって、代理で先生に発表してもらったような形ですね)
今回は、著者の方が色々あって発表できないので、共著者の僕が代理で発表してきました。著者や先生と相談した結果、面白い内容なので公開しようということになり、僕のブログが一番手っ取り早いので、ここで紹介します。
「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。
「P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法」という内容で、COMPSACという国際会議で代理で発表してきました。(去年の国際会議では僕が色々あって、代理で先生に発表してもらったような形ですね)
今回は、著者の方が色々あって発表できないので、共著者の僕が代理で発表してきました。著者や先生と相談した結果、面白い内容なので公開しようということになり、僕のブログが一番手っ取り早いので、ここで紹介します。
ext3ファイルシステムの復元の代表的なツールとしてextundeleteがあります。
しかし、extundeleteは「ext3ファイルシステムとファイルの削除・復元について」のエントリにおける正確なファイルの紐付けやその検知ができていません。extundeleteで復元してしまうと、「ext3ファイルシステムとファイルの削除・復元について」で述べた通り、復元対象ファイルのinodeが以前にも違うファイルで使われていて、そのinodeの以前の情報がディレクトリエントリから抽出できてしまった場合、先に見つかったファイル名でinodeの指し示すデータブロックを復元してしまいます。そのため、意図していないファイル名とデータブロックのファイルが復元される可能性があります。
そこで、そういった問題を解決した現状考えうる最良の復元ツールをextundeleteをベースに実装してみました。やっぱり理論だけでは面白くないなぁと思ったのです。コードはGitHubに置いているので自己責任で試してみて下さい。ext4もできるんじゃないかなぁと思っていますが試していません。機能としては、以下になります。
「Linux上でオレオレifconfigを作るには」が面白かって参考になったのと、
Netlinkのライブラリはiproute2に付属するものとは別にlibnlというものがあり、Pythonバインディングも存在するようだ。Rubyバインディングが無いのが残念だが、ともあれカーネルの設定をスクリプティング言語で柔軟に変更出来そうだ。
ということのなので、もちろんmrubyにもないだろうと思ったのでmrubyでNICのリンクステータスを操作できるmruby-netlinkを作りました。今回はmruby-netlinkと言いながらもとりあえずはリンクステータスをup、downするだけのメソッドを実装しています。
そろそろRaspberry Piセットの日経BPムックが皆さんの所に届いていることでしょう。
僕も何台かRaspberry Piは持っていて、以前mod_mrubyをRaspberry Piで動かしてLチカしたりしていたのですが、今回はmod_mrubyとRaspberry Piを4台使ってでクラスターを組んで見ました。
ある人「あなたのやりたいことはなんですか?」
僕「複数あるWebサーバソフトウェアの拡張記述を統一したいです」
ある人「(それはさすがに無理だろ…)」
という感じで始まったmod_mrubyやngx_mrubyの開発ですが、今ではそれも夢では無い所まできています。当時は「mod_mrubyを作ってみようか」という記事からmod_mrubyの開発ははじまりました。
朧げにあったアイデアでは、「どうやって統一するのか?どんな言語にするのか?どうやって組み込むのか?え?そもそもそんな事無理では?」という感じでしたが、1年前に運良くmrubyがGitHubで公開されて以来、色々なアイデアのピースがはまっていき、いつの間にかそのアイデアが形になろうとしてきています。