さくらのVPSでは完全仮想化のおかげでddやdumpで簡単にイメージバックアップによるフルバックアップが取れるのだが、ServersMan@VPSでは準仮想化のためイメージバックアップが出来ないのでrsyncを使ってバックアップを取ることにした。
バックアップ先は自宅のファイルサーバを利用する。
ファイルサーバのサービスを追加したくないので既存のファイル共有サービスを利用してバックアップしたいのだが、ServersMan@VPSではリモートのnfsやsmbのファイルシステムをサポートしていない。 だが、fuseがサポートされていた↓
#cat /proc/filesystems
ext2
ext3
nodev proc
nodev sysfs
nodev tmpfs
nodev devpts
nodev binfmt_misc
nodev fusectl
nodev fuse
nodev rpc_pipefs
fuseがサポートされていると、sshfsが使える。
sshfsは名前の通り、sshを経由してリモートの記憶域を利用できるファイルシステム。
標準のyumリポジトリにはsshfsは入っていないので、rpmforgeから取ってくる。
#wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm #リポジトリ追加のためのRPMを取得
#rpm -iv rpmforge-release-0.5.2-2.el5.rf.i386.rpm #取得したRPMからリポジトリを追加
#vi /etc/yum.repos.d/rpmforge.repo #標準でrpmforgeが有効になっているので無効にする↓enabledを1から0へ変更
enabled = 1 > enabled = 0
#yum install –enablerepo=rpmforge fuse-sshfs #rpmforgeリポジトリを使ってfuse-sshfsパッケージを導入する(おそらく依存関係も表示される)
#mkdir /mnt/fileserver #マウントポイントを作る
#sshfs remoteuser@fileserver.hoge.piyo:/home/remoteuser /mnt/fileserver #fileserver.hoge.piyo=自宅サーバのユーザー名remoteuserで/home/remoteuserをServersManの/mnt/fileserverにマウントする
これで/mnt/fileserverが自宅のファイルサーバに繋がったので、後はディレクトリ指定でrsyncすればOK
rsyncバックアップで除外するリストを作る。
#cat > /root/rsync_exclude_list
– /dev
– /sys
– /proc
– /mnt
ctrl+d
※本当は他にも除外した方が良い物があるが、最低限の記述で済ませた。
rsyncを実行する。
rsync -avzHAX –exclude-from=/root/rsync_exclude_list / /mnt/fileserver/backup
オプション:
a:各種属性やソフトリンク等を維持する
v:進行状況を詳細に表示する
z:圧縮する
H:ハードリンクも維持する
A:ACLを維持する
X:拡張属性を維持する
これでフルバックアップが取れる。
普通はrsync to rsyncでバックアップを取る方法もあるけど、経路暗号化とサービス追加不要というポイントでrsync on sshfsにした。
(730)