Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

Probleme mit FT / An- Abschalten über PowerCli

Hilfe bei Problemen mit Installation & Benutzung des VMware ESX Server 4/VMware vSphere 4.0.

Moderatoren: irix, Dayworker

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Probleme mit FT / An- Abschalten über PowerCli

Beitragvon macascot » 19.07.2012, 18:24

Hallo,

ich habe da ein Problem, welches ich einfach nicht lösen kann.
Ich habe zwei ESXi Server mit FT konfiguriert. Über die PowerCli habe ich zwei Scripte welche das FT abschalten, damit ich Nachts Snapshots erstellen kann. Danach wird das FT wieder über ein Script aktiviert.

Nun laufen die Scripte aber nicht mehr (diese liefen aber mehrere Wochen).
Das Abschalt-Script:

Code: Alles auswählen

Connect-VIServer 192.168.1.140

Get-VM Server1 | Select -First 1 | Get-View | % { $_.TurnOffFaultToleranceForVM() }

Exit


Das Anschalt-Script:

Code: Alles auswählen

Connect-VIServer 192.168.1.140

Get-VM Server1 | Get-View | % { $_.CreateSecondaryVM($null) }

Exit


Die Fehlermeldung beim Abschalten:

Code: Alles auswählen

[vSphere PowerCLI] C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts> .\DisableFTPDC.ps1

Name                                              Port                                              User
----                                              ----                                              ----
192.168.1.140                                     443                                               Administrator
Ausnahme beim Aufrufen von "TurnOffFaultToleranceForVM" mit 0 Argument(en):  "Dieser Vorgang wird auf einer sekundären VM einem Fehlertoleranzpaar nicht unterstützt."
Bei C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\DisableFTPDC.ps1:3 Zeichen:87
+ Get-VM Server1 | Select -First 1 | Get-View | % { $_.TurnOffFaultToleranceForVM <<<< () }
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException


Und die Fehlermleldung beim Anschalten:

Code: Alles auswählen

[vSphere PowerCLI] C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts> .\EnableFTPDC.ps1

Name                                              Port                                              User
----                                              ----                                              ----
192.168.1.140                                     443                                               Administrator
Ausnahme beim Aufrufen von "CreateSecondaryVM" mit 1 Argument(en):  "Dieser Vorgang wird auf einer sekundären VM einem Fehlertoleranzpaar nicht unter
stützt."
Bei C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\EnableFTPDC.ps1:3 Zeichen:60
+ Get-VM Server1 | Get-View | % { $_.CreateSecondaryVM <<<< ($null) }
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException


Vm               : VirtualMachine-vm-1753
PowerOnAttempted : True
PowerOnResult    : VMware.Vim.ClusterPowerOnVmResult
DynamicType      :
DynamicProperty  :


Ich kann den Server aber über den vSphere Client Aus- und wieder Anschalten.
Kann mir jemand weiterhelfen, ich komme einfach nicht weiter...
Besten Dank schon mal

macascot[/code]

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 19.07.2012, 20:28

Ich kann FT hier nicht testen und habe auch noch nicht das mit PowerCLI zu steuern.
Was liefert Get-VM Server1 denn zurück ? Für mich sieht das so aus als kommt da was raus wo zufällig die sekundäre VM vorne steht.

Hab mal kurz gegoogelt und das hier gefunden:

http://vniklas.djungeln.se/2012/02/25/v ... -powercli/

Der macht da sowas:

Code: Alles auswählen

$VMview = Get-VM $VM | where {$_.Extensiondata.Config.FtInfo.Role -eq 1} | Get-View
$VMview.TurnOffFaultToleranceForVM()

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 19.07.2012, 23:08

Hallo mbreidenbach,
das bekomme ich zurück...

Code: Alles auswählen

get-vm Server1

Name                 PowerState Num CPUs Memory (MB)
----                 ---------- -------- -----------
Server1       PoweredOn  1        4096
Server1       PoweredOn  1        4096


und das ist output von:

Code: Alles auswählen

get-vm Server1|select -first 1|get-view

