書籍情報

Linuxで作るアドバンストシステム構築ガイド

Linuxで作るアドバンストシステム構築ガイド サポートページ

このページには、本書中で紹介している起動スクリプト等を掲載しています。コピー&ペーストしてご利用ください。また、以下から、すべてのファイルをダウンロードすることもできます。

+をクリックして詳細をご覧ください

1. 高速で安定したシステム

    1.1 安定したシステムを目指して

     1.1.1 ハードウェアの故障やメンテナンスへの対応

     1.1.2 ネットワークの障害や混雑への対応

     1.1.3 アプリケーション停止への対応

     1.1.4 システム全体としての故障対応

    1.2 高速なシステムを目指して

     1.2.1 ファイルシステムの選択

     1.2.2 システムとしての高速化

2. 単一サーバの高速化と障害対策

2.1 ファイルシステムのチューニング

 2.1.1 ジャーナル方式の変更

 2.1.2 ファイルシステムタイプの変更

 2.1.3 RAMディスクの利用

2.2 ネットワークのチューニング

 2.2.1 TCPのチューニング

 2.2.2 UDPのチューニング

2.3 initによるプロセスの監視と再実行

 P.51 inittabの設定例

3. 障害の検出と通知

3.1 障害の通知

 P.56 mailalert.txt:/usr/local/bin/mailalert

 P.57 /usr/local/bin/beepalert

3.2 サーバ状態とサービスの監視

 3.2.1 ネットワークインタフェースの監視

  P.59 /usr/local/bin/linkcheck

 3.2.2 ネットワーク疎通の監視

 3.2.3 WWW/FTPサーバの監視の例

  P.63 /usr/local/bin/wwwcheck

 3.2.4 監視プログラムの定期実行

3.3 expectを使ったサービス監視

 3.3.1 expectの概要

 3.3.2 autoexpectを使ったスクリプトの作成

  P.72 /usr/local/bin/portcheck

 3.3.3 タイムランの実装例

  P.73 /usr/local/bin/timedrun

 3.3.4 POPサーバの監視の例

  P.75 /usr/local/bin/popcheck

3.4 SNMPによる監視

 3.4.1 SNMPによるプロセスの監視の概要

 3.4.2 SNMPサービスの設定

 3.4.3 リソース監視の設定

 3.4.4 リソースに対応したOIDの調査

 3.4.5 リソースの監視の設定

  P.85 /usr/local/bin/snmpcheck

 3.4.6 プロセスの自動再起動

 3.4.7 SNMPによる停止プロセスの起動

 3.4.8 監視と自動復旧

4. ネットワークの無停止技術

4.1 ボンディングによるインタフェースの冗長化

 4.1.1 ボンディングの基本設定

 4.1.2 ボンディングのパラメータの設定

 4.1.3 ネットワークインタフェースの冗長化

4.2 スイッチ経路の冗長化

4.3 Advanced IP Routing

 4.3.1 経路の選択

 4.3.2 経路タイプ

 4.3.3 ルーティングポリシーデータベース

 4.3.4 ipコマンド

 4.3.5 インタフェースデバイスの管理

 4.3.6 プロトコルアドレスの管理

 4.3.7 neighbourテーブルの管理

 4.3.8 経路制御テーブルの管理

 4.3.9 ルーティングポリシーデータベースの管理

4.4 Advanced IP Routingによる経路制御設定

 4.4.1 デフォルト経路の冗長化

  P.130 mailalert.txt:/usr/local/bin/mailalert

 4.4.2 経路間でのバランシング設定

 4.4.3 経路間でのアクセス分割

  P.140 advanced-routeスクリプトポリシー対応版

 4.4.4 ポート番号によるポリシールーティング

4.5 Advanced IP Routingによるサービス品質の確保

 4.5.1 キューイング規則(qdisc)

 4.5.2 クラス階層のモデル

 4.5.3 帯域制御コマンド

 4.5.4 キューイング規則の管理

 4.5.5 classの管理

 4.5.6 フィルタの管理

 4.5.7 フィルタ

4.6 Advanced IP Routingによる帯域制御設定

 4.6.1 クラス階層のモデル化

 4.6.2 クラス階層の定義

 4.6.3 フィルタの定義

 4.6.4 起動時の自動設定

  P.170 /etc/init.d/traffic-control

  P.174 /etc/sysconfig/traffic-control

