[pve-devel] [PATCH pve-manager 1/1] pve8to9: check for legacy ipam db or mac cache files
Stefan Hanreich
s.hanreich at proxmox.com
Fri Aug 1 14:10:26 CEST 2025
Check if there are any not-yet-migrated ipam / mac cache files in
pmxcfs. Those should have been migrated over in the pve-network
postinst, but if something went wrong during this process we can
explicitly notify users here again to avoid any unpleasant suprises
after the upgrade.
If all nodes are on PVE 9, it is safe to delete the legacy files,
print a notice informing the users.
Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
PVE/CLI/pve8to9.pm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/PVE/CLI/pve8to9.pm b/PVE/CLI/pve8to9.pm
index 834432b95..5f7c21af9 100644
--- a/PVE/CLI/pve8to9.pm
+++ b/PVE/CLI/pve8to9.pm
@@ -2016,6 +2016,48 @@ sub check_virtual_guests {
check_qemu_machine_versions();
}
+my $LEGACY_IPAM_DB = "/etc/pve/priv/ipam.db";
+my $NEW_IPAM_DB = "/etc/pve/sdn/pve-ipam-state.json";
+
+my $LEGACY_MAC_DB = "/etc/pve/priv/macs.db";
+my $NEW_MAC_DB = "/etc/pve/sdn/mac-cache.json";
+
+sub check_legacy_ipam_files {
+ log_info("Checking for IPAM DB files that have not yet been migrated.");
+
+ if (-e $LEGACY_IPAM_DB) {
+ if (-e $NEW_IPAM_DB) {
+ log_notice(
+ "Found leftover legacy IPAM DB file in $LEGACY_IPAM_DB.\n"
+ . "This file can be deleted AFTER upgrading ALL nodes to PVE 9."
+ );
+ } else {
+ log_fail(
+ "Found IPAM DB file in $LEGACY_IPAM_DB that has not been migrated!\n"
+ . "File needs to be migrated to $NEW_IPAM_DB before upgrading. Update pve-network to the newest version."
+ );
+ }
+ } else {
+ log_pass("No legacy IPAM DB found.");
+ }
+
+ if (-e $LEGACY_MAC_DB) {
+ if (-e $NEW_MAC_DB) {
+ log_notice(
+ "Found leftover legacy MAC DB file in $LEGACY_MAC_DB.\n"
+ . "This file can be deleted AFTER upgrading ALL nodes to PVE 9."
+ );
+ } else {
+ log_fail(
+ "Found MAC DB file in $LEGACY_MAC_DB that has not been migrated!\n"
+ . "File needs to be migrated to $NEW_MAC_DB before upgrading. Update pve-network to the newest version."
+ );
+ }
+ } else {
+ log_pass("No legacy MAC DB found.");
+ }
+}
+
sub check_misc {
print_header("MISCELLANEOUS CHECKS");
my $ssh_config = eval { PVE::Tools::file_get_contents('/root/.ssh/config') };
@@ -2110,6 +2152,7 @@ sub check_misc {
check_legacy_backup_job_options();
check_lvm_autoactivation();
check_rrd_migration();
+ check_legacy_ipam_files();
}
my sub colored_if {
--
2.47.2
More information about the pve-devel
mailing list