LoginSignup
60
68

More than 3 years have passed since last update.

さくらのVPSに無料の外部自動バックアップ機能を追加する方法

Last updated at Posted at 2017-10-08

環境と概要

  • さくらのVPS
  • CentOS 7.4
  • SELinux無効

イメージバックアップツールで丸ごとバックアップ → マウントしたオンラインストレージに保存。
という疑似自動バックアップ機能構築のお話

さくらのVPSにはバックアップ機能がないため、もしもの場合に備えて外部への自動バックアップ機能を追加する
保存先をさくらインターネット外部(オンラインストレージ)にしたのは、さくら側の障害(事例1,事例2,事例3)によるデータ損失を防ぐため。

「さくらのVPS」でバックアップの機能はありますか

いいえ、「さくらのVPS」は、標準・オプション共に、バックアップの機能はございません。
同一ゾーンであれば複数台構成でのご利用が可能でございますため、他のサーバとデータを同期する、
重要なデータはローカル環境に保存するなど、ご対応ください。

機能要件

  • 定期的なバックアップ(毎日・3世代)
  • 保存先は外部ストレージ
  • 稼働サービスへの影響を最小限に留める(ネットワーク帯域のみ、その他はrconで)
  • 追加費用不要

使用ソフト・サービスと役割

TeraCLOUDについて

外部保存先オンラインストレージとしてTeraCLOUDを使用

TeraCLOUDの選択理由

  • 無料で15GBまで使用可※
  • WebDAVが使用可
  • 共有機能が使用不可(人為的ミス防止)
  • Oracle Solaris 11で堅牢
  • ZFS RAID-Z3(RAID6)で保全性が高い
  • 速度が安定
  • 帯域制限(10Mbps)がある(ネットワーク帯域専有防止)

※3世代ぐらいであれば十分

外部保存先のセットアップ

アカウント作成は下記参照。下記の手順通りで無料容量が10GB→15GBになる(今月10日までは更に5GB追加
速くてシンプルな国産オンラインストレージ「TeraCLOUD」 | ハルパス

アカウント準備後、マイページ(要ログイン)WebDAV接続URL(例:https://futtsu.teracloud.jp/dav/ )をメモ

さくらのVPSにマウント

davfs2のセットアップ

インストール
yum -y install davfs2
仮想保存先作成
mkdir /backup
マウント
mount -t davfs https://futtsu.teracloud.jp/dav/ /backup
  Username:    #TeraCLOUDユーザ名
  Password:    #TeraCLOUDパスワード
マウント確認
df -h
https://futtsu.teracloud.jp/dav/    26G   13G   13G   50% /backup

※認証が面倒であれば/etc/davfs2/secretsに書いておくとスキップ可(セキュリティ的には非推奨)

vi  /etc/davfs2/secrets

https://futtsu.teracloud.jp/dav/ ユーザ名 パスワード

バックアップ機能のセットアップ

Mondo Rescueのセットアップ

インストール
cd /etc/yum.repos.d/
wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
yum -y install mondo lzop

【CentOS7限定】エラー事前対策

mindi.conf
vi /etc/mindi/mindi.conf

EXTRA_SPACE=240000 #追記
BOOT_SIZE=100000 #追記

バックアップスクリプト

スクリプトの作成

自動化スクリプト
vi /etc/cron.daily/auto_backup.sh

次のシェルをコピペ

auto_backup.sh
#!/bin/bash
today=$(date +%Y%m%d)

#Backup_日付.isoのファイル名でバックアップ
mondoarchive -O -i -N -L -s16g -E"/backup" -d /var/tmp -p Backup_${today}
#バックアップイメージを移動
mv /var/tmp/Backup_${today}-1.iso /backup
#古いバックアップイメージを削除
find /backup -type f -mtime +4 -exec rm -f {} \;
オプション 意味
-O バックアップ
-V ベリファイを実行
-i ISOファイルとして出力
-num 圧縮レベル※
-L lzo圧縮を使用(高速化)
-N ローカルファイルのみバックアップ
-s 最大サイズ(指定なしの場合、)
-E 除外するディレクトリ (パイプ区切り)
-d 出力先ディレクトリ
-p 出力ファイル名

実行権限を付与

chmod 755 /etc/cron.daily/auto_backup.sh

~以上~

圧縮レベルについて

09で大きいほど高圧縮。指定なしの場合は3

サイズと速度関係
最大(9):2.7GB - 16分31秒
標準(3):3.0GB - 2分30秒
無圧縮 :4.6GB - 2分3秒

I/O、CPU負荷対策について(※追記 2018/5/20)

rconを使えばリソース制限が可
コマンド実行時のCPUやIOリソースを簡単に制御するツールrconを作った - 人間とウェブの未来

差分バックアップ(-D)でも良いが、3世代しか保持しないので親が消えて復元不可になる(未検証)

復元

バックアップメディアとして出力しているため、そのままブート可
ISOをカスタムOSインストール機能を使って起動、Automaticallyを選択で復元できる

参考

公式ドキュメント
Mondo RescueでCentOS6のフル/増分バックアップを行う | riscascape.net
findコマンドのmtimeオプションまとめ - Qiita
Mondo Rescue を使ったバックアップとリカバリ - Qiita
Linuxmania:Mondo Rescue の使いかた

60
68
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
68