2016年7月17日日曜日

Ubuntu (Linux) と QNAP (NAS) 間で rsync - その 2 / 3

その 1 では主に rsync コマンドの記述について説明したので、ネットワーク経由で NAS の指定した path にバックアップする方法の詳細については述べなかった。今回からは、その部分について、僕が試行した方法について説明する。

NAS の特定のフォルダを、NFS を使って自機にマウントして、自機のフォルダとして利用する

まず最初に僕がやったのが、NFS を使って自機にマウントして、自機のフォルダと見做せるようにし、rsync では、ローカルのフォルダー間での同期として扱うやり方である。この場合、rsync の dest_path の指定において、NAS のネットワークアドレスに関する(admin@XXX.XXX.XXX.XXX: の部分の)記述は不要となり、次のような形で済む:

rsync -auv --delete --progress ~/mydata /mnt/qnap/backup

Linux(UNIX 系 OS)の非常に優れた文化が、このように、ネットワークドライブであろうが、さらには、入出力デバイスであろうが、すべて「ファイル」としてアクセスできるように、スッキリと極めてスマートに整えられている所である。

それはいいとして、この場合、rsync 側では、ネットワークのことは意識する必要はなくなるものの、NFS を使ってマウントする際には、ネットワークアドレスを指定する必要があるので、実質的には違いはない。誰が請け負うかが変わっただけである。

1: QNAP 側 で NFS を設定する

QNAP 側では、「権限 > 共有フォルダ > NFS ホストのアクセス」で homes を「アクセス権:制限なし」にする。

2: Ubuntu 側で NFS を設定する

まず、NFS をインストールする:

apt-get install nfs-common

NAS の共有フォルダを、Ubuntu 側に NFS としてマウント:

  1. マウント用ディレクトリを用意:mkdir /mnt/qnap
  2. マウントする:mount -t nfs XXX.XXX.XXX.XXX:/homes/username /mnt/qnap

(参考:How To Set Up an NFS Mount on Ubuntu 14.04

アンマウントは:umount -f -l /mnt/qnap

インターネット越しの場合はあまり適していないかもしれない

以上で、ローカルのフォルダー間での同期としての rsync が可能となる。

しかし、上の場合は、LAN で NFS をマウントする場合ならいいのだが、実家の NAS と繋げて使う場合など、インターネット越しで行う場合には、さらにハードルが上がる。

僕の場合、1) 実家の NAS と繋げるため VPN (PPTP) 環境を整え、2) VPN によって LAN として NAS と繋がる状態にしてから NFS をマウントし、3) その上で rsync するという、何ともまあ器用な真似を当初は行っていた。この目的だけのために、一々 VPN でつなげて使うというのもあまり手軽ではない気がしたので、この方法はやめて、rsync で直接インターネット越しに接続・同期作業を行うやり方に、切り替えることにした。それについては、また次回(その 3)で説明することにする。ただし、結局このやり方をやめたと言っても、LAN で NAS と接続できるのであれば、NFS を使ったやり方は、普通にスマートだろうと思う。

0 件のコメント:

コメントを投稿