5. DNSを使った冗長構成の設定

5.1 DNSを使った冗長構成の設定

 5.1.1 DNSサーバを使ったサーバの切り替え

  P.183 /usr/local/bin/update-service

 5.1.2 外部サービス監視

  P.184 /usr/local/bin/pingwatch

  P.185 /usr/local/bin/tcpwatch

  P.188 /usr/local/bin/webwatch

5.2 サービス監視と冗長構成

 5.2.1 heartbeatの概要

 5.2.2 システム構成の計画と準備

 5.2.3 heartbeatのインストール

 5.2.4 heartbeatの設定

  P.198 /etc/ha.d/ha.cf(稼動系)

  P.199 /etc/ha.d/ha.cf(待機系)

 5.2.5 heartbeatの起動

 5.2.6 クラスタの管理

 5.2.7 サービス監視の設定

  P.210 /usr/local/bin/check_active

 5.2.8 STONITHの利用

  P.220 ssh STONITH デバイス/etc/ha.d/ha.cf(稼動系)

  P.221 ssh STONITH デバイス/etc/ha.d/ha.cf(待機系)

  P.224 rackpdu STONITH デバイス/etc/ha.d/ha.cf(稼動系)

  P.225 rackpdu STONITH デバイス/etc/ha.d/ha.cf(待機系)

 5.2.9 heartbeatのログ

5.3 多サーバでの冗長化

 5.3.1 概要

 5.3.2 GUIツールのインストール

 5.3.3 heartbeatの設定手順

 5.3.4 クラスタノードの設定

  P.238 /etc/ha.d/ha.cf(sv01, sv02, sv03)

 5.3.5 管理ユーザとGUIツールの起動

 5.3.6 WWWサービス用のリソースグループの定義

 5.3.7 WWWサービス用のリソースの定義

 5.3.8 メールサービス用のリソースの定義

 5.3.9 リソース制約の設定

 5.3.10 起動順の設定

 5.3.11 CRM全体のパラメータ設定

 5.3.12 リソースの起動

 5.3.13 クラスタの動作確認

 5.3.14 サービス監視の設定

  P.266 /usr/local/bin/check_active_www

  P.268 /usr/local/bin/check_active_mail

 5.3.15 設定ファイルの書式

  P.271 Figure 5.7 の/var/lib/crm/cib.xml

6. 負荷分散の設定

6.1 DNSラウンドロビンによる負荷分散

 6.1.1 DNSラウンドロビンの設定

 6.1.2 DNS Balance

  P.281 /usr/local/bin/update-roundrobin

6.2 負荷分散型プロキシ(Pound)の設定

 6.2.1 Poundの概要

 6.2.2 インストール

 6.2.3 Poundの基本設定と起動

  P.286 最も単純なpoundの設定例

  P.288 /etc/init.d/pound起動スクリプト

 6.2.4 単純な負荷分散設定

  P.292 /usr/local/etc/pound.cfg

 6.2.5 Poundのサーバ監視

  P.293 /usr/local/etc/pound.cfg

 6.2.6 URLによる振り分け

  P.294 /usr/local/etc/pound.cfg

 6.2.7 仮想ドメインへの対応

  P.296 /usr/local/etc/pound.cfg

 6.2.8 セッションの保持

  P.299 /usr/local/etc/pound.cfg

 6.2.9 Poundのログ

 6.2.10 WWWサーバ側のログ

6.3 LVSによる負荷分散

 6.3.1 LVSの概要

 6.3.2 LVSのインストール

 6.3.3 ipvsadmコマンド

 6.3.4 LVSの自動起動設定

 6.3.5 LVSの設定(NAT)

 6.3.6 LVSの設定(ダイレクトルーティング)

6.4 Layer4負荷分散サービスと監視

 6.4.1 ldirectordの概要

 6.4.2 ldirectordのインストール

 6.4.3 ldirectordの設定ファイル

 6.4.4 ldirectordの実行とサービススクリプト

 6.4.5 ldirectordのログ

