テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(writeboost report) v2.0.0への変更

現在, 私はドミトリと協力して, ライトブーストの改善を行っている. ドミトリのコメントは大変説得力があり, 私も勉強になる.

今後, 我々のソフトウェアはデビアンに正式に提案されて, レビューを経て, 運が良ければ最短で1ヶ月ほどでデリバリーされる.

議論はかなり収束しており, 結果, いくつか大きな修正を加えることになった. インターフェイスを大きく破壊したので, メジャーバージョンを上げることとなった.

変更1) optional argsは廃止する

議論の結果, createに初期時に渡すタイプのパラメタ(optional args)は廃止することとなった. これは, segment_size_orderとnr_rambuf_poolの2つが該当するわけだが, 廃止する理由は,

  • デフォルト値以外に実用上の意味があまりない.
  • segment_size_orderについては, デフォルト値に依存したテストが多く, 他の値について自信がない.
  • これがなくなればドキュメントが大変簡素となる.  
  • コードも少し簡素になる.
  • 導入する際にひとまず決定しなければいけないパラメータが, HDDとSSDの2つだけというのは導入に対する敷居を大幅に下げる.

総合的に見て, 思い切って削ってしまった方が後々の問い合わせも減るだろうし, 多くのユーザを獲得出来るだろうから, もったいぶらずに捨てた方がいい. これによって, dmsetup createのsyntaxが変わる.

変更2) allow_writeback, enable_writeback_modulatorは廃止する

ドミトリの指摘では, allow_writebackというのは, これを0にするとwrite-throughになるのか?という響きがあり, まずmisleadingであるとのこと. さらに, これらはexportせずとも, writeback modulatorを常にenableしてしまった上でwriteback_thresholdを操作するだけで十分なのではないか?とのこと.

writebackに関するインターフェイスが多く, 大変分かりにくいというのもあり, 削った方が総合的に良くなるという判断.

共同作業の楽しみ

ドミトリの管理ツールは, デザインをfstabやcrypttabに類似させている. 理由は, ユーザの学習コストを配慮してのものである. writeboost用のtabを書くと, 起動時にスクリプトがこれを吸い取り, デバイスを作成するというデザインになっている.

このスクリプトは, ライトブーストの機能をやや制限し, セーフサイドに倒す. ドミトリの考えでは, クリーンシャットダウンのあとには, SSD上のダーティはすべてライトバックされているべきであるということだ. これにより例えば, ユーザがミステイクによりHDDに対して直接fsckをかけたり, 直接mountしてしまった場合にも破壊は防げる.

この考え方がもたらす唯一の欠点は, シャットダウン時間が長くなることである. しかし現実的にはせいぜい10分程度であり, ライトブーストが適用されるのがデスクトップではなくサーバであることを考えると, これは容易に許容出来る. また, これにプラスして初期化時のオーバーヘッドを差し引いても, ライトブーストには十分な価値があるとしており, むしろシンプルと安全に倒しまくった方が実用上は利が大きいという判断というをしている.

ドミトリは今まで多くのストレージコンサルを行っており, ユーザがどういうミスを起こすかということについてかなりの知見がある. リリースされたOSSソフトウェアが今後どういう道をたどるかまでマネジメントされている感覚があり, 私はカーネルに集中することが出来る.

有能なOSSエンジニアと一緒に仕事をすることは大変やりがいがある. お前らもやりがいを見つけろよ.