Turbolinux CLUSTERPRO X 3.0 簡易導入ガイド ~ MySQL編 ~

Similar documents
CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

CLUSTERPRO MC ProcessSaver 1.0 for Windows 構築ガイド 2012(Sep) NEC Corporation はじめに責任範囲適用範囲概要事前準備クラスタ設定

DHCPサーバのクラスタ化

CLUSTERPRO による MariaDB の HA クラスタ動作検証 第 1 版 日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPRO グループ

NFS On CLUSTERPRO for Linux

はしがき 本書は CLUSTERPRO MC ProcessSaver 1.0 for Linux ( 以後 ProcessSaver と記載します ) と CLUSTERPRO X 3.1 for Linux ( 以後 CLUSTERPRO と記載します ) を組み合わせて フェイルオーバクラスタ

BIGLOBEクラウドホスティングAPIリファレンス

HeartCoreインストールマニュアル

CLUSTERPRO for Linux PostgreSQL HowTo

クラスタ構築手順書

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

<MW-400k > InterSec/MW400k アップデート適用手順書 2017 年 8 月 1 版

CLUSTERPRO/システム構築ガイド

CLUSTERPRO X IIJ GIO インフラストラクチャー P2 動作検証報告 2017 年 11 月日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPROグループ 1 NEC Corporation 2017

HeartCoreインストールマニュアル(PHP版)

Sybase on CLUSTERPRO for Linux HowTo

Windows Server 2003 Service Pack 適用手順書

CLUSTERPRO X for Windows PPガイド

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

( 目次 ) 1. PukiWiki インストールガイド はじめに 制限事項 サイト初期設定 PukiWiki のインストール はじめに データベースの作成 PukiWiki

クラスタ環境でのデータベースのアップグレード手順

Samba on CLUSTERPRO for Linux HOWTO

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

FUJITSU Storage ETERNUS BE50 S2 運用ガイド Symantec Backup Exec 2014 修正適用編

Samba_HowTo.doc

目次 1 環境 バージョン インストール環境 インストール手順 前提条件 CentOS SSHD の設定 VSFTPD の設定 コンテンツ管理 CGI のイ