6.5 Layer7負荷分散サービスと監視

 6.5.1 UltraMonkey-L7

 6.5.2 UltraMonkey-L7のインストール

 6.5.3 UltraMonkey-L7の設定と起動

  P.344 /etc/ha.d/l7directord.cf

 6.5.4 WWWサーバ側のログ

 6.5.5 UltraMoneky-L7のログ

 6.5.6 l7vsadmコマンド

7. データ共有の設定

7.1 rsyncによるデータ共有

 7.1.1 rsyncのインストール

 7.1.2 rsyncサーバの設定

  P.370 /etc/rsyncd.confの設定例

 7.1.3 rsyncクライアントでの同期処理

 7.1.4 sshを使ったrsync

7.2 LDAPによるユーザ情報の共有

 7.2.1 OpenLDAP

 7.2.2 OpenLDAPのインストール

 7.2.3 LDAPサーバの設定

  P.381 slapd.confの設定例

 7.2.4 基本属性の設定

  P.384 LDAPの初期設定(init.ldif)

  P.386 LDAPのユーザ設定(admin.ldif)

 7.2.5 グループの登録

  P.387 LDAPのグループ登録(group.ldif)

 7.2.6 ユーザの登録

  P.388 LDAPのユーザ登録(user.ldif)

 7.2.7 ユーザ認証との連携設定

 7.2.8 LDAPレプリケーションサーバの設定

 7.2.9 LDAPデータのメンテナンス

  P.395 LDAPのユーザのデータ修正(modify-add.ldif)

  P.396 LDAPのユーザのデータ削除(modify-del.ldif)

  P.396 LDAPのユーザのデータ削除(modify-mod.ldif)

7.3 ネットワークミラーリング

 7.3.1 DRBDの概要

 7.3.2 システム構成の計画

 7.3.3 DRBDのインストール

 7.3.4 DRBDの設定

  P.414 /etc/drbd.confの設定例

 7.3.5 DRBDの起動

 7.3.6 ファイルシステムの作成

 7.3.7 DRBDの自動起動

  P.421 /etc/init.d/drbd-wait

 7.3.8 障害時切り替え

 7.3.9 スプリットブレイン時の対応

 7.3.10 DRBDデバイスの管理

 7.3.11 DRBDのログ

8. ストレージの共有

8.1 クラスタファイルシステム

 8.1.1 データ共有での問題

 8.1.2 OCFS2とGFS

 8.1.3 OCFS2の入手とインストール

 8.1.4 OCFS2の設定

  P.435 /etc/ocfs2/cluster.conf

 8.1.5 クラスタサービスの起動

8.2 DRBDによる仮想的なストレージ共有

 8.2.1 DRBDのアクティブ/アクティブ構成

  P.438 /etc/drbd.conf の修正例

 8.2.2 ファイルシステムの作成

 8.2.3 ファイルシステムの自動マウント

8.3 iSCSIによる多サーバでのデータ共有

 8.3.1 iSCSIの概要

 8.3.2 iSCSIイニシエータの導入

 8.3.3 iSCSIイニシエータの設定

 8.3.4 ファイルシステムの作成

 8.3.5 自動マウントの設定

9. 負荷分散・冗長構成・データ共有の組み合わせ

9.1 WWWサーバの負荷分散(NAT構成)

 9.1.1 ソフトウェアの準備

 9.1.2 LVSサーバの設定

  P.455 /etc/ha.d/ldirectord.cf

  P.457 /etc/ha.d/ha.cf(lvs1)

  P.457 /etc/ha.d/ha.cf(lvs2)

 9.1.3 実サーバの設定

  P.459 /etc/rsyncd.conf(www-a)

 9.1.4 動作確認

9.2 負荷分散用サーバとサービスサーバ(WWW)の兼用

 9.2.1 ソフトウェアの準備

 9.2.2 LVS兼用サーバの設定(www-lvs1)

  P.465 /etc/ha.d/ldirectord.cf

  P.466 /etc/ha.d/ha.cf(www-lvs1)

  P.467 /etc/rsyncd.conf(www-lvs1)

 9.2.3 LVS兼用サーバの設定(www-lvs2)

  P.468 /etc/ha.d/ldirectord.cf

  P.468 /etc/ha.d/ha.cf(www-lvs2)

  P.471 /etc/rsyncd.conf(www-lvs2)

 9.2.4 WWW専用サーバの設定(www-a)

9.3 負荷分散型Webクラスタセット

 9.3.1 ソフトウェアの準備

 9.3.2 iSCSIの設定

 9.3.3 OCFS2の設定

 9.3.4 ldirectordの設定

  P.482 /data/ldirectord/etc/ldirectord.cf

 9.3.5 ダイレクトルーティングの実サーバ設定

 9.3.6 ダイレクトルーティングのリソーススクリプト

  P.484 /etc/ha.d/resource.d/NAT_iptables

 9.3.7 WWWサーバの設定

 9.3.8 冗長化設定

  P.486 /etc/ha.d/ha.cf(www-lvs1、www-lvs2、www-lvs3)

  P.487 /usr/local/cluster/check_LVS

 9.3.9 リソース設定

9.4 Layer7負荷分散サービスのクラスタ化

 9.4.1 ソフトウェアの準備

 9.4.2 UltraMonkey-L7サーバの設定

  P.494 /etc/ha.d/conf/l7directord.cf(ultra1, ultra2)

  P.496 /etc/ha.d/ha.cf(ultra1)

  P.496 /etc/ha.d/ha.cf(ultra2)

 9.4.3 実サーバの設定

  P.498 /etc/rsyncd.conf(www-b)

9.5 負荷分散プロキシのクラスタ化

 9.5.1 ソフトウェアの準備

 9.5.2 Poundの設定

  P.501 /usr/local/etc/pound.cfg(pnd1、pnd2)

  P.502 /etc/ha.d/ha.cf(pnd1)

  P.503 /etc/ha.d/ha.cf(pnd2)

 9.5.3 外部スクリプトの準備

  P.504 /usr/local/cluster/pound/check_active

 9.5.4 自動起動の設定

 9.5.5 実サーバの設定

9.6 Sambaクラスタサーバ

 9.6.1 ソフトウェアの準備

 9.6.2 パーティションの設定

 9.6.3 DRBDの設定

  P.510 /etc/drbd.conf(host01, host02)

 9.6.4 DRBDの初期設定

 9.6.5 ファイルシステムの作成

 9.6.6 Sambaの設定

  P.514 Sambaの設定ファイル

 9.6.7 heartbeatの設定

  P.514 /etc/ha.d/ha.cf(host01)

  P.515 /etc/ha.d/ha.cf(host02)

 9.6.8 外部スクリプトの準備

  P.516 /usr/local/cluster/samba/check_active

 9.6.9 自動起動の設定

9.7 NFSクラスタサーバ

 9.7.1 ソフトウェアの準備

 9.7.2 パーティションの設定

 9.7.3 DRBDの設定

  P.523 /etc/drbd.conf(host1, host2)

 9.7.4 DRBDの初期設定

 9.7.5 ファイルシステムの作成

 9.7.6 NFSサーバの設定

 9.7.7 heartbeatの設定

  P.529 /etc/ha.d/ha.cf(host01)

  P.530 /etc/ha.d/ha.cf(host02)

  P.531 /etc/ha.d/resource.d/nfsumount

 9.7.8 NFSサービススクリプトの修正

  P.532 /etc/ha.d/resource.d/nfs(一部)

 9.7.9 外部スクリプトの準備

  P.533 /usr/local/cluster/nfs/check_active

 9.7.10 自動起動の設定

9.8 データベースクラスタサーバ

 9.8.1 ソフトウェアの準備

 9.8.2 パーティションの設定

 9.8.3 DRBDの設定

  P.541 /etc/drbd.conf(host1, host2)

 9.8.4 DRBDの初期設定

 9.8.5 ファイルシステムの作成

 9.8.6 PostgreSQLの設定

 9.8.7 heartbeatの設定

  P.546 /etc/ha.d/ha.cf(host01)

  P.547 /etc/ha.d/ha.cf(host02)

 9.8.8 外部スクリプトの準備

  P.549 /usr/local/cluster/db/check_active

  P.553 /usr/local/bin/postgrescheck

 9.8.9 自動起動の設定

