【プレイべートクラウド】Cloudstack 4.17.1 to 4.18.1 Fix お知らせ » エンジニアリング FOLレター FOLニュース Recovery ... 今回のUpgrade、あちらこちらでCloudstack Managementが正常起動しない問題の記事を見ました。そんな記事を確認しないで、実施したら、私もコケましたので、そのコケ具合と回復手順を紹介。【1】公式通りにアップグレードするcloudstack.apacheにある通り「Upgrade Instruction from 4.17.x」を実施する。指示通り行えば、毎度、そう問題もなく稼働してくれてましたが・・・、今回はおかしなことになりました。汗 Caused by: java.sql.SQLSyntaxErrorException: Table 'cloud.autoscale_vmgroup_vm_map' doesn't exist at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:228) ... 52 more2023-10-08 11:56:18,768 DEBUG [c.c.u.d.T.Transaction] (main:null) (logid:) Rolling back the transaction: Time = 3367 Name = Upgrade; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-DatabaseUpgradeChecker.upgrade:327-DatabaseUpgradeChecker.check:403-CloudStackExtendedLifeCycle.checkIntegrity:64-CloudStackExtendedLifeCycle.start:54-DefaultLifecycleProcessor.doStart:178-DefaultLifecycleProcessor.access$200:54-DefaultLifecycleProcessor$LifecycleGroup.start:356-Iterable.forEach:75-DefaultLifecycleProcessor.startBeans:155 ん?4.18系へのデータベースアップグレードが失敗するみたいです。とりあえず、「service restart cloudstack-management」してみます。 2023-10-08 12:40:09,667 ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:) Error executing: ALTER TABLE `cloud`.`networks` ADD COLUMN `public_mtu` bigint unsigned comment "MTU for VR public interface" ・・・Caused by: java.sql.SQLSyntaxErrorException: Duplicate column name 'public_mtu' at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:228) ... 52 more2023-10-08 12:40:09,737 DEBUG [c.c.u.d.T.Transaction] (main:null) (logid:) Rolling back the transaction: Time = 273 Name = Upgrade; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-DatabaseUpgradeChecker.upgrade:327-DatabaseUpgradeChecker.check:403-CloudStackExtendedLifeCycle.checkIntegrity:64-CloudStackExtendedLifeCycle.start:54-DefaultLifecycleProcessor.doStart:178-DefaultLifecycleProcessor.access$200:54-DefaultLifecycleProcessor$LifecycleGroup.start:356-Iterable.forEach:75-DefaultLifecycleProcessor.startBeans:155 んん??え~?ちゃんとロールバックされてないよ・・・。汗 【2】github:apache/cloudstackへ この感じ、手元のCloudstackに問題があるというよりは、v4.18.1のDatabase Upgradeにバグがありそうなので、手直しして使います。(4.17系に戻したくないので・・・)Apache CloudStack 4.18.1.0 (LTS)からソースをダウンロード。(a)autoscale_vmgroup_vm_mapの手がかり探したら、cloudstack-4.18.1.0\engine\schema\src\main\resources\META-INF\db\schema-40to410.sqlに「CREATE TABLE `cloud`.`autoscale_vmgroup_vm_map`」がありました。(b)public_mtuの手がかりこちらの問題は、(a)のロールバックが効かない問題で発現してるだけだろうから、手がかりは探さずALTER TABLEで元に戻すことにします。【3】手直し実施cloudstack management serverにsshして、mysqlコマンドで直すことになります。 # mysql cloud -u cloud -pEnter password:MariaDB [cloud]> (a)autoscale_vmgroup_vm_map流し込みschema-40to410.sqlから「CREATE TABLE `cloud`.`autoscale_vmgroup_vm_map` ...;」のスクリプトを実行して終わり。(b)public_mtu等こっちは、(a)に当たる前のロールバックしなかったSQLスクリプトです。次のスクリプトを実施すると良いようです。 ALTER TABLE `cloud`.`networks` DROP COLUMN `public_mtu`;ALTER TABLE `cloud`.`networks` DROP COLUMN `private_mtu` ;ALTER TABLE `cloud`.`vpc` DROP COLUMN `public_mtu` ;ALTER TABLE `cloud`.`nics` DROP COLUMN `mtu`;ALTER TABLE `cloud`.`load_balancing_rules` DROP COLUMN `cidr_list`;ALTER TABLE `cloud`.`networks` DROP COLUMN `ip6dns1`;ALTER TABLE `cloud`.`networks` DROP COLUMN `ip6dns2`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `dns1`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `dns2`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `ip6dns1`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `ip6dns2`; 【4】4.18.1 Management起動# service cloudstack-management start# service cloudstack-usage startふぅ、行けました。 ラベル名の日本語化が一部外れているのは気にしない。汗日常使う管理機能は動いているし、これで仮想サーバのアップグレードも進めることができるようになりました。 【メカM5STACK】不要なH... 【深淵オーディオ】(3)LM1...
Caused by: java.sql.SQLSyntaxErrorException: Table 'cloud.autoscale_vmgroup_vm_map' doesn't exist at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:228) ... 52 more2023-10-08 11:56:18,768 DEBUG [c.c.u.d.T.Transaction] (main:null) (logid:) Rolling back the transaction: Time = 3367 Name = Upgrade; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-DatabaseUpgradeChecker.upgrade:327-DatabaseUpgradeChecker.check:403-CloudStackExtendedLifeCycle.checkIntegrity:64-CloudStackExtendedLifeCycle.start:54-DefaultLifecycleProcessor.doStart:178-DefaultLifecycleProcessor.access$200:54-DefaultLifecycleProcessor$LifecycleGroup.start:356-Iterable.forEach:75-DefaultLifecycleProcessor.startBeans:155
2023-10-08 12:40:09,667 ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:) Error executing: ALTER TABLE `cloud`.`networks` ADD COLUMN `public_mtu` bigint unsigned comment "MTU for VR public interface" ・・・Caused by: java.sql.SQLSyntaxErrorException: Duplicate column name 'public_mtu' at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:228) ... 52 more2023-10-08 12:40:09,737 DEBUG [c.c.u.d.T.Transaction] (main:null) (logid:) Rolling back the transaction: Time = 273 Name = Upgrade; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-DatabaseUpgradeChecker.upgrade:327-DatabaseUpgradeChecker.check:403-CloudStackExtendedLifeCycle.checkIntegrity:64-CloudStackExtendedLifeCycle.start:54-DefaultLifecycleProcessor.doStart:178-DefaultLifecycleProcessor.access$200:54-DefaultLifecycleProcessor$LifecycleGroup.start:356-Iterable.forEach:75-DefaultLifecycleProcessor.startBeans:155
ALTER TABLE `cloud`.`networks` DROP COLUMN `public_mtu`;ALTER TABLE `cloud`.`networks` DROP COLUMN `private_mtu` ;ALTER TABLE `cloud`.`vpc` DROP COLUMN `public_mtu` ;ALTER TABLE `cloud`.`nics` DROP COLUMN `mtu`;ALTER TABLE `cloud`.`load_balancing_rules` DROP COLUMN `cidr_list`;ALTER TABLE `cloud`.`networks` DROP COLUMN `ip6dns1`;ALTER TABLE `cloud`.`networks` DROP COLUMN `ip6dns2`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `dns1`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `dns2`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `ip6dns1`;ALTER TABLE `cloud`.`vpc` DROP COLUMN `ip6dns2`;