Xenが遅い件

以前の日記の問題について。
グーグル先生に聞いてみました。

追記:sparseファイルでディスクイメージを作成していたのが、ディスクIOが遅い原因でした。virt-installでイメージを作成するときに--nonsparseつけるのを忘れていましたorz

obfuscatism

思いっきりこれっぽいぞ!
でも、ゲストOSを入れ直すのは面倒…
どうにかして設定変更できないかと調べてみました。
助けてグーグル先生!

○Sparseファイルを通常ファイルに戻す
# cp [コピー元] [コピー先]

CentOS&Xenサーバ導入メモ

これでいけるか?と思って、ゲストOSのイメージファイルをコピーし直してみましたが…
sparseファイルのままorz


うーん何故?
しばらく調査していたところ、cpコマンドのマニュアルにヒントが。

デフォルトでは、大雑把な発見的手法でスパースなSOURCEファイルを検出し、対応するDESTファイルを同様にスパースにする。 --sparse=autoを指定するとデフォルトの動作となる。 --sparse=alwaysを指定すると、 SOURCEファイルが十分長いゼロバイト列を含む場合はいつでも、スパースなDESTファイルを生成する。 --sparse=neverを指定すると、スパースなファイルの生成を禁止する。

Manpage of CP

「--sparse=never」でいけんじゃね?
と実行してみたところ、無事通常ファイルに戻りました


しかし、いつも使ってるcpコマンドにsparseオプションがあるなんて知らんかった。
まだまだ素人だな…


ちなみに、sparseファイルとは「穴あきファイル」と呼ばれるもので、
定義されているサイズが100Gだったとしても、
実際使われているサイズが1Gであれば
1Gのみディスクを消費します。
で、使われるサイズが増えるたび、動的にファイルを拡張していきます。


なんか、Write Cacheを搭載したストレージコントローラを購入すれば
sparseファイルでもパフォーマンスは良くなるみたいです。
http://www.atmarkit.co.jp/flinux/rensai/xen02/xen02b.html
実運用時は必須っぽいですね。