Legal hold: Quoi faire avec mes VMs

Legal hold: Quoi faire avec mes VMs

Bon, un directeur vient te voir avec un air décrépit. Ça ne sent pas bon…

Bla bla bla bla Legal hold, bla bla bla au plus vite possible bla bla bla

Minute moumoute, c’est pas aussi facile que ça. Si tu as 5 VM à geler oui, si tu en as 200… C’est une autre ball game.
Qu’est-ce que ça implique un arrêt judiciaire dans un environnement virtuel en production?
Eh bien, il faut geler le data de la VM le plus vite possible.
Pour ce faire, on a besoin de faire des snapshots avec mémoire, de prendre les fichier délockés (vmdk et vmsn) et d’envoyer ca sur une plateforme exportable.

C’est surement possible de le faire de plein de manière, mais voici ma façon.
A: On doit créer un nouveau datastore, préférablement NFS.

  • Coté espace, il faut prévoir la taille des VMs + la mémoire assignée.
    On l’appellera DATASTORE_DE_DESTINATION

B: Créer les snapshots et créer l’arborescence dans le nouveau datastore

  • 1: Créer un fichier txt avec les noms de machines une par ligne
    • $newds = Get-Datastore -Name DATASTORE_DE_DESTINATION
      New-PSDrive -Location $newds -Name newds -PSProvider VimDatastore -Root « \ »
      Get-Content .\listevm.txt | ForEach-Object {new-item -Path newds:\$_ -ItemType Directory}
      Get-Content .\listevm.txt | ForEach-Object {get-vm $_ | New-Snapshot -name BLABLA -memory:$true }
  • C: Bouger le stock
    • 1: Sortir le path des machines (voir mon site pour la commande custom http://www.hoplawego.com/blog/mais-ou-sont-mes-vms/)
    • 2: créer un csv avec les header: vmname,ds,folder
      vmname: nom de la vm
      ds: le nom du datastore
      folder: le nom du dossier a l’interieur du ds

      voici un exemple:

      vmname,ds,folder
      client1-p2-ma-vma-001,STO_005_L14_CLUSTERD_PRDSTG_DS004,client1-p2-ma-vma-001
      client1-p2-ma-vma-002,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vma-002
      client1-p2-ma-vmb-001,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vmb-001
      client1-p2-ma-vmb-002,STO_005_L16_CLUSTERD_PRDSTG_DS006,client1-p2-ma-vmb-002

    • 3: Lancer la job:

      import-csv listevm-fullfile.csv |
      ForEach {
      $ds = get-datastore -name $_.ds
      $folder = $_.folder
      $vmname = $_.vmname
      $newds = Get-Datastore -Name DATASTORE_DE_DESTINATION
      New-PSDrive -Location $newds -Name newds -PSProvider VimDatastore -Root « \ »
      New-PSDrive -Location $ds -Name oldds -PSProvider VimDatastore -Root « \ »
      copy-item « oldds:\$folder\* » « newds:\COPY-2\$vmname »
      get-psdrive oldds | remove-psdrive
      get-psdrive newds | remove-psdrive
      }

Voila… c’est excessivement lent, mais ca fonctionne.

Ensuite, il ne reste plus qu’a prendre le data du NFS et l’envoyer sur un disque USB, dropbox, box, peut importe.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *