十分に信頼できるディスクがネットワークの何処かにあれば良いのだが、あいにく持ち合わせいない。すべからくマスターサーバーとスレーブサーバーが存在する。これらのサーバーにはVMwareServer2 がインストールされているが、データーソースはそういった理由で独立している。
小さなネットワーク構成だからマスターサーバーをメンテナンスするときはルータの設定を書き換え、スレーブサーバーのIP アドレスを指定する。スレーブサーバーには単にApache が走っているだけのサーバーがあり、すべての応答にこれがメンテナンス中である旨返答する。
ReadyNASがとても魅力的なのだがなかなか手が出ない。もしReadyNAS が居たらVMwareServer2 のデータソースに指定して、すこしばかりのダウンタイム(マスターを落としてスレーブで起動する)で継続できるし、データベースの実態もそこに置けば面白い運用ができる。NAS は設置されているが速度や信頼性などの理由でVMwareServer2 とは関連を持っていない。
せっかくのスレーブサーバーだから、もう少し活用したい。活用方法は単純で、マスターサーバーのデータソースを受け入れればいい。そうすればメンテナンス前にバックアップを取ることができ、異なる物理ストレージにデータが存在するから故障時にも少しはマシだ。以前はARAIDを使っていた。これはとても便利。
前置きが長くなったが、ここではSCP やrsync による転送方法をメモしておく。
スポンサードリンク
構成例
マスターサーバーとスレーブサーバーの構成は同じで、ホストOS にUbuntu 10.04 LTS 、その上でVMwareServer2 が動作している。
マスターサーバー
- ホストOS Ubuntu Server 10.04 LTS x64
- VMwareServer2
スレーブサーバー
- ホストOS Ubuntu Server 10.04 LTS x86
- VMwareServer2
SCP 転送
コマンド
$sudo scp -r /var/lib/vmware/Virtual\ Machines/ [email protected]:/home/casey
sudo なのは、VMwareServer2 がroot 権限でファイルを作成するから。続くscp はssh でのファイル転送コマンド。オプション-r はディレクトリを再帰的に。引数はファイルの場所。
[email protected]:/home/casey の [email protected] は、転送先のユーザ名@接続先IP アドレス。/home/casey は転送場所。この場合、192.168.1.24 にユーザーcasey で接続し、そのホームディレクトリにファイルを転送する。
ちなみに問答無用で上書きだそう。それからscp: ambiguous target はおそらく権限等の問題と思われるので、別の場所に変更するか権限を設定する。
操作例
Linux vm130 2.6.35-28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux Ubuntu 10.10 casey@vm130:~$ sudo scp -r /var/lib/vmware/Virtual\ Machines/ [email protected]:/var/lib/vmware/Virtual\ Machines/ The authenticity of host '192.168.1.24 (192.168.1.24)' can't be established. RSA key fingerprint is fb:eb:bf:90:e9:21:7c:cf:82:9b:fe:0b:2e:0e:22:87. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.24' (RSA) to the list of known hosts. [email protected]'s password: scp: ambiguous target casey@vm130:~$ sudo scp -r /var/lib/vmware/Virtual\ Machines/ [email protected]:/home/casey [email protected]'s password: testWinME.vmsd 100% 0 0.0KB/s 00:00 testWinME.vmx 100% 1304 1.3KB/s 00:00 testWinME.vmxf 100% 264 0.3KB/s 00:00 testWinME.vmdk 100% 759MB 39.9MB/s 00:19 testWinME.nvram 100% 8684 8.5KB/s 00:00 : : WinXPSubClient.vmsd 100% 0 0.0KB/s 00:00 WinXPSubClient.nvram 100% 8684 8.5KB/s 00:00 WinXPSubClient.vmxf 100% 269 0.3KB/s 00:00
rsync + ssh 転送
コマンド
$ sudo rsync -avz --delete --progress -e ssh /var/lib/vmware/Virtual\ Machines/ [email protected]:/home/casey/tmp
rsync -avz –delete –progress はこちらを参照。
sudo の理由や -e ssh /var/lib/vmware/Virtual\ Machines/ [email protected]:/home/casey/tmp はSCP と同じ。
※SCP に比べると rsync は高機能だから、更新されたファイルだけ転送したり、更新元で削除されたファイルを転送先からも削除する同期処理をしたりできる。が、SCP に比べ転送速度が遅かった。
操作例
casey@vm130:~$ sudo rsync -avz --delete --progress -e ssh /var/lib/vmware/Virtual\ Machines/ [email protected]:/home/casey/tmp [email protected]'s password: sending incremental file list WinXPSubClient/ WinXPSubClient/564d5e87-dcf2-b8e2-1aa8-c31d6244b8b1.vmem 402653184 100% 9.17MB/s 0:00:41 (xfer#64, to-check=65/153) WinXPSubClient/WinXPSubClient.nvram 8684 100% 10.43kB/s 0:00:00 (xfer#65, to-check=64/153) WinXPSubClient/WinXPSubClient.vmdk 7104299008 100% 7.49MB/s 0:15:05 (xfer#66, to-check=63/153) WinXPSubClient/WinXPSubClient.vmsd 0 100% 0.00kB/s 0:00:00 (xfer#67, to-check=62/153) WinXPSubClient/WinXPSubClient.vmx 1350 100% 33.80kB/s 0:00:00 (xfer#68, to-check=61/153) WinXPSubClient/WinXPSubClient.vmxf 269 100% 5.25kB/s 0:00:00 (xfer#69, to-check=60/153) WinXPSubClient/564d5e87-dcf2-b8e2-1aa8-c31d6244b8b1.vmem.lck/M54373.lck 512 100% 8.62kB/s 0:00:00 (xfer#70, to-check=57/153) WinXPSubClient/WinXPSubClient.vmdk.lck/M22992.lck 512 100% 7.81kB/s 0:00:00 (xfer#71, to-check=56/153) sent 22315612181 bytes received 2423 bytes 4245337.13 bytes/sec total size is 70741693904 speedup is 3.17 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1060) [sender=3.0.7]
おまけ
上記例なら、転送先で以下を行えばマスターサーバーのデータがスレーブサーバーにもコピーされる。基本的にバックアップ目的なので起動するつもりはないが、起動するなら転送先(スレーブサーバー)のVMwareServer2 でインベントリに追加しておく。
casey@vm132:~$ cd tmp/ casey@vm132:~/tmp$ mv ./* /var/lib/vmware/Virtual\ Machines/
◇
※常にスレーブサーバーが起動しているわけではないので、自動化処理はここでは触れない
※操作例にはテスト端末(Ubuntu Server 10.10 、 11.04 )のものが含まれているかもしれない
参考文献
- rsyncとsshで別のマシンにバックアップ
- scp サーバ間で情報をコピーする | Linux | 『Weblogy』
- scp ネットワーク・ホスト間SSH暗号化ファイル転送 – Linuxコマンド|MAKIZOU.COM
コメント