Superpages have long been used to mitigate address translation overhead in big memory systems. However, superpages often preclude lightweight page migration, which is crucial for performance and energy efficiency in hybrid memory systems composed of DRAM and non-volatile memory (NVM). In this paper, we propose a novel memory management mechanism called Rainbow to bridge this fundamental conflict between superpages and lightweight page migration. Rainbow manages NVM at the superpage granularity, and uses DRAM to cache frequently-accessed (hot) small pages in each superpage. Correspondingly, Rainbow utilizes split TLBs to support different page sizes. By introducing an efficient hot page identification mechanism and a novel NVM-to-DRAM address remapping mechanism, Rainbow supports lightweight page migration while without splintering superpages. Experimental results show that Rainbow can significantly reduce applications' TLB misses by 99.8%, and improve application performance (IPC) by up to 2.9X (43.0% on average) when compared to a state-of-the-art memory migration policy without superpage support.