Skip to main content

ClusterVmComponentProtectionSettings

Struct ClusterVmComponentProtectionSettings 

Source
pub struct ClusterVmComponentProtectionSettings {
    pub vm_storage_protection_for_apd: Option<String>,
    pub enable_apd_timeout_for_hosts: Option<bool>,
    pub vm_terminate_delay_for_apd_sec: Option<i32>,
    pub vm_reaction_on_apd_cleared: Option<String>,
    pub vm_storage_protection_for_pdl: Option<String>,
}
Expand description

vSphere HA Virtual Machine Component Protection Service settings.

vSphere HA Virtual Machine Component Protection Service detects and reacts to storage failures that do not necessarily cause a virtual machine to go down, but may impact the health or QoS of the virtual machine.

All fields are defined as optional. In case of a reconfiguration, fields left unset are not changed.

§How to access

  • ComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.default_vm_settings?.vm_component_protection_settings?
  • ComputeResource::configuration_ex→ClusterConfigInfoEx.das_vm_config?[*].das_settings?.vm_component_protection_settings?
  • ClusterComputeResource::configuration.das_config.default_vm_settings?.vm_component_protection_settings?
  • ClusterComputeResource::configuration.das_vm_config?[*].das_settings?.vm_component_protection_settings?
  • ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.default_vm_settings?.vm_component_protection_settings?
  • ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.das_vm_config?[*].das_settings?.vm_component_protection_settings?
  • Folder::create_cluster(spec).das_config?.default_vm_settings?.vm_component_protection_settings?
  • Folder::create_cluster_ex(spec).das_config?.default_vm_settings?.vm_component_protection_settings?
  • Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.default_vm_settings?.vm_component_protection_settings?
  • Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.default_vm_settings?.vm_component_protection_settings?

(10 of 36 paths)

Fields§

§vm_storage_protection_for_apd: Option<String>

VM storage protection setting for storage failures categorized as All Paths Down (APD).

APD is a condition where a storage has become inaccessible for unknown reasons. It only indicates loss of connectivity and does not indicate storage device failure or LUN removal (Permenant Device Loss or PDL). The details of APD and PDL are described in HostMountInfoInaccessibleReason_enum.

This property is meaningful only when vSphere HA is turned on. Valid values are specified by ClusterVmComponentProtectionSettingsStorageVmReaction_enum. The default value is disabled for cluster setting and clusterDefault for per-VM setting.

When an APD condition happens and the host begins timing out I/Os (@link vim.host.MountInfo.InaccessibleReason#AllPathsDown_Timeout}, VM Component Protection service will react based on the specific value of this property:

  • disabled, no reaction, i.e., no VM failover and no event reporting for the failures.
  • warning, service will issue events, alarms and/or config issues for component failures.
  • restartConservative, service will terminate the impacted VMs after a preconfigured time interval (ClusterVmComponentProtectionSettings.vmTerminateDelayForAPDSec) if they are to be restarted.
  • restartAggressive, service might terminate the impacted VMs after a preconfigured time interval (ClusterVmComponentProtectionSettings.vmTerminateDelayForAPDSec). In some cases, a VM is terminated even if it may not able to be restarted or lose Fault Tolerance redundancy.
  • clusterDefault, service will implement cluster default.
§enable_apd_timeout_for_hosts: Option<bool>

This property indicates if APD timeout will be enabled for all the hosts in the cluster when vSphere HA is configured.

The details of APD timeout are described in HostMountInfoInaccessibleReason_enum.

If ClusterDasConfigInfo.vmComponentProtecting is disabled, the property will be ignored. Otherwise, for each host in the cluster, APD timeout will be enabled. Note that no change will be made for a host if it already had APD timeout enabled.

This property is meaningful only for cluster setting. It is ignored if specified at VM level. The default value is false if not specified.

Note that this property is not persisted by vSphere backend. It does not impact any cluster reconfiguration or host operation (such as adding a host to a cluster) that might happen later.

§vm_terminate_delay_for_apd_sec: Option<i32>

The time interval after an APD timeout has been declared and before VM Component Protection service will terminate the VM.

The value only applies if ClusterVmComponentProtectionSettings.vmStorageProtectionForAPD is set to restartConservative or restartAggressive.

The default value is 180 seconds if not specified. To use cluster setting for a VM override, set to -1 in per-VM setting.

§vm_reaction_on_apd_cleared: Option<String>

Action taken by VM Component Protection service for a powered on VM when APD condition clears after APD timeout.

This property is meaningful only when vSphere HA is turned on. Valid values are specified by ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared_enum. The default value is none for cluster setting and useClusterDefault for per-VM setting.

§vm_storage_protection_for_pdl: Option<String>

VM storage protection setting for storage failures categorized as Permenant Device Loss (PDL).

PDL indicates storage device failure or LUN removal. In case of PDL, the failed datastore or device is unlikely to recover. The details of PDL are described in HostMountInfoInaccessibleReason_enum.

This property is meaningful only when vSphere HA is turned on. Valid values are disabled, warning, restartAggressive and clusterDefault. The default value is disabled for cluster setting and clusterDefault for per-VM setting.

When set to restartAggressive, VM Component Protection service will immediately terminate the VMs impacted by PDL and will attempt to restart the VMs with best effort. When set to the other values, the behavior is the same as described for ClusterVmComponentProtectionSettings.vmStorageProtectionForAPD.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: 'static,

Source§

fn as_any_ref<'a>(&'a self) -> &'a (dyn Any + 'static)

Cast a reference to Any trait.

Source§

fn as_any_box(self: Box<T>) -> Box<dyn Any>

Cast to a boxed reference to Any trait.

Source§

fn type_id(&self) -> TypeId

Get the underlying type identifier.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<To, T> CastInto<To> for T
where To: CastFrom<T> + ?Sized, T: 'static + ?Sized,

Source§

fn into_ref<'a>(&'a self) -> Option<&'a To>

Casts a reference to a trait object. If the cast fails, std::option::Option::None is returned.
Source§

fn into_box(self: Box<T>) -> Result<Box<To>, Box<dyn Any>>

Casts a boxed trait object to another trait object. If the cast fails, the original boxed trait object is returned in std::result::Result::Err.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,