ゲストのバックアップを取る

ここからが本番です。vmからnfsストレージを追加して、sshvmホストにログインしてバックアップを取ってみます。例としてpostfixで作ったメールのゲートウェイサーバ(mx01)のバックアップを取ります。


vmのストレージはこんな感じ

ストア名 役割
store01 ゲストたちの共同住宅
nfs 今回構築したnfsサーバ
vim-cmd vmsvc/snapshot.create `vim-cmd vmsvc/getallvms| awk '/mx01/ {print $1;}'` forBackup
vmkfstools -i /vmfs/volumes/store01/mx01/mx01.vmdk -d monosparse /vmfs/volumes/nfs/mx01`TZ=JST-9 date '+%Y%m%d%H%M'`.vmdk
vim-cmd vmsvc/snapshot.remove `vim-cmd vmsvc/getallvms| awk '/mx01/ {print $1;}'`


やっていることは

  1. snapshotをとって、
  2. vmdkのクローンを作って、
  3. snapshotを消す

です。


ところが、クローンを作るところでエラーが出ます。
とりあえずnfsに書き込みができるか、テストしてみます。

touch /vmfs/volumes/nfs/test


すると、パーミッションエラーが出ます。
どうも書き込み権限がないようです。
バックアップサーバ側でディレクトリの権限を確認します。

ls -alt /backup/
rwxr-xr-x nfsnobody nfsnobody vm01


vmホストはnfsnobodyユーザでアクセスしているはずなので、問題ないはずです。

ためしにパーミッションを777すると、書き込めます。
ということで、vmホストのrootは nfsnobody になれてないのではないかという疑いがでてきました。ということで確認します。


バックアップサーバ側

id nfsnobody
uid=4294967294(nfsnobody) 〜省略


vmホスト側

id nfsnobody
uid=65534(nfsnobody) 〜省略


なぜかidが違います。
う〜ん。nfsでは nfsnobodyのuidは65534になるはずです。
ところがバックアップサーバ側では4294967294になっています。
原因はわかりませんが、ためしにバックアップ側サーバの
nfsnobodyユーザのuid等を変更します。

usermod -u 65534 nfsnobody
groupmod -g 65534 nfsnobody
usermod -g nfsnobody nfsnobody 
chown -R nfsnobody:nfsnobody /backup/vm01
/etc/rc.d/init.d/nfs restart


で再度vmホスト側でクローン作成してみると、無事バックアップが作成できました。
nfsでこんな手間がかかるとは思いませんでした。やれやれ。


※ご注意。最後のnfsnobodyのid変更については何の調査もしてません。
 真似するとだめだとおもいます。