Xen/KVM Virtualization Management Application
  • 日本語
  • English

Karesansui Wiki


アップデート


1. 目次


2. Karesansui 1.0.1 からKaresansui 1.0.2へアップデートする場合

対象者

利用しているデータベースが、SQLite以外の方が対象です。


影響範囲

ジョブマネージャー(Pysilhouette)全体


今回の不具合について

インストーラーに不具合があり、どのデータベースパスを入力しても、ジョブマネージャー(Pysilhoutte)がSQLiteを選択してしまいます。

その結果、ネットワーク接続に対応していないSQLiteですと、マルチホストに対応することができなくなります。


この不具合の修正版を1.0.2でリリースしましたが、手動で行わなければならない作業がいくつかあります。

以下の手順でアップデートしてください。


1. データベースの作成
移行先のPysilhouetteデーターベースを作成してください。

例)
PostgreSQLの場合
    # createdb -U username -W pysilhouette --encoding=utf8

MySQLの場合
    # mysql -u username -p -e 'CREATE DATABASE pysilhouette DEFAULT CHARACTER SET utf8;'

注意)
UTF-8でデータベースを作成してください。


2. 新パッケージをダウンロードし、伸長する

ダウンロードURL

# rm -rf Karesansui
# tar zxvf karesansui-<バージョン>-install-pack.tar.gz
# cd Karesansui


3. 現在のデータベースパスの確認

現在のPysilhouetteのデータベースパスを取得しておきます。


  • 設定ファイルから取得する方法
    /etc/opt/pysilhouette/silhouette.confファイル内の「database.url」の値を取得する。
例)
sqlite:////var/opt/pysilhouette/pysilhouette.db


4. Karesansuiをアップデートする

Karesansuiをアップデートし、Pysilhouetteのデータベースを変更します。
チュートリアル を参考にKaresansuiをアップデートしてください。

# ./karesansui-install
  • 「管理者の設定」画面
    「パスワード」を設定し、「OK」を押下します。
  • 「データベースの設定」画面
    「データベースを初期化する」のチェックを外し、「pysilhouette データベースパス」に新しく作成したデータベースのパスを設定し、「OK」を押下します。
注意)
「データベースを初期化する」のチェックを外してください!
Karesansuiのデータベースが初期化されてしまいます!
  • 「確認」画面
    「OK」を押下します。


5. インストールチェック
./karesansui-checkenvを実行しエラーがないか確認します。
また、「データベース pysilhouette に接続できるかをチェック... 」が指定したデータベースパスになっているか確認してください。

# ./karesansui-checkenv


6. データベースの移行
データベースをSQLiteからMySQLまたはPostgreSQLへコピーをします。

# cd /opt/pysilhouette/share/doc/pysilhouette-0.6.2/tool/
# export PYTHONPATH=/opt/hde/lib/python:/opt/karesansui/lib/python:/opt/pysilhouette/lib/python:$PYTHONPATH
# ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス>
  • --inputに入力するパス取得方法
    「3. 現在のデータベースパスの確認」の手順で確認したパスです。
  • --outputに入力するパス取得方法
    • karesansui-checkenvから取得する方法
      karesansui-checkenvで出力された「データベース pysilhouette に接続できるかをチェック... 」に書かれてあるパスを入力します。
    • 設定ファイルから取得する方法
      /etc/opt/pysilhouette/silhouette.confファイル内の「database.url」の値を入力します。
  • データベースパスの書式
SQLite : sqlite:////var/opt/karesansui/pysilhouette.db
MySQL : mysql://username:password@hostname:port/pysilhouette?charset=utf8
PostgreSQL : postgres://username:password@hostname:port/pysilhouette
注意)
コマンドの実行結果で画面に出力される「copy num」の数値はあとで使用しますので、保管してください。
(copy num - xxx) のxxxの部分
sqlite2other.py は SQLite -> MySQL or PostgreSQLの移行のみサポートしています。
例)
# ./sqlite2other.py --input=sqlite:////var/opt/pysilhouette/pysilhouette.db --output=mysql://username:password@localhost/pysilhouette?charset=utf8
Cleanup Database [OK]
copy num - 3

参考)
データベースパスの書式の詳細な説明は、リファレンス を参考にしてください。


7. 自動インクリメントの変更
Pysilhouetteデータベースの自動インクリメントの値を変更します。
Pysilhouetteデータベースにアクセスして、下記のSQLを実行してください。


SQLの<copy numの数字>の部分は、「4. データベースの移行」の手順で実行した
./sqlite2other.pyで出力されるcopy numの数字に置き換えて実行してください。

PostgreSQLの場合
    select setval('jobgroup_id_seq', <copy numの数字>);
    select setval('job_id_seq', <copy numの数字>);

    例)
    # psql pysilhouette  -U username -h localhost -c "select setval('jobgroup_id_seq', 3);" 
    # psql pysilhouette -U username -h localhost -c "select setval('job_id_seq' 3);" 

MySQLの場合
    ALTER TABLE jobgroup AUTO_INCREMENT = <copy numの数字>;
    ALTER TABLE job AUTO_INCREMENT = <copy numの数字>;

    例)
    # mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE jobgroup AUTO_INCREMENT = 3;" 
    # mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE job AUTO_INCREMENT = 3;" 
参考)
# ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス>
Cleanup Database [OK]
copy num - 3 <-- 置き換える数字


8. デーモンの再起動
設定ファイルを再読み込みするため、デーモンを再起動します。
# /etc/init.d/hde-lighttpd stop
# /etc/init.d/silhouetted restart
# /etc/init.d/hde-lighttpd start

3. Karesansui 1.0.x からKaresansui 1.1.xへアップデートする手順

概要
1.1では、ゲストOSの各種データのファイル・ディレクトリ構成が変更されました。下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うとともに、ファイル・ディレクトリ配置の変換も行います。

なお、アップグレードを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。

以降では、CentOS 5.3 (i386) を例に説明します。

# /etc/init.d/silhouetted stop
# /etc/init.d/hde-lighttpd stop
# /etc/init.d/hde-libvirtd stop
# /etc/init.d/xend stop

1. ダウンロードした1.1のインストールパックを任意のディレクトリに展開します。

      # tar zxvf karesansui-1.1.0-xxx-install-pack.tar.gz

2. 展開されたインストールパックに含まれるインストーラを実行します。

      # cd Karesansui
      # ./karesansui-install

3. インストーラの案内にしたがって、項目を入力します。

このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。

4.インストーラの実行が終了後

各種ソフトウェア更新と既存データの移行は完了です。以下のコマンドで、Karesansuiの実行環境に問題ないか確認してください。

      # ./karesansui-checkenv

Also available in: HTML TXT