Fabric検証シリーズ第3弾。Fabric特有の設定を入れ込んでいく。第1弾で説明した(といっても記事に第1弾とは書いてなかったり、、、)アーキテクチャよりも細かい部分を説明していく。Fabric管理サーバのMySQLには「fabric」データベースが作成されており、このfabricデータベースによって、管理下のMySQLサーバや高可用性グループの情報を一元管理している。fabricデータベース内部のテーブルについてはこちら。Fabricはコネクタに構成情報をマッピングする。Fabricから管理下のMySQLサーバを操作する際はこのユーザを使用する。Fabricを使用する際のユーザには大きく3種類ある。Fabricと通信する際にXML-RPCプロトコルの認証で使用するユーザの3つ。※他にもバックアップユーザ、リストアユーザがあるが、これはバックアップ・リカバリ時に使用するユーザなので、今回は触れない。確認したい人はこちら。権限最小化を意識する際は参照すべし。Fabric構成情報変更のオペレーションをするホストからの接続を許可すればよい。同じ高可用性グループ内からのアクセスは許可しておく必要がある。Fabricではサーバユーザを利用して高可用性グループ内のレプリケーションを行っているためである。XML-RPCプロトコル認証のためのユーザについては、多少の説明が必要と思う。Server/Clientプロトコルが対応している。通信はXML-RPCプロトコルのみである。Server/Clientプロトコルを利用していると聞いたことがある)このため、XML-RPCプロトコル用の認証ユーザが存在する、というわけである。通信するサーバ間でHTTPポート(80番)が開放されている必要があるはず。Fabricバッキングストアを別サーバに立てる場合には注意が必要と思われる。Fabricの設定ファイルに記載する。Fabricの設定ファイルはfabric.cfgという名前で、デフォルトでは/etc/mysql/の配下に配置されている。設定可能な項目はこちらを参照。基本設定時に主に使用するセクションは[storage]、[servers]、[protocol.xmlrpc]の3つであり、[storage]セクションはバッキングストアに関する設定、[servers]セクションは監視対象のMySQLサーバに関する設定、[protocol.xmlrpc]セクションはXML-RPCプロトコルでの通信に関する設定をそれぞれ記載する。・・・さて、前置きが長くなったが、実際の設定手順に入っていく。MySQLがインストールされていることを前提としている。Fabric検証シリーズ第2弾を参照のこと。私の環境では、192.168.2.213~192.168.2.219の7台のサーバを用意している。普通の人はこんなにサーバを準備するのは面倒と感じると思うので、1台のサーバで複数のMySQLプロセスを立ち上げればそれで問題ない。その場合は、以下でIPを書いているところにプラスでポートを記載する(192.168.2.213:3306、など)こと。Fabricバッキングストア用、214と215を1つ目、216と217を2つ目の高可用性グループとして、218と219をグローバルグループとして構成する。バッキングストアユーザ作成バッキングストアユーザを作成する。サーバユーザ作成サーバユーザを作成する。masterを実行する。masterを実行した。設定ファイル修正デフォルトで/etc/mysql/fabric.cfgが作られているので、これを修正する。/etc/mysql/fabric.cfg修正するのは、[storage]セクションのuser、password、[servers]セクションのuser、password、[protocol.xmlrpc]セクションのuser、password、addressである。これらに、上記作成したユーザ名、パスワードを入力していけばよい。Fabricに接続する際の接続先を記載する。Fabricサーバが異なる場合、デフォルトのlocalhost:32274では接続できないため、localhostの部分を自身のIPアドレスに書き換える必要がある点に注意。XML-RPCプロトコル通信での認証を省きたい場合は、[protocol.xmlrpc]セクションのdisable_authenticationをyesに書き換えればよい。バッキングストアセットアップバッキングストアをセットアップする。ここからはmysqlfabricユーティリティを使用する。下記コマンドでバッキングストアが作成される。admin/xmlrpc:ここでxmlrpcプロトコルの認証情報を設定するため、先ほど記載したユーザのパスワードを入力する。これで初期セットアップは完了。--daemonize–daemonizeをつけなくても起動はできるが、プロンプトが返ってこなくなってしまうため、つけたほうがよい。pingコマンドで確認。高可用性グループ作成まず高可用性グループのガワだけつくり、後からグループにサーバを追加する、という手順になる。下記構築中何度かグループを作り直したりしているので、UUIDが一致しないことがある。多くの方にとっては注視する必要はない所だが、念のためご留意頂きたい。高可用性グループを作る。(_create_group).高可用性グループにサーバを追加する。(_add_server).以下、同じように高可用性グループを作成し、サーバを追加して下記構成とした。※グローバルグループも高可用性グループの一種なので、作成方法は同じ。グループ名コマンドで確認できる。Fabricのレプリケーションを開始する。(_change_to_candidate).確認は下記コマンドで可能。status欄がPRIMARYとなっているのがMaster、SECONDARYとなっているのがSlave。想定どおりのMaster/Slave構成にした。1.0これらの作業を残りのmy_second_fabric、my_global_fabricグループにも実行した。Fabricの基本設定は完了となる。死活監視、データシャーディングについてはまた次回以降に掲載する予定。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Ushio駆け出しのMySQLエンジニア。OSSを仕事で扱っています。themehall.com。