ここでは、Sun Cluster HA for MySQL のインストールと構成の計画について説明します。
次の制限事項を守らないと、データサービスの構成がサポートされない場合があります。
ここで示す制限事項を考慮して、Sun Cluster HA for MySQL のインストールと構成の計画を行ってください。ここでは、Sun Cluster HA for MySQL にのみ適用されるソフトウェアとハードウェア構成の制限事項を示します。
すべてのデータサービスに適用される制限事項については、『Sun Cluster ご使用にあたって』を参照してください。
Sun Cluster for MySQL は HA (高可用性) としてのみ構成できます。Scalable (スケーラブル) としては構成できません。
MySQL 構成ファイル (my.cnf) は MySQL データベースディレクトリに格納してください。 my.cnf をローカルのファイルシステムに格納する必要がある場合は、MySQL データベースディレクトリからシンボリックリンクを作成します。 コマンド行オプションが書き換えられる可能性があるので、/etc (広域ファイル) には格納しないでください。
サポートされる構成 – 現在 Sun Cluster HA for MySQL データサービスがサポートする構成は次のとおりです。
マスター構成の単一または複数の MySQL インスタンス
スレーブ構成の単一または複数の MySQL インスタンス
マスターとスレーブのインスタンスを物理的に同じノードに存在させないでください。
クラスタファイルシステムへの MySQL のインストール — MySQL の配布方法 (http://www.mysql.com から配布する、またはほかのソースから配布する) に関係なく、次の制限事項が適用されます。
各 MySQL インスタンスは一意のデータベースディレクトリを持っている必要があります。このデータベースディレクトリ は、フェイルオーバーシステムまたは広域ファイルシステムとしてマウントできます。
広域ファイルシステムをマウントする場合は /global という接頭辞を指定し、フェイルオーバーファイルシステムをマウントする場合は /local という接頭辞を指定するようにしてください。 必須ではありませんが、こうするのが最も良い方法とされています。
次に、MySQL と 2 つの MySQL インスタンス (mysql-data-1 と mysql-data-2) の両方を広域ファイルシステムにインストールする例を示します。最終出力は、Veritas Volume Manager を使用して配備された MySQL に対応する /etc/vfstab エントリのサブセットです。
# ls -l /usr/local total 4 drwxrwxrwx 2 root other 512 Oct 1 16:44 bin lrwxrwxrwx 1 root other 13 Oct 11 11:20 mysql -> /global/mysql # # ls -l /global/mysql total 10432 drwxr-xr-x 13 mysql mysql 512 Mar 16 00:03 . drwxrwxrwx 7 root other 2048 Apr 11 09:53 .. -rw-r--r-- 1 mysql mysql 19106 Mar 15 23:29 COPYING -rw-r--r-- 1 mysql mysql 28003 Mar 15 23:29 COPYING.LIB -rw-r--r-- 1 mysql mysql 126466 Mar 15 16:47 ChangeLog -rw-r--r-- 1 mysql mysql 6811 Mar 15 23:29 INSTALL-BINARY -rw-r--r-- 1 mysql mysql 1937 Mar 15 16:47 README drwxr-xr-x 2 mysql mysql 1536 Mar 16 00:03 bin -rwxr-xr-x 1 mysql mysql 773 Mar 16 00:03 configure drwxr-x--- 4 mysql mysql 512 Mar 16 00:03 data drwxr-xr-x 2 mysql mysql 1024 Mar 16 00:03 include drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 lib drwxr-xr-x 3 mysql mysql 512 Mar 16 00:03 man -rw-r--r-- 1 mysql mysql 2676944 Mar 15 23:23 manual.html -rw-r--r-- 1 mysql mysql 2329252 Mar 15 23:23 manual.txt -rw-r--r-- 1 mysql mysql 98233 Mar 15 23:23 manual_toc.html drwxr-xr-x 6 mysql mysql 512 Mar 16 00:03 mysql-test drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 scripts drwxr-xr-x 3 mysql mysql 512 Mar 16 00:03 share drwxr-xr-x 7 mysql mysql 1024 Mar 16 00:03 sql-bench drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 support-files drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 tests # ls -l /global/mysql-data-1 Total 30 drwxrwxrwx 9 mysql mysql 512 Apr 15 12:06 . drwxrwxrwx 20 root root 1024 Apr 10 12:41 .. drwxr-xr-x 2 mysql mysql 512 Apr 15 12:00 BDB drwxrwxrwx 2 mysql mysql 512 Apr 15 11:59 innodb drwxrwxrwx 2 mysql mysql 2048 Apr 15 14:47 logs -rw-r--r-- 1 mysql mysql 1432 Apr 15 11:58 my.cnf drwx------ 2 mysql mysql 512 Apr 15 11:59 mysql -rw-rw---- 1 mysql mysql 5 Apr 15 14:47 mysqld.pid drwx------ 2 mysql mysql 512 Apr 15 14:53 sc3_test_database drwx------ 2 mysql mysql 512 Apr 15 11:58 test drwx------ 2 mysql mysql 512 Apr 15 12:00 testdb # # ls -l /global/mysql-data-2 total 32 drwxrwxrwx 9 mysql mysql 512 Apr 15 07:49 . drwxrwxrwx 20 root root 1024 Apr 10 12:41 .. drwxr-xr-x 2 mysql mysql 512 Apr 14 11:16 BDB drwxr-xr-x 2 mysql mysql 512 Apr 14 11:14 innodb drwxr-xr-x 2 mysql mysql 2560 Apr 15 10:15 logs -rw-r--r-- 1 mysql mysql 1459 Apr 14 11:13 my.cnf drwx------ 2 mysql mysql 512 Apr 14 11:14 mysql -rw-rw---- 1 mysql mysql 5 Apr 15 10:10 mysqld.pid drwx------ 2 mysql mysql 512 Apr 15 10:10 sc3_test_database drwx------ 2 mysql mysql 512 Apr 14 11:14 test drwx------ 2 mysql mysql 512 Apr 14 11:16 testdb # more /etc/vfstab (Subset of the output) /dev/vx/dsk/dg1/vol01 /dev/vx/rdsk/dg1/vol01 /global/mysql ufs 2 yes global,logging /dev/vx/dsk/dg2/vol01 /dev/vx/rdsk/dg2/vol01 /global/mysql-data-1 ufs 2 yes global,logging /dev/vx/dsk/dg2/vol01 /dev/vx/rdsk/dg2/vol01 /global/mysql-data-2 ufs 2 yes global,logging # |
この例では、1 番目の MySQL インスタンスのデータベースディレクトリは /global/mysql-data-1 であり、2 番目の MySQL インスタンスのデータベースディレクトリは /global/mysql-data-2 です。
次に、MySQL を局所ファイルシステムに、2 つの MySQL インスタンス (mysql-data-1 と mysql-data-2) をフェイルオーバーファイルシステムにインストールする例を示します。最終出力は、Veritas Volume Manager を使用して配備された MySQL に対応する /etc/vfstab エントリのサブセットです。
# ls -l /usr/local/mysql total 10432 drwxr-xr-x 13 mysql mysql 512 Mar 16 00:03 . drwxrwxrwx 7 root other 2048 Apr 11 09:53 .. -rw-r--r-- 1 mysql mysql 19106 Mar 15 23:29 COPYING -rw-r--r-- 1 mysql mysql 28003 Mar 15 23:29 COPYING.LIB -rw-r--r-- 1 mysql mysql 126466 Mar 15 16:47 ChangeLog -rw-r--r-- 1 mysql mysql 6811 Mar 15 23:29 INSTALL-BINARY -rw-r--r-- 1 mysql mysql 1937 Mar 15 16:47 README drwxr-xr-x 2 mysql mysql 1536 Mar 16 00:03 bin -rwxr-xr-x 1 mysql mysql 773 Mar 16 00:03 configure drwxr-x--- 4 mysql mysql 512 Mar 16 00:03 data drwxr-xr-x 2 mysql mysql 1024 Mar 16 00:03 include drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 lib drwxr-xr-x 3 mysql mysql 512 Mar 16 00:03 man -rw-r--r-- 1 mysql mysql 2676944 Mar 15 23:23 manual.html -rw-r--r-- 1 mysql mysql 2329252 Mar 15 23:23 manual.txt -rw-r--r-- 1 mysql mysql 98233 Mar 15 23:23 manual_toc.html drwxr-xr-x 6 mysql mysql 512 Mar 16 00:03 mysql-test drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 scripts drwxr-xr-x 3 mysql mysql 512 Mar 16 00:03 share drwxr-xr-x 7 mysql mysql 1024 Mar 16 00:03 sql-bench drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 support-files drwxr-xr-x 2 mysql mysql 512 Mar 16 00:03 tests # ls -l /local/mysql-data-1 Total 30 drwxrwxrwx 9 mysql mysql 512 Apr 15 12:06 . drwxrwxrwx 20 root root 1024 Apr 10 12:41 .. drwxr-xr-x 2 mysql mysql 512 Apr 15 12:00 BDB drwxrwxrwx 2 mysql mysql 512 Apr 15 11:59 innodb drwxrwxrwx 2 mysql mysql 2048 Apr 15 14:47 logs -rw-r--r-- 1 mysql mysql 1432 Apr 15 11:58 my.cnf drwx------ 2 mysql mysql 512 Apr 15 11:59 mysql -rw-rw---- 1 mysql mysql 5 Apr 15 14:47 mysqld.pid drwx------ 2 mysql mysql 512 Apr 15 14:53 sc3_test_database drwx------ 2 mysql mysql 512 Apr 15 11:58 test drwx------ 2 mysql mysql 512 Apr 15 12:00 testdb # #ls -l /local/mysql-data-2 total 32 drwxrwxrwx 9 mysql mysql 512 Apr 15 07:49 . drwxrwxrwx 20 root root 1024 Apr 10 12:41 .. drwxr-xr-x 2 mysql mysql 512 Apr 14 11:16 BDB drwxr-xr-x 2 mysql mysql 512 Apr 14 11:14 innodb drwxr-xr-x 2 mysql mysql 2560 Apr 15 10:15 logs -rw-r--r-- 1 mysql mysql 1459 Apr 14 11:13 my.cnf drwx------ 2 mysql mysql 512 Apr 14 11:14 mysql -rw-rw---- 1 mysql mysql 5 Apr 15 10:10 mysqld.pid drwx------ 2 mysql mysql 512 Apr 15 10:10 sc3_test_database drwx------ 2 mysql mysql 512 Apr 14 11:14 test drwx------ 2 mysql mysql 512 Apr 14 11:16 testdb # more /etc/vfstab (Subset of the output) /dev/vx/dsk/dg2/vol01 /dev/vx/rdsk/dg2/vol01 /local/mysql-data-1 ufs 2 yes logging /dev/vx/dsk/dg2/vol01 /dev/vx/rdsk/dg2/vol01 /local/mysql-data-2 ufs 2 yes logging # |
この例では、1 番目の MySQL インスタンスのデータベースディレクトリは /local/mysql-data-1であり、2 番目の MySQL インスタンスのデータベースディレクトリは /local/mysql-data-2 です。
次の要件を満たさないと、データサービスの構成がサポートされない場合があります。
ここで示す要件に従って、Sun Cluster HA for MySQL のインストールと構成の計画を行ってください。これらの要件は、Sun Cluster HA for MySQL にのみ適用されます。 Sun Cluster HA for MySQL のインストールと構成を始める前に、次の要件を満たしておく必要があります。
MySQL コンポーネントと依存関係 — Sun Cluster HA for MySQL データサービスは、MySQL インスタンスとそれぞれのコンポーネントを保護するように構成できます。以下、各コンポーネントとコンポーネント間の依存関係について簡単に説明します。
表 1–3 MySQL と依存関係 (-> 記号で示す)
コンポーネント |
説明 |
---|---|
MySQL サーバー |
-> SUNW.HAStoragePlus リソース SUNW.HAStoragePlus リソースは、MySQL のファイルシステムのマウントポイントを管理し、ファイルシステムがマウントされるまでは MySQL が起動しないようにします。 |
MySQL コンポーネントには 2 つの構成/登録ファイルがあり、ファイルは /opt/SUNWscdhc/util に格納されています。 これらのファイルを使用すると、MySQL コンポーネントを Sun Cluster に登録でき、さらに、MySQL インスタンスを登録する準備を行うことができます。
これらのファイル内では、該当する依存関係がすでに適用されています。
# cd /opt/SUNWscmys # # ls -l util -rwxr-xr-x 1 root other 1208 Mar 25 13:49 ha_mysql_config -rwxr-xr-x 1 root other 820 Mar 25 13:55 ha_mysql_register -rwxr-xr-x 1 root other 1105 Apr 16 07:48 mysql_config -rwxr-xr-x 1 root other 2993 Apr 11 10:57 mysql_register # # more util/*config :::::::::::::: util/mysql_config :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by mysql_register and the parameters # listed below will be used. # (日本語訳) # このファイルは mysql_register によって有効化され、以下のパラメタ # が使用されます。 # Where is mysql installed (BASEDIR) (日本語訳) # mysql のインストール場所 (BASEDIR) MYSQL_BASE= # Mysql admin-user for localhost (日本語訳) # ローカルホストの mysql 管理ユーザー MYSQL_USER= # Password for mysql admin user (日本語訳) # mysql 管理ユーザー用のパスワード MYSQL_PASSWD= # Configured logicalhost (日本語訳) # 構成済み論理ホスト MYSQL_HOST= # Specify a username for a faultmonitor user (日本語訳) # 障害モニターユーザーのユーザー名を指定する FMUSER= # Pick a password for that faultmonitor user (日本語訳) # 障害モニターユーザー用のパスワードを選ぶ FMPASS= # Socket name for mysqld ( Should be /tmp/<logical host>.sock ) (日本語訳) # mysqld のソケット名 ( /tmp/<logical host>.sock ) MYSQL_SOCK=/tmp/<logical host>.sock # FOR SC3.1 ONLY, Specify the physical hostname for the # physical NIC that this logicalhostname belongs to for every node in the # cluster this Resourcegroup can located on. # IE: The logicalhost lh1 belongs to hme1 for physical-node phys-1 and # hme3 for physical-node phys-2. The hostname for hme1 is phys-1-hme1 and # for hme3 on phys-2 it is phys-2-hme3. # IE: MYSQL_NIC_HOSTNAME="phys-1-hme1 phys-2-hme3" (日本語訳) # SC3.1 に限り、 物理 NIC には物理ホスト名を指定してください。 # SC3.1 の論理ホスト名は、このリソースグループを置くことができる # クラスタのすべてのノードに属します。 # 例 : 論理ホスト lh1 は、物理ノード phys-1 では hme1 に属し、 # 物理のノード phys-2 では hme3 に属します。hme1 のホスト名は phys-1-hme1、 # phys-2 の hme3 のホスト名は phys-2-hme3 です。 # 例 : MYSQL_NIC_HOSTNAME="phys-1-hme1 phys-2-hme3" MYSQL_NIC_HOSTNAME="" :::::::::::::: util/ha_mysql_config :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by ha_mysql_register and the parameters # listed below will be used. (日本語訳) # このファイルは ha_mysql_register によって有効化され、以下のパラメタ # が使用されます。 # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # BASEDIR - name of the Mysql bin directory # DATADIR - name of the Mysql Data directory # MYSQLUSER - name of the user Mysql should be started of # LH - name of the LogicalHostname SC resource # FMUSER - name of the Mysql fault monitor user # FMPASS - name of the Mysql fault monitor user password # LOGDIR - name of the directory mysqld should store it's logfile. # CHECK - should HA-MySQL check MyISAM index files before start YES/NO. # HAS_RS - name of the mysql HAStoragePlus SC resource # # The following examples illustrate sample parameters # for Mysql # # BASEDIR=/usr/local/mysql # DATADIR=/global/mysqldata # MYSQLUSER=mysql # LH=mysqllh # FMUSER=fmuser # FMPASS=fmuser # LOGDIR=/global/mysqldata/logs # CHECK=YES # (日本語訳) # このパラメタは (キー=値) 形式でカスタマイズできます。 # # RS - アプリケーションのリソース名 # RG - RS を含むリソースグループ名 # BASEDIR - Mysql bin ディレクトリ名 # DATADIR - Mysql Data ディレクトリ名 # MYSQLUSER - Mysql の起動ユーザー名 # LH - LogicalHostname SC リソース名 # FMUSER - Mysql 障害モニターユーザー名 # FMPASS - Mysql 障害モニターユーザー用のパスワード名 # LOGDIR - mysqld がログファイルを格納するディレクトリ名 # CHECK - HA-MySQL が MyISAM のインデックスファイルをチェックしてからスタート # する、YES/NO # HAS_RS - mysql HAStoragePlus SC リソース名 # # 以下に、Mysql のパラメタの例を示します。 # # # BASEDIR=/usr/local/mysql # DATADIR=/global/mysqldata # MYSQLUSER=mysql # LH=mysqllh # FMUSER=fmuser # FMPASS=fmuser # LOGDIR=/global/mysqldata/logs # CHECK=YES # RS= RG= BASEDIR= DATADIR= MYSQLUSER= LH= FMUSER= FMPASS= LOGDIR= CHECK= HAS_RS= # |
my.cnf ファイル— Sun Cluster HA for MySQL データサービスには my.cnf のサンプルファイルが 2 つ (マスター構成用とスレーブ構成用) 用意されています。少なくとも次のパラメータが設定されていることを確認する必要があります。
my.cnf ファイルは MySQL にとって重要なファイルです。したがって、MySQL のマニュアルを参照して、次のパラメータの設定に関する詳細を確認してください。
マスター構成のセクション [mysqld] 内の MySQL ファイルmy.cnf
bind address には定義済みの論理ホストを設定する必要があります。
socket は /tmp/<論理ホスト>.sock として定義する必要があります。
binlog-ignore-db は、log-bin オプションが使用されている場合は、sc3_test_database という文字列を含んでいる必要があります。
スレーブ構成のセクション [mysqld] 内の MySQL ファイル my.cnf
bind address には定義済みの論理ホストを設定する必要があります。
socket は /tmp/<論理ホスト>.sock として定義する必要があります。
binlog-ignore-db は、log-bin オプションが使用されている場合は、sc3_test_database を含んでいる必要があります。
master-host は、マスターインスタンスが存在するホスト名です。
master-user は、スレーブがマスターに対する識別に使用するユーザー名です。
master-password は、スレーブがマスターに対する識別に使用するパスワードです。
master-info-file は、複製プロセス中、マスター上のどの場所にいたかを覚えておくためのファイルの場所です。このファイルは、グローバルファイルシステムまたはフェイルオーバーファイルシステムに格納する必要があります。