ゲストのバックアップを取る
ここからが本番です。vmからnfsストレージを追加して、sshでvmホストにログインしてバックアップを取ってみます。例として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;}'`
やっていることは
- snapshotをとって、
- vmdkのクローンを作って、
- 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変更については何の調査もしてません。
真似するとだめだとおもいます。