以前の日記の問題について。
グーグル先生に聞いてみました。
追記:sparseファイルでディスクイメージを作成していたのが、ディスクIOが遅い原因でした。virt-installでイメージを作成するときに--nonsparseつけるのを忘れていましたorz
obfuscatism
思いっきりこれっぽいぞ!
でも、ゲストOSを入れ直すのは面倒…
どうにかして設定変更できないかと調べてみました。
助けてグーグル先生!
○Sparseファイルを通常ファイルに戻す
CentOS&Xenサーバ導入メモ
# cp [コピー元] [コピー先]
これでいけるか?と思って、ゲスト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
実運用時は必須っぽいですね。