{"id":1289,"date":"2019-01-14T21:56:30","date_gmt":"2019-01-15T02:56:30","guid":{"rendered":"http:\/\/www.hoplawego.com\/blog\/?p=1289"},"modified":"2019-01-15T10:32:07","modified_gmt":"2019-01-15T15:32:07","slug":"legal-hold-quoi-faire-vms","status":"publish","type":"post","link":"https:\/\/www.hoplawego.com\/blog\/legal-hold-quoi-faire-vms\/","title":{"rendered":"Legal hold: Quoi faire avec mes VMs"},"content":{"rendered":"<p>Bon, un directeur vient te voir avec un air d\u00e9cr\u00e9pit. \u00c7a ne sent pas bon&#8230;<\/p>\n<p>Bla bla bla bla Legal hold, bla bla bla au plus vite possible bla bla bla<\/p>\n<p>Minute moumoute, c&rsquo;est pas aussi facile que \u00e7a. Si tu as 5 VM \u00e0 geler oui, si tu en as 200&#8230; C&rsquo;est une autre ball game.<br \/>\nQu&rsquo;est-ce que \u00e7a implique un arr\u00eat judiciaire dans un environnement virtuel en production?<br \/>\nEh bien, il faut geler le data de la VM le plus vite possible.<br \/>\nPour ce faire, on a besoin de faire des snapshots avec m\u00e9moire, de prendre les fichier d\u00e9lock\u00e9s (vmdk et vmsn) et d&rsquo;envoyer ca sur une plateforme exportable.<\/p>\n<p>C&rsquo;est surement possible de le faire de plein de mani\u00e8re, mais voici ma fa\u00e7on.<br \/>\nA: On doit cr\u00e9er un nouveau datastore, pr\u00e9f\u00e9rablement NFS.<\/p>\n<ul>\n<li>Cot\u00e9 espace, il faut pr\u00e9voir la taille des VMs + la m\u00e9moire assign\u00e9e.<br \/>\nOn l&rsquo;appellera DATASTORE_DE_DESTINATION<\/li>\n<\/ul>\n<p>B: Cr\u00e9er les snapshots et cr\u00e9er l&rsquo;arborescence dans le nouveau datastore<\/p>\n<ul>\n<li>1: Cr\u00e9er un fichier txt avec les noms de machines une par ligne\n<ul>\n<li>$newds = Get-Datastore -Name DATASTORE_DE_DESTINATION<br \/>\nNew-PSDrive -Location $newds -Name newds -PSProvider VimDatastore -Root \u00ab\u00a0\\\u00a0\u00bb<br \/>\nGet-Content .\\listevm.txt | ForEach-Object {new-item -Path newds:\\$_ -ItemType Directory}<br \/>\nGet-Content .\\listevm.txt | ForEach-Object {get-vm $_ | New-Snapshot -name BLABLA -memory:$true }<\/li>\n<\/ul>\n<\/li>\n<li>C: Bouger le stock\n<ul>\n<li>1: Sortir le path des machines (voir mon site pour la commande custom http:\/\/www.hoplawego.com\/blog\/mais-ou-sont-mes-vms\/)<\/li>\n<li>2: cr\u00e9er un csv avec les header: vmname,ds,folder<br \/>\nvmname: nom de la vm<br \/>\nds: le nom du datastore<br \/>\nfolder: le nom du dossier a l&rsquo;interieur du dsvoici un exemple:<\/p>\n<p><em>vmname,ds,folder<\/em><br \/>\n<em>client1-p2-ma-vma-001,STO_005_L14_CLUSTERD_PRDSTG_DS004,client1-p2-ma-vma-001<\/em><br \/>\n<em>client1-p2-ma-vma-002,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vma-002<\/em><br \/>\n<em>client1-p2-ma-vmb-001,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vmb-001<\/em><br \/>\n<em>client1-p2-ma-vmb-002,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vmb-002<\/em><\/li>\n<\/ul>\n<\/li>\n<li>\n<ul>\n<li>3: Lancer la job:<em>import-csv listevm-fullfile.csv | <\/em><br \/>\n<em> ForEach {<\/em><br \/>\n<em> $ds = get-datastore -name $_.ds<\/em><br \/>\n<em> $folder = $_.folder<\/em><br \/>\n<em> $vmname = $_.vmname<\/em><br \/>\n<em> $newds = Get-Datastore -Name DATASTORE_DE_DESTINATION<\/em><br \/>\n<em> New-PSDrive -Location $newds -Name newds -PSProvider VimDatastore -Root \u00ab\u00a0\\\u00a0\u00bb<\/em><br \/>\n<em> New-PSDrive -Location $ds -Name oldds -PSProvider VimDatastore -Root \u00ab\u00a0\\\u00a0\u00bb<\/em><br \/>\n<em> copy-item \u00ab\u00a0oldds:\\$folder\\*\u00a0\u00bb \u00ab\u00a0newds:\\COPY-2\\$vmname\u00a0\u00bb<\/em><br \/>\n<em> get-psdrive oldds | remove-psdrive<\/em><br \/>\n<em> get-psdrive newds | remove-psdrive<\/em><br \/>\n<em> }<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Voila&#8230; c&rsquo;est excessivement lent, mais ca fonctionne.<\/p>\n<p>Ensuite, il ne reste plus qu&rsquo;a prendre le data du NFS et l&rsquo;envoyer sur un disque USB, dropbox, box, peut importe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bon, un directeur vient te voir avec un air d\u00e9cr\u00e9pit. \u00c7a ne sent pas bon&#8230; Bla bla bla bla Legal hold, bla bla bla au plus vite possible bla bla bla Minute moumoute, c&rsquo;est pas aussi facile que \u00e7a. Si tu as 5 VM \u00e0 geler oui, si tu en as 200&#8230; C&rsquo;est une autre &hellip; <\/p>\n","protected":false},"author":1,"featured_media":1290,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,5,4,8],"tags":[],"class_list":["post-1289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-t-i","category-vcap","category-vcdx","category-vcp","category-vmware","grid-sizer"],"_links":{"self":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/comments?post=1289"}],"version-history":[{"count":6,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1289\/revisions"}],"predecessor-version":[{"id":1429,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1289\/revisions\/1429"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/media\/1290"}],"wp:attachment":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/media?parent=1289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/categories?post=1289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/tags?post=1289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}