README.ja
7b348a67
 /**************************************************************************/
 /*                                                                        */
 /* MAKUOSAN README.ja                                                     */
e5b6322e
 /* Multicasts All-Kinds of Updating Operation                             */
 /*                                    for Servers on Administered Network */
 /*                                                                        */
7b348a67
 /*                                           Copyright (C) 2008 KLab Inc. */
 /**************************************************************************/
 
3047eb0b
 【makuosanとは】
bb039d93
  makuosan(まくおさん:通称「まくお」)は、複数のサーバへ同時にファイルを転
14bcaa77
 送するソフトウエアです。以下のような特徴があります。
c559f0fb
 
3047eb0b
 ・転送にかかる時間がサーバ台数に依存しない
  サーバが増えても、転送にかかる時間はほとんどかわりません。10台のサーバに転
  送しても、20台のサーバに転送しても、ほとんど同じ時間で完了します。ただし、
  転送時間は一番応答が遅いサーバの性能に引っ張られるので、同程度のスペックの
  サーバで構築された環境で利用することが望ましいです。
 
e5b6322e
 ・すべてのサーバのファイルを同時に更新
  マルチキャストでファイルを転送するので、すべてのサーバのファイルが一斉に更
  新されます。そのため、「このサーバのファイルは更新されているけど、あのサー
  バのファイルはまだ更新されていない」といったことがありません。
 
 ・面倒な設定は不要
  「まくお」のメインプログラムは、全サーバにデーモンとして常駐させておきます。
  それぞれのサーバに常駐している「まくお」は、互いの存在を確認しあうことで、
  自動的にネットワーク上のサーバ構成を把握します。したがって、サーバ増設や撤
  去の際でも、既設サーバの設定を変更する必要はありません。
c559f0fb
 
 
3047eb0b
 【インストール方法】
14bcaa77
   $ tar zxvf makuosan-x.x.x.tar.gz
c559f0fb
   $ cd makuosan-x.x.x
57179b09
   $ ./configure
c559f0fb
   $ make
3047eb0b
   $ su -
c559f0fb
   # make install
302b0bca
 
3047eb0b
 
5fefc4e1
 【ファイル構成】
14bcaa77
  以下のファイルがインストールされます。
f9606fa8
 
14bcaa77
   /usr/local/sbin/makuosan # まくおさん本体
e5b6322e
   /usr/local/bin/msync     # コマンドラインツール
b0c0b17b
 
73c65ffb
 
5fefc4e1
 【起動と停止】
14bcaa77
  まくおを利用するには、送信元と送信先のサーバすべてでmakuosanを起動しておく
 必要があります。また、起動時には -b オプションでベースディレクトリを指定しま
 す。転送するファイルは、msyncでベースディレクトリからの相対パスを指定します。
5fefc4e1
  
73c65ffb
    # makuosan -b /var/www -u www-data -g www-data
9afc9c9f
 
3047eb0b
 まくおを停止するには、killコマンドなどでSIGTERMを送ります。
b0c0b17b
 
a0346c4a
    # pkill makuosan
302b0bca
 
 
73c65ffb
 【使用方法】
14bcaa77
  ファイル転送は、makuosanが動いているサーバ上でmsyncコマンドを実行します。
3047eb0b
 
14bcaa77
   例1)ベースディレクトリ以下のディレクトリツリーを全部転送する
a0346c4a
    $ msync -r
302b0bca
 
14bcaa77
  例2)転送されるファイルを確認する(dry run)
e5b6322e
    $ msync -rn
 
14bcaa77
   例3)ベースディレクトリ直下のindex.htmlを転送する(/var/www/index.html)
    $ msync index.html
e5b6322e
 
14bcaa77
 msyncで指定するファイルやディレクトリは、makuosan起動時に指定したベースディ
 レクトリからの相対パスです。カレントディレクトリは一切関知しませんのでご注
 意ください。ベースディレクトリは以下のコマンドで確認することができます。
e5b6322e
 
14bcaa77
    $ msync --status
e5b6322e
 
14bcaa77
 また、転送先サーバの一覧は以下のコマンドで取得できます
e5b6322e
 
14bcaa77
    $ msync --members
3047eb0b
 
 
c858e9b6
 【利用するメリット】
14bcaa77
 rsyncやscpなどの、1対1のファイル転送ツールでは、必ず転送先を指定しますが、
 「まくお」では、コマンドラインから転送先を指定する必要がありません。
c858e9b6
 
14bcaa77
 rsyncやscpで複数のサーバに対してファイルを転送したい場合、以下のようにサー
 バの数だけ実行する必要があります。
3047eb0b
 
  $ for h in host2 host3 host4 host5 host6;do rsync -aRv hogehoge $h:/;done
 
  「まくお」では、makuosanが起動しているサーバ同士でファイルの転送をします。
14bcaa77
 そのため、転送したいファイルやディレクトリを一度指定するだけで済みます。
3047eb0b
 
e5b6322e
  $ msync -r hogehoge
3047eb0b
 
14bcaa77
 このコマンドひとつで「まくお」が稼働している全てのサーバに hogehogeを転送す
 ることができます。
3047eb0b
 
c858e9b6
 また「指定したサーバにだけ転送したい」というニーズのために、特定のサーバにだ
14bcaa77
 け転送するオプション(-t)も用意しています。この場合も、送信元と送信先のサーバ
 でmakuosanが動いている必要があります。
3047eb0b
 
a0346c4a
  $ msync -t host3 -r hogehoge/
3047eb0b
 
 
 【簡単な使用例】
 
  == ネットワーク構成 ==
  host1のファイルを host2, host3, host4に転送します。
 
                   +-------+
                   | host2 |
                   +-------+
                       |
   +-------+     +-----------+     +-------+
   | host1 |-----| L2 SWITCH |-----| host3 |
   +-------+     +-----------+     +-------+
                       |
                   +-------+
                   | host4 |
                   +-------+
 
 
  == makuosanを起動する ==
 
  host1:~# makuosan -b /var/www -u www-data -g www-data
  host2:~# makuosan -b /var/www -u www-data -g www-data
  host3:~# makuosan -b /var/www -u www-data -g www-data
  host4:~# makuosan -b /var/www -u www-data -g www-data
 
  == 転送するファイルを作る ==
  host1の /var/www/ 以下にファイルを作ります。
 
  host1:~# cd /var/www/
  host1:/var/www# echo hoge > hoge.html
  host1:/var/www# echo fuga > fuga.html
  host1:/var/www# chown www-data:www-data hoge.html fuga.html
  host1:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 fuga.html
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 hoge.html
 
  他のホストにはファイルはありません。
 
  host2:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
 
  host3:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
 
  host4:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
 
 
  == ファイルを転送する ==
 
a0346c4a
  host1:~$ msync -r
3047eb0b
 
 
  == 転送されたファイルを確認 ==
 
  host2:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 fuga.html
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 hoge.html
  
  host3:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 fuga.html
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 hoge.html
 
  host4:/var/www# ls -la
  total 16
  drwxr-xr-x  3 root     root      176 Oct 10 10:31 .
  drwxr-xr-x 15 root     root      360 Oct  9 04:52 ..
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 fuga.html
  -rw-r--r--  1 www-data www-data    5 Oct 10 10:31 hoge.html
c559f0fb
 
73c65ffb