VZ SystemでのFUSEの扱い

BudgetVMでは、デフォルト設定では、FUSEが走らない。
このことは、ホストシステムが、カーネルレベルで、fuseライブラリーをmodprobeする必要があり、ユーザー側では、どうにもならない。
何度か、メールでやり取りをし、やっと納得していただいた時点では、FUSEが走行していて、wdfsなどを利用して、WebDAVドライブをマウントして使うことが出来た。

そのメールのやり取りの中で、mod probe fuseを実施しても、次回のリブートの時点でfuseは読み込まれませんので、対策してくれといって、手順までも明確に伝えたのだが、どうにもなっておらず、システムリブートがあるたびに、メールで modprobeしてね。と、何度か依頼して対応していたのだが、やはり、手順が標準化されていない為、継続的に運用するには至らなかった。

ホストマシンが再起動されるたびにメールで依頼していたのでは、些か面倒になって、まあ、こんなものかもなーと思いつつ、現在に至っているわけなんだけど、対応が柔軟であることはかなり評価に値するものの、標準サポートが受けられないというのは、もったいない限りである。

そこら辺は、日本のVZシステムは、カーネルベースが、CentOS5がほとんどなので、前にも書いたスワップファイルが使えない。ここのように、128MB Burst 256MBなサーバーで、まともにWordPressが走るだけでも、かなりありがたいわけだが、ファイル連携を考えると、ftpや、scpあたりでファイル交換をするより他に方法が無いので、fuseは少なくとも走って欲しいと思うのは、僕だけではないと思うのだが。

まあ、念の為に、対応いただけるような場合も含めて、対応を以下に書いておこうと思う。(半分備忘録ですが)・・

ホストシステム側での対応

OpenVZ Containerの設定

たぶん、一行目の yum install fuse fuse-libs –enablerepo=rpmforgeあたりは、実施しなくてももともと入っている可能性はあるが問題は、OpenVZ Containerの設定ファイルの中に、デバイスノードが追加されていないので先ずは、そこを変更する。

# yum install fuse fuse-libs --enablerepo=rpmforge
# vzctl set container-id --devices c:10:229 --save
# vzvtl restart container-id

以上の操作で一応、OpenVZの仮想サーバー上で、/dev/fuse というノードができる。

ホストサーバーの起動プロセスの書き換え

modprobeで自動的に読み込む方法が見つからないので、とりあえず、以下の例のように、rc.sysinitを編集し、次回の再起動後に、自動的に、modprobe fuseが実行されるようにしておく。
下記の赤い部分を書き加えておく。

For example.

# vi /etc/rc.d/rc.sysinit

#-- 中略 --
# Only read this once.
cmdline=$(cat /proc/cmdline)
# Initialize hardware
if [ -f /proc/sys/kernel/modprobe ]; then
   if ! strstr "$cmdline" nomodules && [ -f /proc/modules ] ; then 
  sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
   else
       # We used to set this to NULL, but that causes 'failed to exec' 
messages"
       sysctl -w kernel.modprobe="/bin/true" >/dev/null 2>&1
   fi
fi
#<--- added by here --->
modprobe fuse
#~~~~~~~~~~~~<--end -->
touch /dev/.in_sysinit >/dev/null 2>&1
# Set default affinity
# -- skip --

:wq!

以上の対策をするか、または、専用カーネルを再構築するかということになるが、たぶん、日本のOpenVZシステムを提供しているプロバイダーは、専用カーネルを使っていろのだろう。

別途、BudgetVMに良く価格体系が似ているFrantechのOpenVZは、カーネルベースが古く、Swapが使えない代わりに、fuseは標準でサポートされている。ServerQueenは、いずれもサポートされない。
日本で言うところの、Serversman@VPSあたりは、Frantechにかなり近いカーネルとかんがえられるが、現時点で、このSwapファイルを有効にする代わりに、メインメモリーの割り当てを大幅に増量しており、490円/月の価格体系で、保障メモリー:1GB burst:2GBでディスク領域が、50GBというサービスを展開しており、こちらの方は、いずれもサポートされる。望むところとしては、保障メモリー:512MB Burst:1GBといったベースの安価なバージョンがあっても良いと思うのだが・・

なんとか、ここらへんは完全な対応を望みたいところである。