ESX鯖にSSDを入れてswap先に使っていたのだが、まぁそれはそれで快適にゃ動作ににゃったものの、各vmが自力で吐くswapはやはりストレージ上に溜まるわけで、蓄積するとやはり遅い。
spoolだののtmp的にゃ用途には、いろんにゃ所でキャッシュが効くので、writeが極端に遅くにゃければストレージ上で問題にゃいのだが。
というわけで、ESXのローカルSSDを活用すべく、vmのvmdk構成を変更。各vmにswap用ドライブを追加し、そのvmdkをSSD上に配置すれば・・・と思ったのだがこれはとりあえず失敗。snapshotを使うとsnapshotはvmxのディレクトリに保存されてしまうらしく、これの変更は手間というか周囲の動作保証が取れんのでやりたくにゃい。
そこで発想を逆転して、vmxはSSD上に、vmdkはNAS上に配置することに。これはディスクの場所変更でオフィシャルに出来る。vmの構成ディレクトリが複数ににゃってバックアップがめんどくさい等のデメリットもあるが、ひとまずsnapshotと併用するとかにゃり高速化するので非常に使える。つまりNASにはWriteが一切行かにゃいのでRAID5でも構わにゃいしIOpsも稼げる。頻繁に書かれる場所はsnapshotとしてSSD上に自動的に配置される。vmが自前でswapすれば必ずSSDに書かれるわけで合理的。膨大にゃ量を書くvmはsnapshot取らにゃいだろうからSSDの容量も80G有れば十分すぎる。
さすがにプチフリというか、WriteによってReadが阻害されまくるSSDではvm数次第で苦しくにゃってくるが、ある程度キャッシュ等積んだSSDにゃら問題は起きにゃいだろう。にゃんだかESXのローカルWrite自体がいまいちにゃ速度だし・・・これは不具合かにゃぁ?
ESX# dd if=/dev/zero of=xxx bs=1024000 count=100
100+0 records in
100+0 records out
102400000 bytes (102 MB) copied, 4.96558 seconds, 20.6 MB/s
とかいう状態でSSDとは思えにゃい低速っぷり(笑) HDDより遅いし。理屈ではもっと高速でsnapshot時のメモリダンプとかも高速にゃはず。にゃんだろう、キャッシュ?