dropbox で DR対策

自宅環境で最も頭を悩ましている問題が家族の写真と動画の管理。これはロストすると痛い上に、既に500GBに到達しているため、メディアに書き出すのも億劫。以前もraid5がどうとかこうとうか記事にしたこともあるんだけど、所詮自宅内でいくら冗長化したって火事一発でデータは消えてしまう。災害対策として、どこか別の拠点にデータをバックアップできないか検討し続けていた。例えば、実家にサーバ置いてしまうとか。

答えは割りと簡単でクラウドストレージを使えばよいだけ。今まで頑にクラウドサービスを避けてきていたんだけど、結局サービス周りをVPSからクラウドに移したり、膨大なメモ管理もevernote任せになったりと、世の中の便利なサービスを使う形に。避けてきた理由はOSS使って冗長性の高いサービスを自分で用意すればいいじゃんという考えだったから。という訳で、データのバックアップも大人しくクラウドストレージを使う事に。

要件としてはlinuxから触れて、安価な事。実はクラウドサーバ系のサービスも確認してみたけど、シンプルなクラウドストレージの方が容量単価が安い。双璧はgoogleドライブとdropbox。googleドライブは最初から15GBまでは使えるから、デフォルトで2GBしかないdropboxを拡張した方が合計容量は大きくなる。年間払いにすれば、12000円で1TBを利用可能になる。まだ、最重要なデータは500GBくらいなので、しばらくはこれで維持できそう。

dropboxはlinux用のツールが用意されている。python 2.6以上であれば動くみたい。CentOS7なら問題ないでしょう。以下のサイトよりダウンロードして、ホームディレクトリに展開、dropboxdというコマンドを実行する。

python -V
Python 2.7.5
cd ~
wget -O - https://www.dropbox.com/download?plat=lnx.x86_64 | tar xzf -
~/.dropbox-dist/dropboxd

すると、以下のようなメッセージが表示されるのでブラウザか何かで開いてアクセスを許可する。

このコンピュータは Dropbox アカウントにリンクされていません...
このデバイスをリンクするには、https://www.dropbox.com/cli_link_nonce?nonce=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx にアクセスしてください。

ちなみに自分は作業用のノートPCで許可作業を行ったが、それで何の問題もなかった。続いて、管理用のコマンドを配置、サービスを起動する。

mkdir -p ~/bin
wget -O ~/bin http://www.dropbox.com/download?dl=packages/dropbox.py
chmod 755 ~/bin/dropbox.py
~/bin/dropbox.py start
~/bin/dropbox.py status
ls -l ~/Dropbox

これで~/Dropboxにdropbox用のデータ領域が作成される。このままだと管理しづらいので、systemdに登録する。

~/bin/dropbox.py stop
cat << EOF > /usr/lib/systemd/system/dropbox.service
[Unit]
Description=dropboxd
After=network.target

[Service]
Type = forking
Restart = always
ExecStart = /root/bin/dropbox.py start
ExecStop  = /root/bin/dropbox.py stop

[Install]
WantedBy = multi-user.target
EOF
systemctl status dropbox
systemctl start dropbox
systemctl enable dropbox

ここまで準備ができれば、実際に自分のデータをアップロードできる。symlinkもfollowしてくれるので、画像が置いてあるストレージのディレクトリそのものをDropboxディレクトリの中にリンクする。また、単位時間辺りの転送量が大き過ぎると他の利用者に迷惑をかけしまうので、転送速度は常識的な範囲に制限する。初回の容量が大きい場合は1〜2週間かけるくらいのつもりで転送する方がよいだろう。1日のアップロード容量を30GBに制限しているプロバイダもあるはずだし。転送速度制限はdropbox.pyのthrottleオプションで設定できる。

~/bin/dropbox.py throttle 1024 256
ln -s /data ~/Dropbox
~/bin/dropbox.py status

throttleの次の引数がダウンロード速度、最後の引数がアップロード速度。どちらもKbpsではなくKBpsなので注意。ここまで出来れば、じわじわとアップロードされていくのを眺めているだけ。statusオプションで速度と残り時間の概算を確認できる。アップロード済みのデータ量はブラウザでdropboxサービスにログインして確認。右上の自分の名前のプルダウンメニューをクリックすると、『使用済み:xxx.xGB/1TB』みたいな形で表示される。

自分の環境だと、daemonによるアップロードは数日で腐っていった。3日くらい経つと当初の1割程度のスピードに落ちていたので、プロバイダに規制されたのかと驚いた。他のサーバからのアップロードなどで切り分けて規制はないと判断し、daemonをrestartすると速度は回復した。もう1週間くらいで終わるかなあ。このアップロードのために死ぬ思いでマルチセッションを実現した訳で感無量w

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)