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 }
- $newds = Get-Datastore -Name DATASTORE_DE_DESTINATION
- 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 dsvoici 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
}
- 3: Lancer la job:import-csv listevm-fullfile.csv |
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.