GIGAPOD 3 - 負荷分散構成 第 1.01 版 2013 年 3 月 改訂履歴 No バージョン 日付 作成者 改訂者 補足 001 1.00 2012/09 トライポッドワークス 初稿 002 1.01 2013/03 トライポッドワークス cron 設定内容の追記 ( 対象バージョン :3.00.03) Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 1-
負荷分散構成 この文書では GIGAPOD 3 の負荷分散構成を構築する方法 注意事項について記載しています [ 目次 ] 1. 負荷分散の目的と構築イメージ... 3 2. 負荷分散の構築手順 ( 概要 )... 4 3. ストレージの構築... 4 4. DB サーバーの構築... 5 4.1. GIGAPOD のインストール... 5 4.2. ストレージのマウント... 5 4.3. バッチ処理設定... 6 4.4. Web サーバーの無効化... 7 5. Web サーバーの構築... 8 5.1. GIGAPOD のインストール... 8 5.2. ストレージのマウント... 8 5.3. バッチ処理設定... 8 5.4. DB サーバーの無効化... 9 5.5. DB 接続先の編集... 9 5.6. httpd(apache) ログファイル設定... 9 5.7. セッション維持 Cookie 設定... 10 6. ロードバランサの構築... 10 7. 注意事項... 11 7.1. セットアップ画面 (8001 ポート ) について... 11 7.2. バージョンアップについて... 11 Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 2-
1. 負荷分散の目的と構築イメージ GIGAPOD を高負荷で運用するケースなど サーバーリソースの負荷分散 冗長化を行うために 複数の役割から構成されるサーバーから GIGAPOD 環境を構築します ロードバランサ Web サーバー Web サーバー DB サーバー ストレージ Figure 1 負荷分散構成イメージ 項目ロードバランサ Web サーバー DB サーバーストレージ 役割負荷分散装置です セッション維持に対応している必要があります GIGAPOD の Web サーバーです データベースサーバーおよびバッチ処理サーバーです ユーザーがアップロードするファイルを格納するストレージです Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 3-
2. 負荷分散の構築手順 ( 概要 ) 構築にあたっては エントリポイントであるロードバランサを上位レイヤーとして 下位レイヤーから構築を行います DB サーバー ストレージ 1. GIGAPOD のインストール 2. ストレージのマウント 3. バッチ処理設定. 4. Web サーバー無効設定 Web サーバー 1. GIGAPOD のインストール 2. ストレージのマウント 3. バッチ処理設定 4. DB サーバー無効設定 5. DB 接続先の編集 6. httpd ログファイル書式設定 7. セッション維持 Cookie 設定 ロードバランサ 1. 対象ホストの設定 2. セッション維持 Cookie 設定 Figure 2 構築手順 ( 概要 ) 3. ストレージの構築 共有ストレージについては GIGAPOD インストール後のディレクトリ /home/officeusers を共有ストレージに格納します Web サーバーと DB サーバーからは /home/officeusers としてファイルが参照 書き込みできるようにマウントおよびパーミッション設定を行なって下さい Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 4-
4. DB サーバーの構築ここでは DB サーバーの構築手順について説明を行います 4.1. GIGAPOD のインストールインストーラーより GIGAPOD のインストールを行います DB サーバーでは インストーラーに同梱されている MySQL サーバーおよびスキーマを利用します また 自動削除処理などのバッチ系処理も動作させるようにします インストーラーの動作環境や手順など 詳細についてはセットアップマニュアルを参照して下さい 4.2. ストレージのマウントバッチ系処理でファイルを参照するため ストレージをマウントします (/home/officeusers) Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 5-
4.3. バッチ処理設定 DB サーバーとして固有の cron 設定を行います () 内はコメントです (nboxadm ユーザーの cron 設定を crontab_batch ファイルの内容に置き換えます ) # /usr/bin/crontab -r -u nboxadm # cat /home/officehard/startup-script/crontab_batch /usr/bin/crontab -u nboxadm (root ユーザーの cron 設定を crontab-root_batch ファイルの内容に置き換えます ) # /usr/bin/crontab -r # cat /home/officehard/startup-script/crontab-root_batch /usr/bin/crontab (cron 設定を確認します ) ( 注 :update_license.sh が含まれている場合は削除して下さい ) #/usr/bin/crontab l u nboxadm */30 * * * * /home/officehard/sh/log_mail.sh &> /dev/null 0 1 * * * /home/officehard/sh/delete_auto.sh &> /dev/null 0 1 * * * /home/officehard/sh/garbage_session.sh 259200 &> /dev/null 0 2 * * * /home/officehard/sh/update_license.sh &> /dev/null 0 3 * * 0 /home/officehard/sh/deletelogs.sh &> /dev/null 0 6 * * 0 /home/officehard/sh/deletelogshistory.sh &> /dev/null #/usr/bin/crontab l 0 7 * * 0 /home/officehard/sh/mysql-optimize.sh 1> /home/officelogs/mysql-optimize.log 2>&1 Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 6-
4.4. Web サーバーの無効化 DB サーバーでは Web サーバーの役割を利用しないため Web サーバーの無効化を行います # /sbin/service nboxhttpd stop # /sbin/service nboxhttpdsys stop # /sbin/service nboxavg stop # /sbin/chkconfig --del nboxhttpd # /sbin/chkconfig --del nboxhttpdsys # /sbin/chkconfig --del nboxavg Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 7-
5. Web サーバーの構築ここでは Web サーバーの構築手順について説明を行います 5.1. GIGAPOD のインストールインストーラーより GIGAPOD のインストールを行います インストーラーの動作環境や手順など 詳細についてはセットアップマニュアルを参照して下さい 5.2. ストレージのマウントファイルのアップロードなどを処理するために ストレージをマウントします (/home/officeusers) 5.3. バッチ処理設定 Web サーバーとして固有の cron 設定を行います () 内はコメントです (nboxadm ユーザーの cron 設定を削除します ) ( 注 :crontab_web ファイルが無い場合は無視して下さい ) # /usr/bin/crontab -r -u nboxadm # cat /home/officehard/startup-script/crontab_web /usr/bin/crontab (root ユーザーの cron 設定を crontab-root_web ファイルの内容に置き換えます ) # /usr/bin/crontab -r # cat /home/officehard/startup-script/crontab-root_web /usr/bin/crontab (cron 設定を確認します ) ( 注 :update_license.sh が含まれていない場合は追加して下さい ) ( この処理はライセンス情報を最新に保つための更新処理です 1 台の Web サーバーに設定する事でも処理可能です また cron に設定せずに GUI で操作する事もできます ) #/usr/bin/crontab l u nboxadm 0 2 * * * /home/officehard/sh/update_license.sh &> /dev/null #/usr/bin/crontab l 10 0,4,8,12,16,20 * * * /home/officehard/libexec/avgupdater 0 2 * * * /home/officehard/sh/deletetmpfileofzip.sh &> /dev/null 0 7 * * * /home/officehard/sh/tempfile-clean.sh &> /dev/null */5 * * * * /home/officehard/sh/check-httpd.sh 2>&1 Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 8-
5.4. DB サーバーの無効化 Web サーバーでは DB サーバーの役割を利用しないため DB サーバーの無効化を行います # /sbin/service nboxmysql stop # /sbin/chkconfig -del nboxmysql 5.5. DB 接続先の編集 Web サーバーから DB サーバーを参照するための設定を行います 設定ファイルを開きます # vi /home/officehard/share/officehard.cfg DB の接続先情報について 下記の設定情報を編集します 通常はホスト名 (DB_HOST) だけを書き換えます () 内はコメントです DB_HOST=127.0.0.1 (DB サーバーのホスト名または IP アドレス ) DB_ID=nbox (MySQL ユーザー名 ) DB_PASSWORD=xxxx(MySQL パスワード ) DB_DATABASE=officehard(MySQL データベース名 ) DB_PORT=3306(MySQL ポート番号 ) DB の接続先が正しいかどうかを確認するために 下記のコマンドを利用して mysql へのログインを試行します ${DB_HOST} などの変数は設定内容に置き換えて利用して下さい # /home/officehard/bin/mysql h ${DB_HOST} --port=${db_port} -u${db_id} -p${db_password} ${DB_DATABASE} Type 'help;' or ' h' for help. Type ' c' to clear the current input statement. mysql> 5.6. httpd(apache) ログファイル設定 Web サーバーのログファイルに記録される IP アドレスは Web サーバーをロードバランサの配下とした後 ロードバランサのローカル側 IP アドレスとなってしまうため 正しくアクセス元の IP アドレスを収集するように設定を変更します 具体的には REMOTE_ADDR ヘッダから収集していた IP アドレスを ロードバランサが補完するアクセス元 IP アドレスが格納された X-Forwarded-For ヘッダから取得するようにします 追加の設定を行うためのファイルを開きます Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 9-
# vi /home/officehard/conf/extra/httpd-log.conf ファイルを下記の内容で置き換えます X-Forwarded-For は ロードバランサが http ヘッダに格納するアクセス元 IP アドレスです <IfModule log_config_module> LogFormat "%{X-Forwarded-For}i %l %u %t "%r " %>s %b "%{Referer}i " "%{User-Agent}i " "%{cookie}i "" officehard </IfModule> 5.7. セッション維持 Cookie 設定ロードバランサがセッションを維持するために GIGAPOD Web サーバーから サーバー固有の Cookie 送出 ( レスポンス ) を求められる場合があります この仕様はロードバランサ製品によって異なり ロードバランサが自動で Cookie を送出する製品も存在します GIGAPOD では これに対応するために 任意の文字列を Cookie の lbsession というキーに格納して送出する機能を提供します 任意の文字列は ファイル /home/officehard/share/serverid.cfg に書き込んで保存します (/home/officehard/share/serverid.cfg の記載例 ) websrv1 6. ロードバランサの構築 ロードバランサのマニュアルに従い GIGAPOD の Web サーバーにアクセスできるようにします Web サーバーのログ (/home/officelogs/httpd/access_log) を確認して 適切に処理が分散されている事を確認して下さい また 複数の Web サーバーから DB サーバー ストレージが共有されているかどうかを確認します アクセス元の IP アドレスが Web サーバーのログ (/home/officelogs/httpd/access_log) および GIGAPOD のファイルログ ( 管理者向け機能 ) に正しく記録されている事を確認します Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 10-
7. 注意事項 7.1. セットアップ画面 (8001 ポート ) について セットアップ画面 (8001) については それぞれの機能が 1 つの Web サーバーを管理する機能である事から サービスを無効 ( サービス名 :nboxhttpdsys) にするか ロードバランサ経由でアクセスせずにローカル IP アドレスで利用するようにして下さい 7.2. バージョンアップについて バージョンアップの内容によっては 負荷分散構成に影響のある内容が含まれる場合があります そのため バージョンアップの際には システム全体の停止を行う必要があります バージョンアップの手順は 上記負荷分散構成の構築手順と大きく変わりません GIGAPOD のサービスを停止した状態から 新しいバージョンのインストーラーを実行することで 上書きインストールが行われます この際 データベースの接続先情報は上書きされませんが サービス設定 ( サーバー無効化 ) cron 設定についてはリセットされますので 再度設定を行う必要があります Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 11-
本書はトライポッドワークス株式会社 ( 以下弊社 ) が作成したもので すべての権利は弊社が所有します 弊社に無断で本書の一部または全部を転載 複製 改変を行う事は禁じられています 本書に記載されている他社製のソフトウェア及び周辺機器は 一般に各社の登録商標です 本書に記載された内容は予告なく変更される場合がありますので あらかじめご了承ください 改良のため予告なく本製品の仕様を変更することがありますので あらかじめご了承ください 本製品は日本国内でのみ使用することを前提としており 外国の規格などには準拠しておりません 日本国外で使用された場合 弊社はいかなる責任も負いかねます 本製品は本書に記載された使用方法に沿ってご使用ください 特に 注意事項として記載された事項に反した使用はおやめください トライポッドワークス株式会社 Copyright (c) Tripodworks Co.,LTD. All Rights Reserved. - 12-