ここでは、Sun Cluster HA for MySQL のインストールと構成の計画について説明します。
ここでは、Sun Cluster HA for MySQL にのみ適用されるソフトウェアとハードウェア構成の制限事項を示します。
すべてのデータサービスに適用される制限事項については、『Sun Cluster Release Notes』を参照してください。
これらの制限事項を守らないと、データサービスの構成がサポートされない場合があります。
Sun Cluster for MySQL はフェイルオーバーデータサービスとしてのみ構成が可能であり、スケーラブルデータサービスとしては構成できません。
MySQL 構成ファイル (my.cnf) は、必ず MySQL データベースディレクトリに格納するべきです。my.cnf をローカルファイルシステムに保管しなければならない場合は、MySQL データベースディレクトリからのシンボリックリンクを作成します。コマンド行オプションが書き換えられる可能性があるため、構成ファイル my.cnf は /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 のインストールと構成を始める前に、次の要件を満たしておく必要があります。
次の要件を満たさないと、データサービスの構成がサポートされない場合があります。
MySQL コンポーネントとそれらの依存関係 — Sun Cluster HA for MySQL データサービスは、MySQL インスタンスとそれぞれのコンポーネントを保護するように構成できます。コンポーネントと各コンポーネント間の依存関係について簡単に説明します。
この例では、1 番目の MySQL インスタンスのデータベースディレクトリは /local/mysql-data-1 であり、2 番目の MySQL インスタンスのデータベースディレクトリは /local/mysql-data-2 です。
構成要素 |
説明 |
---|---|
MySQL サーバー |
-> SUNW.LogicalHost リソース SUNW.LogicalHost リソースは、MySQL IP アドレスを管理し、その IP アドレスが実際に使用されるまでは MySQL が起動しないようにします。 |
MySQL サーバー |
-> SUNW.HAStoragePlus リソース SUNW.HAStoragePlus リソースは、MySQL のファイルシステムのマウントポイントを管理し、ファイルシステムがマウントされるまでは MySQL が起動しないようにします。 |
MySQL コンポーネントには 2 つの構成/登録ファイルがあり、ファイルは /opt/SUNWscmys/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. # # 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 # MYSQLHOST - name of the host in /etc/hosts # 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 # MYSQLHOST=mysqlipname # FMUSER=fmuser # FMPASS=fmuser # LOGDIR=/global/mysqldata/logs # CHECK=YES # (日本語訳) # このパラメータは (キー=値) 形式でカスタマイズできます。 # # RS - アプリケーションのリソース名 # RG - RS を含むリソースグループ名 # BASEDIR - Mysql bin ディレクトリ名 # DATADIR - Mysql Data ディレクトリ名 # MYSQLUSER - Mysql の起動ユーザー名 # LH - LogicalHostname SC リソース名 # MYSQLHOST - name of the host in /etc/hosts # 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 # MYSQLHOST=mysqlipname # FMUSER=fmuser # FMPASS=fmuser # LOGDIR=/global/mysqldata/logs # CHECK=YES RS= RG= BASEDIR= DATADIR= MYSQLUSER= LH= MYSQLHOST= FMUSER= FMPASS= LOGDIR= CHECK= HAS_RS= # |
my.cnf file — Sun Cluster HA for MySQL データサービスには my.cnf のサンプルファイルが 2 つ (マスター構成用とスレーブ構成用) 用意されています。ただし、最低でも次のパラメータを設定する必要があります。
MySQL の中で、my.cnf は重要なファイルです。各パラメータの設定の詳細については、MySQL のマニュアルを参照してください。
マスター構成のセクション [mysqld] 内の MySQL ファイル my.cnf
bind address には、定義済みの論理ホスト IP 名を設定する必要があります。
socket は、/tmp/<論理ホスト IP 名>.sock として定義されます。
log-bin オプションを使用する場合、binlog-ignore-db には sc3_test_database を指定します。
スレーブ構成のセクション [mysqld] 内の MySQL ファイル my.cnf
bind address には、定義済みの論理ホスト IP 名を設定する必要があります。
socket は、/tmp/<論理ホスト IP 名>.sock として定義されます。
log-bin オプションを使用する場合、binlog-ignore-db には sc3_test_database を指定します。
master—host は、マスターインスタンスが存在するホスト名です。
master—user は、スレーブがマスターに対する識別に使用するユーザー名です。
master—password は、スレーブがマスターに対する識別に使用するパスワードです。
master-info-file は、複製プロセス時に、MySQL がマスター上で停止した位置を記憶しているファイルの保管場所です。このファイルは GFS/FFS 上に置く必要があります。