会社のVMware vSphereはVMware Data Recovery 2.0を使ってバックアップをとっています。で、その保存先はCentOS 5.7で構築したLinuxマシンで、ここにNFS経由で仮想ディスクを作成しています。この仮想ディスクは毎週同じパーティションにコピーしてとりあえずバックアップのバックアップとしていますが、Linuxマシン全体が壊れた時の用心に月1回仮想ディスクの内容をUSBのHDDにコピーして、これは別のところにしまっておくというようにしています。
その月1回のコピーは仮想ディスクそのものじゃなく、容量を最小限とするため仮想ディスク内のファイルをVMware Data Recoveryにログインしてscpを使ってUSB HDDをつなげたLinuxマシンにコピーしていました。で、ふと思ったのですが、もともとLinux上に仮想ディスクがあるわけで、これをそのマシンで直接マウントして内容をUSB HDDにコピーすればネットワーク経由じゃないぶん速いしネットワークの負荷もかからないということに気づきました。
その手のマウントツールとしてVirtual Disk Development Kitが提供されておりこちらからダウンロードできます。Linux 64bit版をCentOS 5.7に導入したのですが、インストーラーがあるもののそのままではうまく動かなかったので導入時の手順をメモしておきます。
まずはlibfuse.so.2が必要とされるのでfuse-libsパッケージをインストール。
# yum install fuse-libs
で、ダウンロードしたファイルを展開して、インストーラーのvmware-install.plを実行。
# tar -xzvf VMware-vix-disklib-5.0.0-427917.x86_64.tar.gz # cd vmware-vix-disklib-distrib # ./vmware-install.pl
主なインストール先は/usr/lib/vmware-vix-disklibであり、ライブラリーもこのディレクトリ下となって、そのままでは実行時にライブラリーが見つからないとエラーになるので、/etc/ld.so.conf.dにvddk.confとして以下の内容のファイルを作成。
/usr/lib/vmware-vix-disklib/lib64
そして、ldconfigを実行してライブラリーのパスを整備します。
これで準備完了。マウントは以下のようなコマンドで。
# vmware-mount /var/backup/VMwareDataRecovery/VMwareDataRecovery.vmdk /mnt
ここでVMDKファイルの指定として、-flatが付いた方がサイズも大きいですしこっちが本体かと考えてしまいますが、これではなくサイズの小さい-flatが付かない方が指示先となります。アンマウントはumountでOKです。