Capability           : VMware.Vim.VirtualMachineCapability
Config               : VMware.Vim.VirtualMachineConfigInfo
Layout               : VMware.Vim.VirtualMachineFileLayout
LayoutEx             : VMware.Vim.VirtualMachineFileLayoutEx
Storage              : VMware.Vim.VirtualMachineStorageInfo
EnvironmentBrowser   : EnvironmentBrowser-envbrowser-1750
ResourcePool         : ResourcePool-resgroup-42
ParentVApp           :
ResourceConfig       : VMware.Vim.ResourceConfigSpec
Runtime              : VMware.Vim.VirtualMachineRuntimeInfo
Guest                : VMware.Vim.GuestInfo
Summary              : VMware.Vim.VirtualMachineSummary
Datastore            : {Datastore-datastore-52}
Network              : {Network-network-61}
Snapshot             :
RootSnapshot         : {}
GuestHeartbeatStatus : green
Parent               : Folder-group-v22
CustomValue          : {}
OverallStatus        : green
ConfigStatus         : green
ConfigIssue          : {}
EffectiveRole        : {-1}
Permission           : {}
Name                 : Server1
DisabledMethod       : {CreateSnapshot_Task, RevertToCurrentSnapshot_Task, RemoveAllSnapshots_Task, MarkAsTemplate...}
RecentTask           : {}
DeclaredAlarmState   : {alarm-11.vm-1750, alarm-12.vm-1750, alarm-2.vm-1750, alarm-26.vm-1750...}
TriggeredAlarmState  : {}
AlarmActionsEnabled  : True
Tag                  : {}
Value                : {}
AvailableField       : {}
MoRef                : VirtualMachine-vm-1750
Client               : VMware.Vim.VimClient


Irgendwie hätte ich irgendwo einen Parameter erwartet, der auf FaultTolerance schließen lässt... :?: Kann mich auch grundlegend irren. Ich habe die ursprüngliche Konfiguration nicht gesehen...

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 20.07.2012, 01:15

Code: Alles auswählen

Was liefert Get-VM Server1 denn zurück ? Für mich sieht das so aus als kommt da was raus wo zufällig die sekundäre VM vorne steht.

Was heisst das??
Sorry die Frage, aber ich habe mit FT noch nichts zu tun gehabt...

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 20.07.2012, 09:08

Irgendwie hätte ich irgendwo einen Parameter erwartet, der auf FaultTolerance schließen lässt


Die scheint mir in Extensiondata.Config.FtInfo zu stehen

Was heisst das?? Sorry die Frage, aber ich habe mit FT noch nichts zu tun gehabt...


get-vm Server1 liefert zwei Objekte zurück. Eines davon dürfte die primäre und das andere die sekundäre VM sein.

get-vm Server1|select -first 1 wählt von den beiden Objekten das erste; das könnte aber die sekundäre VM sein und genau das steht in der Fehlermeldung.
Wenn das früher mal funktioniert hat dann könnte das daran liegen daß früher halt mal die primäre VM 'vorne' stand.

Ich habe hier in meinem Lab kein FT und kann's auch nicht einrichten; deswegen kann ich nur theoretisch rumraten.

Die Ausgabe von

Code: Alles auswählen

get-vm Server1 | foreach { write-host $_.Extensiondata.Config.FtInfo }

würde mich mal interessieren. Bei mir ist das mangels FT leer.

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 20.07.2012, 16:36

Folgendes bekomme ich zurückgeliefert:

Code: Alles auswählen

VMware.Vim.FaultToleranceSecondaryConfigInfo
VMware.Vim.FaultTolerancePrimaryConfigInfo

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 20.07.2012, 16:45

Dann kommt die Fehlermeldung

Ausnahme beim Aufrufen von "TurnOffFaultToleranceForVM" mit 0 Argument(en): "Dieser Vorgang wird auf einer sekundären VM einem Fehlertoleranzpaar nicht unterstützt."


weil

Code: Alles auswählen

Get-VM Server1


zwei Objekte liefert von denen das erste der Secondary ist und damit

Code: Alles auswählen

Get-VM Server1 | Select -First 1


den Secondary liefert.

Früher hat das zufällig funktioniert weil da die Reihenfolge warum auch immer andersrum war.

Probiers doch mal so wie schon weiter oben beschrieben:

Code: Alles auswählen

$VMview = Get-VM $VM | where {$_.Extensiondata.Config.FtInfo.Role -eq 1} | Get-View
$VMview.TurnOffFaultToleranceForVM()


Ich kann das leider nicht selber testen da mein Lab hier nicht für FT geeignet ist.

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 22.07.2012, 16:24

Hallo mbreidenbach,

wow, Dein Tipp funktioniert prächtig. :grin:

Ich habe mir das Script mal angesehen, welches Du als Grundlage Deiner Vermutung verwendet hast.

