I wasn’t aware that you couldn’t migrate your vSphere content library to a different data store. At least not just like you would migrate a virtual machine. It was a feature that I wasn’t missing much in my homelab, and in production (at my employer or my customers), content libraries weren’t a thing anyway. Back in the days, the only possible way to “migrate” the content library from one data store to another was to export everything from the “old” content library, create a new one, and import everything into the new content library.
When I was driving to a customer beginning this week for a project meeting, I thought, “let’s listen to some tech podcasts”. Long story short, I looked up the Virtually Speaking Podcast on Spotify. During the drive, I heard that you can now migrate a content library to a different data store! I didn’t memorize the title of this podcast, so I had to go through many podcasts again back at home to find the one. And here it is, not on Spotify but on YouTube: What’s New with vSphere in VCF 9.0 – (YouTube.com) at around 37:28 in the video.
What is a content library?
Just in case you’re not aware of this great thing called a content library, I’ll just add some explanations here. A vSphere content library is a centralized repository within VMware vSphere used to store and manage various types of files, including VM templates, vApp templates, ISO images, and other files, enabling efficient sharing and deployment across multiple vCenter Server instances. It simplifies the management of virtual machine resources by providing a single source for templates and other files, eliminating the need to manually update and copy them across different environments. So, a pretty nice thing, isn’t it?
Why would you migrate a content library?
There are multiple reasons, I’ll just name a few. Every content library has a specific data store configured. You may want to migrate the content library because you’re running out of disk space. Space contention may happen. Or your storage system is undergoing maintenance, or is going to be replaced, or you want to store all these VM templates, ISO files, etc., on a “cheaper” data store. The use case is up to you.
How do you migrate a content library?
The following steps should guide you through the process. It is pretty easy, but it comes with one downside. The migration workflow doesn’t support the migration of VM templates. But I think you don’t have to worry much. At least I didn’t have any issues during setting up a content library and also the migration from one data store to another worked just fine.
What did I store in the content library for the test?
- An ISO file
- A VM template (traditional, right-click a VM, convert to template, right-click the template, clone to library)
- A VM template (imported from an OVA file)
So nothing special, for sure, but I’m not sure what exactly is meant by “The workflow doesn’t support the migration of VM templates”. I didn’t test the migration with versioned VM templates, but I may update this blog post at a later time.
So let’s get started now.
Two ways to initiate the migration
You can initiate the migration of your content library in two ways:
- You can right-click the content library and select “Migrate”
- Or you go into the content library, and select from the actions menu “ACTIONS => Migrate”.
- Next, the migration assistant will start.
NOTICE: You can see the yellow warning, stating that “The workflow doesn’t support the migration of VM templates” - Next, select the storage where you want to migrate the content library to
- Check once if everything is correct, then click “FINISH”
- In the Tasks view below, you can see the migration progress
And that’s it. Not that complicated. The duration of the content library migration depends on the amount of data as well as the performance of the network and storage.









