• R/O
  • SSH

doc: Commit

※ リポジトリは、https://github.com/linux-ha-japan/doc-ja に移行しました。

日本語翻訳ドキュメント用リポジトリ


Commit MetaInfo

Revisión304ca55f8e51cfcea918caf57b645cfa34e0461a (tree)
Tiempo2012-02-27 20:13:15
AutorKeisuke MORI <kskmori@inte...>
CommiterKeisuke MORI

Log Message

users-guide: Initial translation. Based revision: users-guide-0.9.3
http://hg.linux-ha.org/doc/rev/ab4d57f05bab

Cambiar Resumen

Diferencia incremental

diff -r 1d8820e9e743 -r 304ca55f8e51 linux-ha-doc/users-guide/users-guide.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linux-ha-doc/users-guide/users-guide.txt Mon Feb 27 20:13:15 2012 +0900
@@ -0,0 +1,757 @@
1+= Linux-HAユーザーズガイド
2+:doctype: book
3+
4+[preface]
5+= 序文
6+
7+本書は、Heartbeatクラスタメッセージングレイヤ、Linux-HAクラスタリソースエージェント、Linux-HAが維持する他のクラスタ構成品を記述するリファレンスガイドです。
8+
9+本書に関して皆さまのご意見をお寄せください。コメント、訂正、提案などを linux-ha@lists.linux-ha.org メーリングリストに投稿してください。
10+
11+= Heartbeat
12+
13+== クラスタメッセージングレイヤとしてのHeartbeat
14+
15+Heartbeat はクラスタ基盤サービス(通信とメンバシップ管理)を提供するデーモンです。これによってクライアントプロセスは、他ノードで動作している通信相手プロセスの存在(と消失!)を知ることができ、メッセージの交換が簡単にできるようになります。
16+
17+利用者にとって意味のある使い方にするには、Heartbeat デーモンとクラスタリソース制御部(CRM)を組み合わせて利用する必要があります。CRMはサービス(仮想IPアドレス、ウェブサーバ等)の起動や終了をつかさどるもので、これによってサービスの高可用化が実現できるようになります。
18+
19+Heartbeatデーモンは、ユーザが使えるようにするためにクラスタリソースマネージャ(CRM)と組み合わせる必要があります。CRMは、クラスタが提供する高可用サービス(IPアドレス、webサーバなど)を起動・停止します。Heartbeatと連携する標準クラスタリソースマネージャはhttp://www.clusterlabs.org[Pacemaker]です。Pacemakerは高い拡張性と多機能性を誇り、Heartbeatとhttp://www.corosync.org[Corosync]の両方のクラスタメッセージングレイヤをサポートします。
20+
21+NOTE: Heartbeatリリース 2.1.4まで、Pacemakerは、Linux-HAプロジェクトの一環としてHeartbeatと共同開発されていました。しかし、当リリース後、Pacemakerプロジェクトは独立プロジェクトとして分割され、Heartbeatクラスタメッセージングを完全サポートしながら開発が進められました。
22+
23+== コンポーネント構成
24+
25+Heartbeatメッセージングレイヤは、連動するいくつかのコンポーネントから構成されています。
26+
27+=== 通信モジュール
28+
29+Heartbeat通信モジュールは、高度な認証機能を持ち、ローカルで順序化されたマルチキャストメッセージングを、基本的にはいかなるメディアででも(IPベースであってもそうでなくても)提供します。Heartbeatは、以下のネットワークリンクタイプでのクラスタ通信をサポートします。
30+
31+* IPv4ユニキャストUDP
32+* IPv4ブロードキャストUDP
33+* IPv4マルチキャストUDP
34+* シリアル接続通信
35+
36+WARNING: シリアル接続の接続性( +ha.cf+ のmanページを参照, +man ha.cf+ )に関しては特に注意してください。原則として、不明な点があればシリアル接続は使わないでください。
37+
38+Heartbeatはノード故障を0.5秒以内に確実に探知します。Heartbeatは、設定を行うことにより、システムウォッチドッグ(watchdog)タイマに登録することもできます。
39+
40+Heartbeatレイヤは、以下のサービスクラスを提供するAPIを持っています。
41+
42+* クラスタ内通信:クラスタノードに対してパケットを送受信する
43+* 設定問合せ
44+* 接続性情報(自ノードは誰からのパケットを受信できているか):問合せおよび状態変更通知の両方
45+* 基本的なグループメンバシップサービス
46+
47+=== クラスタコンセンサスメンバシップ(CCM)
48+
49+CCMは、強く接続されたコンセンサスクラスタメンバシップサービスを提供します。CCMは、メンバシップに属すると判断された全てのノードが、同じメンバシップ内の他の全てのノードと通信できることを保証します。CCMは、OCFドラフトメンバシップAPI、および SAF AISメンバシップAPIの両方を実装しています。通常、CCMは一秒以下でメンバシップを計算します。
50+
51+=== クラスタ配管ライブラリ
52+
53+
54+クラスタ配管(Plumbing)ライブラリは非常に便利な機能の集合であり、多くの内部コンポーネントによって使われる各種サービスを提供します。このライブラリが提供する主な機能として以下のようなものがあります。
55+
56+* 圧縮API(と圧縮プラグイン)
57+
58+* 非ブロック型ログ出力API
59+
60+* 長時間動作することを前提としたメモリ管理
61+
62+* 階層的name-valueペアのメッセージング機能:これにより移植性とバージョンアップグレードの互換性を向上させている(またオプションのメッセージ圧縮機能も提供する)
63+
64+* シグナルの統合:シグナルがmainloopイベントとして扱える
65+
66+* コアダンプ管理ユーティリティ:すべて状況においてコアダンプを同じ方法で取得する
67+
68+* タイマ(glib mainloopタイマと同様:ただしtime of day クロックが飛んでも機能する)
69+
70+* 子プロセス管理:子プロセスの停止を契機としてプロセスオブジェクトを起動する(子プロセス停止のメッセージも変更可能)
71+
72+* トリガ(ソフトウェアによりトリガされる任意のイベント)
73+
74+* リアルタイム管理:高優先度の設定と解除、および、プロセスのメモリへのロック
75+
76+* 64ビットHZの精度での時間操作(longclock_t)
77+
78+* セキュリティ目的のユーザID管理:何らかの +root+ 権限を必要とするプロセス用
79+
80+* IPC、通常ファイルディスクリプタ、シグナルなどに対するmainloop統合。これは、これらすべての異なるイベントソースが一貫して管理され処理されることを意味します。
81+
82+=== IPCライブラリ
83+
84+すべてのプロセス間通信は、汎用IPCライブリを使って行われます。このライブラリは、柔軟なキューイング戦略を使ってIPCへの非ブロックアクセスを提供し、統合的なフローコントロール機能を提供します。IPC APIはソケット利用を要件とはしていませんが、現在提供されている実装ではUNIX(ローカル)ドメインソケットを使用しています。
85+
86+また、このAPIは、通信相手プロセスの組み込みの認証機能や認可機能も含んでおり、ほとんどのPOSIX対応OSに移植可能です。これらのAPIは、必ずしもGlib mainloopと一緒に利用する必要はありませんが、Heartbeatではmainloopと統合した簡単で便利な方法を提供しています。
87+
88+=== 非ブロック型ログ出力デーモン
89+
90++logd+ はHeartbeatのログ出力デーモンです。これは、syslogデーモンやファイル、あるいはそれら両方へのログ出力ができます。logdはブロックを行いませんが、その代わりログ出力が非常に遅れてしまったメッセージは破棄されます。
91+
92+ログメッセージが再度出力できるようになれば、+logd+ は破棄したメッセージの数を出力します。キューのサイズは全体でもアプリケーション単位でも変更可能です。
93+
94+= Heartbeatのインストール
95+
96+== ソースからビルドしインストールする
97+
98+Heartbeatクラスタメッセージングレイヤをソースからビルドとインストールする場合は、実際には以下のパッケージからをビルドすることになります。
99+
100+* +heartbeat+ 本体
101+* +cluster-glue+ パッケージ:Heartbeatローカルリソースマネージャ(LRM)とSTONITHプラグインが含まれています。
102+
103+Heartbeatのビルドは +cluster-glue+ に依存するため、_最初に_ +cluster-glue+ のビルドとインストールを行い、その後にHeartbeatのビルドとインストールを行う必要があります。
104+
105+=== [[_building_and_installing_cluster_glue_from_source]]ソースからCluster Glueをビルドしインストールする
106+
107+==== Cluster Glueビルド事前条件
108+
109+Cluster Glueをビルドするには、ビルド環境上に以下のツールやライブラリが必要です。
110+
111+* Cコンパイラ(通常、 +gcc+ )および関連C開発ライブラリ
112+* +flex+ スキャナジェネレータおよび +bison+ パーサコンパイラ
113+* +net-snmp+ 開発ヘッダ:SNMP関連の機能を有効にするため
114+* +OpenIPMI+ 開発ヘッダ:IPMI関連機能を有効にするため
115+* Python(言語インタプリタだけでライブラリヘッダは不要)
116+
117+NOTE: このリストはデフォルトの設定の場合に適用されます。標準以外のconfigureオプション設定を行った場合、これ以外の依存パッケージが必要になる可能性があります。
118+
119+
120+==== Cluster Glueソースをダウンロードする
121+
122+Cluster Glueソースコードを入手するには複数の手段があります。
123+
124+===== リリース版 tarball(TAR書庫)をダウンロードする
125+
126+Cluster Glueのリリースバージョンを圧縮 tarballとしてダウンロードする場合、Mercurialソースコードリポジトリから「タグ付きスナップショット」を取得することによって可能です。ダウンロードしたいCluster Glueのリリースバージョンが _x.y.z_ であれば、リリースタグは glue-_x.y.z_ という形式になります。
127+
128+たとえば、1.0.1リリースをダウンロードしたい場合、以下のようなコマンドシーケンスになります。
129+
130+---------------------------------------------------------------------
131+# wget http://hg.linux-ha.org/glue/archive/glue-1.0.1.tar.bz2
132+# tar -vxjf glue-1.0.1.tar.bz2
133+---------------------------------------------------------------------
134+
135+===== 最新Mercurialスナップショットをダウンロードする
136+
137+最新の開発コードは常に、Mercurialリポジトリから tipリビジョンとして利用可能です。
138+
139+tipから自動生成されるtarballをダウンロードするには、以下のコマンドシーケンスを使います。
140+
141+
142+---------------------------------------------------------------------
143+# wget http://hg.linux-ha.org/glue/archive/tip.tar.bz2
144+# tar -vxjf tip.tar.bz2
145+---------------------------------------------------------------------
146+
147+
148+===== Mercurialからソースをチェックアウトする
149+
150+手元の環境に Mercurial がインストールされている場合、この方法が使えます。リポジトリを _クローン_ することでソースをチェックアウトしてください。
151+
152+---------------------------------------------------------------------
153+$ hg clone http://hg.linux-ha.org/glue cluster-glue
154+requesting all changes
155+adding changesets
156+adding manifests
157+adding file changes
158+added 12491 changesets with 34830 changes to 2632 files
159+updating working directory
160+356 files updated, 0 files merged, 0 files removed, 0 files unresolved
161+---------------------------------------------------------------------
162+
163+==== Cluster Glueをビルドする
164+
165+Cluster Glueのビルドは、GNU Autotoolsの活用により自動化されています。Cluster Glueのビルドとインストールを同じマシン上で行う場合は、以下のコマンドシーケンスを使います。
166+
167+
168+---------------------------------------------------------------------
169+$ ./autogen.sh
170+$ ./configure
171+$ make
172+$ sudo make install
173+---------------------------------------------------------------------
174+
175+NOTE: +autogen.sh+ スクリプトは、 +automake+ 、 +autoheader+ 、 +autoconf+ および +libtool+ の便利なラッパーです。
176+
177+数多くのconfigureオプションがサポートされており、これらのカスタマイズによりシステムに合わせてHeartbeatを最適化できます。+configure+ に +--help+ オプション をつけてを実行するとオプションのリストを表示できます。カスタマイズしたビルドを行うには以下のようなステップから構成されることになります。
178+
179+--------------------------------------------------------------------
180+$ ./autogen.sh
181+$ ./configure --help
182+$ ./configure configuration-options
183+$ make
184+$ sudo make install
185+---------------------------------------------------------------------
186+
187+よく使われる典型的な設定オプションとして、以下の例に示すように +--prefix+ 、 +--sysconfdir+ 、および +--localstatedir+ があります。
188+
189+---------------------------------------------------------------------
190+$ ./autogen.sh
191+$ ./configure --help
192+$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
193+$ make
194+$ sudo make install
195+---------------------------------------------------------------------
196+
197+
198+==== ビルド済みパッケージ
199+
200+===== RPMパッケージ
201+
202+
203+Cluster Glueソースツリーには、SuSEとRed Hatベースのディストリビューションの両方に対する RPM spec ファイルが含まれています。
204+
205+* +cluster-glue-suse.spec+ は、OpenSUSEおよびSLES環境用です。
206+
207+* +cluster-glue-fedora.spec+ は、Fedora、Red Hat Enterprise LinuxおよびCentOSに対するものです。
208+
209+
210+===== Debianパッケージ
211+
212+Cluster Glue のDebianパッケージは、http://hg.debian.org/hg/debian-ha/cluster-glue/[+alioth.debian.org+ のMercurialリポジトリ]で維持されています。
213+したがって、本家Mercurialリポジトリからcloneしたりダウンロードする代わりに、 +alioth+ でホスティングされているものを使ってください。
214+
215++alioth+ リポジトリからソースをチェックアウトまたは展開したら、(他のDebianパッケージの場合と同様に)ソースツリーのトップで +dpkg-buildpackage+ を起動してください
216+
217+
218+=== ソースからHeartbeatをビルドしインストールする
219+
220+==== Heartbeatビルドの事前条件
221+
222+Heartbeatをビルドする場合、ビルド環境上では以下のツールやライブラリが必要です。
223+
224+* Cコンパイラ(通常gcc)および関連C開発ライブラリ
225+* flexスキャナジェネレータおよびbisonパーサコンパイラ
226+* net-snmp開発ヘッダ:SNMP関連機能を有効にするため
227+* Open IPMI開発ヘッダ:IPMI関連機能を有効にするため
228+* Python(言語インタプリタだけでライブラリヘッダは不要)
229+* +cluster-glue+ 開発ヘッダ:ソースからこれらをビルドする方法は、<<_building_and_installing_cluster_glue_from_source,ソースからCluster Glueをビルドしインストールする>>を参照してください。
230+
231+NOTE: このリストはデフォルトの設定の場合に適用されます。標準以外のconfigureオプション設定を行った場合、これ以外の依存パッケージが必要になる可能性があります。
232+
233+
234+==== Heartbeatソースをダウンロードする
235+
236+===== リリース版 tarball(TAR書庫)をダウンロードする
237+
238+Heartbeatのリリースバージョンを圧縮tarballとしてダウンロードする場合、Mercurialソースコードリポジトリから「タグ付きスナップショット」を取得することによって可能です。ダウンロードしたいHeartbeatのリリースバージョンが +x.y.z+ であれば、リリースタグは +STABLE-x.y.z+ という形式になります。
239+
240+たとえば、3.0.4リリースをダウンロードしたい場合、以下のコマンドシーケンスになります。
241+
242+---------------------------------------------------------------------
243+# wget http://hg.linux-ha.org/dev/archive/STABLE-3.0.4.tar.bz2
244+# tar -vxjf STABLE-3.0.4.tar.bz2
245+---------------------------------------------------------------------
246+
247+
248+===== 最新Mercurialスナップショットをダウンロードする
249+
250+最新の開発コードは常に、Mercurialリポジトリから +tip+ リビジョンとして利用可能です。
251+
252++tip+ から自動生成されるtarballをダウンロードするには、以下のコマンドシーケンスを使います。
253+
254+---------------------------------------------------------------------
255+# wget http://hg.linux-ha.org/dev/archive/tip.tar.bz2
256+# tar -vxjf tip.tar.bz2
257+---------------------------------------------------------------------
258+
259+
260+===== Mercurialからソースをチェックアウトする
261+
262+手元の環境に Mercurial がインストールされている場合、この方法が使えます。リポジトリを _クローン_ することでソースをチェックアウトしてください。
263+
264+---------------------------------------------------------------------
265+$ hg clone http://hg.linux-ha.org/dev heartbeat-dev
266+requesting all changes
267+adding changesets
268+adding manifests
269+adding file changes
270+added 12491 changesets with 34830 changes to 2632 files
271+updating working directory
272+356 files updated, 0 files merged, 0 files removed, 0 files unresolved
273+---------------------------------------------------------------------
274+
275+
276+==== Heartbeatをビルドする
277+
278+Heartbeatのビルドは、GNU Autotoolsの活用により自動化されています。Heartbeatのビルドとインストールを同じマシン上で行う場合は、以下のコマンドシーケンスを使います。
279+
280+---------------------------------------------------------------------
281+$ ./bootstrap
282+$ ./configure
283+$ make
284+$ sudo make install
285+---------------------------------------------------------------------
286+
287+NOTE: bootstrapスクリプトは、 +automake+ 、 +autoheader+ 、 +autoconf+ および +libtool+ の便利なラッパーとなります。 +ConfigureMe+ は、autoconf生成の +configure+ スクリプトに対する便利なラッパーとなります。
288+
289+いくつかの設定オプションがサポートされており、それらをカスタマイズして、システムに対してHeartbeatを最適化できます。設定オプションリストを読み込むには +--help+ オプションで +configure+ を起動します。したがってカスタマイズされたビルドはこれらのステップで行えます。
290+
291+---------------------------------------------------------------------
292+$ ./bootstrap
293+$ ./configure --help
294+$ ./configure <configuration-options>
295+$ make
296+$ sudo make install
297+---------------------------------------------------------------------
298+
299+典型的な設定オプションは以下のような +--prefix+ 、 +--sysconfdir+ およ び +--localstatedir+ となります。
300+
301+---------------------------------------------------------------------
302+$ ./bootstrap
303+$ ./configure --help
304+$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
305+$ make
306+$ sudo make install
307+---------------------------------------------------------------------
308+
309+
310+==== ビルドパッケージ
311+
312+===== RPMパッケージ
313+
314+RPM spec ファイルは、両方のSuSEとRed Hatベースのディストリビューションに対するHeartbeatソースで提供されています。
315+
316+* +heartbeat-suse.spec+ :OpenSUSEおよびSLESのインストレーション用。
317+
318+* +heartbeat-fedora.spec+ :Fedora、Red Hat Enterprise LinuxおよびCentOS用。
319+
320+===== Debianパッケージ
321+
322+Heartbeat用Debianパッケージは、http://hg.debian.org/hg/debian-ha/heartbeat/[+alioth.debian.org+ のMercurialリポジトリ]で維持されています。
323+したがって、上位Mercurialリポジトリからクローンしたりダウンロードする代わりに、+alioth+ でホスティングされているものを使います。
324+
325+いったん、+alioth+ リポジトリからソースをチェックアウトしたりアンパックしたら、ソースツリーのトップから +dpkg-buildpackage+ を起動してください(他のDebianパッケージで行うように)。
326+
327+
328+== 事前ビルドパッケージをインストールする
329+
330+Cluster GlueおよびHeartbeatは、以下の各種プラットフォームで事前ビルドバイナリパッケージとして提供されています。
331+
332+* Debian( +squeeze+ 以後で完全に含まれており、 +lenny+ 用にバックポートパッケージが提供されている)
333+* Ubuntu(+lucid+ 以後)
334+* Fedora(リリース12以後)
335+* OpenSUSE(リリース11以後)
336+
337+Red Hat Enterprise LinuxおよびSUSE Linux Enterpriseサーバ用の商用サポートされたエンタープライズパッケージは、http://www.linbit.com[LINBIT]から提供されています。本項は、これらのプラットフォームでバイナリパッケージをインストールするのに必要なステップを説明しています。
338+
339+=== DebianおよびUbuntu
340+
341++cluster-glue+ および +heartbeat+ パッケージは、DebianおよびUbuntuに簡単にインストールできます。APTに正しいパッケージリポジトリが設定されていると前提して、以下のコマンドでこれらのパッケージをインストールしてください。
342+
343+--------------------------------------------------------------------
344+aptitude install heartbeat cluster-glue
345+---------------------------------------------------------------------
346+
347+必要であれば、Pacemakerは以下のコマンドでインストールしてください。(これについては本マニュアルの範囲外です。)
348+
349+---------------------------------------------------------------------
350+aptitude install cluster-agents pacemaker
351+--------------------------------------------------------------------
352+
353+=== Fedora、RHELおよびCentOS
354+
355+Red Hatプラットフォームでは、YUMパッケージマネージャで +cluster-glue+ および +heartbeat+ パッケージをインストールします。 +/etc/yum.repos.d/+ で正しいパッケージリポジトリが設定されていると前提して、以下のコマンドでこれらの2つのパッケージをインストールしてください。
356+
357+--------------------------------------------------------------------
358+yum install heartbeat cluster-glue
359+---------------------------------------------------------------------
360+
361+必要であれば、Pacemakerは以下のコマンドでインストールしてください。(これについては本マニュアルの範囲外です。)
362+
363+---------------------------------------------------------------------
364+yum install resource-agents pacemaker
365+---------------------------------------------------------------------
366+
367+
368+=== OpenSUSEおよびSLES
369+
370+SUSEtプラットフォームでは、Zypperパッケージマネージャで +cluster-glue+ および +heartbeat+ パッケージをインストールします。正しいパッケージリポジトリが設定されていると前提して、以下のコマンドでこれらの2つのパッケージをインストールしてください。
371+
372+---------------------------------------------------------------------
373+zypper install heartbeat cluster-glue
374+---------------------------------------------------------------------
375+
376+必要であれば、Pacemakerは以下のコマンドでインストールしてください。(これについては本マニュアルの範囲外です。)
377+
378+---------------------------------------------------------------------
379+zypper install resource-agents pacemaker
380+---------------------------------------------------------------------
381+
382+= 管理タスク
383+
384+== Heartbeatの初期設定を作成する
385+
386+いずれのHeartbeatクラスタに対しても、以下の設定ファイルが提供されている必要があります。
387+
388+* +/etc/ha.d/ha.cf+ -- グローバルクラスタ設定ファイル
389+
390+* +/etc/ha.d/authkeys+ -- 相互ノード認証に対するキーを持つファイル
391+
392+
393+=== +ha.cf+ ファイル
394+
395+以下は、簡単な +ha.cf+ ファイルの例です。
396+
397+---------------------------------------------------------------------
398+autojoin none
399+mcast bond0 239.0.0.43 694 1 0
400+bcast eth2
401+warntime 5
402+deadtime 15
403+initdead 60
404+keepalive 2
405+node alice
406+node bob
407+pacemaker respawn
408+---------------------------------------------------------------------
409+
410++autojoin+ を +none+ に設定すると、クラスタノード自動発見機能(auto-discovery)を無効にし、ノードオプションによってクラスタノードが明確にリストされます。これにより、少数ノードのクラスタではクラスタ起動が早くなります。
411+
412+この例では、 +bond0+ が共有ネットワークへのクラスタのインタフェースであり、 +eth2+ が両方のノードの間のDRBD(複製)専用のインタフェースであると前提されています。したがって、 +bond0+ はマルチキャストハートビートに使うことができ、 +eth2+ では、ブロードキャスト通信は, +eth2+ が共有ネットワークでないとして受け付けられます。
413+
414+次の一連のオプションがノード故障探知機能を設定します。これらのオプションにより以下が設定されます。
415+
416+* 時間 ( +warntime+ ):この時間の後、「Heartbeatは使用できなくなっているピアノードは停止している」という警告を発行します。
417+* 時間( +deadtime+ ):この時間の後、Heartbeatは、ノードが停止されたと認識します。
418+* 最大時間( +initdead+ ):この時間の間、Heartbeatは、クラスタ起動でノードがチェックインするのを待ちます。これらのすべてのオプションを秒で設定されます。
419+
420++keepalive+ は、Heartbeatのkeep-aliveパケットが送信される間隔を設定します。
421+
422++node+ オプションは、クラスタメンバを識別します。ここでリストされているオプション値は、 uname -nで指定されたクラスタノードのホスト名と正確に一致しなければなりません。
423+
424++pacemaker respawn+ は、Pacemakerクラスタマネージャを有効にし、Pacemakerが故障した場合でも自動的に再起動されるようにします。
425+
426+NOTE: Heartbeatリリース3.0.4までは、 +pacemaker+ キーワードは +crm+ と呼ばれていました。新バージョンでは、後位互換アリアスとして古い名前が維持されていますが、 +pacemaker+ が優先的に使われる構文となっています。
427+
428+=== +authkeys+ ファイル
429+
430++/etc/ha.d/authkeys+ は、相互クラスタノード認証に使われるシークレット(あらかじめ共有されている)を持っています。これはrootしか読み込むことができず、以下のフォーマットに従う必要があります。
431+
432+---------------------------------------------------------------------
433+auth <num>
434+<num> <algorithm> <secret>
435+---------------------------------------------------------------------
436+
437++num+ は1で始まる単純なキーインデックスです。通常、 +authkeys+ ファイルでは1つしかキーがありません。
438+
439++algorithm+ が、使用されるシグネチャーアルゴリズムです。この場合、 +md5+ か +sha1+ を使うことができますが、 +crc+ (単純な周期的冗長チェックですが安全ではない)の使用は推薦されていません。 +secret+ は実際の認証キーです。authkeysファイルは生成されたシークレットを使って、以下のシェルハックで作成することができます。
440+
441+---------------------------------------------------------------------
442+( echo -ne "auth 1\n1 sha1 "; \
443+ dd if=/dev/urandom bs=512 count=1 | openssl md5 ) \
444+ > /etc/ha.d/authkeys
445+chmod 0600 /etc/ha.d/authkeys
446+---------------------------------------------------------------------
447+
448+
449+=== クラスタ設定をクラスタノードに反映させる
450+
451+ha.cfファイルとauthkeys configurationファイルの内容を反映させるためには、 +ha_propagate+ コマンドを使います。このコマンドは以下のいずれかを使って起動します。
452+
453+---------------------------------------------------------------------
454+/usr/lib/heartbeat/ha_propagate
455+---------------------------------------------------------------------
456+
457+または
458+
459+---------------------------------------------------------------------
460+/usr/lib64/heartbeat/ha_propagate
461+---------------------------------------------------------------------
462+
463+このユーティリティは、 +scp+ を使い、 +/etc/ha.d/ha.cf+ でリストされているノードに設定ファイルをコピーします。また、その後、このユーティリティは、sshを使いノードに接続し、 +chkconfig heartbeat on+ を発行して、システム起動でHeartbeatサービスを有効にします。
464+
465+=== Heartbeatサービスを起動する
466+
467+Heartbeatサービスは、マシンでの他のシステムサービスを起動するのと同じように起できます。システムプラットフォームに応じて、以下のいずれかのコマンドを使います。
468+
469+---------------------------------------------------------------------
470+/etc/init.d/heartbeat start
471+---------------------------------------------------------------------
472+
473+---------------------------------------------------------------------
474+service heartbeat start
475+---------------------------------------------------------------------
476+
477+---------------------------------------------------------------------
478+rcheartbeat start
479+---------------------------------------------------------------------
480+
481+<<_the_literal_ha_cf_literal_file,+ha.cf+>>の +pacemaker+ エントリを通じて、Heartbeatは、その残りのサービスと共にPacemakerデーモン(歴史的な理由により +crmd+ と名付けられた)を起動します。数秒後、プロセステーブルでHeartbeatプロセスを探知できます。
482+
483+---------------------------------------------------------------------
484+# ps -AHfww | grep heartbeat
485+root 2772 1639 0 14:27 pts/0 00:00:00 grep heartbeat
486+root 4175 1 0 Nov08 ? 00:37:57 heartbeat: master control process
487+root 4224 4175 0 Nov08 ? 00:01:13 heartbeat: FIFO reader
488+root 4227 4175 0 Nov08 ? 00:01:28 heartbeat: write: bcast eth2
489+root 4228 4175 0 Nov08 ? 00:01:29 heartbeat: read: bcast eth2
490+root 4229 4175 0 Nov08 ? 00:01:35 heartbeat: write: mcast bond0
491+root 4230 4175 0 Nov08 ? 00:01:32 heartbeat: read: mcast bond0
492+102 4233 4175 0 Nov08 ? 00:03:37 /usr/lib/heartbeat/ccm
493+102 4234 4175 0 Nov08 ? 00:15:02 /usr/lib/heartbeat/cib
494+root 4235 4175 0 Nov08 ? 00:17:14 /usr/lib/heartbeat/lrmd -r
495+root 4236 4175 0 Nov08 ? 00:02:48 /usr/lib/heartbeat/stonithd
496+102 4237 4175 0 Nov08 ? 00:00:54 /usr/lib/heartbeat/attrd
497+102 4238 4175 0 Nov08 ? 00:08:32 /usr/lib/heartbeat/crmd
498+102 5724 4238 0 Nov08 ? 00:04:47 /usr/lib/heartbeat/pengine
499+---------------------------------------------------------------------
500+
501+最後に、Pacemaker +crm_mon+ コマンドを通じて、クラスタが機能していることを確認できます。
502+
503+---------------------------------------------------------------------
504+# crm_mon -1
505+============
506+Last updated: Mon Dec 13 14:29:36 2010
507+Stack: Heartbeat
508+Current DC: alice (083146b9-6e26-4ac8-a705-317095d0ba57) - partition with quorum
509+Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b
510+2 Nodes configured, unknown expected votes
511+24 Resources configured.
512+============
513+
514+Online: [ alice bob ]
515+---------------------------------------------------------------------
516+
517+
518+=== これからの作業
519+
520+
521+これまでHeartbeatを設定してきましたが、引き続きPacemakerの設定を行い、クラスタリソースを追加します。以下の文書をよく読んでください。
522+
523+* http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/[Clusters From Scratch]は、Pacemakerクラスタ設定を説明しています。この文書は、おもに、CorosyncでのPacemakerについて説明していますが、"Using Pacemaker Tools"の章の説明はHeartbeatクラスタの説明に適用できます。
524+
525+* http://www.drbd.org/users-guide/[DRBD User's Guide]の章で、PacemakerクラスタにDRBDを統合する方法が説明されています。
526+
527+* 各種のアプリケーションに対して、Heartbeat/Pacemakerクラスタを説明するいくつかのテクニカルガイドがhttp://www.linbit.com/en/education/tech-guides[LINBIT web サイト]で提供されています。
528+
529+
530+== 以前のHeartbeatバージョンからアップグレードする
531+
532+
533+=== Heartbeat 2.1クラスタからアップグレードする:CRMを使わない
534+
535+CRMを使わない Heartbeat 2.1クラスタ( +haresources+ で設定されたクラスタ)を3.0にアップグレードするには、その時点の設定をPacemakerに最適な設定に変換します。
536+
537+Note:このアップグレード手順はアプリケーションのダウンタイムを生じません。しかし、アップグレードが正しく予定され、テストされ、実行されるには、このダウンタイムは数分、おそらくは数秒(設定による)となるでしょう。
538+
539+==== Heartbeatサービスを停止する
540+
541+アップグレード手順はその時点のスタンバイノード(その時点でいかなるリソースをも実行していないクラスタノード)で開始してください。クラスタがactive-active設定(両方のノードがリソースを実行している)を使っている場合、1つのノードを選択し、以下のコマンドを発行して、ピアノードにすべてのリソースを転送してください。
542+
543+---------------------------------------------------------------------
544+# hb_standby
545+---------------------------------------------------------------------
546+
547+
548+次に、 _そのノードでのみ_ 、Heartbeatサービスを停止してください。
549+
550+---------------------------------------------------------------------
551+# /etc/init.d/heartbeat stop
552+---------------------------------------------------------------------
553+
554+
555+==== ソフトウェアをアップグレードする
556+
557+アップグレードを行う場合、単独のHeartbeat 2.1ツリーがモジュラー部分に分割されていることに注意してください。これにより、Heartbeatはソフトウェアの3つの個々の部分と置き換えられます。これらの部分は、Cluster Glue、PacemakerおよびHeartbeat 3で、Heartbeat 3はクラスタメッセージングレイヤのみを構成しています。。
558+
559+* ソースからアップグレードする: _Heartbeat 2.1 をインストールした_ アーカイブ(アンパックされた)で 、+make uninstall+ を実行し、Cluster GlueとHeartbeatをインストールしてください。
560+
561+* ローカルでビルドされたパッケージをアップグレードする:パッケージを手動でインストールする場合、最初に、 +heartbeat+ パッケージをアンインストールしてから、 +cluster-glue+ 、バージョン3の +heartbeat+ パッケージ、 +resource-agents+ そして +pacemaker+ をインストールしてください。
562+
563+* パッケージリポジトリを使ってアップグレードする:APT、YUMあるいはZypperリポジトリを使ってアップグレードを行っている場合、Heartbeatバージョン3およびPacemakerに対してはinstallコマンドだけが実行でき、依存関係は自動的に解決されます。
564+
565+この時点ではまだHeartbeatサービスを再起動しないでください。
566+
567+==== Pacemakerを使うためにHeartbeatクラスタを有効にする
568+
569+ここで、クラスタメッセージングレイヤは、クラスタの起動でPacemakerを起動するよう指示される必要があります。これは +ha.cf+ 設定ファイルに以下を付加して行うことができます。
570+
571+---------------------------------------------------------------------
572+crm respawn
573+---------------------------------------------------------------------
574+
575+IMPORTANT: この時点で 、+ha.cf(5)+ マニュアルページに対して、ha.cfファイルをチェックして、古いオプションを削除する必要があります。 +ha.cf+ の修正が終わると、ファイルをピアノードにコピーしてください。
576+
577+
578+==== Heartbeatを再起動する
579+
580+これでクラスタは、Pacemakerが有効にされたモードで起動できます。クラスタを起動するには、
581+
582+. まだアクティブなノードで +/etc/init.d/heartbeat stop+ を実行してください。これはクラスタリソースを停止します。
583+
584+. スタンバイノード(CIBを作成したところ)で +/etc/init.d/heartbeat start+ を実行してください。これは、ローカルHeartbeatインスタンスとPacemakerを起動し、他のクラスタノードがチェックインするのを待ちます。
585+
586+. 他のノードで +/etc/init.d/heartbeat start+ を実行してください。これは、ローカルHeartbeatインスタンスとPacemakerを起動し、CIBを自動的にフェッチし、アプリケーションを起動します。
587+
588+
589+=== CRMが有効にされたHeartbeat 2.1クラスタからアップグレードする
590+
591+本項は、有効にされた内蔵CRMで、Heartbeat 2.1クラスタをHeartbeat 3.0(Pacemaker)にアップグレードするステップを説明します。
592+
593+NOTE: 正しく計画され実行されるアップグレード手順であれば、アップグレードは、アプリケーションのダウンタイムなしで数分で終了します。プロダクションクラスタをアップグレードする前に、本項で説明されている手順をよく読み理解してください。本項で説明されているすべてのコマンドは +root+ として実行される必要があります。すべてのクラスタノードでは、個々のステップを同時に実行しないでください。その代わり、次のステップに進む前に、それぞれのノードで手順を終えてください。
594+
595+
596+==== クラスタを管理されていないモードにする
597+
598+このステップにおいて、クラスタは、そのリソースのコントロールを一時的に放棄します。これは、クラスタがそのノードやリソースをアップグレード中は監視しないで、その間、アプリケーションやノードの故障を是正しないことを意味します。しかし、その時点で実行されているリソースは実行を続けます。
599+
600+---------------------------------------------------------------------
601+# crm_attribute -t crm_config -n is_managed_default -v false
602+---------------------------------------------------------------------
603+
604+ほとんどの設定では、個々のリソースは個別に +is_managed+ 属性を設定しないで、クラスタ全体属性である +is_managed_default+ がそれらのすべてに適用されます。特定の設定において、この属性が設定されているリソースがある場合、それは、デフォルトが適用されるために削除される必要があります。
605+
606+
607+---------------------------------------------------------------------
608+# crm_resource -t primitive -r <resource-id> -p is_managed -D
609+---------------------------------------------------------------------
610+
611+
612+==== [[_backing_up_the_cib]]CIBのバックアップを作成する
613+
614+この時点で、ClusterInformation Base (CIB)のコピーを保存する必要があります。保存するCIBは、ファイル名が +cib.xml+ に保存されています。このファイルは通常 +/var/lib/heartbeat/crm+ にあります。
615+
616+---------------------------------------------------------------------
617+# cp /var/lib/heartbeat/crm/cib.xml
618+---------------------------------------------------------------------
619+
620+このステップは、クラスタにその時点で接続されている1つのノードでのみ実施してください。このファイルは削除しないでください。ファイルは後でリストアされます。
621+
622+==== [[_stopping_heartbeat_services]]Heartbeatサービスを停止する
623+
624+Heartbeatは +/etc/init.d/heartbeat stop+ で停止できます。また、ディストリビューションでのシステムサービスを停止するには適切なコマンド( +service heartbeat stop+ 、 +rcheartbeat stop+ , etc.)を使用できます。
625+
626+shutdownバグにより影響を受けるHeartbeat(レガシーバージョン)を実行している場合、管理されていないモード(unmanaged mode)では、正常な +crmd+ シャットダウンは正しく機能しません。この場合、上記のコマンドで、正常なサービスシャットダウンを起動した後、crmdプロセスを手動で終了してください。
627+
628+* +ps -AHfww+ を使い、 +crmd+ のプロセスIDを読み込んでください。
629+* +TERM+ シグナルで +crmd+ を終了してください。
630+
631+==== [[_wiping_files_related_to_the_crm]]CRMに関連したファイルを削除する
632+
633+WARNING: 本項を読み進める前に、クラスタノードの1つにCIBのバックアップコピーを作成しておいてください(<<_backing_up_the_cib,CIBのバックアップを作成する>>で説明されているように)。その後、ノードからローカルCRM関連ファイルを削除してください。
634+
635+ファイルを削除するには、CRMがCIB情報を保存するディレクトリ(通常、 +/var/lib/heartbeat/crm+ )からすべてのファイルを削除してください。
636+
637+---------------------------------------------------------------------
638+# rm /var/lib/heartbeat/crm/*
639+---------------------------------------------------------------------
640+
641+==== [[_restoring_the_cib]]CIBをリストアする
642+
643+NOTE: このステップは、すべてのクラスタノードでHeartbeatが停止されたままであり、すべてのクラスタノードで、それらのCIBコンテンツが削除されている場合にのみ実行してください。残留CIB設定を持つノードがまだある場合、<<_wiping_files_related_to_the_crm,CRMに関連したファイルを削除する>>の説明に従ってファイルを削除してください。CIBをリストアするということは、<<_backing_up_the_cib,CIBのバックアップを作成する>>で説明されているCIBバックアップを +/var/lib/heartbeat/crm+ にコピーすることを意味します。
644+
645+--------------------------------------------------------------------
646+# cp ~/cib.xml /var/lib/heartbeat/crm/cib.xml
647+# chown hacluster:haclient /var/lib/heartbeat/crm/cib.xml
648+# chmod 0600 /var/lib/heartbeat/crm/cib.xml
649+---------------------------------------------------------------------
650+
651+このステップは1つのノードでのみ実施する必要があります。つまり、クラスタソフトウェアをアップグレードしようとしている最初のノードです。他のすべてのノードでは、 +/var/lib/heartbeat/crm+ ディレクトリは空の状態でなければなりません(PacemakerはCIBを自動的に配布します)。
652+
653+==== [[_upgrading_software]]ソフトウェアをアップグレードする
654+
655+アップグレード中は、単独のHeartbeat 2.1ツリーがモジュラー部分に分割されていることを認識してください。これにより、Heartbeatはソフトウェアの3つの個々の部分と置き換えられることになります。これらの部分は、Cluster Glue 、PacemakerおよびHeartbeat 3で、Heartbeat 3はクラスタメッセージングレイヤのみを構成するものです。
656+
657+* ソースからアップグレードする: _Heartbeat 2.1 をインストールした _アーカイブ_ (アンパックされた)で、 +make uninstall+ を実行し、そして、Cluster GlueとHeartbeatをインストールしてください。
658+
659+* ローカルでビルドされたパッケージをアップグレードする:パッケージを手動でインストールする場合、最初に、 +heartbeat+ パッケージをアンインストールして、その後、 +cluster-glue+ 、バージョン3の +heartbeat+ パッケージ、 +resource-agents+ そし て+pacemaker+ をインストールしてください。
660+
661+* パッケージリポジトリを使ってアップグレードする:APT、YUMあるいはZypperリポジトリを使ってアップグレードを行っている場合、Heartbeatバージョン3およびPacemakerに対してはinstallコマンドだけを実行できるはずであり、依存関係は自動的に解決されます。
662+これが、クラスタでアップグレードされるべき最後のノードであり、パッケージ管理システムが、ソフトウェアアップグレード後にHeartbeatサービスを再起動しなかった場合、<<_restarting_heartbeat_services,Heartbeatサービスを再起動する>>に進んでください。そうでなければ、次のノードに進み、 <<_stopping_heartbeat_services,Heartbeatサービスを停止する>><<_upgrading_software,ソフトウェアをアップグレードする>>で説明されているように作業する必要があります。
663+
664+==== [[_restarting_heartbeat_services]]Heartbeatサービスを再起動する
665+
666+NOTE: パッケージ管理システムが、インストール中あるいはインストール後に自動的にHeartbeatサービスを再起動する場合、このステップは省略することができます。
667+
668+まず、 +/etc/init.d/heartbeat+ start でCIBをリストアした(参照:<<_restoring_the_cib,CIBをリストアする>>)ノードでHeartbeatを再起動してください。次に、残りのクラスタノードでこのコマンドを繰り返してください。この時点で:
669+
670+* クラスタは、まだ、管理されていないモード(unmanaged mode)(いかなるリソースをも起動、停止あるいは監視しないことを意味する)です。
671+* クラスタはそのノードに古いCIBを再ディストリビューションします。
672+* クラスタは、アップグレード前のCIBスキーマを使っています。
673+
674+
675+==== クラスタを管理されたモード(managed mode)に戻す
676+
677+クラスタソフトウェアがアップグレードされたら、クラスタを管理されたモード(managed mode)に戻してください。
678+
679+---------------------------------------------------------------------
680+# crm_attribute -t crm_config -n is_managed_default -v true
681+---------------------------------------------------------------------
682+
683+
684+==== CIBスキーマをアップグレードする
685+
686+アップグレードされたクラスタは、理論的には、アップグレード前CIBスキーマを操作できますが、CIBを最新のスキーマにアップグレードすることを強く推奨します。アップグレードを行うには、すべてのノードでの間のクラスタ通信が再確立された _後_ 、以下のコマンドを実行してください。
687+
688+---------------------------------------------------------------------
689+# cibadmin --upgrade --force
690+---------------------------------------------------------------------
691+
692+
693+= ヘルプ
694+
695+== 問題を報告する
696+本章は、ソフトウェアに関連したバグや問題に正しく対処する方法を説明しています。
697+
698+=== メーリングリスト
699+Linux-HAプロジェクトは2つのメーリングリストを維持しています。両方とも購読者限定のリストで、 +lists.linux-ha.org+ でホスティングされています。
700+
701+==== Linux-HA
702+
703+これは汎用のコミュニティメーリングリストです。Heartbeatやリソースエージェントに関した一般的な問題はここに投稿することができます。このリストの投稿先アドレスは linux-ha@lists.linux-ha.org です。
704+
705+==== Linux-HA-dev
706+
707+これは開発者用メーリングリストです。改良に関する提案がある場合や、バグを見つけたと思う場合はここに投稿してください。この投稿先アドレスは linux-ha-dev@lists.linux-ha.org です。
708+
709+=== バグ追跡システム
710+Linux-HAプロジェクトは http://developerbugs.linuxfoundation.org でのLinux Foundationにより実施されているパブリックBugzillaインストレーションを使っています。既存のエントリでのバグやコメントを報告するには、最初にアカウントを作成する必要があります。アカウント作成には有効なEメールアドレスが必要です。
711+
712+=== IRC
713+
714+Linux-HA開発者は、通常、 +#linux-ha+ channel の +irc.freenode.net+ サーバで見つけることができます。
715+
716+== パッチを提出する
717+
718+Cluster GlueやHeartbeatで問題を見つけた場合、そして、それを訂正できる場合、パッチを開発者に送ってください。パッチを開発者に送るには、本項で説明されている手順に従ってください。以下のコマンドでホストリポジトリのワーキングコピー(Mercurial _クローン_ )を作成してください。
719+
720+--------------------------------------------------------------------------
721+hg clone http://hg.linux-ha.org/dev heartbeat
722+--------------------------------------------------------------------------
723+
724+新しいMercurialキューと新しいパッチセットを作成してください。
725+
726+-------------------------------------------------------------------------
727+cd heartbeat
728+hg qinit
729+hg qnew --edit --force fix-superfrobnication
730+--------------------------------------------------------------------------
731+
732+NOTE: +--force+ オプションはローカルな修正を、作成したパッチセットに適用します。
733+パッチメッセージでは、以下のような分かりやすい説明を記述してください。
734+
735+--------------------------------------------------------------------------
736+High: IPC: fix superfrobnication on 63-bit platforms
737+
738+In the IPC layer, superfrobnication breaks on 63-bit middle-endian
739+Linux platforms when ACPI is disabled. Fencepost align
740+foobar_create_reqqueue() and guard against memory spinlock starvation
741+to fix this.
742+--------------------------------------------------------------------------
743+
744+
745+これでパッチはメーリングリストで提供され評価されます。
746+
747+--------------------------------------------------------------------------
748+hg email --to=linux-ha-dev@lists.linux-ha.org fix-superfrobnication
749+--------------------------------------------------------------------------
750+
751+一旦、パッチが採用されると、ホスト開発者がそのパッチをリポジトリにプッシュします。この時点で、チェックアウトをホストから更新でき、自分自身のパッチセットを削除できます。
752+
753+--------------------------------------------------------------------------
754+hg qpop -a
755+hg pull --update
756+hg qdelete fix-superfrobnication
757+--------------------------------------------------------------------------
Show on old repository browser