001-008032

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

DB分割版で添付ファイル保存ディレクトリをmysql-5.0以下に配置していると、3.5.0へのバージョンアップに失敗する。

種別
サーバー環境の制限事項
機能
  • インストーラー
再現バージョン
  • 3.5.0
改修バージョン
公開日
2014-03-26
更新日
2014-07-31

詳細

【発生条件】

次の条件をすべて満たす場合に発生します。
  • バージョン 3.1.3以前のガルーンをDB分割構成で構築し、3.5.0へバージョンアップする。

  • 添付ファイル保存ディレクトリーをmysql-5.0以下に配置している。

  • NFSクライアントで、NFS サーバーの添付ファイル保存ディレクトリーをマウントした領域に、root権限がない。

【準備】

  • 次の構成でDB分割版を構築した場合の再現例を記載します。

    構成:
    --------------------------
    サーバーA (NFSクライアント):アプリケーションサーバー
    サーバーB (NFSクライアント):マスターデータベースサーバー
    サーバーC (NFSサーバー) :スレーブデータベースサーバー

    補足:
    • すべてのアプリケーションの添付ファイルを一括してサーバーCに保存するものとします。
    --------------------------

  • 添付ファイル保存ディレクトリーの配置mysql-5.0以下指定し、バージョン 3.1.3以前のDB分割版ガルーンを構築します。

    補足:
    • 添付ファイルを保存するディレクトリーは、setting.iniファイルの[common]セクションにあるfiles_dirで設定します。

    例:
    --------------------------
    [common]
    (省略)
    files_dir = /usr/local/cybozu/mysql-5.0/files
    (省略)
    --------------------------

  • すべてのアプリケーションの添付ファイルを一括してサーバーCに保存する設定にします。

    • サーバーCのexportsファイル例:
      --------------------------
      /usr/local/cybozu/mysql-5.0/files [サーバーAのIP](rw) [サーバーBのIP](rw)
      --------------------------

    • サーバーA、サーバーBで実行するNFSマウントコマンド例:
      --------------------------
      mount -o intr [サーバーCのIP]:/usr/local/cybozu/mysql-5.0/files /usr/local/cybozu/mysql-5.0/files
      --------------------------

【再現手順】

  1. バージョン 3.5.0へのバージョンアップ手順のうち、CGIアプリケーションのバージョンアップまで完了させます。

  2. スレーブデータベースサーバーをバージョンアップさせます。
    --------------------------
    64ビットOS: ./versionup.sh mysql_slave_64 setting.ini
    32ビットOS: ./versionup.sh mysql_slave setting.ini
    --------------------------

    補足:
    • バージョンアップが正常に完了します。

  3. マスターデータベースサーバーをバージョンアップさせます。
    --------------------------
    64ビットOS: ./versionup.sh mysql_master_64 setting.ini
    32ビットOS: ./versionup.sh mysql_master setting.ini
    --------------------------

→現象発生:
 次のエラーが発生し、バージョンアップに失敗します。

 例:
 --------------------------
 chown: cannot read directory `/usr/local/cybozu/mysql-5.0/files': 許可がありません
 [Wed, 22 Jan 2014 18:48:17 +0900] ! Execute failed 'chown -R apache:apache /usr/local/cybozu/mysql-5.0'. returned 1.
 [Wed, 22 Jan 2014 18:48:17 +0900] failed to chown
 [Wed, 22 Jan 2014 18:48:17 +0900] failed to deploy new MySQL
 [Wed, 22 Jan 2014 18:48:17 +0900] !! Mysql-Master versionup failed.

 [Wed, 22 Jan 2014 18:48:17 +0900]
 [Wed, 22 Jan 2014 18:48:17 +0900] !!! Versionup failed.
 --------------------------


補足:
  • DB分割版の構築やバージョンアップについての詳細は、各マニュアルを参照してください。

  • スレーブデータベースサーバーがNFSクライアントになっている場合は、手順2の実行時にエラーが発生し、バージョンアップに失敗します。

回避/対応方法

申し訳ありません。本現象は制限事項です。

【回避方法】

バージョンアップを開始する前に添付ファイル保存ディレクトリーをmysql-5.0配下から移動させます。
  1. 次の順に各サービスを停止します。

    • Webサーバー
    • Memcache
    • スケジューリングサービス
    • データーベースエンジン

  2. マウントしている添付ファイル保存ディレクトリーをすべてアンマウントします。

    例:
    --------------------------
    umount -f /usr/local/cybozu/mysql-5.0/files
    --------------------------

  3. すべてのサーバーで、common.iniファイルを編集します。

    例:
    --------------------------
    [Files]
    files_dir = "/usr/local/cybozu/files"
    --------------------------

    補足:
    • common.iniはデフォルトでは次のディレクトリに存在します。
      --------------------------
      /usr/local/cybozu/[インストール識別子]/common.ini
      --------------------------

  4. すべてのサーバーで、添付ファイル保存ディレクトリーを移動します。

    例:
    --------------------------
    mv /usr/local/cybozu/mysql-5.0/files /usr/local/cybozu/
    --------------------------

    補足:
    • すべてのサーバーで、添付ファイル保存ディレクトリーを手順3で指定したディレクトリーへ移動します。

  5. exportsファイルを変更します。

    サーバーCのexportsファイル例:
    --------------------------
    /usr/local/cybozu/files [サーバーAのIP](rw) [サーバーBのIP](rw)
    --------------------------

    補足:
    • exportsファイルに手順3で指定したディレクトリーを記述します。

  6. 各サーバーで、NFSマウントに必要なサービスを再起動します。

  7. 移動した添付ファイル保存ディレクトリーをマウントします。

    サーバーA、サーバーBで実行するNFSマウントコマンド例:
    --------------------------
    mount -o intr [サーバーCのIP]:/usr/local/cybozu/files /usr/local/cybozu/files
    --------------------------

  8. 次の順に各サービスを起動します。

    • データーベースエンジン
    • スケジューリングサービス
    • Memcache
    • Webサーバー

  9. ファイルのダウンロードがすべてのアプリケーションで行えるか、動作確認をします。

  10. setting.iniファイルの[common]セクションにあるfiles_dirを変更します。

    例:
    --------------------------
    [common]
    files_dir = /usr/local/cybozu/files
    --------------------------

    補足:

    • 添付ファイル保存領域を /usr/local/cybozu 配下に指定します。

  11. バージョン 3.5.0へバージョンアップします。

 

【対応方法】

すでに現象が発生している場合はバージョンアップ前の環境を再構築し、「回避方法」の手順を行います。

 

 

 

------------------------------------------------------------
【更新履歴】
2014/07/31 「再現バージョン」を修正しました。
2014/04/04 「回避方法」を一部修正しました。