{"id":961,"date":"2019-02-05T13:56:43","date_gmt":"2019-02-05T12:56:43","guid":{"rendered":"https:\/\/www.em-soft.si\/myblog\/elvis\/?p=961"},"modified":"2019-02-05T14:02:04","modified_gmt":"2019-02-05T13:02:04","slug":"unable-to-live-migrate-vms-cause-configstorerootpath-parameter","status":"publish","type":"post","link":"https:\/\/em-soft.si\/myblog\/elvis\/?p=961","title":{"rendered":"Unable to live migrate VMs \u2013 cause ConfigStoreRootPath parameter"},"content":{"rendered":"\n<p>I had a problem, like a lot of other admins, caused by changing volumes in cluster. In my case the origin was a new storage device. After I moved all machines and other content to the new device, all the things were working well. The surprise arrived when I disconnected the old one \u2013the live migrations simply stopped to work. Impossible? Well. Let\u2019s go step by step.<br \/>The origin of the problem is the configuration of Veeam backup software as is described in <a aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" href=\"https:\/\/www.veeam.com\/kb2194\" target=\"_blank\">Veeam KB2194<\/a>: \u201cIf you have shared VHDX, you have to define ConfigStoreRootPath parameter\u2026\u201d. After the execution of PowerShell cmdlet, I was very happy \u2013 no warning in Veeam, backup was running \u2013 all was working perfect. At this point, I just want to remember that we are working with PowerShell on Microsoft cluster and adding Microsoft parameter (asked from Veeam).<br \/>Later, when I changed my SAN, both SANs were connected to my cluster. So, I had Volume1, Volume2 and Volume3 from the old SAN device and Volume4, Volume5 and Volume6 from the new SAN device. It couldn\u2019t be different as I need to do storage migration. Let\u2019s say that value of ConfigStoreRootPath is pointing to folder located on Volume1 (or some other volume on old SAN).<br \/>When I completed the migration, the last step was to disconnect the old SAN and this step broke the ConfigStoreRootPath configuration. Don\u2019t panic; it is a PowerShell configurable value. Normally you can change it, but not in this case. You will receive an error as Microsoft did not predicted that this can be done. It is not possible to change or delete the value. <br \/>I opened a case on Microsoft and explained them what I did and ask them how to solve the problem. The answer was \u201c<em>Well, this is a Veeam parameter. It is actually configurable thru PowerShell and we support this configuration, but we do not support to change this value. Call Veeam.<\/em>\u201d Of course, I opened another case on Veeam and I had the answer: \u201c<em>Well, it is true that we use this setting, but it is a Microsoft setting and they should resolve this issue. It is not our problem<\/em>.\u201d<br \/>AT this point I was frustrated, but I found a \u201csolution\u201d on <a href=\"https:\/\/social.technet.microsoft.com\/Forums\/lync\/en-US\/3453b83e-c719-4bdf-a3cb-cc32c5316dfe\/change-configstorerootpath-value?forum=winserverhyperv\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Microsoft forums<\/a>. Microsoft engineer told me that it should work, but the problem is that you have to shutdown the entire cluster and change the configuration manually in Regedit. It didn\u2019t work for me!<br \/><strong>My solution:<\/strong> If you are not sure how it was originally configured, you can check it with PowerShell cmdlet: <em><strong>Get-ClusterResource &#8220;Virtual Machine Cluster WMI&#8221; | Get-ClusterParameter ConfigStoreRootPath<\/strong><\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"841\" height=\"205\" src=\"https:\/\/em-soft.si\/myblog\/elvis\/wp-content\/uploads\/2019\/02\/StoragePath4.png\" alt=\"\" class=\"wp-image-966\"\/><\/figure>\n\n\n\n<p>I don\u2019t know if I can call it solution or maybe is better workaround. It. Is very simple to do it. I created a new LUN on storage \u2013 just 1GB, it doesn\u2019t need to have a lot of space and present it to the cluster. I created a normal CSV volume as you can see on the picture, but for now don\u2019t use it or put any file on it<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"182\" src=\"https:\/\/em-soft.si\/myblog\/elvis\/wp-content\/uploads\/2019\/02\/StoragePath1.png\" alt=\"\" class=\"wp-image-963\"\/><\/figure>\n\n\n\n<p><br \/>When you have your new volume, you can go to the File Explorer on the node which is the owner of this CSV and browse to <strong><em>C:\\ClusterStorage<\/em><\/strong>. There you can see all the volumes (in my case Volume4, Volum5, Volume6 and Volume7). Now you can just rename Volume7 to Volume1 (same name that you have on the original location).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1127\" height=\"637\" src=\"https:\/\/em-soft.si\/myblog\/elvis\/wp-content\/uploads\/2019\/02\/StoragePath2.png\" alt=\"\" class=\"wp-image-964\"\/><\/figure>\n\n\n\n<p>Last simple action you have to do is to create a folder with the same name as you had on the original volume. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"180\" src=\"https:\/\/em-soft.si\/myblog\/elvis\/wp-content\/uploads\/2019\/02\/StoragePath3.png\" alt=\"\" class=\"wp-image-965\"\/><\/figure>\n\n\n\n<p>The work is done, now you have exactly the same path as is specified in parameter. Live migrations are working. You don\u2019t need to restart servers or cluster service or something else. You just need that path defined in ConfigStoreRootPath exists. In this path system will create some files and folders, but don\u2019t worry about; you don\u2019t need to copy the old data.<\/p>\n\n\n\n<p>At the end, if you have enough space on CSV and free time, you can move all data from one volume to the other, rename that volume and move data back. You can do this volume by volume for all of them. It will not change the functionality, but in the end it will be nicer \u2013 you will have Volume1, Volume2 and Volume3 again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had a problem, like a lot of other admins, caused by changing volumes in cluster. In my case the origin was a new storage device. After I moved all machines and other content to the new device, all the things were working well. The surprise arrived when I disconnected the old one \u2013the live [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[40],"class_list":["post-961","post","type-post","status-publish","format-standard","hentry","category-windows-server","tag-windows-server"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/posts\/961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=961"}],"version-history":[{"count":5,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/posts\/961\/revisions"}],"predecessor-version":[{"id":972,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=\/wp\/v2\/posts\/961\/revisions\/972"}],"wp:attachment":[{"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/em-soft.si\/myblog\/elvis\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}