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

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

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

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


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

1. まず、稼働中の全てのゲストOSを、Karesansuiの管理画面から停止するか、または、下記コマンドを実行して停止します。
# /opt/hde/bin/virsh shutdown <ゲストOSのドメイン>
2. Karesansui関連のサービスを全て停止します。
# /etc/init.d/silhouetted stop
# /etc/init.d/hde-lighttpd stop
# /etc/init.d/hde-libvirtd stop
# /etc/init.d/xend stop (Xenを利用しているときのみ)

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

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

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

      # cd Karesansui
      # ./karesansui-install

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

このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
ただし、pysilhouetteの使用するデータベースは、アップグレード時に初期化されますので、必要であればデータベースのバックアップも行ってください。

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

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

      # ./karesansui-checkenv
7. ホストを再起動します。
# shutdown -r now


バージョン1.1.xとのファイル・ディレクトリ構成の差分

2.0からゲストOSに使用されるイメージファイルは、ストレージプール上のストレージボリュームとして配置されます。


1. ゲストOSのイメージファイル


1.1 バージョン1.1.xのファイルパス
/var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img


1.2 バージョン2.0.xのファイルパス
ストレージプール上のストレージボリュームファイル

デフォルトでは、defaultという名前のストレージプールが、/var/opt/hde/libvirt/domainsディレクトリに対して作成されますので、
1.1からのアップグレードでは、1.1のイメージファイルパス(/var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img)へ
のシンボリックリンクが、/var/opt/hde/libvirt/domainsディレクトリの配下にUUID形式のファイル名で作成されます。


fooというドメインを例にすると、下記のようなシンボリックリンクがストレージプール配下に作成されます。
# ls -ltr /var/opt/hde/libvirt/domains/[0-9]*
lrwxrwxrwx 1 root kss  57  6月 15 12:46 /var/opt/hde/libvirt/domains/55236ff8-88bb-023f-1499-2f34c4f1b133 -> /var/opt/hde/libvirt/domains/foo/images/foo.img

5. Karesansui 2.0.0 からKaresansui 2.0.xへアップデートする手順

概要
2.0.0から2.0.xへのアップデートは、インストーラの使用し、下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うことができます。
なお、アップデートを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。

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

1. まず、稼働中の全てのゲストOSを、Karesansuiの管理画面から停止するか、または、下記コマンドを実行して停止します。
# /opt/hde/bin/virsh shutdown <ゲストOSのドメイン>
2. Karesansui関連のサービスを全て停止します。
# /etc/init.d/silhouetted stop
# /etc/init.d/hde-lighttpd stop
# /etc/init.d/hde-libvirtd stop
# /etc/init.d/xend stop (Xenを利用しているときのみ)

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

# tar zxvf karesansui-2.0.x-xxx-install-pack.tar.gz

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

# cd Karesansui
# ./karesansui-install

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

このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
ただし、pysilhouetteの使用するデータベースは、アップグレード時に初期化されますので、必要であればデータベースのバックアップも行ってください。

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

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

# ./karesansui-checkenv
7. ホストを再起動します。
# shutdown -r now

Also available in: HTML TXT