Dieser Beitrag wird tief in das RHV Power Management eintauchen.
Was ist Host Power Management (Fence)?
Wenn die Energieverwaltung konfiguriert ist, kann RHV die Hosts neu starten, die sich im Zustand „NonOperational“ oder „NonResponsive“ befinden. RHV unterstützt die folgenden Energieverwaltungsgeräte:
- American Power Conversion (apc)
- IBM Bladecenter (Bladecenter)
- Cisco Unified Computing System (cisco_ucs)
- Dell Remote-Zugriffskarte 5 (drac5)
- Dell Remote-Zugriffskarte 7 (drac7)
- Elektronischer Netzschalter (eps)
- HP BladeSystem (hpblade)
- Integrated Lights Out (ilo, ilo2, ilo3, ilo4,ilo_ssh)
- Intelligente Plattformverwaltungsschnittstelle (ipmilan)
- Remote Supervisor Adapter (rsa)
- Fujitsu-Siemens RSB (rsb)
- Western Telematic, Inc (wti)
RHV verwendet Fence-Agenten, um mit Energieverwaltungsgeräten zu kommunizieren.
Was ist Auto Fencing?
Wenn der Host einen unerwarteten Ausfall erleidet, ändert sich der Hoststatus in Verbinden und der Host behält diesen Status für einen Übergangszeitraum. Wenn dieses Timeout abläuft, wechselt der Host in den Status „NonResponsive“ oder „NonOperational“. Um auf diesen Zustand zu reagieren, grenzt Engine die problematischen Hosts ein, indem sie einen Neustart durchführt. Engine verwendet den Fencing-Agent für die Energieverwaltungskarte auf dem Host, um den Host zu stoppen, zu bestätigen, dass er gestoppt wurde, den Host zu starten und zu bestätigen, dass der Host gestartet wurde.
Kulanzzeitraum für automatische Begrenzung:
Standardmäßig versucht Engine zweimal, vdsm nach dem Status zu fragen:
option_name | option_value | default_value -------------------------+--------------+--------------- VDSAttemptsToResetCount | 2 | 2 (1 row)
Grace Period = TimeoutToResetVdsInSeconds + DelayResetPerVmInSeconds*(Number of VMs on host) + DelayResetForSpmInSeconds(isSPM)
Wenn der Host beispielsweise SPM mit zwei VMs und default_value ist, dann beträgt die Kulanzzeit =60+ 0,5*2+20=81 s
option_name | option_value | default_value ----------------------------+--------------+--------------- TimeoutToResetVdsInSeconds | 60 | 60 DelayResetForSpmInSeconds | 20 | 20 DelayResetPerVmInSeconds | 0.5 | 0.5 VDSAttemptsToResetCount | 2 | 2 (4 rows)
Kdump-Zaun:
Wenn die „Kdump-Integration“ aktiviert wird, verzögert es nur den Hardfence, bis der Host im Falle eines Absturzes das Schreiben seines Speicherabbilds beendet hat.
Weicher Zaun:
Dies kann auf Cluster-Ebene konfiguriert werden:
AdminPortal-->Compute-->Cluster-->Edit Cluster-->Fencing Polciy-->Enable Fencing
Vor dem „Neustart“ des Hosts versucht Engine, VDSM über SSH auf „nicht reagierenden“ Hosts durch „SSH Soft Fencing“ neu zu starten.
option_name | option_value | default_value | version -----------------------+-------------------------------------------------+------------------------------------------------+--------- SshSoftFencingCommand | /usr/bin/vdsm-tool service-restart vdsmd | /usr/bin/vdsm-tool service-restart vdsmd | 4.3 (1 row)
Soft-Fencing über SSH kann auf Hosts ausgeführt werden, auf denen keine Energieverwaltung konfiguriert ist. Dies unterscheidet sich vom „Fechten“. Fencing kann nur auf Hosts ausgeführt werden, auf denen die Energieverwaltung konfiguriert ist.
Auswahl eines Proxys
Die standardmäßige Power Management Proxy-Einstellung ist cluster, dc. Es gibt eine Option zum Hinzufügen von „other_dc“. Es findet einen Proxy-Host im „UP“-Status.
# engine-config -g FenceProxyDefaultPreferences FenceProxyDefaultPreferences: cluster,dc version: general
Ablauf:
Motorfluss:
Konfigurations-Metadaten
Hier sind die Metadaten von VdsFenceType, VdsFenceOptionTypes, VdsFenceOptionMapping, FenceAgentMapping und FenceAgentDefaultParams:
-[ RECORD 1 ]+---------------------------------------------------------------------------------------------------------- option_name | VdsFenceType option_value | apc,apc_snmp,bladecenter,cisco_ucs,drac5,drac7,eps,hpblade,ilo,ilo2,ilo3,ilo4,ilo_ssh,ipmilan,rsa,rsb,wti version | 4.3 -[ RECORD 2 ]-+--------------------------------------------------------------------------------------------------------- option_name | VdsFenceOptionTypes option_value | encrypt_options=bool,secure=bool,port=int,slot=int default_value | encrypt_options=bool,secure=bool,port=int,slot=int -[ RECORD 3 ]-+---------------------------------------------------------------------------------------------------------- option_name | VdsFenceOptionMapping option_value | apc:secure=secure,port=ipport,slot=port; apc_snmp:port=port,encrypt_options=encrypt_options; bladecenter:secure=secure,port=ipport,slot=port; cisco_ucs:secure=ssl,slot=port; drac5:secure=secure,slot=port; drac7:;eps:slot=port; hpblade:port=port; ilo:secure=ssl,port=ipport; ipmilan:; ilo2:secure=ssl,port=ipport; ilo3:; ilo4:; ilo_ssh:port=port; rsa:secure=secure,port=ipport; rsb:;wti:secure=secure,port=ipport,slot=port default_value | apc:secure=secure,port=ipport,slot=port; apc_snmp:port=port,encrypt_options=encrypt_options; bladecenter:secure=secure,port=ipport,slot=port; cisco_ucs:secure=ssl,slot=port; drac5:secure=secure,slot=port; drac7:; eps:slot=port; hpblade:port=port; ilo:secure=ssl,port=ipport; ipmilan:; ilo2:secure=ssl,port=ipport; ilo3:; ilo4:; ilo_ssh:port=port; rsa:secure=secure,port=ipport; rsb:; wti:secure=secure,port=ipport,slot=port -[ RECORD 4 ]-+---------------------------------------------------------------------------------------------- option_name | FenceAgentMapping option_value | drac7=ipmilan,ilo2=ilo default_value | drac7=ipmilan,ilo2=ilo -[ RECORD 5 ]-+----------------------------------------------------------------------------------------------- option_name | FenceAgentDefaultParams option_value | drac7:privlvl=OPERATOR,lanplus=1,delay=10;ilo3:power_wait=4;ilo4:power_wait=4;ilo_ssh:secure=1 default_value | drac7:privlvl=OPERATOR,lanplus=1,delay=10;ilo3:power_wait=4;ilo4:power_wait=4;ilo_ssh:secure=1
Die obigen Metadaten können in der Engine-Konfiguration konfiguriert werden:
# engine-config -a |grep 'CustomFence\|CustomVdsFence' CustomFenceAgentMapping: version: general CustomFenceAgentDefaultParams: version: general CustomFenceAgentDefaultParamsForPPC: version: general CustomVdsFenceOptionMapping: version: general CustomVdsFenceType: version: general CustomFencePowerWaitParam: version: general
Andere Konfiguration (Timeouts und Wiederholungen):
# engine-config -a |grep 'FenceStart\|FenceStop' FenceStartStatusRetries: 18 version: general FenceStartStatusDelayBetweenRetriesInSec: 10 version: general FenceStopStatusRetries: 18 version: general FenceStopStatusDelayBetweenRetriesInSec: 10 version: general