LinkStation を同期中

2009-10-24 15:18:16 | | このエントリーを含むはてなブックマーク | Tag: buffalo linux nas

LinkStation 同士を同期させる手順を書いてみました。

はじめに

今まで NAS として 500 GB の LS-500GL を使っていたのですが、一眼レフの RAW ファイルが溜まりすぎて残りが少なくなってしまいました。「そろそろ新しいのが欲しいなぁ」と思い、Amazon を散策していたところ、LS-CH1.5L2 万円だったので買ってしまいました。

というわけで、今は 2 つ NAS があるのですが、データを同期させようということで、色々やってみました。

まずは SSH でログインできるようにする

ハック欲のある方は、このセクションを読み飛ばしてください :-)

私はネットを適当に探して見つけた、acp_commander というツールを使いました。これを使うと、一発で telnet 接続までできるようになりますが、失敗した際は自己責任で、というツールです。わけ分からない人は使わない方が良いと思います……、保証は利かなくなると思いますので。

このツール自体は Java で書かれているので、java コマンドが使えれば良いと思います。そして、以下のコマンドをぽちぽち打ち込むと telnet が使えるようになります。

acp_commander

WINDOWS> java -jar acp_commander.jar -t  -o

root のパスワードが空になりますので、お好みのものに変えておきましょう。

このままでは sshd が立ち上がっていないので、まずは sshd_config を書き換えます。

/etc/sshd_config

root@LS-CHL6CB:~# diff -uNr /etc/sshd_config{.orig,}
--- /etc/sshd_config.orig    Fri Sep  5 18:41:59 2008
+++ /etc/sshd_config Sat Oct 17 16:31:34 2009
@@ -10,8 +10,8 @@
 # possible, but leave them commented.  Uncommented options change a
 # default value.
 
-#Port 22
-#Protocol 2,1
+Port 22
+Protocol 2,1
 #ListenAddress 0.0.0.0
 #ListenAddress ::
 
@@ -33,8 +33,8 @@
 # Authentication:
 
 #LoginGraceTime 2m
-#PermitRootLogin yes
-#StrictModes yes
+PermitRootLogin yes
+StrictModes yes
 
 #RSAAuthentication yes
 #PubkeyAuthentication yes
@@ -52,7 +52,7 @@
 
 # To disable tunneled clear text passwords, change to no here!
 #PasswordAuthentication yes
-#PermitEmptyPasswords no
+PermitEmptyPasswords yes
 
 # Change to no to disable s/key passwords
 #ChallengeResponseAuthentication yes

立ち上げるには % /etc/init.d/sshd.sh start とします。そして最後に、毎回 sshd が立ち上がるように設定をすれば完了です。

/etc/init.d/rcS

root@LS-CHL6CB:~# diff -uNr /etc/init.d/rcS{.orig,}
--- /etc/init.d/rcS.orig        Wed Apr 22 18:20:34 2009
+++ /etc/init.d/rcS     Sat Oct 17 16:34:03 2009
@@ -86,7 +86,7 @@
 
 #
 echo "** step3 **"
-for cmd in diskmon.sh drivecheck.sh ftpd.sh atalk.sh httpd.sh smb.sh clientUtil_servd.sh bonjour.sh lsprcvd.sh daemonwatch.sh cron.sh checkconfig.sh ups.sh pwrmgr.sh
+for cmd in diskmon.sh drivecheck.sh ftpd.sh atalk.sh httpd.sh smb.sh clientUtil_servd.sh bonjour.sh lsprcvd.sh daemonwatch.sh cron.sh checkconfig.sh ups.sh pwrmgr.sh sshd.sh
 do
        exec_sh ${cmd}
 done

リモートと同期する

これで無事に ssh 接続ができるようになり、色々できるようになりました。と、ここで最初の目的である「2 台の LinkStation を同期させる」に戻ります。

同期させるには rsync というコマンドを用います。これは、標準でバックアップの際に使われているコマンドと思われます。LinkStation の /mnt/disk1/ 以下に共有フォルダがありますので、お好みのディレクトリ名を指定してください。

まずは同期元の LinkStation に入って、rsyncd の設定をします。

/etc/rsyncd.conf

root@LS-GL8DE:~# diff -uNr /etc/rsyncd.conf{.orig,}
--- /etc/rsyncd.conf.orig       2009-10-24 14:52:43.246092000 +0900
+++ /etc/rsyncd.conf    2009-10-24 14:08:43.256092000 +0900
@@ -1,3 +1,7 @@
 uid = root
 gid = root
 use chroot = yes
+
+[from]
+  path = /mnt/disk1/share/.
+  read only = yes

ここまで来たら、同期先の LinkStation でコマンドを打ち込むだけです。

rsync で同期する

# rsync -avP rsync://相手の IP アドレス/share/ /mnt/disk1/share/

まとめ

この同期作業で初めて rsync コマンドを使いました。ホスト間同期とか無くても生活できましたし……。なので、勉強がてら、いじってみるという経緯がありました。

最初は rsync プロトコルを使わずに行っていたのですが、転送速度が思った以上に上がらず、リンクアップがうまくいっていないのかと悩みました。暫くして、ps コマンドを眺めたところ ssh 転送を行っていたため、こいつを止めれば良いのではないか、ということで rsync プロトコルを使うに至りました。

  • rsync over ssh: 1.25 MB/s = 10 Mbps
  • rsync: 9.00 MB/s = 80 Mbps

Jumbo Frame も有効にしていますが、HDD アクセスがボトルネックなのかなーと、諦め気味です。

Related Entries

There is not related articles.

Trackbacks

Trackback URI: http://blog.c--v.net/trackback/2009/10/24/1

There is no trackback.

Comments

There is no comment.

Name
URI (Homepage or Email)
Body