diff --git a/chassis_state_manager_main.cpp b/chassis_state_manager_main.cpp
index eac4fd4..c1dccf7 100644
--- a/chassis_state_manager_main.cpp
+++ b/chassis_state_manager_main.cpp
@@ -2,14 +2,21 @@
 
 #include "chassis_state_manager.hpp"
 
+#include <fmt/format.h>
 #include <getopt.h>
 
 #include <sdbusplus/bus.hpp>
 
 #include <cstdlib>
 #include <exception>
+#include <filesystem>
 #include <iostream>
 
+constexpr auto LEGACY_POH_COUNTER_PERSIST_PATH =
+    "/var/lib/phosphor-state-manager/POHCounter";
+constexpr auto LEGACY_STATE_CHANGE_PERSIST_PATH =
+    "/var/lib/phosphor-state-manager/chassisStateChangeTime";
+
 int main(int argc, char** argv)
 {
     size_t chassisId = 0;
@@ -30,12 +37,37 @@
         }
     }
 
+    namespace fs = std::filesystem;
+
     auto bus = sdbusplus::bus::new_default();
 
     auto chassisBusName =
         std::string{CHASSIS_BUSNAME} + std::to_string(chassisId);
     auto objPathInst = std::string{CHASSIS_OBJPATH} + std::to_string(chassisId);
 
+    if (chassisId == 0)
+    {
+        // Chassis State Manager was only support single-chassis and there only
+        // two file to store persist values(POH and state change time), to
+        // support multi-chassis state mamagement, each service access new file
+        // paths with prefix 'chassisN', if any legacy persist file is exist,
+        // rename it to the new file format of chassis0.
+
+        fs::path legacyPohPath{LEGACY_POH_COUNTER_PERSIST_PATH};
+        fs::path legacyStateChangePath{LEGACY_STATE_CHANGE_PERSIST_PATH};
+        fs::path newPohPath{fmt::format(POH_COUNTER_PERSIST_PATH, chassisId)};
+        fs::path newStateChangePath{
+            fmt::format(CHASSIS_STATE_CHANGE_PERSIST_PATH, chassisId)};
+        if (fs::exists(legacyPohPath))
+        {
+            fs::rename(legacyPohPath, newPohPath);
+        }
+        if (fs::exists(legacyStateChangePath))
+        {
+            fs::rename(legacyStateChangePath, newStateChangePath);
+        }
+    }
+
     // Add sdbusplus ObjectManager.
     sdbusplus::server::manager::manager objManager(bus, objPathInst.c_str());
     phosphor::state::manager::Chassis manager(bus, objPathInst.c_str(),
