LoginSignup
1
1

More than 5 years have passed since last update.

RaspberryPi経由でNAS(NFS)にあるファイルをAWS S3へ転送する

Posted at

はじめに

 チョット古いNAS(NetGear ReadyNas 4000 Ultra 4, RNDU4000-100JPS)を使っているのですが、ハードウェア保証がすでに期限切れてしまっているので、動いているうちにバックアップをしたい!でも、8TBのデータ量をどこに保存するかのも問題があり、HDD単発やRAID1環境にコピーするにも安全性に不安が残る。

どうせバックアップに手間がかかるなら、NASからAWS S3に移動してしまおう!

RaspberryPi経由ではなくNAS上で実行すればいいのでは?

 ReadyNasはsshでも接続できるけど、今使っているNASとしての機能が使えなくなるのは困る。また、NAS用にカスタマイズされているので追加のパッケージを簡単に導入することができないため、Raspberry Piを踏み台にしてNAS → RaspberryPi → AWS S3にデータコピーしてしまおうというのが目的です。

※Raspberry Piでgoogysを使おうとしたところ、ARM環境ではコンパイルできず断念(2018/09/28時点)。

設定

Raspberry Pi インストール

  1. アップデート
$ sudo apt update
$ sudo apt upgrade
$ reboot
  1. s3fs関連のインストール
$ sudo apt install git fuse
$ sudo apt install s3fs

AWS設定

  1. S3バケットを作成 (リージョンをメモること)
  2. IAMユーザーの作成、作成したS3バケットへの権限設定

s3fs設定

AWSのユーザー・パスワードを保存

$ sudo echo AKIxxxxx:password > /etc/passwd-s3fs
$ chmod 640 /etc/passwd-s3fs

mount先 作成

sudo mkdir /mnt/s3.bucket

実行してみる

テスト

パーミッションのタグが設定されていないファイルは、piユーザーの権限で見れるようにする。

$ sudo s3fs s3bucketname /mnt/s3.bucket/ \
-o passwd_file=/etc/passwd-s3fs -o use_path_request_style \
-o rw,allow_other,use_cache=/tmp,uid=1000,gid=1000 \
-o endpoint=ap-northeast-1 -o url=http://s3.ap-northeast-1.amazonaws.com/ \
-o enable_content_md5 \
--debug -f

/mnt/s3.bucket/にファイルを作ったり消したりしてみる。そのとき、画面上に[CRT][ERR]などが表示されていないことを確認。

起動時にマウントされるように設定

/etc/fstabに追加。

s3fs#s3bucketname /mnt/s3.bucket fuse _netdev,allow_other,uid=1000,gid=1000,passwd_file=/etc/passwd-s3fs,endpoint=ap-northeast-1,url=http://s3.ap-northeast-1.amazonaws.com/ 0 0

sudo mount -aでfstabをテスト。dfs3fsが追加されていればOK。

ファイルコピー

古いNetgearのReadyNasにログインするとき、鍵認証でsshログオンしても、必ずパスワードを聞かれてしまうのでsshpassなどを使用してログイン時のパスワードを自動入力させる。そして、sshpassを使うことでバックグラウンド実行可能。

あとは、rsyncでもscpでもお好みのコマンドでファイルを/mnt/s3.bucket/にコピーしてください。

$ sshpass -p "netgear1" rsync -av rn4000:/c/document /mnt/s3.bucket/ > /home/pi
/rsync.log &

その他

パフォーマンス

Raspberry Pi 3Bで動かしてみましたがCPU使用率 2%程度なので、他のアプリと共存させても大丈夫そうです。

転送量

8TBをS3に転送するためにかかる時間を大まかに計算

 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                     3.13 GiB  |        3.15 GiB
--------------------------------------+------------------
          max           93.72 Mbit/s  |    96.87 Mbit/s
      average           15.82 Mbit/s  |    15.89 Mbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                    3301274  |         2928216
--------------------------------------+------------------
          max               7998 p/s  |        8378 p/s
      average               1986 p/s  |        1761 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                 27.70 minutes
  • 約30分で3GBでした。10分あたり1GB。1分で100MB
  • 1日=1440分、1440 * 100MB = 144GB/日
  • 8TB = 8192GB. 8192GB / 144GB = 56.8日

プロバイダから警告が来ないことを祈りたい。

1
1
3

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
1
1