Ich habe mir dann mal den Part für das Aktivieren angesehen. Ich befürchte, dass ich hier genauso auf einer "Zeitbombe" sitze... und habe mein Script mit dem wesentlichen Inhalt:

Code: Alles auswählen

Get-VM Server1 | Get-View | % { $_.CreateSecondaryVM($null) }


(welches bisher die FT wieder anschaltet) durch

Code: Alles auswählen

$VMview = Get-VM Server1 | where {$_.Extensiondata.Config.FtInfo.Role -eq 1} | Get-View
$VMview.CreateSecondaryVM($null)


ersetzt. Nur wird das ($null) im CreateSecondaryVM angemeckert.

Code: Alles auswählen

Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.
...: 4 Zeichen:26
+ $VMview.CreateSecondaryVM <<<< ($null)
    + CategoryInfo          : InvalidOperation: (CreateSecondaryVM:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull


In dem von Dir angeführten Script wird doch auch mit:

Code: Alles auswählen

$VMview.CreateSecondaryVM($VMHost)


Obwohl ein:

Code: Alles auswählen

$VMview = $VM | Get-View


liefert nichts zurück. Kannst Du mir noch mal auf die Sprünge helfen?

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 22.07.2012, 16:41

.. ist $VMHost der ESX auf die "primäre" Instanz läuft? Eventuelle mache ich hier den Fehler. Wie komme ich an die Information wo die primäre Instanz läuft??

Sorry für diese Fragen...

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 22.07.2012, 17:18

Ich glaub' jetzt hab' ich's .... :idea:

Code: Alles auswählen

$VM = "Server1"
$VMHost = $null
if ($VM.ExtensionData.Config.FtInfo -ne $null){
   $VM = Get-VM $VM | where {$_.Extensiondata.Config.FtInfo.Role -eq 1}
   } else {
   $VM = Get-VM $VM
   }
if ($VMHost -ne $null){
   $VMHost = Get-VMHost $VMHost | Get-View
   if ($VMHost -ne $null) {
      $VMHostobj = New-Object VMware.Vim.ManagedObjectReference
      $VMHostobj.type = "HostSystem"
      $VMHostobj.value = $VMHost.MoRef.Value
      $VMHost = $VMHostobj
   }
}

if ($VM.ExtensionData.Config.FtInfo -eq $null){
   $VMview = $VM | Get-View
   $VMview.CreateSecondaryVM($VMHost)
}


Auf jeden Fall sind die ersten Tests erfolgreich gelaufen.
Besten Dank für die Hilfe...

Weiss jemand, wo ich diese Informationen nachlesen kann? Ich würde gerne mehr über diese Möglichkeiten und die gespeicherten Informationen der VM Umgebung wissen.

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 22.07.2012, 20:19

PowerShell
Es gibt verschiedene kostenlose Bücher zum Thema PowerShell. Ich finde das hier ganz brauchbar:
Mastering PowerShell von Dr. Tobias Weltner http://powershell.com/cs/blogs/ebookv2/default.aspx

PowerCLI
Da gibts das Buch 'VMware vSphere PowerCLI Reference" das man z.B. bei Amazon kaufen kann. Das ist kein Referenzhandbuch im üblichen Sinn aber es behandelt so ziemlich alle Themenbereiche mit Beispielprogrammen. Die Beispielprogramme kann man übrigens auf http://www.powerclibook.com/ runterladen.

Dann natürlich die Webseiten/Blogs der Autoren des Buchs:
Luc Dekens http://www.lucd.info/
Alan Renouf http://www.virtu-al.net/

vSphere CLI
Was Scripting angeht ist die Website von William Lam auch sehr interessant auch wenn er mehr mit vSphere CLI arbeitet.. aber da nicht alles was mit vSphere CLI geht auch mit PowerCLI sollte man sich da auch mal umschauen.
http://www.virtuallyghetto.com/

Es gibt so einige Webseiten da sollte man einmal die Woche draufklicken und lesen was es denn so schönes Neues in der VMware Welt gibt. Eric Siebert hat da eine schöne Sammlung auf http://vlp.vsphere-land.com/ zusammengestellt.

Member
Beiträge: 15
Registriert: 15.03.2009, 23:45

Beitragvon macascot » 23.07.2012, 23:38

Uhh, klasse. Vielen Dank. Da habe ich ja was zu tun :roll:


Zurück zu „vSphere 4 / ESX 4“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste