Open9

さくらVPSをバックアップしたい

hideharahidehara

スナップショットあったら、費用払うんですけどねぇー

クラウドほど開発リソース割いてもらえない感じなので、自前で何かを考える。

hideharahidehara

WebDAV サービス使う

ちょっと古いけど、これがヒット

InfiniCloud (旧TeraCloud) がWebDAV対応してるのを活用する

https://qiita.com/halpas/items/2f51d3b9954367f1587e

20GBあったら、はいりそうだね。

ちなみに、このあたりがTeraCloud時代の情報なので古い

mount -t davfs https://futtsu.teracloud.jp/dav/ /backup
  Username:    #TeraCLOUDユーザ名
  Password:    #TeraCLOUDパスワード

接続先URLなどがかわってるので、こちらの情報でアップデート。

https://infini-cloud.net/ja/support_service_webdavurl.html?word=WebDAV

アプリパスワードが個別発行されるので安心。つながった。

hideharahidehara

なんでもはいるね(アップグレードできれば)

$ df -h | grep dav
https://chogo.teracloud.jp/dav/  1.3T  763G  509G  61% /backup
hideharahidehara

さて、どれでクローン or バックアップ作ろうか。

Clonezilla

https://arakoki70.com/?p=8137

「Ubuntuでは使用中のOSのクローンを作れない」ため、「Live USB」または「ブータブルディスク」で、クローンツールを起動し、システムドライブの中身をSSDにクローンする必要がある。

うーん、無理かぁ。普通そうだよね > 稼働中VM自身のクローン

起動したみた時のメニュー

hideharahidehara

あ・・・単一ファイルの容量制限、ありそうやね。

https://software.fujitsu.com/jp/manual/manualfiles/M060020/J2S16831/01Z2A/gfs05/gfs00056.html

# dd if=/dev/sfdsk/gfs/rdsk/vol0301 of=/dev/rmt/0 bs=1024k count=1024
# dd if=/dev/sfdsk/gfs/rdsk/vol0301 of=/dev/rmt/0 bs=1024k count=1024 iseek=1024
# dd if=/dev/sfdsk/gfs/rdsk/vol0301 of=/dev/rmt/0 bs=1024k count=1024 iseek=2048
...

ddで、1GBごとに分割するとか?シェルスクリプトかけば、いけそう。

1GB/3分でコピーできた。
ちなみにgzip効果は 1/4 にできたので、InifiniCloud上では 250MB程度。

# sudo dd if=/dev/vda3 bs=1024k count=1024 | gzip -c > /backup/vda3.ddimg-01.gz
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 172.306 s, 6.2 MB/s

あ、ない?

https://infini-cloud.net/ja/support_guide_filebrowser_sizelimit.html?word=ファイルサイズ

なら、まるごと投げてみても行けるのかな?やってみよう。

hideharahidehara

まるごとなげた。

が、gz中は /var/cache 配下にファイルがおかれてしまい、DISKスペースゼロとなり中断。無茶でした。

umount して、一度 /var/cache/davfs2/ をクリーン。

やはりある程度のサイズにまとめて扱うのがよさそう。

残り容量を考えると、 10GB ごとに gz かけるのはなんとかなるかな。1ファイルあたり2.5GBと考えて。

ただ、この手順でいいのかは疑問だな。

稼働中なのだから、そもそも自分自身のファイルをすべてステーブルな状態でとれるわけじゃないだろうし。。。rsyncとか?そっちの方向の方向があってる?

hideharahidehara

dd で 10GB程度ごとに分割して gzip かけることにした。これだと /var/cache 領域を埋め尽くすことなく進められる。

Ubuntuだと iseek オプションなかったので skip をつかって Input側をずらしていく。

# sudo dd if=/dev/vda3 bs=512k count=20480 | gzip -c > /backup/vda3.ddimg-01.gz
# sudo dd if=/dev/vda3 bs=512k count=20480 skip=20480 | gzip -c > /backup/vda3.ddimg-02.gz
# sudo dd if=/dev/vda3 bs=512k count=20480 skip=40960 | gzip -c > /backup/vda3.ddimg-03.gz
# sudo dd if=/dev/vda3 bs=512k count=20480 skip=61440 | gzip -c > /backup/vda3.ddimg-04.gz
# sudo dd if=/dev/vda3 bs=512k count=20480 skip=81920 | gzip -c > /backup/vda3.ddimg-05.gz

が。。。よくよく考えて /var/cache をどんどん使う形で / を含むイメージとっても無理だよね。とれるのはとれるだろうけど、それを復元したときつながらなさそうだ。やっぱり、この方向性は駄目ですね。。。

なんか、メンテナンスモードとかで別イメージで起動して、 / がマウントできればいいのに。