-
Notifications
You must be signed in to change notification settings - Fork 5
/
README.ja
192 lines (137 loc) · 7.55 KB
/
README.ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/**************************************************************************/
/* */
/* MAKUOSAN README.ja */
/* Multicasts All-Kinds of Updating Operation */
/* for Servers on Administered Network */
/* */
/* Copyright (C) 2008 KLab Inc. */
/**************************************************************************/
【makuosanとは】
makuosan(まくおさん:通称「まくお」)は、複数のサーバへ同時にファイルを転
送するソフトウエアです。以下のような特徴があります。
・転送にかかる時間がサーバ台数に依存しない
サーバが増えても、転送にかかる時間はほとんどかわりません。10台のサーバに転
送しても、20台のサーバに転送しても、ほとんど同じ時間で完了します。ただし、
転送時間は一番応答が遅いサーバの性能に引っ張られるので、同程度のスペックの
サーバで構築された環境で利用することが望ましいです。
・すべてのサーバのファイルを同時に更新
マルチキャストでファイルを転送するので、すべてのサーバのファイルが一斉に更
新されます。そのため、「このサーバのファイルは更新されているけど、あのサー
バのファイルはまだ更新されていない」といったことがありません。
・面倒な設定は不要
「まくお」のメインプログラムは、全サーバにデーモンとして常駐させておきます。
それぞれのサーバに常駐している「まくお」は、互いの存在を確認しあうことで、
自動的にネットワーク上のサーバ構成を把握します。したがって、サーバ増設や撤
去の際でも、既設サーバの設定を変更する必要はありません。
【インストール方法】
$ tar zxvf makuosan-x.x.x.tar.gz
$ cd makuosan-x.x.x
$ ./configure
$ make
$ su -
# make install
【ファイル構成】
以下のファイルがインストールされます。
/usr/local/sbin/makuosan # まくおさん本体
/usr/local/bin/msync # コマンドラインツール
【起動と停止】
まくおを利用するには、送信元と送信先のサーバすべてでmakuosanを起動しておく
必要があります。また、起動時には -b オプションでベースディレクトリを指定しま
す。転送するファイルは、msyncでベースディレクトリからの相対パスを指定します。
# makuosan -b /var/www -u www-data -g www-data
まくおを停止するには、killコマンドなどでSIGTERMを送ります。
# pkill makuosan
【使用方法】
ファイル転送は、makuosanが動いているサーバ上でmsyncコマンドを実行します。
例1)ベースディレクトリ以下のディレクトリツリーを全部転送する
$ msync -r
例2)転送されるファイルを確認する(dry run)
$ msync -rn
例3)ベースディレクトリ直下のindex.htmlを転送する(/var/www/index.html)
$ msync index.html
msyncで指定するファイルやディレクトリは、makuosan起動時に指定したベースディ
レクトリからの相対パスです。カレントディレクトリは一切関知しませんのでご注
意ください。ベースディレクトリは以下のコマンドで確認することができます。
$ msync --status
また、転送先サーバの一覧は以下のコマンドで取得できます
$ msync --members
【利用するメリット】
rsyncやscpなどの、1対1のファイル転送ツールでは、必ず転送先を指定しますが、
「まくお」では、コマンドラインから転送先を指定する必要がありません。
rsyncやscpで複数のサーバに対してファイルを転送したい場合、以下のようにサー
バの数だけ実行する必要があります。
$ for h in host2 host3 host4 host5 host6;do rsync -aRv hogehoge $h:/;done
「まくお」では、makuosanが起動しているサーバ同士でファイルの転送をします。
そのため、転送したいファイルやディレクトリを一度指定するだけで済みます。
$ msync -r hogehoge
このコマンドひとつで「まくお」が稼働している全てのサーバに hogehogeを転送す
ることができます。
また「指定したサーバにだけ転送したい」というニーズのために、特定のサーバにだ
け転送するオプション(-t)も用意しています。この場合も、送信元と送信先のサーバ
でmakuosanが動いている必要があります。
$ msync -t host3 -r hogehoge/
【簡単な使用例】
== ネットワーク構成 ==
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 ..
== ファイルを転送する ==
host1:~$ msync -r
== 転送されたファイルを確認 ==
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