アップグレードを完了した場合、またはアップグレードに失敗した場合は、環境を以前のバージョンにロールバックできます。
以下の手順は、手動によるロールバックを実行する場合に使用します。これは、自動ロールバックが失敗した場合にのみ必要です。
注: この手順には関連する既知の問題があります。詳細については、リリース ノートの「既知の問題」セクションを参照してください。
手順
- サービス プロバイダ (SP) アプライアンスをロールバックします。
- 新しいバージョン(「green」アプライアンス)を実行しているすべてのアプライアンスをパワーオフします。
- 旧バージョン(「blue」アプライアンス)を実行しているすべてのアプライアンスをパワーオンします。
- 両方のアプライアンスでデータベースをリセットします。
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、両方のアプライアンスで root として次のコマンドを実行します。
DB_NAME='fdb'; PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5) psql -U admin ${DB_NAME} -c "BEGIN;SET TRANSACTION read write; ALTER DATABASE ${DB_NAME} SET default_transaction_read_only='off'; COMMIT;"
service dtService restart
- 「blue」SP アプライアンスがバージョン 18.1 以降を実行している場合は、両方のアプライアンスで root として次のコマンドを実行します。
/usr/local/desktone/scripts/reset_db_access_mode.sh 1000 'restart'
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、両方のアプライアンスで root として次のコマンドを実行します。
- リソース マネージャ (RM) アプライアンスをロールバックします。
- 新しいバージョン(「green」アプライアンス)を実行しているすべてのアプライアンスをパワーオフします。
- 旧バージョン(「blue」アプライアンス)を実行しているすべてのアプライアンスをパワーオンします。
- テナント (TA) および Desktop Manager (DM) アプライアンスをロールバックします。
- 新しいバージョン(「green」アプライアンス)を実行しているすべてのアプライアンスをパワーオフします。
- 旧バージョン(「blue」アプライアンス)を実行しているすべてのアプライアンスをパワーオンします。
- アプライアンスのデータベースをリセットします。
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、すべての TA アプライアンスおよび DM アプライアンスで root として次のコマンドを実行します。データベースごとに 1 回実行し、
XXX
はデータベースの名前(TA アプライアンスの場合はfdb
、edb
、およびavdb
、DM アプライアンスの場合はedb
およびavdb
)に置き換えます。DB_NAME='XXX'; PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5) psql -U admin ${DB_NAME} -c "BEGIN;SET TRANSACTION read write; ALTER DATABASE ${DB_NAME} SET default_transaction_read_only='off'; COMMIT;"
- 「blue」SP アプライアンスがバージョン 18.1 以降を実行している場合は、適切なテナント OrgId を使用して、プライマリ SP アプライアンスで root として次のコマンドを実行します。
/usr/local/desktone/scripts/reset_db_access_mode.sh 'TENANT_ORG_ID'
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、すべての TA アプライアンスおよび DM アプライアンスで root として次のコマンドを実行します。データベースごとに 1 回実行し、
- プライマリ SP アプライアンスで root として次のコマンドを実行して、「blue」アプライアンス eth1 IP アドレスをリストアします。TA または DM アプライアンスごとに 1 回実行し、
BACKBONE_IP
をアプライアンスの基盤 IP アドレスに置き換えます。BLUE_APPLIANCE_ETH1='BACKBONE_IP'; export PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5); BLUE_APPLIANCE_ID=$(psql -U admin fdb -t --no-align -c "select appliance_id from network_interface where ip_address='${BLUE_APPLIANCE_ETH1}'"); psql -U admin fdb -c "WITH NIC_IDS AS (select id from network_interface where adapter_name IN ('eth1', 'standby') and appliance_id= '${BLUE_APPLIANCE_ID}') UPDATE network_interface SET adapter_name=(CASE ip_address WHEN '${BLUE_APPLIANCE_ETH1}' THEN 'eth1' ELSE 'standby' END) WHERE id IN (SELECT id from NIC_IDS)"
- プライマリ SP アプライアンスで root として次のコマンドを実行して、テナント組織のプラットフォーム バージョンとマニフェスト バージョンをリストアします。
TENANT_ORG_ID
、BLUE_PLATFORM_VERSION
、およびBLUE_MANIFEST_VERSION
には適切な値を指定します。- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、次のコマンドを実行します。
TENANT_ORG_ID='XXXX' BLUE_PLATFORM_VERSION=‘X.X.X'; PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5) psql -U admin fdb -c "UPDATE appliance SET version='${BLUE_PLATFORM_VERSION}' WHERE org_id=${TENANT_ORG_ID}"
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行していない場合は、次のコマンドを実行します。
TENANT_ORG_ID='XXXX' BLUE_PLATFORM_VERSION=‘X.X.X' BLUE_MANIFEST_VERSION='X.X.X.XXXX.X'; PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5) psql -U admin fdb -c "UPDATE appliance SET version='${BLUE_PLATFORM_VERSION}', manifest_version='${BLUE_MANIFEST_VERSION}' WHERE org_id=${TENANT_ORG_ID}”
- 「blue」SP アプライアンスがバージョン 8.0.1 を実行している場合は、次のコマンドを実行します。
- アップグレード前に App Volumes Manager コンソールを有効にしていた場合は、プライマリ SP アプライアンスで root として次のコマンドを実行し、再度有効にします。
ORG_ID
には適切な値を指定します。PGPASSWORD=$(sed -n 1p /root/.pgpass | cut -d: -f5) psql -U admin fdb -c "UPDATE organization SET avmui_enabled='t' where id='ORG_ID’"
- 各 TA および DM アプライアンスで次のコマンドを実行して、dtService を再起動します。
service dtService restart