Zopfcode

かつてない好奇心をあなたに。

NASの引っ越しをrsyncでやってみる

EDIT: ASUSTOR NASを使ってみた感想について末尾に追記した。

長らくPCのお世話をしている地元の工事会社にNASを導入したのはかれこれ8年前。

当時中学2年だった私は何万円もの機器たちがカード一枚でスパスパ購入されていくのを見て緊張したことをよく覚えている。購入を指示したのは自分だったとはいえど、これから自らの手でいち企業のPC環境を構築するのだとドキドキしたものだ。慎重な運用もあってか、念のためとRAID1にした2台のHDDは今の今まで壊れることなく動いてくれた。

さて、そんな思い出深いNASもそろそろ見切りをつける頃になってきた。転送速度がだんだん下がってきたのである。同じハードウェアながら少しずつ転送速度が下がってくるのだからコンピュータは不思議だ。やはりデジタル回路と言えども、マクロに見ればアナログの世界に生きていることが伝わってくる。

で、何をしたの

思い出ポエムは置いておいて…

今回は古い Buffalo LS-WHGL/R1 からASUSTOR AS1002T への移行をrsyncで行った。以下にいきさつと手順を書く。

rsyncに至った経緯

LS-WHGL/R1はセキュリティホールを突くことでrootでSSHできるようになる。最初はこれでUSB接続のHDDにrsyncするとかEthernet経由でscpするとかしていたのだが、スピードが遅すぎて現実的ではなかった。

簡潔に言うと、LS-WHGL/R1はCPUが遅いようだ。正確なスピードは測り忘れてしまったのだが、転送先・転送方法ごとのおおまかなスピードは以下の通りだった。転送元はすべてLS-WHGL/R1の内部HDDである。

  • USB-HDD (rsync) = 1[MB/s]
  • USB-HDD (rsync -z) = 0.2[MB/s]
  • AS1002T (rsync) = 5〜10[MB/s]
  • AS1002T (scp) = 1[MB/s]
  • AS1002T (scp -c arcfour) = 3[MB/s]

不思議なことに、USB接続のHDDにrsyncするよりもEthernet経由でNASにrsyncするほうがよっぽど速い。またrsyncもscpも暗号化を利用しているはずだが、rsyncの方が速いのはオーバーヘッドが少ないからだろうか。zlibを使うとスループットが激減したことからCPUの計算能力がスピードに影響しているのは間違いないのだがよくわからない。もちろんEthernetは1000BASE-TXでリンクしている。

内部HDDを取り出してコピーすることも考えたものの、業務のデータを扱っているためリスクは取らずrsyncで辛抱強く待つことにした。

手順

AS1002TはRAIDアレイなど初期設定を終えているものとする。

1. rsyncのパスを確認する

LS-WHGL/R1はNAS間バックアップ機能としてrsyncdが動いている。

f:id:puhitaku:20170103012008p:plain

これはLS-WHGL/R1の設定画面で、右上にある「バックアップ」にチェックを入れると該当のディレクトリがrsyncdに登録され外から見えるようになる。

AS1002Tでrsyncによるコピーを行うには「バックアップと復旧」からバックアップジョブを設定するか、SSH接続して自分でrsyncすることで行える。今回は手でrsyncしたが、rsyncの正確なディレクトリパスがよくわからなかったため一部Web UIを使った。

f:id:puhitaku:20170103012344p:plain

rsyncdへの接続が確立するとどのディレクトリをコピーするか聞かれる。この array で始まるパスは後で使うため控えておこう。もしディレクトリ名がマルチバイト文字だった場合は%でエスケープされるがこれもエスケープされたまま控えておく。

2. AS1002TでSSHを使えるようにする

Web UIの「サービス」→「端末」でONにできる。ログインはadminとrootどちらでもできる。

f:id:puhitaku:20170103013623p:plain

3. (任意) tmuxを使えるようにする

コピーの途中でセッションが切れるとアレなので、パッケージマネージャ経由でtmuxを導入した。Web UIの「App Central」でentware-ngと検索しインストールすれば、OpenWrtを彷彿とさせる opkg が利用可能になる。

あとはSSHで opkg update からの opkg install tmux と実行するだけであっという間にtmuxが入る。ここで 「/opt の空きが0kbで入らない」旨のエラーに遭遇するかもしれないが、 opkg install --force-space tmux とすると容量チェックを飛ばして入れることができる。原因は調査しておらず不明だが、普通に入るので良しとしよう。

4. rsyncする

AS1002Tで共有設定されたディレクトリは /volume1 以下に位置しているはずなので、その中に入りrsyncを実行する。 rsyncd接続時のパスワードはLS-WHGL/R1のWeb UIにログインする時と同じものだ。先程メモしたディレクトリパスは array1_hogehoge の部分に該当する。

cd /volume1/hogehoge
rsync -av --progress --exclude 'trashbox' rsync://admin@ip.address.of.nas/array1_hogehoge/* ./

--progress--exclude 'trashbox' はそれぞれ途中経過表示オプションとごみ箱フォルダを避けるオプションであり、両方付けることをおすすめする。

5. 待つ!!!

あとは辛抱強くrsyncの完了を待つのみ。

追記: ASUSTOR NASは推せる

近年はQNAPやSynologyをはじめとする高機能NASが人気とは聞いていたが、パソコン工房など2〜3軒ほど店舗をはしごしてもBuffaloのNASが置かれていないのは流石に驚いた。「駆逐された」と表現されてもおかしくないレベルである。

残された選択肢はQNAP・Synology・ASUSTOR。選ぶのは難しかったが、ASUSブランドへの信頼からASUSTORを選択した。 そんなわけで半ば「仕方なく」購入したAS1002Tだったが、使ってみて売れる理由がわかった。

実際に使ってみるとなるほどスゴい。Web UIの完成度が非常に高くストレスを感じさせない。初期設定でRAIDアレイの初期化から最新ファームウェアの自動導入までスムーズに行え、SambaやiSCSIの設定も極めて直感的だ。

Web UIで操作できる高レベルなdaemonは公式のパッケージマネージャで入るし、SSHしてみたらcolorもついたフル機能のbashが立ち上がる。おまけにEntware-ngを入れるとopkgパッケージマネージャも使えるため、ツイートにあるようにtmuxやpythonまで使えてしまう。

世代もメーカーも違うため直接比較するのはフェアではないのだが、今まで使っていたBuffalo LS-WHGL/R1から考えると感動すら覚えるレベルの違いだ。

とにかく、ASUSTOR NASは推せる。まさに「ASUSブランドにしてよかった」と思えるプロダクトだ。QNAPやSynologyのNASも触ることがあればまた比較したい。