Question
[PowerCLI]Obtenir occupation des VM par LUN
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 12 ans 7 mois #15530
par Julien
[PowerCLI]Obtenir occupation des VM par LUN a été créé par Julien
Bonjour à tous,
Tout d'abord, merci à tous pour ce site qui m'a dépatouillé plus d'une fois ces 3 dernières années.
Honte sur moi, il a fallut que je plante pour m'inscrire:blush:
Attaquons donc ce problème :
Je souhaite obtenir le volume disque occupé par les VMs sur chacun de mes LUNs.
Je suis arrivé à ça :
[code:1]
$datastores = Get-Datastore
foreach ($_ in $datastores) {
$DataVM = $_ | Get-VM
$CapacityData = $_.capacityGB
foreach ($_ in $DataVM){
$usedSpace = [math]::round([int64]$_.UsedSpaceGB,2)
$Pourcent = [math]::round([int64]$_.UsedSpaceGB *100/$CapacityData,2)
}
}
[/code:1]
Et ça fonctionne très bien... Sauf si une VM a des fichiers sur plusieurs LUNs ! Et forcément, j'ai ce cas dans mon architecture.# Et puis un script qui fonctionne avec \"Sauf si\", c'est pas vraiment un script
Ce qui plantouille, c'est la propriété \"UsedSpaceGB\" qui prend l'ensemble du volume occupée par la VM et non l'espace sur le LUN en cours de traitement.
Pour être plus clair : Si une vm a un fichier VMFS de 50Go sur un LUN et un autre de 100Go sur un autre LUN, vm.UsedSpaceGB = 150.
Bien sûr, je peux toujours trouver mon bonheur en attaquent directement le système de fichier de mes datastores, mais ce serait tellement moins joli de passer par là...
Si vous avez une idée, je suis preneur et merci de m'avoir lu.
Tout d'abord, merci à tous pour ce site qui m'a dépatouillé plus d'une fois ces 3 dernières années.
Honte sur moi, il a fallut que je plante pour m'inscrire:blush:
Attaquons donc ce problème :
Je souhaite obtenir le volume disque occupé par les VMs sur chacun de mes LUNs.
Je suis arrivé à ça :
[code:1]
$datastores = Get-Datastore
foreach ($_ in $datastores) {
$DataVM = $_ | Get-VM
$CapacityData = $_.capacityGB
foreach ($_ in $DataVM){
$usedSpace = [math]::round([int64]$_.UsedSpaceGB,2)
$Pourcent = [math]::round([int64]$_.UsedSpaceGB *100/$CapacityData,2)
}
}
[/code:1]
Et ça fonctionne très bien... Sauf si une VM a des fichiers sur plusieurs LUNs ! Et forcément, j'ai ce cas dans mon architecture.# Et puis un script qui fonctionne avec \"Sauf si\", c'est pas vraiment un script
Ce qui plantouille, c'est la propriété \"UsedSpaceGB\" qui prend l'ensemble du volume occupée par la VM et non l'espace sur le LUN en cours de traitement.
Pour être plus clair : Si une vm a un fichier VMFS de 50Go sur un LUN et un autre de 100Go sur un autre LUN, vm.UsedSpaceGB = 150.
Bien sûr, je peux toujours trouver mon bonheur en attaquent directement le système de fichier de mes datastores, mais ce serait tellement moins joli de passer par là...
Si vous avez une idée, je suis preneur et merci de m'avoir lu.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 7 mois #15533
par Philippe
Réponse de Philippe sur le sujet Re:[PowerCLI]Obtenir occupation des VM par LUN
bonjour JuJu
pour etre sincere, je n'utilise pas powershell pour gerer mes VMs vmware
mais j'ai une ou deux idees en passent :
idee 1)
ne peut tu pas faire un Get-Datastore de tous tes vmfs d'un seul coup
ex :
[code:1]$datastores = Get-Datastore -name vmfs1
$datastores += Get-Datastore -name vmfs2[/code:1]
puis faire tes calculs
idee 2)
ne peut tu pas prendre le probleme a l'envers
partir des VMs pour avoir les info
ex :
[code:1]Get-Datastore -VM $vm1[/code:1]
exemple pris dans la doc de get-datastore ici et ici
bon courage
edit : j crois que ma premiere idee n'est pas bonne
PS : mais comment tu va calculer le pourcentage utilisé par une VM qui utilise plusieurs datastores.<br><br>Message édité par: 6ratgus, à: 7/08/13 18:19
pour etre sincere, je n'utilise pas powershell pour gerer mes VMs vmware
mais j'ai une ou deux idees en passent :
idee 1)
ne peut tu pas faire un Get-Datastore de tous tes vmfs d'un seul coup
ex :
[code:1]$datastores = Get-Datastore -name vmfs1
$datastores += Get-Datastore -name vmfs2[/code:1]
puis faire tes calculs
idee 2)
ne peut tu pas prendre le probleme a l'envers
partir des VMs pour avoir les info
ex :
[code:1]Get-Datastore -VM $vm1[/code:1]
exemple pris dans la doc de get-datastore ici et ici
bon courage
edit : j crois que ma premiere idee n'est pas bonne
PS : mais comment tu va calculer le pourcentage utilisé par une VM qui utilise plusieurs datastores.<br><br>Message édité par: 6ratgus, à: 7/08/13 18:19
Connexion ou Créer un compte pour participer à la conversation.
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 12 ans 7 mois #15534
par Julien
Réponse de Julien sur le sujet Re:[PowerCLI]Obtenir occupation des VM par LUN
ton idée 2 me plait bien, je tenterai ça demain.
Si j'ai le temps, je jouerai avec ton idée 1 qui me servira peut-être un jour.
Concernant le %, c'est surtout le résultat sur le datastore qui m'importe : Quel volume prend cette vm sur ce datastore. La vm peut prendre 5% sur un et 20% sur un autre.
Mais les %, c'est surtout pour mieux communiquer avec les chefs, sinon les chiffres suffisent
Si j'ai le temps, je jouerai avec ton idée 1 qui me servira peut-être un jour.
Concernant le %, c'est surtout le résultat sur le datastore qui m'importe : Quel volume prend cette vm sur ce datastore. La vm peut prendre 5% sur un et 20% sur un autre.
Mais les %, c'est surtout pour mieux communiquer avec les chefs, sinon les chiffres suffisent
Connexion ou Créer un compte pour participer à la conversation.
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 12 ans 7 mois #15536
par Julien
Réponse de Julien sur le sujet Re:[PowerCLI]Obtenir occupation des VM par LUN
Les objets de type VM et Datastore ne m'offre pas les données dont j'ai besoin.
J'ai bien essayé de passer par VM.HardDisks, objet qui m'offre la séparation des datastores, mais ses propriétés de volumes ne concerne que les fichiers vmfs.
Pour l'instant, j'ai donc .UsedSpaceGB qui m'offre la totalité de mes fichiers tout datastore confondu, et .HardDisks qui m'offre la séparation des LUNs, mais uniquement sur certains fichiers.
Comme cette fonction est une toute petite partie d'un script plus vaste de vérification de mon univers, je vais m'atteler à documenter celui-ci avant mon départ en vacances demain
Suite (et solutions j'espère) au mois de septembre.
Bon scripting à tous.
J'ai bien essayé de passer par VM.HardDisks, objet qui m'offre la séparation des datastores, mais ses propriétés de volumes ne concerne que les fichiers vmfs.
Pour l'instant, j'ai donc .UsedSpaceGB qui m'offre la totalité de mes fichiers tout datastore confondu, et .HardDisks qui m'offre la séparation des LUNs, mais uniquement sur certains fichiers.
Comme cette fonction est une toute petite partie d'un script plus vaste de vérification de mon univers, je vais m'atteler à documenter celui-ci avant mon départ en vacances demain
Suite (et solutions j'espère) au mois de septembre.
Bon scripting à tous.
Connexion ou Créer un compte pour participer à la conversation.
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 12 ans 7 mois #15537
par Julien
Réponse de Julien sur le sujet Re:[PowerCLI]Obtenir occupation des VM par LUN
Les objets de type VM et Datastore ne m'offre pas les données dont j'ai besoin.
J'ai bien essayé de passer par VM.HardDisks, objet qui m'offre la séparation des datastores, mais ses propriétés de volumes ne concerne que les fichiers vmfs.
Pour l'instant, j'ai donc .UsedSpaceGB qui m'offre la totalité de mes fichiers tout datastore confondu, et .HardDisks qui m'offre la séparation des LUNs, mais uniquement sur certains fichiers.
Comme cette fonction est une toute petite partie d'un script plus vaste de vérification de mon univers, je vais m'atteler à documenter celui-ci avant mon départ en vacances demain
Suite (et solutions j'espère) au mois de septembre.
Bon scripting à tous.
J'ai bien essayé de passer par VM.HardDisks, objet qui m'offre la séparation des datastores, mais ses propriétés de volumes ne concerne que les fichiers vmfs.
Pour l'instant, j'ai donc .UsedSpaceGB qui m'offre la totalité de mes fichiers tout datastore confondu, et .HardDisks qui m'offre la séparation des LUNs, mais uniquement sur certains fichiers.
Comme cette fonction est une toute petite partie d'un script plus vaste de vérification de mon univers, je vais m'atteler à documenter celui-ci avant mon départ en vacances demain
Suite (et solutions j'espère) au mois de septembre.
Bon scripting à tous.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 7 mois #15540
par Philippe
Réponse de Philippe sur le sujet Re:[PowerCLI]Obtenir occupation des VM par LUN
Bonne vacances a toi 
et rdv en septembre pour de BONNES idees
et pour de bon scripts
et rdv en septembre pour de BONNES idees
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [PowerCLI]Obtenir occupation des VM par LUN