CLUSTERPRO MC StorageSaver for BootDisk 2.1 (for Windows) インストールガイド 2016(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

KDDI ホスティングサービス G120 KDDI ホスティングサービス G200 WordPress インストールガイド ( ご参考資料 ) rev.1.2 KDDI 株式会社 1

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

CLUSTERPRO X for Windows PPガイド (バックアップツール)

商標について CLUSTERPRO X は日本電気株式会社の登録商標です その他 記載の会社名および商品名は各社の登録商標または商標です - 2 -

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

CLUSTERPRO MC StorageSaver istorage M シリーズ使用時の設定手順 (HP-UX 版 Linux 版 Windows 版 ) 2013(Apr) NEC Corporation istorage M シリーズを使用する場合の StorageSaver 設定手順 (H

クラスタ環境でのデータベースのアップグレード

クラスタ連携ガイド MSCS/MSFC 編

目次 はじめに フリープラグインリスト マイグレーションツール Cobalt Migration Utility Web サーバーの帯域制御プラグイン データベースプラグイン

CLUSTERPRO X VMware vSphere 6.0/6.5 ゲストOS間クラスタ システム構築ガイド

CLUSTERPRO MC StorageSaver for BootDisk 1.2 (for Windows) インストールガイド 2014(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

セットアップカード

( 目次 ) 1. WordPressインストールガイド はじめに 制限事項 サイト初期設定 WordPressのインストール ( コントロールパネル付属インストーラより ) WordPressのインストール ( 手動インス

PowerPoint プレゼンテーション

目次 1. はじめに 本文書の目的 前提条件 略語 事前準備 ホスト名の名前解決 Linux 版パッケージ システム要件 ソフトウェア要件 パッケージ構成

intra-mart ワークフローデザイナ

MotionBoard Ver. 5.6 パッチ適用手順書

CLUSTERPRO X VMware vCenter plug-in 構築ガイド

NEC COBOL Media V2.0 セットアップカード SL438740B01-1

CLUSTERPRO X 4.0 for FileMaker Server ご紹介資料

音声認識サーバのインストールと設定

はじめに 1. 概要本書では SuitePRO V3 にて提供している迷惑メールフィルタのバージョンアップ手順について案内しています なお この手順につきましては 迷惑メールフィルタ機能について オンラインマニュアルの内容通りに設定されていることを前提条件とします

iStorage ソフトウェア VMware vCenter Plug-in インストールガイド

NEC Express5800 シリーズ COBOL Media V1 セットアップカード SL438730B01-2

MxLogonサーバサイドツールキット用UI

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

VB実用Ⅲ⑩ フリーデータベースⅡ

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

How to Install and Configure Panorama Panorama のインストールと設定 Panorama は Palo Alto Networks のサポートサイトからダウンロード可能な VMware イメージです 本書は Panorama のインストールと Panora

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Sophos Enterprise Console

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

Microsoft Word - XOOPS インストールマニュアルv12.doc

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール

XOOPS Cube インストールマニュアル

Microsoft Word JA_revH.doc

CLUSTERPRO MC ProcessSaver 2.1 for Linux リリースメモ 2016(Mar) NEC Corporation ライセンス パッケージのインスト ル セットアップ マニュアル 障害発生時の手順 補足事項 注意事項

Transcription:

Turbolinux Turbolinux CLUSTERPRO CLUSTERPRO X X 3.0 3.0 簡易導入ガイド 簡易導入ガイド MySQL MySQL 編 編 ターボリナックス株式会社

Copyrights/Trademarks 2011 Turbolinux, Inc. All rights reserved. 本書の一部 または全部を著作権所有者の許諾なしに 商用目的のために複製 配布することはできません Turbolinux ターボリナックスの名称およびロゴはターボリナックス株式会社の商標または登録商標です Linux は Linus TM Torvalds 氏の米国および他の国における商標です CLUSTERPRO X は日本電気株式会社の登録商標です FastSync は 日本電気株式会社の商標です RPM は Red Hat, Inc.の商標です X Window System は X Consortium,Inc.の商標です Microsoft Windows は 米国 Microsoft Corporation の米国およびその他の国における登録商標です その他 記載された会社名およびロゴ 製品名などは該当する会社の商標または登録商標です 本ガイドでは TM の表示 を省略しています ご了承ください 2011 年 8 月 1 日

目次 1 章 はじめに...5 1.1 事前確認...5 1.2 参考情報...5 2 章 クラスタシステム構成について...7 2.1 ミラー型クラスタシステムの概要...7 2.2 クラスタ構成情報について...8...12 3.1 現用系サーバ server1 の導入作業...12 3.1.1 OS Turbolinux 11 Server のインストール...12 3.1.2 OS Turbolinux 11 Server のライセンス登録...12 3.1.3 CLUSTERPRO インストールの事前準備...13 3.1.3.1 ミラーディスクの設定... 13 3.1.3.2 OS 起動時間の設定... 14 3.1.3.3 ネットワークの設定... 14 3.1.3.4 ファイアウォールの設定... 14 3.1.3.5 サーバ時刻の同期設定... 15 3.1.4 CLUSTERPRO のインストール...15 3.1.5 CLUSTERPRO のライセンス登録...15 3.1.5.1 CLUSTERPRO 本体 のライセンス登録...15 3.1.5.2 オプション製品 Replicator のノードライセンス登録...16 3.1.5.3 オプション製品 Database Agent のノードライセンス登録...16 3.1.6 MySQL のインストール...16 3.1.6.1 MySQL インストールの事前準備... 16 3.1.6.2 MySQL バイナリファイルのコピー... 17 3.1.6.3 ユーザ及びグループの作成... 17 3.1.6.4 MySQL Server システム テーブルの作成...18 3.1.6.5 MySQL 設定ファイルの準備... 18 3.1.6.6 MySQL サーバの起動 停止スクリプトの準備...19 3.1.6.7 MySQL ユーザの追加... 19 3.2 待機系サーバ server2 の導入作業...20 3.2.1 OS Turbolinux 11 Server のインストール...20 3.2.2 OS Turbolinux 11 Server のライセンス登録...20 3.2.3 CLUSTERPRO インストールの事前準備...20 3.2.3.1 ミラーディスクの設定... 20 3.2.3.2 OS 起動時間の設定... 20 3.2.3.3 ファイアウォールの設定... 20 3.2.3.4 サーバ時刻の同期設定... 21 3.2.4 CLUSTERPRO のインストール...21 3.2.5 CLUSTERPRO のライセンス登録...21 3.2.5.1 CLUSTERPRO 本体 のライセンスを確認...21 3.2.5.2 オプション製品 Replicator のノードライセンス登録...21 3.2.5.3 オプション製品 Database Agent のノードライセンス登録...21 iii

3.2.6 MySQL のインストール...21 3.3 クラスタ構成情報の作成と生成...21 3.3.1 クラスタ構成情報の作成...21 3.3.2 クラスタシステムの生成...39 3.3.3 クラスタシステム生成後の確認...40 3.4 CLUSTERPRO で MySQL を管理するための設定...40 3.4.1 MySQL のデータに係わる設定...40 3.4.2 クラスタシステムで MySQL サーバを起動 停止するための設定...42 3.4.3 クラスタシステムで MySQL サーバを死活監視するための設定...46 3.4.3.1 MySQL モニタリソース用 MySQL データベースとユーザの作成...46 3.4.3.2 MySQL モニタリソースの追加... 47 3.4.3.3 MySQL モニタリソースの動作確認... 49 4 章 導入後に...51 4.1 MySQL に係わる設定の確認...51 4.1.1 MySQL に係わるディレクトリやファイルについて...51 4.1.2 MySQL のサーバ変数の確認...51 4.1.3 MySQL に関連する OS の設定...53 4.1.3.1 MySQL サーバに接続するクライアント数に関連する設定...53 4.1.3.2 MySQL サーバが使用するファイル数に関連する設定...54 4.2 待機系サーバを有効活用する...54 4.2.1 MySQL の管理ツール phpmyadmin を導入...54 4.2.2 phpmyadmin をクラスタに追加...56 4.2.2.1 事前準備... 56 4.2.2.2 グループの追加... 56 4.3 ユーザ アプリケーションを使用した死活監視を行う場合...62 4.3.1 事前準備...62 4.3.2 ユーザ アプリケーション用の EXEC リソースと PID モニタリソースの追加...62 4.4 クラスタシステムの評価について...67 付録 A 構成情報ファイル...68 A.1 clp.conf...68 A.2 scripts/mysqlgroup/exec1/start.sh...70 A.3 scripts/mysqlgroup/exec1/stop.sh...70 iv

1 章 はじめに 1章 はじめに 本資料は Turbolinux CLUSTERPRO X 3.0 以降 CLUSTERPRO を使用し MySQL Standard Edition 以降 MySQL をクラスタ化 フェイルーバクラスタ するために必要なクラスタシステム導入や設定方法について具 体的な構成例を基に説明しています 1.1 事前確認 本資料を基にクラスタシステムを構築する場合は 下記の CLUSTERPRO 本体 製品パッケージやオプション製 品である Turbolinux CLUSTERPRO X Replicator 3.0 以降 Replicator Turbolinux CLUSTERPRO X Database Agent 3.0 以降 Database Agent MySQL 製品の収録物がお手元にあることを確認してください Turbolinux 11 Server サービスパック 1 インストール CD 32ビット版もしくは 64 ビット版 サーバへ OS である Turbolinux 11 Server をインストールする際に使用する CD-ROM です Turbolinux ソフトウェア使用許諾契約書 Turbolinux 11 Server のライセンスを登録する際に必要となるシリアル番号が記載された印刷物です Turbolinux CLUSTERPRO X 3.0 CD サーバへ CLUSTERPRO をインストールする際に使用する CD-ROM です ソフトウェアライセンスキー証明 CLUSTERPRO もくしは CLUSTERPRO のオプション製品を稼動させるために必要となるライセンスキーが 記載された印刷物です MySQL Editions CD サーバへ MySQL をインストールする際に使用する CD-ROM です 1.2 参考情報 本資料の参考情報として 下記ドキュメントを合わせて確認してください Turbolinux 11 Server インストールガイド CLUSTERPRO に付属している Turbolinux 11 Server をインストールする際に合わせて確認してください 本ガイドは 印刷物が CLUSTERPRO の製品パッケージに同梱されています また 次の URL で参照すること ができます http://www.turbolinux.co.jp/products/server/11s/install_guide/index.html Turbolinux 11 Server ユーザーガイド Turbolinux 11 Server http://www.turbolinux.co.jp/products/server/11s/user_guide/index.html 5 / 71

1 章 はじめに CLUSTERPRO スタートアップガイド CLUSTERPRO をはじめてご使用になる方を対象に CLUSTERPRO の製品概要 クラスタシステム導入の ロードマップ 他マニュアルの使用方法についてのガイドラインを記載しています また 最新の動作環境情報や 制限事項などについても紹介しています 本ガイドは Turbolinux CLUSTERPRO X 3.0 CD に ファイル名 L30_SG_JP_06.pdf として収録しています また 次の URL で参照することができます http://www.turbolinux.co.jp/support/document/manual/index.html CLUSTERPRO インストール 設定ガイド CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアと クラスタシステム導入後の 保守 運用を行うシステム管理者を対象読者とし CLUSTERPRO を使用したクラスタシステム導入から運用開 始前までに必須の事項について説明しています 本ガイドは Turbolinux CLUSTERPRO X 3.0 CD に ファイル名 L30_IG_JP_06.pdf として収録しています また 次の URL で参照することができます http://www.turbolinux.co.jp/support/document/manual/index.html CLUSTERPRO リファレンスガイド システム管理者を対象に クラスタシステム設計時に理解しておくべきリソースの詳細情報 製品の機能詳細 メンテナンス関連情報およびトラブルシューティング情報について記載しています 本ガイドは Turbolinux CLUSTERPRO X 3.0 CD に ファイル名 L30_RG_JP_06.pdf として収録しています また 次の URL で参 照することができます http://www.turbolinux.co.jp/support/document/manual/index.html CLUSTERPRO 統合 WebManager 管理者ガイド CLUSTERPRO X 統合 WebManager 以下 統合 WebManager を使用したクラスタシステム導入時に 必須の事項について 実際の手順に則して詳細を説明しています 本ガイドは Turbolinux CLUSTERPRO X 3.0 CD に ファイル名 X30_IWM_JP_01.pdf として収録しています また 次の URL で参照することができ ます http://www.turbolinux.co.jp/support/document/manual/index.html MySQL 5.5 Reference Manual MySQL の導入や MySQL を使用したシステム開発を行うシステムエンジニア 導入後の保守 運用を行うシ ステム管理者を対象者として MySQL の導入から設定 開発やチュニーニング方法等を詳細に説明しています 本マニュアルは MySQL Editions CD の manual フォルダに収録されています 6 / 71

2 章 クラスタシステム構成について 2章 クラスタシステム構成について 本章では 本資料で説明する CLUSTERPRO を使用したクラスタシステムの構成について説明しています 2.1 ミラー型クラスタシステムの概要 本資料で説明する CLUSTERPRO を使用したクラスタシステムの構成を図 1:ミラー型クラスタシステム構成図に まとめます 図 1:ミラー型クラスタシステム構成図 このクラスタシステムは server1 を現用系サーバとして MySQL を動作させ何らかの障害が発生した場合に待 機系サーバ server2 で MySQL を動作させる非常にシンプルな片方向スタンバイクラスタとして構築し MySQL が取り扱うデータは CLUSTERPRO のオプション製品 Turbolinux CLUSTERPRO X Replicator 3.0 の機能を 使用したミラーディスクに保存します また クラスタ対象のアプリケーションである MySQL のクライアントは 現用系 サーバもしくは待機系サーバの IP アドレスではなく CLUSTERPRO が管理するフローティング IP に対してアクセス します クラスタシステムの設計については CLUSTERPRO インストール 設定ガイド の 第 2 章 クラスタシス テムを設計する を参照してください 各サーバのネットワークに係る設定を表 1:各サーバのネットワーク設定にまとめます 本クラスタシステムでは各 サーバに2つのネットワークを使用し パブリック LAN 側では主に MySQL のクライアントに対するサービスを提供す るために使用し インタコネクト LAN 側は サーバ間の死活監視を行うために使用します またクラスタシステムの信 頼性を高めるために 各サーバの COM ポートに接続されたクロスケーブルも使用してサーバ間の死活監視を行いま す 7 / 71

2 章 クラスタシステム構成について サーバ間の死活監視については CLUSTERPRO インストール 設定ガイド の 第 2 章 クラスタシステ ムを設計する ハートビートリソースを理解する を参照してください 表 1:各サーバのネットワーク設定 項目 現用系サーバ server1 待機系サーバ server2 パブリック LAN 側ネットワークインタフェース名 eth0 eth0 パブリック LAN 側 IP アドレス 192.168.10.11 192.168.10.12 パブリック LAN 側サブネットマスク 255.255.255.0 255.255.255.0 インタコネクト LAN 側ネットワークインタフェース名 eth1 eth1 インタコネクト LAN 側 IP アドレス 10.0.0.1 10.0.0.2 インタコネクト LAN 側サブネットマスク 255.0.0.0 255.0.0.0 デフォルトゲートウェイ 192.168.10.1 192.168.10.1 CLUSTERPRO が管理するフローティング IP アドレス 192.168.10.9 192.168.10.10 本クラスタシステムの各サーバには2つの物理ディスク もしくは RAID 構成等による論理ディスク を接続し 一つ 目のディスク /dev/sda に OS である Turbolinux 11 Server や CLUSTERPRO クラスタ対象のアプリケーション である MySQL の実行ファイル等を導入し 二つ目のディスク /dev/sdb には MySQL が取り扱うデータを格納しま す また 一部 CLUSTERPRO がミラーの状態を管理する CLUSTER パーティション ために使用します クラスタシステムにおけるディスクの構成については CLUSTERPRO インストール 設定ガイド の 第 1 章 システム構成を決定する ハードウェア構成後の設定 を参照してください 本クラスタシステムを使用して MySQL を運用することにより 次のメリットがあります 現用系サーバにおいてハードウェア障害やネットワーク障害 OS 等のソフトウェア障害により現用系サーバが 停止もしくはクライアントから MySQL に接続できなくなった場合 待機系サーバにおいて MySQL が起動し てサービスの提供を開始するため クライアントは短時間 数分 の停止はあるが 継続してサービスを利用す ることができる 何らかの原因により現用系サーバにおいて稼働する MySQL に対してクライアントから接続できなくなった場 合 待機系サーバにおいて MySQL が起動してサービスの提供を開始するため クライアントは短時間 数 分 の停止はあるが 継続してサービスを利用することができる 運用上の都合により現用系サーバを再起動する必要がある場合 システム管理者の操作により簡単に現用 系サーバにおいて稼働する MySQL を停止させ 待機系サーバへフェイルオーバさせることが可能です 2.2 クラスタ構成情報について CLUTERPRO では クラスタシステムの構成内容を記述するデータのことを クラスタ構成情報と呼びます 本資 料で説明する CLUSTERPRO を使用したクラスタシステムの構成情報を表 2 クラスタ構成情報にまとめます クラスタ構成情報の作成については CLUSTERPRO インストール 設定ガイド の 第 5 章 クラスタ構 成情報を作成する を参照してください 8 / 71

2 章 クラスタシステム構成について 表 2:クラスタ構成情報 設定対象 クラスタ構成 設定パラメータ 設定値 クラスタ名 cluster サーバ数 2 フェイルオーバ グループ数 2 モニタリソース数 7 LAN ハートビート数 2 カーネルモード LAN ハートビート数 2 COM ハートビート数 1 ディスクハートビート数 0 NP リソース PingNP 192.168.10.1 現用系サーバ サーバ名 server1 インタコネクトの IP アドレス 専用 10.0.0.1 ハートビート リソース インタコネクトの IP アドレス バックアップ 192.168.10.11 待機系サーバ パブリックの IP アドレス 192.168.10.11 COM ハートビートデバイス /dev/ttys0 ディスクハートビートデバイス - ミラーディスクコネクト 10.0.0.1 サーバ名 server2 インタコネクトの IP アドレス 専用 10.0.0.2 インタコネクトの IP アドレス バックアップ 192.168.10.12 管理用のグループ (WebManager 用) 管理用グループのグ ループリソース MySQL 用グループ パブリックの IP アドレス 192.168.10.12 COM ハートビートデバイス /dev/ttys0 ディスクハートビートデバイス - ミラーディスクコネクト 10.0.0.2 タイプ フェイルオーバ グループ名 ManagementGroup 起動サーバ 全てのサーバ グループリソース数 1 タイプ floating ip resource グループリソース名 ManagementIP IP アドレス 192.168.10.9 タイプ フェイルオーバ 9 / 71

2 章 クラスタシステム構成について 設定対象 設定パラメータ 設定値 グループ名 MySQLGroup 起動サーバ 全てのサーバ グループリソース数 3 MySQL 用グループ タイプ の 1 つ目のグループ グループリソース名 リソース IP アドレス floating ip resource MySQL 用グループ タイプ の 2 つ目のグループ グループリソース名 リソース ミラーパーティションデバイス名 mirror disk resource 2 つ目のモニタリソース 3 つ目のモニタリソース 4 つ目のモニタリソース 192.168.10.10 md1 /dev/nmp1 マウントポイント /mnt/md1 データパーティションデバイス名 /dev/sdb2 クラスタパーティションデバイス名 /dev/sdb1 ファイルシステム ext3 MySQL 用グループ タイプ の 3 つ目のグループ グループリソース名 リソース スクリプト 1 つ目のモニタリソース fip1 execute resource exec1 標準スクリプト タイプ user mode monitor モニタリソース名 userw タイプ disk monitor モニタリソース名 diskw1 デバイス名 /dev/sdb2 監視方法 read(o_direct) 監視タイミング 常時 監視対象 - 異常検出時 何もしない タイプ NIC Link Up/Down monitor モニタリソース名 miiw1 監視対象 eth0 異常検出時 ManagementGroup グループ のフェイルオーバ タイプ NIC Link Up/Down monitor モニタリソース名 miiw2 監視対象 eth0 10 / 71

2 章 クラスタシステム構成について 設定対象 5 つ目のモニタリソース 6 つ目のモニタリソース 7 つ目のモニタリソース 設定パラメータ 設定値 異常検出時 MySQLGroup グループのフェ イルオーバ タイプ mirror disk connect monitor モニタリソース名 mdnw1 監視ミラーディスクリソース md1 異常検出時 何もしない タイプ mirror disk monitor モニタリソース名 mdw1 監視ミラーディスクリソース md1 異常検出時 何もしない タイプ MySQL minitor モニタリソース名 mysqlw1 監視対象 MySQL サーバ 異常検出時 MySQLGroup グループのフェ イルオーバ 11 / 71

3章 クラスタシステム導入 本章では 本資料で説明する CLUSTERPRO を使用したクラスタシステムの導入方法について説明しています 3.1 現用系サーバ server1 の導入作業 3.1.1 OS Turbolinux 11 Server のインストール 現用系サーバである server1 に OS Turbolinux 11 Server をインストールします OS は 1つ目のディスク /dev/sda にインストールし 二つ目のディスク /dev/sdb については OS のインストール時に設定等は行いませ ん また ネットワーク設定については 2 章 クラスタシステム構成について の通り eth0 eth1 ともに設定し インス トールタイプは 標準サーバー を選択してインストールします Turbolinux 11 Server のインストール方法については Turbolinux 11 Server インストールガイド を 参照してください OS インストール後に OpenSSH を使用してリモート コンピュータから操作を実行するには 次の処理を実施します リモート コンピュータから ssh 接続で root アカウントとしてログインする場合は OpenSSH の設定ファイル を変更します 設定ファイル/etc/ssh/sshd_config に次の行を追加します PermitRootLogin root アカウントで次のコマンドを実行して OpenSSH サーバを起動します # service yes sshd restart OS が起動する際に OpenSSH サーバを起動させる場合は次のコマンドを root アカウントで実行します # chkconfig sshd on OpenSSH の詳細な情報については Turbolinux 11 Server ユーザーガイド の 第 21 章 SSH Secure SHell サーバー を参照してください 3.1.2 OS Turbolinux 11 Server のライセンス登録 インストール後に Turbolinux 11 Server のライセンス登録を行います ライセンスの登録は コンソールにおいて 1 コマンド turbolicensecfg を実行して 製品シリアル番号 等の必要な情報を入力します ライセンスを登録すること により ターボリナックスがインターネットに公開している不具合やセキュリティホールを修正したパッケージを ネット ワーク経由でアップデートすることが可能になります 1 製品シリアル番号とは CLUSTERPRO 製品パッケージに含まれている Turbolinux ソフトウェア使用許諾契約書 に記載されている シリア ル No です 12 / 71

Turbolinux 11 Server のライセンス登録については Turbolinux 11 Server インストールガイド 第 5 章 ライセンス登録とパッケージアップデート を参照してください 3.1.3 CLUSTERPRO インストールの事前準備 現用系サーバである server1 に CLUSTERPRO をインストールする前に 以下の作業を実施します 3.1.3.1 ミラーディスクの設定 現用系サーバである server1 に接続している2つ目のディスク /dev/sdb にパーティション設定を行います パー ティションを表 3:ミラー用ディスクのパーティション構成にまとめます 表 3:ミラー用ディスクのパーティション構成 デバイス名 パーティション ID 容量 用途 /dev/sdb1 83 10M バイト以上 CLUSTER パーティション /dev/sdb2 83 残り全て ミラーリソース用パーティション ミラーディスクの設定については CLUSTERPRO インストール 設定ガイド 第 1 章 システム構成を 決定する 4. ミラーディスクリソース用のパーティションを設定する を参照してください ディスクのパーティション設定は root アカウントで fdisk コマンドを使用します パーティションの設定と確認 # fdisk /dev/sdb # fdisk -l /dev/sdb Disk /dev/sdb: xxxxx MB, xxxxxxxxxxx bytes cylinders Units = cylinders of bytes Device Boot /dev/sdb1 /dev/sdb2 Start 1 3 End 2??? Blocks 16033+???????? Id 83 83 System Linux Linux fdisk については Turbolinux 11 Server ユーザーガイド 第 37 章 ファイルシステム 37.3. パーティ ションの作成と削除 を参照してください パーティション設定後に root アカウントで下記のコマンドを実行して CLUSTER パーティションを初期化します CLUSTER パーティションの初期化 # dd if=/dev/zero of=/dev/sdb1 上記 fdisk コマンドや dd コマンドを実行すると ディスクの設定を変更したりディスクに保存されている データを消去するため 設定対象以外のディスクを指定しないように注意してください ミラーリソース用パーティションをマウントするためのディレクトリを作成します root アカウントで次のコマンドを実行 します 13 / 71

ミラーリソース用パーティションのマウント ポイントを作成 # mkdir /mnt/md1 次にミラーリソース用パーティションに Ext3 ファイルシステムを作成します ミラーリソース用パーティションをフォーマット # mke3fs /dev/sdb2 ミラーリソース用パーティションの情報を /etc/fstab に記述する必要はありません 3.1.3.2 OS 起動時間の設定 サーバの再起動でフェイルオーバを発生させたい場合に ハートビートタイムアウト時間内にそのサーバが再起動 してしまうと 相手側からはハートビートが継続しているとみなされフェイルオーバが発生しないため サーバの電源を 投入してから OS が起動する時間を ハートビートタイムアウト時間 規定値は 90 秒 以上に長くなるよう OS のブー トローダである GRUB の設定ファイルを編集します GRUB 設定ファイル/boot/grub/grub.conf の timeout 値を変更 timeout 90 OS 起動時間の設定については CLUSTERPRO インストール 設定ガイド 第 1 章 システム構成を決 定する 5. OS 起動時間を調整する を参照してください また GRUB については Turbolinux 11 Server ユーザーガイド の 第 2 章 GRUB GRand Unified Bootloader を参照してください 3.1.3.3 ネットワークの設定 現用系サーバと待機系サーバ間におけるネットワークが正常に動作している必要があります パブリック LAN 及び インタコネクト LAN を介して ping や ssh コマンドを使用してサーバ間で通信することが可能か確認します またサー バ間の名前解決に DNS サーバを利用せず 双方のサーバの hosts ファイルを次のように設定します /etc/hosts 127.0.0.1 192.168.10.11 10.0.0.1 192.168.10.12 10.0.0.2 localhost.localdomain localhost server1.intra.jp server1 server1.intra.jp server1 server2.intra.jp server2 server2.intra.jp server2 3.1.3.4 ファイアウォールの設定 CLUSTERPRO はいくつかのポートを使用してサーバ間で通信を行います 本クラスタシステムでは iptables 等 のファイアウォールは使用しませんが 設定する場合は CLUSTERPRO が使用するポートをクラスタシステムを構成 するサーバ間で使用できるようにファイアウォールの設定する必要があります CLUSTERPRO が使用するポートについては CLUSTERPRO インストール 設定ガイド 第 1 章 シス テム構成を決定する 8. ファイアウォールの設定を確認する を参照してください また ファイアウォールの 詳細な情報については Turbolinux 11 Server ユーザーガイド の 第 22 章 パケットフィルタリングと NAT 及び 第 20 章 ネットワークサービスへのアクセス制御 を参照してください 14 / 71

3.1.3.5 サーバ時刻の同期設定 クラスタシステムにおいて何らかの障害が発生した際に 各サーバの時刻が同期されていると原因解析時間が短 縮することができます タイムサーバを利用するか 下記のスクリプトを定期的に実行することによりサーバ時刻を同期 します CRON を利用したスクリプトの実行 /etc/cron.hourly/timecheck #!/bin/sh /usr/sbin/ntpdate ntp.nict.jp if [ $? = 0 ]; /sbin/hwclock --systohc fi タイムサーバの詳細な情報については Turbolinux 11 Server ユーザーガイド の 第 14 章 タイム サーバー を参照してください 3.1.4 CLUSTERPRO のインストール 現用系サーバである server1 に CLUSTERPRO をインストールします CLUSTERPRO の RPM パッケージは Turbolinux CLUSTERPRO X 3.0 CD に下記のファイル名で収録されています <CD-ROM>/Linux/3.0/jp/server/clusterpro-3.0.3-1.i686.rpm <CD-ROM>/Linux/3.0/jp/server/clusterpro-3.0.3-1.x86_64.rpm 32 ビット版 64 ビット版 root アカウントで server1 にログインし 下記の手順で CLUSTERPRO をインストールします CD-ROM をマウントし 64 ビット版の CLUSTERPRO をインストールする場合 # mount /mnt/cdrom # cd /mnt/cdrom/linux/3.0/jp/server/ # rpm -ihv clusterpro-3.0.3-1.x86_64.rpm Preparing... ########################################### [100%] 1:clusterpro ########################################### [100%] # cd # eject 3.1.5 CLUSTERPRO のライセンス登録 現用系サーバである server1 にインストールした CLUSTERPRO のライセンスを登録します 登録には CLUSTERPRO の製品パッケージに含まれる ソフトウェアライセンスキー証明 に記載されている ライセンスキー と シリアルナンバー 等が必要です CLUSTERPRO のライセンス登録については CLUSTERPRO インストール 設定ガイド 第 4 章 ライ センスを登録する を参照してください 3.1.5.1 CLUSTERPRO 本体 のライセンス登録 現用系サーバである server1 に CLUSTERPRO 本体 のライセンスを登録します ライセンスの登録には clplcnsc コマンドを使用します root アカウントで下記のコマンドを実行します CLUSTERPRO のライセンス登録 対話形式 # clplcnsc -i -p BASE30 15 / 71

登録後に CLUSTERPRO 本体 のライセンスを確認するには root アカウントで下記のコマンドを実行します CLUSTERPRO のライセンスの確認 # clplcnsc -l -p BASE30 clplcnsc コマンドの詳細な情報については CLUSTERPRO リファレンスガイド 第 3 章 CLUSTERPRO コマンドリファレンス ライセンスを管理する clplcnsc コマンド を参照してください 3.1.5.2 オプション製品 Replicator のノードライセンス登録 現用系サーバである server1 に Replicator Turbolinux CLUSTERPRO X Replicator 3.0 のノードライセン スを登録します ライセンスの登録には clplcnsc コマンドを使用します root アカウントで下記のコマンドを実行しま す Replicator のノードライセンス登録 対話形式 # clplcnsc -i -p REPL30 登録後に Replicator のノードライセンスを確認するには root アカウントで下記のコマンドを実行します Replicator のノードライセンスの確認 # clplcnsc -l -p REPL30 3.1.5.3 オプション製品 Database Agent のノードライセンス登録 現用系サーバである server1 に Database Agent Turbolinux CLUSTERPRO X Database Agent 3.0 の ノードライセンスを登録します ライセンスの登録には clplcnsc コマンドを使用します root アカウントで下記のコマン ドを実行します Database Agent のノードライセンス登録 対話形式 # clplcnsc -i -p DBAG30 登録後に Database Agent のノードライセンスを確認するには root アカウントで下記のコマンドを実行します Database Agent のノードライセンスの確認 # clplcnsc -l -p DBAG30 3.1.6 MySQL のインストール 現用系サーバである server1 に MySQL をインストールします インストールする MySQL は MySQL Editions CD のファイル名 MySQL_Enterprise_DVD.pdf を確認します server1 には MySQL Server 5.5.13 TAR for Generic Linux 2.6 x86 (64bit) を以下の手順でインストールします 3.1.6.1 MySQL インストールの事前準備 OS に含まれる MySQL 5.0 がインストールされていないか rpm コマンドを実行して確認します もしインストールさ れている場合は rpm コマンドを実行してアンインストールします 16 / 71

MySQL Server パッケージの確認 # rpm -qa grep -i mysql-server 3.1.1 OS Turbolinux 11 Server のインストール の例の通り インストールタイプに 標準サーバー を選択してインストールした場合は OS に含まれる MySQL 5.0 はインストールされません MySQL は Linux ネイティブ非同期 I/O 機能を使用するため RPM パッケージ libaio をインストールする必要が あります インストールするサーバがインターネットへ接続できる場合は 下記のコマンドを実行することによりターボリ ナックスから libaio をダウンロードしてインストールすることが可能です libaio パッケージのインストール # turbo+ -i libaio turbo+コマンドの詳細な情報については Turbolinux 11 Server ユーザーガイド 第 28 章 ソフトウェ アの管理 turbo+ を参照してください インストールするサーバがインターネットへ接続できない場合は 下記の FTP サーバから RPM パッケージをダウン ロードしてインストールしてください 32 ビット版 64 ビット版 ftp://ftp.turbolinux.co.jp/pub/turbolinux/turbolinux/ia32/server/11/updates/misc/rpms/libaio-0.3.106-1.i686.rpm ftp://ftp.turbolinux.co.jp/pub/turbolinux/turbolinux/x64/server/11/updates/misc/rpms/libaio-0.3.106-1.x86_64.rpm 3.1.6.2 MySQL バイナリファイルのコピー MySQL Editions CD から MySQL バイナリを対象サーバにコピーします MySQL バイナリファイルのコピー # # # # # # # mount /mnt/cdrom cp /mnt/cdrom/v26609-01.zip. unzip V26609-01.zip 圧縮ファイルを解凍 md5sum -c mysql-advanced-5.5.13-linux2.6-x86_64.tar.gz.md5 ファイルを確認 tar xvzf mysql-advanced-5.5.13-linux2.6-x86_64.tar.gz -C /usr/local/ cd /usr/local/ ln -s mysql-advanced-5.5.13-linux2.6-x86_64 mysql 3.1.6.3 ユーザ及びグループの作成 MySQL 用のユーザ及びグループを作成します ユーザ及びグループの作成 # groupadd mysql # adduser -c 'MySQL User' -g mysql -G mysql mysql MySQL 用グループ mysql 及びユーザ mysql を作成する場合 GID UID を現用系サーバと待機系 サーバで同じにするようにしてください MySQL Editions CD からコピーした MySQL バイナリ及び保存したディレクトリの権限を変更します 17 / 71

パーミッションの変更 # cd /usr/local/mysql # chown -R mysql:mysql * MySQL 用ユーザ mysql の環境変数を設定するために ホームディレクトリの.bashrc ファイルに次の行を追加し ます /home/mysql/.bashrc ## for export export export export export MySQL MYSQL_HOME=/usr/local/mysql PATH=${MYSQL_HOME}/bin:${PATH} LD_LIBRARY_PATH=${MYSQL_HOME}/lib:/usr/lib:${LD_RUN_PATH} LD_RUN_PATH=${MYSQL_HOME}/lib:${LD_RUN_PATH} MANPATH=${MYSQL_HOME}/man:${MANPATH} 3.1.6.4 MySQL Server システム テーブルの作成 MySQL Server のシステム テーブルを作成します システム テーブルの作成 # su - mysql $ cd ${MYSQL_HOME} $./scripts/mysql_install_db --basedir=${mysql_home} --datadir=${mysql_home}/data --ldata=${mysql_home}/data --user=mysql Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER! To do so, start the server, issue the following commands: /usr/local/mysql/bin/mysqladmin -u root password 'new-password' /usr/local/mysql/bin/mysqladmin -u root -h server1 password 'new-password' Alternatively you can run: /usr/local/mysql/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/local/mysql/scripts/mysqlbug script! 3.1.6.5 MySQL 設定ファイルの準備 MySQL の設定ファイル my.cnf を準備します 18 / 71

設定ファイルをコピー # cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf 3.1.6.6 MySQL サーバの起動 停止スクリプトの準備 MySQL サーバの起動 停止スクリプトを準備します 起動 停止スクリプトをコピー # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/ 次のコマンドを実行して MySQL サーバを起動してみます MySQL サーバの起動 # service mysql.server start 問題なく起動したことを確認した後に 次のコマンドを実行して MySQL サーバを停止します MySQL サーバの停止 # service mysql.server stop OS が起動する際に MySQL サーバを起動するように設定する必要はありません MySQL サーバの起動 停止は CLUSTERPRO が管理します 3.1.6.7 MySQL ユーザの追加 次のスクリプトを mysql アカウントで実行し MySQL ユーザ OS のユーザアカウントではない に係わる設定を実 行します 19 / 71

MySQL ユーザに係わる設定を行うスクリプト #!/bin/bash ### root ユーザのパスワード設定 mysql -h localhost -u root << EOF select Host, User from mysql.user; SET PASSWORD FOR root@localhost = PASSWORD('turbolinux'); exit EOF ### mysql ユーザの作成 mysql -h localhost -u root -pturbolinux << EOF select Host, User from mysql.user; GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'192.168.10.10' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; FLUSH PRIVILEGES; exit EOF 3.2 待機系サーバ server2 の導入作業 3.2.1 OS Turbolinux 11 Server のインストール 待機系サーバである server2 に OS Turbolinux 11 Server をインストールします OS のインストールについて は 現用系サーバへ OS のインストールを説明している 3.1.1 OS Turbolinux 11 Server のインストール と同様 の作業を行います 3.2.2 OS Turbolinux 11 Server のライセンス登録 インストール後に Turbolinux 11 Server のライセンス登録を行います ライセンスの登録も現用系サーバと同様 の作業 3.1.2 OS Turbolinux 11 Server のライセンス登録 を行います 3.2.3 CLUSTERPRO インストールの事前準備 待機系サーバである server2 に CLUSTERPRO をインストールする前に 以下の作業を実施します 3.2.3.1 ミラーディスクの設定 待機系サーバである server2 に接続している2つ目のディスク /dev/sdb にパーティション設定を行います パー ティションの設定も現用系サーバと同様の作業 3.1.3.1 ミラーディスクの設定 を行います 3.2.3.2 OS 起動時間の設定 OS 起動時間の設定も現用系サーバと同様の作業 3.1.3.2 OS 起動時間の設定 を行います 3.2.3.3 ファイアウォールの設定 ファイアウォールの設定も現用系サーバと同様の作業 3.1.3.4 ファイアウォールの設定 を行います 20 / 71

3.2.3.4 サーバ時刻の同期設定 サーバ時刻の同期も現用系サーバと同様の作業 3.1.3.5 サーバ時刻の同期設定 を行います 3.2.4 CLUSTERPRO のインストール 待機系サーバである server2 に CLUSTERPRO をインストールします CLUSTERPRO のインストールも現用系 サーバと同様の作業 3.1.4 CLUSTERPRO のインストール を行います 3.2.5 CLUSTERPRO のライセンス登録 待機系サーバである server2 にインストールした CLUSTERPRO のライセンスを登録します 登録には CLUSTERPRO の製品パッケージに含まれる ソフトウェアライセンスキー証明 に記載されている ライセンスキー と シリアルナンバー 等が必要です 3.2.5.1 CLUSTERPRO 本体 のライセンスを確認 現用系サーバに CLUSTERPRO 本体 のライセンス登録を完了している場合 待機系サーバには CLUSTERPRO 本体 のライセンスを登録する必要はありません 現用系サーバに CLUSTERPRO 本体 のライセ ンス登録を完了しているか確認してください 3.2.5.2 オプション製品 Replicator のノードライセンス登録 待機系サーバである server2 に Replicator のノードライセンスを登録します ノードライセンスの登録も現用系 サーバと同様の作業 3.1.5.2 オプション製品 Replicator のノードライセンス登録 を行います 3.2.5.3 オプション製品 Database Agent のノードライセンス登録 待機系サーバである server2 に Database Agent のノードライセンスを登録します ノードライセンスの登録も現 用系サーバと同様の作業 3.1.5.3 オプション製品 Database Agent のノードライセンス登録 を行います 3.2.6 MySQL のインストール 待機系サーバである server2 に MySQL をインストールします MySQL のインストールも現用系サーバと同様の 作業 3.1.6 MySQL のインストール を行います 3.3 クラスタ構成情報の作成と生成 3.3.1 クラスタ構成情報の作成 2.2 クラスタ構成情報について の表 2 クラスタ構成情報を基に WebManager から起動した Builder を用いて クラスタ構成情報を作成します WebManager については CLUSTERPRO インストール 設定ガイド 第 5 章 クラスタ構成情報を作 成する WebManager を起動する 及び CLUSTERPRO リファレンスガイド 第 1 章 WebManager の機能 を参照してください クライアント PC で Web ブラウザを起動し アドレスに現用系サーバの実 IP アドレス 192.168.10.11 と WebManager のポート番号 29003 を入力します 現用系サーバの WebManager に接続する場合の URL 21 / 71 http://192.168.10.11:29003/

クラスタが未構成の場合 確認画面が表示されます 図 2:確認画面 クラスタ生成ウィザードを開始する をクリックしてウィザードを開始します 図 3:クラスタ生成ウィザード画面 クラスタ名 M 入力ボックスに cluster を入力し 管理 IP アドレス I 入力ボックスに WebManager 用フ ローティング IP アドレス 192.168.10.9 を入力して 次へ N > をクリックします 22 / 71

図 4:クラスタ生成ウィザード画面 - サーバの定義 待機系サーバである server2 を追加します サーバの定義一覧 L 右の 追加 D ボタンをクリックし サーバ 2 追加 ダイヤログボックスの サーバ名または IP アドレス N 入力ボックスに server2 を入力して OK ボタンを クリックし server2 が追加されたことを確認し 次へ N > をクリックします 図 5:クラスタ生成ウィザード画面 - インタコネクトの設定 インタコネクト一覧 L に自動的に各サーバの IP アドレスが表示されます インタコネクト専用ネットワークである 10.0.0.0 / 8 の各サーバの IP アドレスが 優先度 の 1 に 上へ U もしくは 下へ O ボタンをクリックして移 動します また MDC を 使用しない から各ネットワークに mdc1 mdc2 を選択します 設定後に 次へ N > を 2 現用系サーバ server1 からホスト名 server2 でアクセスできる必要があります 23 / 71

クリックします 図 6:クラスタ生成ウィザード画面 - NP 解決の設定 デフォルトゲートウェイである 192.168.10.1 に対して ping を実行し NP ネットワークパーティション 解決を行う ように設定します 追加 D ボタンをクリックし NP 解決を追加し Ping ターゲット に 192.168.10.1 を入力しま す 次に 調整 T ボタンをクリックして ネットワークパーティション解決調整プロパティ ダイヤログボックスの NP 発生時動作 で サービス停止 T を選択して OK ボタンをクリックします 設定後に 次へ N > をクリックします 図 7:クラスタ生成ウィザード画面 - グループ一覧 グループの定義を行います この例では グループ一覧 L に管理グループ ManagementGroup が追加さ れています プロパティ P や グループリソース G ボタンをクリックして設定内容を確認します 24 / 71

MySQL 用グループを追加するために 追加 D ボタンをクリックします 図 8:グループの定義画面 名前 M 入力ボックスに MySQLGroup を入力し 次へ N > をクリックします 図 9:グループの定義 MySQLGroup 画面 - 起動可能サーバ一覧 全てのサーバでフェイルオーバ可能 P がチェックされていることを確認し 次へ N > をクリックします 25 / 71

図 10:グループの定義 MySQLGroup 画面 - 起動可能サーバ一覧 追加するグループ属性を確認し 次へ N > をクリックします 図 11:グループの定義 MySQLGroup 画面 - グループリソース一覧 グループリソース フローティング IP アドレス を追加します 追加 D ボタンをクリックします 26 / 71

図 12:グループ MySQLGroup のリソース定義画面 タイプ T に floating ip resource を選択し 名前 M 入力ボックスに fip1 を入力し 次へ N > をク リックします 図 13:グループ MySQLGroup のリソース定義画面 - 依存関係設定 内容を確認し 次へ N > をクリックします 27 / 71

図 14:グループ MySQLGroup のリソース定義画面 - 復旧動作設定 内容を確認し 次へ N > をクリックします 図 15:グループ MySQLGroup のリソース定義画面 - 詳細設定 IP アドレス I 入力ボックスに 192.168.10.10 を入力し 完了 をクリックします 次に グループリソース ミラーディスクリソース を追加します グループの定義 MySQLGroup 画面で 追加 D ボタンをクリックします 28 / 71

図 16:グループ MySQLGroup のリソース定義画面 タイプ T に mirror disk resource を選択し 名前 M 入力ボックスに md1 を入力し 次へ N > をク リックします 図 17:グループ MySQLGroup のリソース定義画面 - 依存関係設定 内容を確認し 次へ N > をクリックします 29 / 71

図 18:グループ MySQLGroup のリソース定義画面 - 復旧動作設定 内容を確認し 次へ N > をクリックします 図 19:グループ MySQLGroup のリソース定義画面 - 詳細設定 ミラーパーティションデバイス名 M に /dev/nmp1 を選択 マウントポイント I 入力ボックスに /mnt/md1 を入力 データパーティションデバイス名 D に /dev/sdb2 を選択 クラスタパーティションデバ イス名 C に /dev/sdb1 を選択 ファイルシステム F に ext3 を選択して 完了 をクリックします 30 / 71

最後に グループリソース EXEC リソース を追加します グループの定義 MySQLGroup 画面で 追加 D ボタンをクリックします 図 20:グループ MySQLGroup のリソース定義画面 タイプ T に execute resource を選択し 名前 M 入力ボックスに exec1 を入力し 次へ N > をク リックします 図 21:グループ MySQLGroup のリソース定義画面 - 依存関係設定 31 / 71

内容を確認し 次へ N > をクリックします 図 22:グループ MySQLGroup のリソース定義画面 - 復旧動作設定 内容を確認し 次へ N > をクリックします 図 23:グループ MySQLGroup のリソース定義画面 - 詳細設定 後で MySQL サーバの起動 停止に係わる設定を行うため ここでは 完了 をクリックします 32 / 71

図 24:グループの定義 MySQLGroup 画面 - グループリソース一覧 グループ MySQLGroup に3つのリソースが追加されたことを確認し 完了 をクリックします 図 25:クラスタ生成ウィザード画面 - グループ一覧 グループ一覧 L に MySQLGroup が追加されたことを確認し 次へ N > をクリックします 33 / 71

図 26:クラスタ生成ウィザード画面 - モニタリソース一覧 モニタリソース userw を選択し プロパティ P をクリックして 監視 固有 の 監視方法 M に keepalive を選択してください 図 27: userw モニタリソースのプロパティ OK ボタンをクリックして クラスタ生成ウィザード 画面に戻り 次にモニタリソース disk monitor を追加します モニタリソース一覧 L 右の 追加 D ボタンをクリックします 34 / 71

図 28:モニタリソースの定義 タイプ T に disk monitor を選択し 名前 M 入力ボックスに diskw1 を入力し 次へ N > をクリック します 図 29:モニタリソースの定義 - 監視 共通 設定 内容を確認し 次へ N > をクリックします 35 / 71

図 30:モニタリソースの定義 - 監視 固有 設定 監視方法 M に READ O_DIRECT を選択 監視先 T に /dev/sdb2 を選択 次へ N > をクリック します 図 31:モニタリソースの定義 - 回復動作設定 回復対象 に 参照 W ボタンをクリックして MySQLGroup を選択し 完了 ボタンをクリックします 次にモ ニタリソース NIC Link Up/Down monitor を追加します モニタリソース一覧 L 右の 追加 D ボタンをク 36 / 71

リックします 図 32:モニタリソースの定義 タイプ T に NIC Link Up/Down monitor を選択し 名前 M 入力ボックスに miiw1 を入力し 次へ N > をクリックします 図 33:モニタリソースの定義 - 監視 共通 設定 内容を確認し 次へ N > をクリックします 37 / 71

図 34:モニタリソースの定義 - 監視 固有 設定 監視対象 T 入力ボックスに eth0 を入力し 次へ N > をクリックします 図 35:モニタリソースの定義 - 回復動作設定 回復対象 に 参照 W ボタンをクリックして ManagementGroup を選択し 完了 ボタンをクリックします 最後に グループ MySQLGroup 用のモニタリソース NIC Link Up/Down monitor を同様の手順で追加します 38 / 71

図 36:クラスタ生成ウィザード画面 - モニタリソース一覧 追加したモニタリソースが モニタリソース一覧 L に表示されていることを確認し 完了 ボタンをクリックしてク ラスタの生成を完了します 図 37:Cluster Manager 画面 以上で 基本的なクラスタ構成情報の作成が完了します 3.3.2 クラスタシステムの生成 作成したクラスタ構成情報を反映させクラスタシステムを生成します クライアント PC の Web ブラウザに表示され ている WebManager から起動された Builder の ファイル F メニューから 設定の反映 A をクリックします 39 / 71

設定を反映しますか というポップアップメッセージが表示されるので はい をクリックします 3.3.3 クラスタシステム生成後の確認 設定の反映後に現用系サーバと待機系サーバを再起動し クライアント PC の Web ブラウザから WebManager に接続してクラスタシステムが動作していることを確認します WebManager への接続は 管理用フローティング IP 192.168.10.11 に接続します 管理用フトーティング IP の WebManager に接続する場合の URL http://192.168.10.9:29003/ WebManager を使用して クラスタを構成するサーバやグループ 各リソースに問題がないか確認します 図 38:Cluster Manager 画面 - クラスタ起動後 クラスタシステムの確認方法については CLUSTERPRO インストール 設定ガイド の 第 6 章 クラス タシステムを確認する を参照してください 3.4 CLUSTERPRO で MySQL を管理するための設定 生成したクラスタシステムにおいて MySQL サーバの起動 停止や死活監視 データの管理等を行うように設定を 行います 3.4.1 MySQL のデータに係わる設定 現用系サーバ server1 や待機系サーバ server2 にインストールした MySQL は /usr/local/mysql/data ディレ クトリにデータを保存するように設定しています このディレクトリをクラスタシステムの MySQLGroup グループの mirror disk resource である md1 に移動します 40 / 71

各サーバで次のコマンドを実行しデータを移動します なお次のコマンドは MySQLGroup グループが現用系サー バである server1 で起動していることを前提にしています server1 で MySQLGroup グループが起動していることを確認 [root@server1 ~]# clpstat ======================== CLUSTER STATUS =========================== Cluster : cluster <server> *server1...: Online lankhb1 : Normal Kernel Mode LAN Heartbeat lankhb2 : Normal Kernel Mode LAN Heartbeat pingnp1 : Normal ping resolution server2...: Online lankhb1 : Normal Kernel Mode LAN Heartbeat lankhb2 : Normal Kernel Mode LAN Heartbeat pingnp1 : Normal ping resolution <group> ManagementGroup.: Online current : server1 ManagementIP : Online MySQLGroup...: Online current : server1 exec1 : Online fip1 : Online md1 : Online <monitor> diskw1 : Normal mdnw1 : Normal mdw1 : Normal miiw1 : Normal miiw2 : Normal userw : Normal ===================================================================== server1 で MySQLGroup グループの md1 リソースのディスクがマウントされていることを確認 [root@server1 ~]# mount /dev/sda2 on / type ext3 (rw) none on /proc type proc (rw) sysfs on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw) /dev/nmp1 on /mnt/md1 type ext3 (rw) server1 で MySQL サーバが起動していないことを確認 [root@server1 mysql]# service mysql.server status ERROR! MySQL is not running 41 / 71

server1 で MySQL のデータをミラーディスクへ移動しリンクを作成 [root@server1 ~]# cd /usr/local/mysql [root@server1 mysql]# mv /usr/local/mysql/data /mnt/md1/ [root@server1 mysql]# ln -s /mnt/md1/data data server1 で MySQL サーバが起動 停止することを確認 [root@server1 mysql]# service mysql.server Starting MySQL... SUCCESS! [root@server1 mysql]# service mysql.server SUCCESS! MySQL running (31383) [root@server1 mysql]# service mysql.server Shutting down MySQL. SUCCESS! [root@server1 mysql]# service mysql.server ERROR! MySQL is not running start status stop status server2 で MySQL サーバが起動していないことを確認 [root@server2 ~]# service mysql.server status ERROR! MySQL is not running server2 で MySQL のデータを削除しミラーディスクへリンクを作成 [root@server2 ~]# cd /usr/local/mysql [root@server2 mysql]# rm -Rf data [root@server2 mysql]# ln -s /mnt/md1/data data server2 において MySQLGroup グループを server1 から server2 へ移動 [root@server2 mysql]# clpgrp -m MySQLGroup -h server1 -a server2 Command succeeded. WebManager からグループを移動することも可能です グループ移動後に server2 で MySQL サーバが起動 停止することを確認 [root@server2 mysql]# service mysql.server status SUCCESS! MySQL running (5547) [root@server2 mysql]# service mysql.server stop Shutting down MySQL. SUCCESS! [root@server2 mysql]# service mysql.server status ERROR! MySQL is not running 3.4.2 クラスタシステムで MySQL サーバを起動 停止するための設定 MySQL のデータに係わる設定完了後に クラスタシステムで MySQL サーバを起動 停止するための設定を行い ます ここでは WebManager Builder を使用して MySQLGroup グループの execute resource である exec1 リソースのスクリプトに MySQL サーバの起動 停止を追加することにより実現します クライアント PC の Web ブラウザから WebManager に接続 http://192.168.10.9:29003/ して ファイル F メニュー下のモードを 設定モード Builder に変更 にします 次に ファイル F メニューから 設定の取得 T を選択して 現在の設定情報を取得します 42 / 71

図 39:Webmanager 画面 - exec1 リソースの選択 cluster Groups MySQLGroup exec1 を選択し 右クリック後に表示されるメニューから プロパ ティ P を選択します 図 40: exec1 リソースのプロパティ画面 詳細 タブの Start script を選択し 編集 E ボタンをクリックすることで エディタが起動し MySQLGroup グ ループが起動する際に実行されるスクリプト start.sh を編集することができます 次のとおり MySQL サーバを起動 する行 太字の 2 行 を追加します 43 / 71

start.sh #! /bin/sh #*************************************** #* start.sh * #*************************************** ulimit -s unlimited if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service mysql.server start else echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1" if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service mysql.server start else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0 次に 詳細 タブの Stop script を選択し 編集 E ボタンをクリックすることで エディタが起動し MySQLGroup グループが停止する際に実行されるスクリプト stop.sh を編集することができます 次のとおり MySQL サーバを停止する行 太字の 2 行 を追加します 44 / 71

stop.sh #! /bin/sh #*************************************** #* stop.sh * #*************************************** ulimit -s unlimited if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service mysql.server stop else echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1" if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service mysql.server stop else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0 編集後に OK ボタンをクリックして exec1 リソースの変更を完了します WebManager から起動された Builder の ファイル F メニューから 設定の反映 A をクリックし 変更した内容をクラスタへ反映します 反映後に MySQLGroup グループを WebManager もしくはコマンドから再起動し グループが起動したサーバで MySQL サーバが起動するか確認します 45 / 71

server1 で MySQLGroup グループが再起動した場合 [root@server1 mysql]# clpstat ======================== CLUSTER STATUS =========================== Cluster : cluster <server> *server1...: Online lankhb1 : Normal Kernel Mode LAN Heartbeat lankhb2 : Normal Kernel Mode LAN Heartbeat pingnp1 : Normal ping resolution server2...: Online lankhb1 : Normal Kernel Mode LAN Heartbeat lankhb2 : Normal Kernel Mode LAN Heartbeat pingnp1 : Normal ping resolution <group> ManagementGroup.: Online current : server1 ManagementIP : Online MySQLGroup...: Online current : server1 exec1 : Online fip1 : Online md1 : Online <monitor> diskw1 : Normal mdnw1 : Normal mdw1 : Normal miiw1 : Normal miiw2 : Normal userw : Normal ===================================================================== [root@server1 mysql]# service mysql.server status SUCCESS! MySQL running (15784) 3.4.3 クラスタシステムで MySQL サーバを死活監視するための設定 クラスタシステムで MySQL サーバを起動 停止するための設定完了後に MySQL サーバを死活監視するための 設定を行います ここでは MySQL モニタリソースを追加し 定期的に MySQL に接続して SQL を実行して死活監視 を行うように設定します 3.4.3.1 MySQL モニタリソース用 MySQL データベースとユーザの作成 MySQL モニタリソースで使用する MySQL のデータベースとユーザを作成します 現用系サーバもしくは待機系 サーバにおいて mysql ユーザアカウントで次のスクリプトを実行します これにより データベース CPROAgent_db と MySQL ユーザ CPROAgent が作成されます 46 / 71

3.4.3.1 MySQL データベースとユーザの作成 #!/bin/bash ### CPROAgent ユーザの作成 mysql -h 192.168.10.10 -u mysql -pturbolinux << EOF select Host, User from mysql.user; GRANT ALL PRIVILEGES ON *.* TO 'CPROAgent'@'%' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'CPROAgent'@'192.168.10.10' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'CPROAgent'@'localhost' IDENTIFIED BY 'turbolinux' WITH GRANT OPTION; FLUSH PRIVILEGES; exit EOF ### MySQL モニタリソース用データベースの作成 mysql -h 192.168.10.10 -u CPROAgent -pturbolinux << EOF DROP DATABASE IF EXISTS CPROAgent_db; CREATE DATABASE CPROAgent_db CHARACTER SET utf8; SHOW DATABASES; exit EOF 3.4.3.2 MySQL モニタリソースの追加 WebManager Builder を使用して MySQL モニタリソースを追加します クライアント PC の Web ブラウザから WebManager に接続 http://192.168.10.9:29003/ して ファイル F メニュー下のモードを 設定モード Builder に変更 にします 次に ファイル F メニューから 設定の取得 T を選択して 現在の設定情報を取得し ます cluster Monitors を選択し 右クリック後に表示されるメニューから モニタリソースの追加 A を選択しま す 図 41:モニタリソースの定義画面 47 / 71

タイプ T に MySQL minitor を選択 名前 M 入力ボックスに mysqlw1 を入力し 次へ N > をクリッ クします 図 42:モニタリソースの定義画面 - 監視 共通 設定 監視タイミング の 参照 W ボタンをクリックして MySQLGroup グループの exec1 リソースを選択し 次へ N > をクリックします 図 43:モニタリソースの定義画面 - 監視 固有 設定 データベース名 D 入力ボックスに前項で作成したデータベース名 CPROAgent_db を入力 IP アドレス R 入力ボックスに 127.0.01 を入力 ポート番号 O 入力ボックスに MySQL が使用するポート番号 3306 を入力 ユーザ名 U 入力ボックスに前項で作成した MySQL ユーザ名 CPROAgent を入力 パスワード P 入力ボックスに MySQL ユーザ CPROAgent のパスワード turbolinux を入力 ストレージエンジン E に InnoDB を選択 ライブラリパス L 入力ボックスに /usr/local/mysql/lib/libmysqlclient.so を入力し 次 へ N > をクリックします 48 / 71

図 44:モニタリソースの定義画面 - 回復動作設定 回復対象 に 参照 W ボタンをクリックして MySQLGroup を選択 最終動作 F に グループ停止 を選 択し 完了 ボタンをクリックします MySQL モニタリソース mysqlw1 の追加後に WebManager から起動された Builder の ファイル F メ ニューから 設定の反映 A をクリックし 変更した内容をクラスタへ反映します クラスタに反映するとクラスタがサ スペンドするため WebManager に再接続して サービス S メニューの クラスタリジューム R を選択してサス ペンドしたクラスタを回復します 3.4.3.3 MySQL モニタリソースの動作確認 クラスタの回復後に MySQL モニタリソースが機能して MySQL に対する死活監視を行うことができるか確認しま す 方法は MySQLGroup グループの exec1 リソースから起動した MySQL サーバを強制的に停止することにより MySQLGroup グループがフェイルオーバすることを確認します server1 で MySQLGroup グループが起動していることを確認 [root@server1 ~]# clpstat ======================== CLUSTER STATUS =========================== Cluster : cluster MySQLGroup...: Online current : server1 exec1 : Online fip1 : Online md1 : Online ===================================================================== server1 で MySQL サーバを停止 [root@server1 ~]# service mysql.server stop Shutting down MySQL.. SUCCESS! 49 / 71

MySQL モニタリソース mysqlw1 を定義 監視 共通 した インターバルとタイムアウト値を足した時間を待って MySQLGroup グループがフェイルーバするか確認します server1 で MySQLGroup グループが起動していることを確認 [root@server1 ~]# clpstat ======================== CLUSTER STATUS =========================== Cluster : cluster <group> MySQLGroup...: Online Pending current : server2 exec1 : Online Pending fip1 : Online md1 : Online ===================================================================== 50 / 71

4 章 導入後に 4章 導入後に 本章では クラスタシステムの運用を開始する前に必要な作業等について説明しています 4.1 MySQL に係わる設定の確認 ここでは クラスタ対象アプリケーションである MySQL に係わる設定について説明しています 4.1.1 MySQL に係わるディレクトリやファイルについて 現用系サーバ server1 と待機系サーバ server2 にインストールした MySQL に係わるディレクトリやファイルを表 4 MySQL のディレクトリやファイルにまとめます プログラムを開発もしくは使用する場合や MySQL を設定する際 に参考にしてください 表 4:MySQL のディレクトリやファイル ディレクトリ / ファイル名 内容 /usr/local/mysql/bin MySQL のサーバ及びクライアントプログラムが保存されているディレク トリ /usr/local/mysql/data ログやデータベースが保存されているディレクトリであり 実際には CLUSTERPRO が管理しているミラーディスク /mnt/md1/data にリ ンクされている /usr/local/mysql/docs マニュアルが保存されているディレクトリ /usr/local/mysql/include ヘッダファイルが保存されているディレクトリ /usr/local/mysql/lib ライブラリが保存されているディレクトリ /usr/local/mysql/man オンライアンマニュアル man が保存されているディレクトリ /usr/local/mysql/mysql-test MySQL サーバのテスト スイートが保存されているディレクトリ /usr/local/mysql/scripts MySQL サーバを初期化するスクリプトが保存されているディレクトリ /usr/local/mysql/share エラーメッセージやサンプル構成ファイル データベースを作成する際に 必要な SQL ファイル等が保存されているディレクトリ /usr/local/mysql/sql-bench MySQL Benchmarks が保存されているディレクトリ /usr/local/mysql/support-files サンプルとなる MySQL の設定ファイルや MySQL サーバを制御するス クリプトが保存されているディレクトリ /etc/init.d/mysql.server MySQL サーバを制御するスクリプトファイル /etc/my.cnf MySQL の設定ファイル 4.1.2 MySQL のサーバ変数の確認 MySQL サーバを設定するには サーバ変数を変更する必要があります サーバ変数は MySQL の設定ファイルで ある my.cnf に設定値を記述したり MySQL サーバを起動する際に指定することができます また SQL 文で変更す ることも可能です MySQL が稼働する実際の環境に合わせて設定する必要があります 前項で挙げたファイルを確認するか 次のコマンド または SQL を実行することにより 起動している MySQL の 51 / 71

4 章 導入後に サーバ変数を知ることが可能です server1 か server2 において mysql ユーザで実行 $ mysql -h 192.168.10.10 -u mysql -pturbolinux -e 'SHOW VARIABLES' +---------------------------------------------------+--------------------------------- Variable_name Value +---------------------------------------------------+--------------------------------- auto_increment_increment 1 server1 か server2 において mysql ユーザで実行 $ mysqladmin -h 192.168.10.10 -u mysql -pturbolinux variables +---------------------------------------------------+--------------------------------- Variable_name Value +---------------------------------------------------+--------------------------------- auto_increment_increment 1 また 実行されている MySQL サーバの状況を知るためには 次のコマンドを実行します server1 か server2 において mysql ユーザで実行 $ mysql -h 192.168.10.10 -u mysql -pturbolinux -e 'SHOW STATUS' +------------------------------------------+-------------+ Variable_name Value +------------------------------------------+-------------+ Aborted_clients 0 server1 か server2 において mysql ユーザで実行 $ mysqladmin -h 192.168.10.10 -u mysql -pturbolinux extended-status +------------------------------------------+-------------+ Variable_name Value +------------------------------------------+-------------+ Aborted_clients 0 次に サーバ変数を変更する例を挙げます 例えば MySQL サーバに接続することが可能な最大クライアント数 max_connections を 200 に変更する場合は 次の手順で設定します server1 か server2 において mysql ユーザで実行 $ $ $ mysqladmin -h 192.168.10.10 -u mysql -pturbolinux variables grep max_connections max_connections 151 mysql -h 192.168.10.10 -u mysql -pturbolinux -e 'SET @@global.max_connections=200' mysqladmin -h 192.168.10.10 -u mysql -pturbolinux variables grep max_connections max_connections 200 SQL でサーバ変数を変更した場合は MySQL サーバが停止するまで有効です MySQL サーバが起動する際に サーバ変数を設定する場合は my.cnf に設定値を記述するか MySQL サーバを起動するスクリプトファイルに記述し ます 52 / 71

4 章 導入後に my.cnf や MySQL サーバを起動するスクリプトファイルは 現用系サーバと待機系サーバのローカルディ スクに保存しミラーリングしていないため 変更する場合は各サーバで行う必要があります 4.1.3 MySQL に関連する OS の設定 MySQL をハードウェアスペック等の動作環境に合わせた設定を行ったとしても OS を環境に合わせて設定してい ない場合に期待した結果を得ることができない可能性があります ここでは いくつかの MySQL に関連する基本的な OS の設定について説明しています 4.1.3.1 MySQL サーバに接続するクライアント数に関連する設定 MySQL サーバに接続することが可能な最大クライアント数を設定する場合 サーバ変数 max_connections 値 を変更します これに伴い 次の OS 設定値を確認する必要があります Linux カーネル パラメータ file-max MySQL サーバに接続するクライアント数に比例して OS が管理するファイルハンドル数が増加します max_connections 値を増やす場合 OS で利用可能なファイルハンドルの最大数を確認しておく必要がありま す 設定値を確認するには次のコマンドを実行します ファイルハンドルの最大数を確認 # cat /proc/sys/fs/file-max 設定値を変更するには次のコマンドを実行します ファイルハンドル最大数を 300,000 に変更 # echo 300000 > /proc/sys/fs/file-max OS を起動する際に設定値を変更 最大数を 300,000 するには /etc/sysconfig/kparam に次の行を追加 します /etc/sysconfig/kparam /proc/sys/fs/file-max 300000 Linux カーネル パラメータ threads-max MySQL サーバに接続するクライアント数を増やす場合 OS で使用可能な最大スレッド数を確認しておく必 要があります 設定値を確認するには次のコマンドを実行します スレッド プロセス の最大数を確認 # cat /proc/sys/kernel/threads-max 設定値を変更するには次のコマンドを実行します スレッド最大数を 19,200 に変更 # echo 19200 > /proc/sys/kernel/threads-max OS を起動する際に設定値を変更 最大数を 19,200 するには /etc/sysconfig/kparam に次の行を追加 します /etc/sysconfig/kparam /proc/sys/kernel/threads-max 19200 53 / 71

4 章 導入後に ユーザ毎のファイルディスクリプタの上限値 MySQL サーバはユーザアカウント mysql で実行します 本資料のクラスタシステムの場合 先に説明した OS 全体の制限値とは別に ユーザ毎にオープンできるファイルディスクリプタ数を確認する必要があります 設 定値を確認するにはユーザアカウンント mysql で次のコマンドを実行します ファイルディスクリプタ数の確認 $ ulimit -n 設定値を変更 最大数を 65,536 するには /etc/security/limits.conf に次の行を追加します /etc/security/limits.conf mysql mysql hard soft nofile nofile 65536 65536 ユーザ毎のプロセス数の上限値 プロセス数についても 先に説明した OS 全体の制限値とは別にユーザ毎に使用可能なプロセス数を確認す る必要があります 設定値を確認するにはユーザアカウンント mysql で次のコマンドを実行します プロセス数の確認 $ ulimit -u 設定値を変更 最大数を 9,600 するには /etc/security/limits.conf に次の行を追加します /etc/security/limits.conf mysql mysql hard soft nproc nproc 9600 9600 4.1.3.2 MySQL サーバが使用するファイル数に関連する設定 MySQL サーバにおいて使用するストレージエンジンにより データベースオブジェクト 例えばテーブル 数に比例 して MySQL サーバが同時に使用可能なファイル数の設定 サーバ変数 open_files_limit 値 を変更する必要が あります この場合 前項で説明した OS が管理するファイルハンドル数やユーザ毎のファイルディスクリプタの上限値 を確認して必要があれば設定値を変更します 4.2 待機系サーバを有効活用する 本資料で説明しているクラスタシステムでは 現用系サーバで MySQL が稼働し 待機系サーバはコールドスタン バイしています この待機系サーバを有効活用する例の一つとして MySQL の管理ツールを稼働させ 現用系で稼働 する MySQL を管理します 4.2.1 MySQL の管理ツール phpmyadmin を導入 ここでは GNU GPL v2 として公開されている MySQL の管理ツール phpmyadmin を導入して 待機系サーバ で稼働させて MySQL を管理します まず 次のサイトから phpmyadmin を入手します http://www.phpmyadmin.net/ ダウンロードしたファイル ここでは phpmyadmin-3.4.3.2-all-languages.tar.gz を待機系サーバにコピーしてイ 54 / 71

4 章 導入後に ンストールします server2 で実行 # # # # # # tar xvzf phpmyadmin-3.4.3.2-all-languages.tar.gz -C /var/www/html/ cd /var/www/html ln -s phpmyadmin-3.4.3.2-all-languages phpmyadmin chown -R apache:apache php* cd /var/www/html/phpmyadmin cp -a config.sample.inc.php config.inc.php phpmyadmin の設定ファイルを編集します /var/www/html/phpmyadmin/config.inc.php $cfg['servers'][$i]['host'] = '192.168.10.10'; MySQLGroup グループのフローティング IP を設定 server2 で HTTP サーバである apache を起動します server2 で apache を起動 [root@server2 ~]# service httpd start Starting httpd: OK クライアント PC で Web ブラウザを起動して server2 に接続 http://192.168.10.12/myphpadmin/ します 図 45:phpMyAdmin のログイン画面 HTTP サーバを停止するには次のコマンドを実行します 55 / 71

4 章 導入後に server2 で apache を起動 [root@server2 ~]# service httpd stop Starting httpd: OK 4.2.2 phpmyadmin をクラスタに追加 phpmyadmin を server2 だけで稼働させるのではなくクラスタ化する場合は WebManager Builder を使用 してクラスタに追加します 以下の手順でクラスタに phpmyadmin 用グループ HTTPGroup を追加します 4.2.2.1 事前準備 server2 にインストールした phpmyadmin を server1 にコピーします server2 で実行 [root@server2 html]# cd /var/www/html [root@server2 html]# scp -pr php* root@server1:/var/www/html/ root@server1's password: server1 の root アカウントのパスワードを入力 4.2.2.2 グループの追加 クライアント PC の Web ブラウザから WebManager に接続 http://192.168.10.9:29003/ して ファイル F メニュー下のモードを 設定モード Builder に変更 にします 次に ファイル F メニューから 設定の取得 T を選択して 現在の設定情報を取得します cluster Groups を選択し 右クリック後に表示されるメニューから グループの追加 A を選択します 図 46:グループの定義画面 名前 M 入力ボックスに HTTPGroup を入力し 次へ N > をクリックします 56 / 71

4 章 導入後に 図 47:グループの定義 HTTPGroup 画面 - 起動可能サーバ設定 全てのサーバでフェイルオーバ可能 P チェックボックスをオフにし 利用可能なサーバ V の server1 と server2 を選択して <追加 D ボタンで 起動可能なサーバ S に追加し 上へ U 下へ O ボタンで server2 の優先順位を 1 にします 設定後に 次へ N > をクリックします グループ属性の設定 は内容を確認して 次へ N > をクリックし グループリソース で 追加 D ボタンをク リックしてグループリソースを追加します 図 48:グループ HTTPGroup のリソース定義 タイプ T に floating ip resource を選択 名前 M 入力ボックスに fip2 を入力し 次へ N > をクリッ クします 依存関係 と 復旧動作 は内容を確認して 次へ N > をクリックします 57 / 71

4 章 導入後に 図 49:グループ HTTPGroup のリソース定義 - 詳細設定 IP アドレス I 入力ボックスに 192.168.10.8 を入力し 完了 をクリックします 次に グループリソース EXEC リソース を追加します グループの定義 HTTPGroup 画面で 追加 D ボタンをクリックします 図 50:グループ HTTPGroup のリソース定義 タイプ T に execute resource を選択 名前 M 入力ボックスに exec2 を入力して 次へ N > をク リックします 依存関係 と 復旧動作 は内容を確認して 次へ N > をクリックします 詳細 では 3.4.2 クラスタシステムで MySQL サーバを起動 停止するための設定を参考にグループが起動する 際に実行される start.sh と終了する際に実行される stop.sh を次のように編集し グループの起動 停止に合わせて apache を起動 停止するようにします 58 / 71

4 章 導入後に start.sh #! /bin/sh #*************************************** #* start.sh * #*************************************** ulimit -s unlimited if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service httpd start else echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1" if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service httpd start else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0 59 / 71

4 章 導入後に stop.sh #! /bin/sh #*************************************** #* stop.sh * #*************************************** ulimit -s unlimited if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service httpd stop else echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1" if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service httpd stop else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0 編集後に OK ボタンをクリックして exec2 リソースの変更を完了します WebManager から起動された Builder の ファイル F メニューから 設定の反映 A をクリックし 変更した内容をクラスタへ反映します クラス タに反映するとクラスタがサスペンドするため WebManager に再接続して サービス S メニューの クラスタリ ジューム R を選択してサスペンドしたクラスタを回復します 60 / 71

4 章 導入後に 図 51:Cluster Manager 画面 反映後に HTTPGroup グループを WebManager もしくはコマンドから起動し グループが起動したサーバで HTTP サーバが起動するか確認します HTTP サーバの起動確認後に phpmyadmin に接続 http://192.168.10.8/phpmyadmin/ します 図 52:phpMyAdmin - ログイン後のメインページ 61 / 71

4 章 導入後に 4.3 ユーザ アプリケーションを使用した死活監視を行う場合 クラスタ対象アプリケーションの死活監視を行う場合 CLUSTERPRO に搭載 オプション製品を含む されている 機能ではなく 独自の機能を持ったアプリケーションを使用することも可能です ここでは 前項で説明した phpmyadmin を管理するための HTTPGroup グループを例に 独自のアプリケーションを使用した死活監視を行う 方法を説明します 4.3.1 事前準備 死活監視を行うアプリケーションを現用系サーバと待機系サーバにインストールします 本クラスタシステムでは HTTP サーバを 10 秒毎に wget ファイルをダウンロードするプログラム を実行し phpmyadmin に接続 http://192.168.10.8/phpmyadmin/ することが可能か確認し 接続できない場合は終了するスクリプトを用い て死活監視を行います このスクリプトファイルを現用系サーバと待機系サーバに保存します /usr/local/bin/checkhttpd.sh #!/bin/bash INTERVAL=10 URL="http://192.168.10.8/phpmyadmin/" while [ 1 = 1 ]; do /usr/bin/wget ${URL} -O /dev/null > /dev/null 2> /dev/null if [ $?!= 0 ]; break; fi /bin/sleep ${INTERVAL} done exit 1 4.3.2 ユーザ アプリケーション用の EXEC リソースと PID モニタリソースの追加 クライアント PC の Web ブラウザから WebManager に接続 http://192.168.10.9:29003/ して ファイル F メニュー下のモードを 設定モード Builder に変更 にします 次に ファイル F メニューから 設定の取得 T を選択して 現在の設定情報を取得します cluster Groups HTTPGroup を選択し 右クリック後に表示されるメニューから リソースの追加 A を選択します 62 / 71

4 章 導入後に 図 53:グループ HTTPGroup のリソース定義画面 タイプ T に execute resource を選択 名前 M に exec_check1 を入力し 次へ N > をクリックしま す 図 54:グループ HTTPGroup のリソース定義画面 - 依存関係設定 規定の依存関係に従う F チェックボックスをオフにし 利用可能なリソース V の exec2 と fip2 を選択 して <追加 D ボタンで 依存するリソース E に追加し 次へ N > をクリックします 復旧動作 は内容を確認して 次へ N > をクリックします 63 / 71

4 章 導入後に 図 55:グループ HTTPGroup のリソース定義画面 - 詳細設定 ユーザアプリケーション U をチェックして 編集 E ボタンをクリックします 図 56:アプリケーション パスの入力 開始 S 入力ボックスに監視用アプリケーションである /usr/local/bin/checkhttpd.sh を入力して OK ボタンをクリックします 次に グループ HTTPGroup のリソース定義 で 調整 T ボタンをクリックします 64 / 71

4 章 導入後に 図 57:exec リソース調整プロパティ 開始スクリプト と 終了スクリプト の 非同期 Y をオンにして OK ボタンをクリックします グループ HTTPGroup のリソース定義 で 完了 ボタンをクリックして HTTPGroup グループへの EXEC リソースの追加を 完了します 次に PID モニタリソースを追加します WebManager Builder 画面で cluster Monitors を選択し 右 クリック後に表示されるメニューから モニタリソースの追加 A を選択します 図 58:モニタリソースの定義画面 タイプ T に pid minitor を選択 名前 T 入力ボックスに pidw1 を入力し 次へ N > をクリックします 65 / 71

4 章 導入後に 図 59:モニタリソースの定義画面 - 監視 共通 設定 参照 W ボタンをクリックして監視対象リソースとして先に追加した EXEC リソース exec_check1 を選択し 次へ N > をクリックします 図 60:モニタリソースの定義画面 - 監視 固有 設定 参照 W ボタンをクリックして回復対象である HTTPGroup グループを選択し 完了 をクリックします WebManager から起動された Builder の ファイル F メニューから 設定の反映 A をクリックし 変更した内 容をクラスタへ反映します クラスタに反映するとクラスタがサスペンドするため WebManager に再接続して サービ ス S メニューの クラスタリジューム R を選択してサスペンドしたクラスタを回復します 以上の設定により次の順序で死活監視が機能します (1) 何らかの障害発生し HTTP サーバが停止もしくは未応答となる (2) HTTPGroup グループの EXEC リソース exec_check1 から起動した HTTP サーバを監視するユーザ ア プリケーション CheckHTTPD.sh が停止する (3) EXEC リソース exec_check1 を監視している PID モニタリソース pidw1 が異常を検出し 対象グループで ある HTTPGroup グループをフェイルオーバする 回復したクラスタで追加した死活監視が機能するか確認します 66 / 71

4 章 導入後に 4.4 クラスタシステムの評価について システム停止時間を最小限に止めることを目標に 具体的な手段の一つとしてクラスタを導入しているケースが多 いはずです 運用を開始する前に導入したクラスタシステムを評価して 運用手順の決定やクラスタシステムの動作確 認を行う必要があります これらについての情報は CLUSTERPRO インストール 設定ガイド の セクション III 運用開始前のクラスタシ ステムの評価 で説明していますので参考にして 運用開始前に実施してください 67 / 71

付録 A 構成情報ファイル 付録 A 構成情報ファイル ここでは本資料で構築したクラスタシステムの構成情報ファイルを記載しています A.1 clp.conf <?xml version="1.0" encoding="euc-jp"?> <root> <all> <charset>euc-jp</charset> <serveros>linux</serveros> <encode>euc-jp</encode> </all> <trekking> <create>1</create> <restart>3</restart> <configid>3034010.03047619875334351</configid> <savededition>x</savededition> <savedversion>3.0.3-1</savedversion> <savedinnerversion>303401</savedinnerversion> </trekking> <cluster> <name>cluster</name> <comment> </comment> <networkpartition> <npaction>1</npaction> </networkpartition> </cluster> <monitor> <types name="userw"/> <userw name="userw"> <comment> </comment> <target> </target> <relation> <type>cls</type> <name>cluster</name> </relation> <parameters> <method>keepalive</method> <mkthread>1</mkthread> </parameters> </userw> <types name="mdw"/> <mdw name="mdw1"> <comment> </comment> <target> </target> <relation> <type>cls</type> <name>localserver</name> </relation> <parameters> <object>md1</object> </parameters> </mdw> <types name="mdnw"/> <mdnw name="mdnw1"> <comment> </comment> <target> </target> <relation> <type>cls</type> <name>localserver</name> </relation> <parameters> <object>md1</object> 68 </parameters> </mdnw> <types name="diskw"/> <diskw name="diskw1"> <comment> </comment> <target> </target> <parameters> <object>/dev/sdb2</object> <method>read(o_direct)</method> <size>512</size> </parameters> <relation> <name>mysqlgroup</name> <type>grp</type> </relation> </diskw> <types name="miiw"/> <miiw name="miiw1"> <comment> </comment> <target> </target> <parameters> <object>eth0</object> </parameters> <relation> <name>managementgroup</name> <type>grp</type> </relation> </miiw> <miiw name="miiw2"> <comment> </comment> <target> </target> <parameters> <object>eth0</object> </parameters> <relation> <name>mysqlgroup</name> <type>grp</type> </relation> </miiw> <types name="mysqlw"/> <mysqlw name="mysqlw1"> <comment> </comment> <target>exec1</target> <parameters> <database>cproagent_db</database> <username>cproagent</username> <password>turbolinux</password> <engine>innodb</engine> <libraryfullpath>/usr/local/mysql/li b/libmysqlclient.so</libraryfullpath> </parameters> <relation> <name>mysqlgroup</name> <type>grp</type> </relation> <emergency> <action>2</action> </emergency>

付録 A 構成情報ファイル </mysqlw> </monitor> <group name="managementgroup"> <type>cluster</type> <comment> </comment> <resource name="fip@managementip"/> <gid>0</gid> </group> <resource> <types name="fip"/> <fip name="managementip"> <comment> </comment> <parameters> <ip>192.168.10.9</ip> </parameters> </fip> <fip name="fip1"> <comment> </comment> <parameters> <ip>192.168.10.10</ip> </parameters> </fip> <types name="md"/> <md name="md1"> <comment> </comment> <parameters> <nmppath>/dev/nmp1</nmppath> <mount> <point>/mnt/md1</point> </mount> <diskdev> <dppath>/dev/sdb2</dppath> <cppath>/dev/sdb1</cppath> </diskdev> <netdev id="0"> <priority>0</priority> <device>400</device> <mdcname>mdc1</mdcname> </netdev> <netdev id="1"> <priority>1</priority> <device>401</device> <mdcname>mdc2</mdcname> </netdev> </parameters> </md> <types name="exec"/> <exec name="exec1"> <comment> </comment> <parameters> <act> <path>start.sh</path> </act> <deact> <path>stop.sh</path> </deact> </parameters> </exec> </resource> <server name="server1"> <priority>0</priority> <device id="0"> <type>lan</type> <info>10.0.0.1</info> </device> <device id="400"> <type>mdc</type> 69 <info>10.0.0.1</info> <mdc> <info>10.0.0.1</info> </mdc> </device> <device id="1"> <type>lan</type> <info>192.168.10.11</info> </device> <device id="401"> <type>mdc</type> <info>192.168.10.11</info> <mdc> <info>192.168.10.11</info> </mdc> </device> <device id="10200"> <type>ping</type> <info>1</info> </device> </server> <server name="server2"> <priority>1</priority> <device id="0"> <type>lan</type> <info>10.0.0.2</info> </device> <device id="400"> <type>mdc</type> <info>10.0.0.2</info> <mdc> <info>10.0.0.2</info> </mdc> </device> <device id="1"> <type>lan</type> <info>192.168.10.12</info> </device> <device id="401"> <type>mdc</type> <info>192.168.10.12</info> <mdc> <info>192.168.10.12</info> </mdc> </device> <device id="10200"> <type>ping</type>

付録 A 構成情報ファイル <info>1</info> </device> </server> <heartbeat> <types name="lankhb"/> <lankhb name="lankhb1"> <priority>0</priority> <device>0</device> <list id="0"> <ip>192.168.10.1</ip> </list> </grp> </pingnp> </networkpartition> <group name="mysqlgroup"> <comment> </comment> <resource name="fip@fip1"/> <resource name="md@md1"/> <resource name="exec@exec1"/> <gid>1</gid> </group> <webmgr> <client> <objectnumber>25</objectnumber> </client> </webmgr> </lankhb> <lankhb name="lankhb2"> <priority>1</priority> <device>1</device> </lankhb> </heartbeat> <networkpartition> <types name="pingnp"/> <pingnp name="pingnp1"> <priority>0</priority> <device>10200</device> <grp id="0"> </root> A.2 scripts/mysqlgroup/exec1/start.sh #! /bin/sh #*************************************** #* start.sh * #*************************************** ulimit -s unlimited if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service mysql.server start else echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1" if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service mysql.server start else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0 A.3 scripts/mysqlgroup/exec1/stop.sh #! /bin/sh #*************************************** #* stop.sh * #*************************************** echo "NORMAL2" else echo "ON_OTHER1" fi /sbin/service mysql.server stop ulimit -s unlimited else if [ "$CLP_EVENT" = "START" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "NORMAL1" if [ "$CLP_SERVER" = "HOME" ] 70 echo "ERROR_DISK from START" fi elif [ "$CLP_EVENT" = "FAILOVER" ] if [ "$CLP_DISK" = "SUCCESS" ] echo "FAILOVER1"

付録 A 構成情報ファイル if [ "$CLP_SERVER" = "HOME" ] echo "FAILOVER2" else echo "ON_OTHER2" fi /sbin/service mysql.server stop 71 else echo "ERROR_DISK from FAILOVER" fi else echo "NO_CLP" fi echo "EXIT" exit 0