{"id":1854,"date":"2019-05-04T23:17:03","date_gmt":"2019-05-04T21:17:03","guid":{"rendered":"http:\/\/blog.purplescreen.fr\/?p=1854"},"modified":"2019-05-05T09:04:51","modified_gmt":"2019-05-05T07:04:51","slug":"migrating-from-vmfs-5-to-vmfs-6","status":"publish","type":"post","link":"https:\/\/blog.purplescreen.fr\/?p=1854","title":{"rendered":"PowerCLI &#8211; Migrating from VMFS-5 to VMFS-6"},"content":{"rendered":"<h3>Description<\/h3>\n<p>I wrote this script for automating migration from VMFS volume of your infrastructure.<\/p>\n<p>Please make sure have a backup of all of your virtual machines to prevent any issus.<br \/>\nYou must do a CSV file as this example :<\/p>\n<pre>\"Name\"\r\n\"datastore1\"\r\n\"datastore2\"<\/pre>\n<p>This script can make a CSV file automaticaly as well, but It&#8217;ll add all VMFS in version 5. All of VMFS datastore are showing before Update.<br \/>\nFor more information about migration from VMFS 5 to VMFS 6, please following this link : <a href=\"https:\/\/pubs.vmware.com\/vsphere-6-5\/index.jsp?topic=%2Fcom.vmware.powercli.cmdletref.doc%2FUpdate-VmfsDatastore.html\" target=\"_blank\" rel=\"noopener\">SDK Update-VmfsDatastore<\/a><\/p>\n<h3>Requirements<\/h3>\n<ul>\n<li>Temporary datastore must be in VMFS version 5<\/li>\n<li>You must have a CSV or you can generate one by this script<\/li>\n<\/ul>\n<h3>Script<\/h3>\n<pre>$vCenterServer = \"MyvCenter\"\r\nConnect-VIServer $vCenterServer\r\ncls\r\n$GetDatastoreName = @()\r\n$PathFile = @()\r\n\r\n$CurentPath = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)\r\n$Date = date | select *\r\n$Day = $Date.Day\r\n$Month = $Date.Month\r\n$Hour = $Date.Hour\r\n$Minute = $Date.Minute\r\n\r\nfunction Resume ($Path) {\r\n$ImportCSV = Import-Csv -Path $Path -Delimiter \",\"\r\nif (!$ImportCSV.Name) {\r\nWrite-Host \"This file doesn't contain any columns Name\" -ForegroundColor red\r\nbreak\r\n}\r\nelseif ($ImportCSV.Name) {\r\nforeach ($line in $ImportCSV) {\r\n$GetDatastoreName += @($line.Name)\r\n}\r\nNew-Variable -Scope script -Name AllDatastoreName -Value $GetDatastoreName\r\nGet-Datastore -Name $GetDatastoreName | select Name,FileSystemVersion,Type | Format-Table\r\n}\r\n}\r\n\r\nfunction upgradeVMFS ($TemporaryDatastore) {\r\nforeach ($Datastore in $AllDatastoreName) {\r\nif ($Datastore -eq $DatastoreTemp) {\r\nWrite-Host \"Temporary Datastore ($Datastore) is excluded\" -ForegroundColor Red\r\n}\r\nelseif ($Datastore -ne $DatastoreTemp) {\r\n$DatastoreSource = Get-Datastore -Name $Datastore\r\n$DatastoreTemp = Get-Datastore -Name $TemporaryDatastore\r\n$Server = (Get-VIServer -Server \"$vCenterServer\")\r\nUpdate-VmfsDatastore -Server $Server -Datastore $DatastoreSource -TemporaryDatastore $DatastoreTemp -Force\r\n}\r\n}\r\n}\r\n\r\n######### Awnsers\r\ndo {\r\n$CSVFile = Read-Host \"Did you make any CSV file ? [y\/n] \"\r\n} while ((!$CSVFile) -or (($CSVFile -ne \"y\") -and ($CSVFile -ne \"n\")))\r\n\r\nif ($CSVFile -eq \"y\") {\r\ndo {\r\n$PathFile = Read-Host \"File path \"\r\n$ValidPath = Test-Path -Path $PathFile -Include *.csv\r\n} while ((!$PathFile) -or (!$ValidPath))\r\n}\r\nelseif ($CSVFile -eq \"n\") {\r\n$filenameExport = \"$Day.\"+\"$Month.\"+\"$Hour.\"+\"$Minute.\"+\"GetDatastoreCSV.csv\"\r\nGet-Datastore | select Name,FileSystemVersion,Type | where {$_.FileSystemVersion -le \"6\"} | Export-Csv $CurentPath\"\\\"$filenameExport\r\n$PathFile = \"$CurentPath\\$filenameExport\"\r\n}\r\nWrite-Host \"File is stored : $PathFile\"\r\nResume -Path $PathFile\r\n\r\ndo {\r\n$VarConfirm = Read-Host \"Do you agree with these informations ? [y\/n]\"\r\n} while ((!$VarConfirm) -or (($VarConfirm -ne \"y\") -and ($VarConfirm -ne \"n\")))\r\nif ($VarConfirm -eq \"y\") {\r\ndo {\r\n$TempDatastore = Read-Host \"Please enter Temporary Datastore Name (VMFS 5) \"\r\n} while (!$TempDatastore)\r\n$CheckDatastore = Get-Datastore -Name $TempDatastore\r\nif (!$CheckDatastore) {\r\nWrite-Host \"Temporary Datastore ($TempDatastore) is not valid\"\r\nbreak\r\n}\r\nelseif ($CheckDatastore) {\r\n$GetDatastoreName = $script:GetDatastoreName\r\nupgradeVMFS -TemporaryDatastore $TempDatastore\r\n}\r\n\r\n}\r\nelseif ($VarConfirm -eq \"n\") {\r\nbreak\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Description I wrote this script for automating migration from VMFS volume of your infrastructure. Please make sure have a backup of all of your virtual machines to prevent any issus. You must do a CSV file as this example : &#8220;Name&#8221; &#8220;datastore1&#8221; &#8220;datastore2&#8221; This script can make a CSV file automaticaly as well, but It&#8217;ll&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,10],"tags":[69,26,34,41,68],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PowerCLI - Migrating from VMFS-5 to VMFS-6 - PurpleScreen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.purplescreen.fr\/?p=1854\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ogosselin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.purplescreen.fr\/?p=1854\",\"url\":\"https:\/\/blog.purplescreen.fr\/?p=1854\",\"name\":\"PowerCLI - Migrating from VMFS-5 to VMFS-6 - PurpleScreen\",\"isPartOf\":{\"@id\":\"https:\/\/blog.purplescreen.fr\/#website\"},\"datePublished\":\"2019-05-04T21:17:03+00:00\",\"dateModified\":\"2019-05-05T07:04:51+00:00\",\"author\":{\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.purplescreen.fr\/?p=1854#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.purplescreen.fr\/?p=1854\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.purplescreen.fr\/?p=1854#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.purplescreen.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PowerCLI &#8211; Migrating from VMFS-5 to VMFS-6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#website\",\"url\":\"https:\/\/blog.purplescreen.fr\/\",\"name\":\"PurpleScreen\",\"description\":\"by Olivier Gosselin\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.purplescreen.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3\",\"name\":\"ogosselin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g\",\"caption\":\"ogosselin\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/olivier-gosselin-30090498\/\"],\"url\":\"https:\/\/blog.purplescreen.fr\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PowerCLI - Migrating from VMFS-5 to VMFS-6 - PurpleScreen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.purplescreen.fr\/?p=1854","twitter_misc":{"Written by":"ogosselin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.purplescreen.fr\/?p=1854","url":"https:\/\/blog.purplescreen.fr\/?p=1854","name":"PowerCLI - Migrating from VMFS-5 to VMFS-6 - PurpleScreen","isPartOf":{"@id":"https:\/\/blog.purplescreen.fr\/#website"},"datePublished":"2019-05-04T21:17:03+00:00","dateModified":"2019-05-05T07:04:51+00:00","author":{"@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3"},"breadcrumb":{"@id":"https:\/\/blog.purplescreen.fr\/?p=1854#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.purplescreen.fr\/?p=1854"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.purplescreen.fr\/?p=1854#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.purplescreen.fr\/"},{"@type":"ListItem","position":2,"name":"PowerCLI &#8211; Migrating from VMFS-5 to VMFS-6"}]},{"@type":"WebSite","@id":"https:\/\/blog.purplescreen.fr\/#website","url":"https:\/\/blog.purplescreen.fr\/","name":"PurpleScreen","description":"by Olivier Gosselin","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.purplescreen.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3","name":"ogosselin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g","caption":"ogosselin"},"sameAs":["https:\/\/www.linkedin.com\/in\/olivier-gosselin-30090498\/"],"url":"https:\/\/blog.purplescreen.fr\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1854"}],"collection":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1854"}],"version-history":[{"count":17,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1854\/revisions"}],"predecessor-version":[{"id":14949,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1854\/revisions\/14949"}],"wp:attachment":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}