9.9 メールクラスタサーバ(アクティブ/スタンバイ構成)

 9.9.1 ソフトウェアの準備

 9.9.2 smtp.monitorのインストール

 9.9.3 パーティションの設定

 9.9.4 DRBDの設定

  P.558 /etc/drbd.conf(host01, host02)

  P.562 /etc/postfix/main.cf(host1)

 9.9.5 DRBDの初期設定

 9.9.6 ファイルシステムの作成

 9.9.7 Postfixの設定

 9.9.8 LDAPエントリの登録

  P.564 user01.ldif

 9.9.9 heartbeatの設定

  P.564 /etc/ha.d/ha.cf(host01)

  P.565 /etc/ha.d/ha.cf(host02)

 9.9.10 外部スクリプトの準備

  P.566 /usr/local/cluster/mail/check_active

 9.9.11 自動起動の設定

9.10 メールクラスタサーバ(アクティブ/アクティブ構成)

 9.10.1 ソフトウェアの準備

 9.10.2 パーティションの設定

 9.10.3 DRBDの設定

  P.573 /etc/drbd.conf(host01、host02)

 9.10.4 DRBDの初期設定

 9.10.5 ファイルシステムの作成

  P.577 /etc/ocfs2/cluster.conf

 9.10.6 Postfixの設定

  P.579 /etc/postfix/main.cf(host01)

  P.581 /data/dovecot/etc/dovecot.conf(host01)

  P.582 /data/dovecot/etc/dovecot-ldap.conf(host01)

 9.10.7 LDAPエントリの登録

  P.582 user01.ldif

 9.10.8 heartbeatの設定

  P.583 /etc/ha.d/ha.cf(host01)

  P.584 /etc/ha.d/ha.cf(host02)

 9.10.9 自動起動の設定

 9.10.10 リソース設定

 9.10.11 外部スクリプトの準備

  P.591 /usr/local/cluster/mail/check_active

  P.597 /usr/local/bin/imapcheck

10. 応用構成事例

10.1 データベース連携WWWサーバの冗長構成

 10.1.1 二重化システム構成

 10.1.2 外部監視

 10.1.3 ネットワークの冗長化

10.2 大規模メールクラスタリングシステム

 10.2.1 メールサーバの集中化

 10.2.2 メールシステム負荷分散の問題点

 10.2.3 Maildir形式

 10.2.4 ユーザの共有

 10.2.5 大規模メールシステム

Linuxで作るアドバンストシステム構築ガイド リンク集

CentOS

CentOSの公式サイトです。パッケージのダウンロードのほか、ドキュメントなども参照することができます。

Net-SNMP

Net-SNMPの公式サイトです。ソースコードの他、様々なドキュメントを参照することができます。メールリストのアーカイブを検索することもできるため、困ったときに調査することができます。

Internet Systems Consortium, INC

BINDを管理しているISC社の公式サイトです。BINDのソースコードの他、様々なドキュメントを参照することができます。また、BINDだけでなく、DHCP、INNなどもこのサイトで管理しています。

Linux HA

The High-Availability Linux Projectの公式サイトです。heartbeatのソフトウェア、ドキュメント、FAQなどを入手する事ができます。歴史的な開発経緯やWhite Paperなども入手できます。

Pound

Poundのサイトです。ソースコードのダウンロードが可能です。インストール方法から、設定方法までの情報が掲載されています。

UltraMonkey L7

UltraMonkey L7は、日本で作成されたソフトウェアです。そのために、sourceforge.jp上にホームページが掲載されています。ソースコードおよびRPMパッケージのダウンロードが可能です。日本語のドキュメントも用意されています。

The Linux Virtual Server Project

Linux Virtual Server Projectのホームページです。IPVSに関連したパッケージやドキュメントをダウンロードできるほか、LVS用の管理ソフトウェアなどの情報も掲載されています。

rsync

rsyncの公式サイトです。ソースコード、FAQ、ドキュメント、セキュリティ情報などを入手できます。

OpenLDAP

OpenLDAPの公式サイトです。ソースコードのほか、様々なドキュメントが入手できます。管理者向けのガイドも公開されています。

LINBIT

DRBDの開発を行っているLINBIT社のホームページです。DRBDのソースコードとドキュメントの配布を行っています。有償で各種ディストリビューション向けのパッケージの配布と、インストレーションサポートなどのサポートを提供しています。有償サポートではありますが、150ユーロ程度からのサポートメニューがあります。比較的安価にサポートが受けられ、LINBITの動作検証済みのパッケージをダウンロードすることができます。

Linuxで作るアドバンストシステム構築ガイドの先頭へ