OpenPNEを安定運用させるためのシステム運用方法を説明します。
バックアップ
OpenPNEのデータバックアップには
- config.php
- データベース
が必要です。
varディレクトリ以下の一時ファイルはバックアップする必要はありません。
config.phpはセキュリティ保護のためデータベースのダンプファイルと別々に保管してください。
※config.phpの暗号化キーとデータベースを隔離することで、セキュリティデータを保護します。
Databaseのバックアップ
MySQL4.0ではmysqlhotcopyかファイルシステムレベルでバックアップを取得してください。
MySQL4.1以降ではmysqldumpでバックアップを取得してください。
チューニングTIPS
WEBサーバ
・FUNCTION_CACHEはON
・IMAGE_CACHE_PUBLICはON
・eAcceleratorはON
DBサーバ
・DBのメモリは詰めるだけ積む
・QUERY_CACHEはON
負荷分散
OpenPNEは標準でWeb、DBの冗長化に対応してしています。
・Web分散時に、LBまたはリバースプロキシを利用します
・Web分散時に、phpセッション情報共有サーバ、OpenPNE一時データ共有用のNFSサーバが必要になります
・DBはシングルマスタ、マルチスレーブ構成に対応しています
・DBのデータ分散としては
セッション情報、SNSデータ、画像データをそれぞれ分散保持することが可能です。
分散イメージ図
書き込み、読み込みDBの分散
///
// DBサーバ設定
///
// メインデータ読み込み用DB(オプション)
//$GLOBALS[‘_OPENPNE_DSN_LIST’][‘main_reader’][] = array(
//’priority’ => 1,
//’dsn’ => array(
// ‘phptype’ => ‘mysql’,
// ‘username’ => ”,
// ‘password’ => ”,
// ‘hostspec’ => ‘localhost’,
// ‘database’ => ”,
// ‘new_link’ => false,
// ),
//);
//$GLOBALS[‘_OPENPNE_DSN_LIST’][‘main_reader’][] = array(
//’priority’ => 1,
//’dsn’ => array(
// ‘phptype’ => ‘mysql’,
// ‘username’ => ”,
// ‘password’ => ”,
// ‘hostspec’ => ‘localhost’,
// ‘database’ => ”,
// ‘new_link’ => false,
// ),
//);
画像保存DBを書き込みデータベースと分散
// 画像データ保存用DB(オプション)
//$GLOBALS[‘_OPENPNE_DSN_LIST’][‘image’] = array(
//’dsn’ => array(
// ‘phptype’ => ‘mysql’,
// ‘username’ => ”,
// ‘password’ => ”,
// ‘hostspec’ => ‘localhost’,
// ‘database’ => ”,
// ),
//);
WEB分散
WEB分散では
・アクセスをリアルサーバに分散させるLB
LB、LVS、mod_rewrite、mod_proxy_balancerの中から必要なものを選択します。
・PHPセッション情報を中央管理する機構
// セッション情報をDBに保存するかどうか
// (有効にする場合は、以下のDBサーバ設定も行ってください)
define(‘SESSION_SAVE_DB’, false);
// セッションデータ保存用DB(オプション)
//$GLOBALS[‘_OPENPNE_DSN_LIST’][‘session’] = array(
//’dsn’ => array(
// ‘phptype’ => ‘mysql’,
// ‘username’ => ”,
// ‘password’ => ”,
// ‘hostspec’ => ‘localhost’,
// ‘database’ => ”,
// ‘new_link’ => false,
// ),
//);
・一時ファイルを共有する機構
define(‘OPENPNE_VAR_DIR’ , OPENPNE_DIR . ‘/var’);
ここをWEBサーバ共通のNFSマウントします。