APIs in Category: cf | 7-Mode API version 1.21

cf-force-takeover cf-get-partner cf-giveback cf-hwassist-stats cf-hwassist-status cf-negotiated-failover-disable cf-negotiated-failover-enable cf-negotiated-failover-status cf-service-disable cf-service-enable cf-status cf-takeover

NetApp Manage ONTAP

cf-force-takeover | [top]

> Forces one filer to take over its partner even though the filer detects an error that would otherwise prevent a takeover. For example, normally, if a detached or faulty interconnect cable between the filers causes the filers' NVRAM contents to be unsynchronized, takeover is disabled. However, this will allow the filer to take over its partner despite the unsynchronized NVRAM contents. cf-force-takeover is dangerous and can lead to data corruption; in almost all cases, use cf-takeover instead.

> Input Name | Range | Type | Description
> disaster |  | boolean optional | When set to true, forces a filer to take over its partner in all cases where a force-takeover would. In addition it will force a takeover even if some partner mailbox disks are inaccessible. It can only be used when remotesyncmirror is licensed. This option is very dangerous. Not only can it cause data corruption, if not used carefully, it can also lead to a situation where both the filer and it's partner are operational (split brain). As such, it should only be used as a means of last resort when the takeover and force-takeover operations are unsuccessful in achieving a takeover. The operator must ensure that the partner filer does not become operational at any time while a filer is in a takeover mode initiated by the use of this operation. In conjunction with RAID mirroring, it can allow recovery from a disaster when the two filers are setup in a MetroCluster configuration.

> Errno | Description
> ETAKEOVERINPROGRESS |  |
> ESENDHOMEINPROGRESS |  |
> EVERSIONMISMATCH |  |
> EMBOXDEGRADED |  |
> EBADOPTIONS |  |
> EWAITINGFORPARTNER |  |
> ENOTHALTED |  |
> ENODENOTFOUND |  |
> EINTERNALERROR |  |

cf-get-partner | [top]

> Get the host name of the partner. If the name is unknown, It will return partner-unknown.

> Output Name | Range | Type | Description
> partner |  | string | Host name of the partner or partner-unknown, if the host name is not known.

> Errno | Description
> EINTERNALERROR |  |

> Vfiler-enabled
> Yes

cf-giveback | [top]

> Initiates a giveback of partner resources. Once the giveback is complete, the automatic takeover capability is disabled until the partner is rebooted. A giveback fails if outstanding CIFS sessions, active system dump processes, or other filer operations makes a giveback dangerous or disruptive.

> Input Name | Range | Type | Description
> force |  | boolean optional | When set to true, this allows a giveback to proceed even if there are outstanding CIFS sessions, active system dump processes, or other filer operations which makes a giveback dangerous or disruptive as long as it would not result in data corruption or filer error. When set to false, this does not allow a giveback to proceed if there are outstanding CIFS sessions, active system dump processes, or other filer operations which makes a giveback dangerous or disruptive. The default value is false.

> Errno | Description
> EPARTNERNOTWAITING |  |
> ENOAGGRS |  |
> ESENDHOMEINPROGRESS |  |
> ETAKEOVERINPROGRESS |  |
> EHALTING |  |
> ENOPARTNERINVENTORY |  |
> EPARTNERMISSINGDISKS |  |
> ENODENOTFOUND |  |
> EINTERNALERROR |  |
> EPARTNERTRYINGTAKEOVER |  |
> E_ARL_IN_PROGRESS |  |

cf-hwassist-stats | [top]

> Get useful information about statistics of hardware assisted takeover functionality.

> Output Name | Range | Type | Description
> hwassist-stats-abnormal-reboot |  | string optional | Number of abnormal_reboot alerts received
> hwassist-stats-bad-nvram-id |  | string optional | Number of bad NVRAM id alerts received
> hwassist-stats-keep-alive |  | string optional | Number of keep_alive alerts received
> hwassist-stats-loss-of-heartbeat |  | string optional | Number of loss_of_heartbeat alerts received
> hwassist-stats-post-error |  | string optional | Number of post_error alerts received
> hwassist-stats-power-cycle-via-rlm |  | string optional | Number of power_cycle_via_rlm alerts received
> hwassist-stats-power-cycle-via-sp |  | string optional | Number of power_cycle_via_sp alerts received
> hwassist-stats-power-loss |  | string optional | Number of power_loss alerts received
> hwassist-stats-power-off-via-rlm |  | string optional | Number of power_off_via_rlm alerts received
> hwassist-stats-power-off-via-sp |  | string optional | Number of power off alerts received from service processor (power_off_via_sp alert).
> hwassist-stats-reset-via-rlm |  | string optional | Number of reset_via_rlm alerts received
> hwassist-stats-reset-via-sp |  | string optional | Number of reset_via_sp alerts received
> hwassist-stats-ss-mismatch |  | string optional | Number of shared secret key mismatch alerts received
> hwassist-stats-test |  | string optional | Number of test alerts received
> hwassist-stats-times-throttled |  | string optional | Number of times hardware assist alerts were throttled. Alerts are throttled when too many are received in a short interval.
> hwassist-stats-unknown-alerts |  | string optional | Number of unknown alerts received
> hwassist-stats-watchdog-reset |  | string optional | Number of l2_watchdog_reset alerts received
> no-stats |  | string optional | If no hardware assist statistics are available, this is set to "Cannot determine hwassist stats".

> Errno | Description
> EINTERNALERROR |  |

cf-hwassist-status | [top]

> Get useful information about the status of hw_assist functionality.

> Output Name | Range | Type | Description
> keep-alive-status |  | string optional | Possible values are: healthy missed_keep_alive_alerts
> local-hwassist-inactive-corrective-action |  | string optional | Indicates the corrective action if status is inactive.
> local-hwassist-inactive-reason |  | string optional | Indicates the reason if status is inactive.
> local-hwassist-ipaddr |  | string optional | If set, Ip address; 0.0.0.0 otherwise
> local-hwassist-port |  | integer optional | If set, port; 0 otherwise
> local-hwassist-status |  | string optional | Local node hw_assist status Possible values are: active: If functionality is active. inactive: If functionality is inactive
> no-status |  | string optional | Set if no hw_assist status is avaliable. Either this or the remaining fields will be set,hence they are optional.
> partner-hwassist-inactive-corrective-action |  | string optional | Indicates the corrective action if status is inactive.
> partner-hwassist-inactive-reason |  | string optional | Indicates the reason if status is inactive.
> partner-hwassist-ipaddr |  | string optional | If set, Ip address, 0.0.0.0 otherwise
> partner-hwassist-port |  | integer optional | If set, current port, 0 otherwise
> partner-hwassist-status |  | string optional | partner node hw_assist status Possible values are: active: If functionality is active. inactive: If functionality is inactive

> Errno | Description
> EINTERNALERROR |  |

cf-negotiated-failover-disable | [top]

> Disables negotiated failover. disk_shelf is the negotiated failover module currently supported.

> Input Name | Range | Type | Description
> module |  | string | Module currently supported is 'disk_shelf'.

> Errno | Description
> EINTERNALERROR |  |

cf-negotiated-failover-enable | [top]

> Enables negotiated failover. disk_shelf is the negotiated failover module currently supported.

> Input Name | Range | Type | Description
> module |  | string | Module currently supported is 'disk_shelf'.

> Errno | Description
> EINTERNALERROR |  |

cf-negotiated-failover-status | [top]

> Returns the status of the negotiated failover module. Negotiated failover is a general facility which supports negotiated failover on the basis of decisions made by various modules.

> Input Name | Range | Type | Description
> module |  | string | Module currently supported is 'disk_shelf'
> Output Name | Range | Type | Description
> is-enabled |  | boolean | True, if clusterfailover for this module is enabled, false otherwise.

> Errno | Description
> EINTERNALERROR |  |

cf-service-disable | [top]

> Disables the takeover capability of this filer in the cluster.

> Errno | Description
> ESERVICENOTINITIALIZED |  |
> ESERVICENOTLICENSED |  |
> ESERVICENOTENABLED |  |
> EREVERTINPROGRESS |  |
> EINTERNALERROR |  |

cf-service-enable | [top]

> Enables the takeover capability of this filer in the cluster. This spawns a process to enable the service

> Errno | Description
> ESERVICENOTINITIALIZED |  |
> ESERVICEENABLED |  |
> EREVERTINPROGRESS |  |
> EMBOXUNKNOWN |  |
> EINTERNALERROR |  |

cf-status | [top]

> Get useful information about the status of the high availability service. If the monitor is not initialized, this returns an error.

> Output Name | Range | Type | Description
> current-mode |  | string optional | Current HA mode
> current-time |  | integer | Current time on the filer
> is-enabled |  | boolean | True, if the storage failover facility is enabled, false otherwise. Note that the facility can be enabled but takeover may not be possible due to various reason.
> is-interconnect-up |  | boolean | True, if high availability interconnect is up
> local-in-headswap |  | boolean optional | True, if the local node is being replaced by a new node.
> new-partner-sysid | [0..2^32-1] | integer optional | The new partner system ID recieved via HA interconnect. The value is zero if partner is not in headswap.
> node-state |  | string optional | State of the storage failover of the node. Possible values are: connected - Partner is available for takeover takeover_scheduled - Partner is down and takeover is scheduled takeover_started - Takeover process has begun takeover - Currently controlling partner's resources. takeover_failed - Failed to takeover the partner giveback_partial_waiting - This node controls partner aggregates even though the node is not in takeover. And we're waiting for a connection to the partner. giveback_partial_connected - This node controls partner aggregates even though the node is not in takeover. The partner is available to receive the aggregates. waiting_for_root_aggr - Partner is controlling dblade's root aggregate If we're in this state, many other optional fields are not returned. waiting - Waiting for a connection to partner. Generally happens while partner is rebooting. in_maintenance_mode - node is in maintenance mode. In the mode it is not possible to determine more detailed information (e.g. cluster or not; takeover or not, etc). pending_shutdown - starting a takeover/giveback is inhibited due to a pending system shutdown. relocating_aggrs_before_takeover - node is relocating its SFO aggregates to its partner prior to a negotiated takeover. sfo_takeover_phase_done - Node is done with the SFO phase of takeover. sfo_takenover_phase_done - This node has relocated its SFO aggregates to its partner during an optimized negotiated takeover by its partner. sfo_takeover_phase_aborted - The SFO phase of takeover has been aborted. Refer to takeover-failure-reason field to check the reason. sfo_takenover_phase_aborted - This node has aborted the relocation of its SFO aggregates to its partner, during an optimized negotiated takeover by its partner. in_non_HA_mode - Node is not in HA mode cfo_takeover_failed - CFO phase of takeover failed sfo_takeover_in_progress - SFO phase of takeover of partner is in progress relocated_aggrs_before_takeover - node has relocated its SFO aggregates to its partner prior to a negotiated takeover. giveback_in_progress - Giveback is in progress. Refer to current-giveback-module field to get the current module, the giveback process is in. giveback_failed_autogiveback_disabled - Previous giveback failed and auto giveback is disabled. Refer to current-giveback-module to get the module in which giveback process failed. giveback_failed_autogiveback_scheduled - Previous giveback failed and an auto giveback is scheduled. Refer to current-giveback-module to get the module in which giveback process failed. Refer to time-until-autogiveback field to check time remaining before an auto giveback is initiated. previous_giveback_failed - Previous giveback failed. Refer to current-giveback-module to get the module in which giveback process failed. takeover_no_di - Local node is in takeover. A normal giveback is not possible as disk inventory from partner has not yet been received. takeover_partner_missing_disks - Local node is in takeover. A normal giveback is not possible as the patner is missing some of its file system disks. takeover_autogiveback_scheduled - Local node in takeover. An auto giveback is scheduled. Refer time-until-autogiveback field to check time remaining before an auto giveback is initiated. takeover_network_failure - Local node in takeover. The partner was taken over due to network failure. takeover_autogiveback_deferred - Local node in takeover. Auto giveback is deferred because the partner node was not ready to receive aggregates when the auto giveback timer expired. An auto giveback will be initiated as soon as the partner node is up and ready to receive aggregates. automatic_takeover_disabled_connected - Automatic takeover is disabled. Local node is connected to partner via HA interconnect. This happens only in debug builds when raid.panic.missing.disks is turned on from node CLI. automatic_takeover_disabled_waiting - Automatic takeover is disabled. Local node is waiting for partner node on HA interconnect. This happens only in debug builds when raid.panic.missing.disks is turned on from node CLI. ndo_upgrade_in_progress - Local node owns partner's aggregates as part of node upgrade process. own_aggr_non_local_connected - Local node owns aggregates of some other node in the cluster. Local node is connected to partner via HA interconnect. This is possible only during NDO double hop head upgrade. own_aggr_non_local_waiting - Local node owns aggregates of some other node in the cluster. Local node is waiting for partner on HA interconnect. This is possible only during NDO double hop head upgrade. clusterwait_connected - Connected to partner via HA interconnect. Local node waiting for cluster applications to come online. clusterwait_waiting - Waiting for partner on HA interconnect. Local node waiting for cluster applications to come online. error - There is an error with the system User have to compare the return values case-insensitively.
> partner |  | string | Hostname of the partner. If the partner is unknown, returns an empty string. This is for 7G like output compatibility.
> partner-in-headswap |  | boolean optional | True, if partner node is being replaced by a new node.
> state |  | string optional | connected - Partner is available for takeover takeover_scheduled - Partner is down and takeover is scheduled takeover_started - Takeover process has begun takeover - Currently controlling partner's resources. taken over - Partner is controlling filer's resources takeover_failed - Failed to takeover the partner sfo_takeover_phase - This node has asked its partner to relocate its SFO aggregates in preparation for takeover. This occurs when a user has initiated an optimized negotiated takeover. relocating_aggrs_before_takeover - This node is relocating its SFO aggregates to its partner during an optimized negotiated takeover by its partner. sfo_takeover_phase_done - This node is done with the SFO phase of an optimized negotiated takeover. sfo_takenover_phase_done - This node has relocated its SFO aggregates to its partner during an optimized negotiated takeover by its partner. sfo_takeover_phase_aborted - The SFO phase of takeover is aborted on this node during an optimized negotiated takeover of its partner. sfo_takenover_phase_aborted - This node has aborted the relocation of its SFO aggregates to its partner, during an optimized negotiated takeover by its partner. giving_back - Sendhome process in progress giveback_partial_waiting - This node controls partner aggregates even though the node is not in takeover. And we're waiting for a connection to the partner. giveback_partial_connected - This node controls partner aggregates even though the node is not in takeover. The partner is available to receive the aggregates. waiting_for_root_aggr - Partner is controlling dblade's root aggregate If we're in this state, many other optional fields are not returned. waiting - Waiting for a connection to partner. Generally happens while partner is rebooting. in_maintenance_mode - node is in maintenance mode. In the mode it is not possible to determine more detailed information (e.g. cluster or not; takeover or not, etc). pending_shutdown - starting a takeover/sendhome is inhibited due to a pending system shutdown. error - There is an error with the system User have to compare the return values case-insensitively.
> takeover-failure-reason |  | string optional | If state equals "takeover_failed", this is the reason for the takeover failure. Possible values are: shutdown_in_progress - shutdown is in progress aggr_relocation_in_progress - aggregate relocation is in progress giveback_in_progress - giveback is in progress takeover_in_progress - takeover is in progress unknown_partner_id - node could not detect its partner's system ID conflicting_sysid - node has the same system ID as its partner pri_mbx_update_error - node could not update its primary mailbox takeover_disabled_by_partner - partner has disabled takeover cannot_takeover_partner_subsystem - node failed to takeover one of partner's subsystems non_etc_or_rc_boot - it is not possible to takeover in a non-etc/rc boot bck_mbx_update_error - node could not update its backup mailbox partner_taking_over - partner is taking over local node revert_in_progress - revert is in progress disaster_recovery_in_progress - disaster recovery operation is in progress headswap_in_progress - headswap is in progress destination_check_failed - destination check failed communication_failed - communication with destination failed operation_aborted - operation was aborted aggr_not_online - destination node did not online the aggregate being relocated in time sfo_disabled - storage failover service is not enabled partner_taking_over - partner is taking over local node bdfu_not_disabled_source - failed to disable background disk firmware update (BDFU) on local node bdfu_not_disabled_dest - failed to disable background disk firmware update (BDFU) on partner node partner_shutting_down - shutdown is in progress on the partner node partner_aggr_relocation_in_progress - aggregate relocation is in progress on the partner node partner_giveback_in_progress - giveback is in progress on the partner node partner_revert_in_progress - revert is in progress on the partner node partner_disaster_recovery_in_progress - disaster recovery operation is in progress on the partner node partner_in_headswap - headswap is in progress on the partner node
> takeover-reason |  | string optional | Reason for triggering a takeover of partner.
> time-until-takeover |  | integer optional | if state == takeover_scheduled, this is the countdown time in seconds until state == takeover_started.

> Errno | Description
> ENODENOTFOUND |  |

> Vfiler-enabled
> Yes

cf-takeover | [top]

> Initiates a takeover of the storage partner. Takeover is done asynchronously; status may be monitored by calling the cf-status API and examining the state field. If automatic giveback is enabled then control will be returned to storage partner once it boots up.

> Input Name | Range | Type | Description
> force |  | boolean optional | In Classic mode: This causes takeover to be immediately initiated. The taken over node, if up, does not get to shut things down in an orderly manner so the takeover of the resources takes longer. This is the type of takeover that is done during normal cluster operation when one of the nodes goes away (dies). In Cluster mode: It forces a node to take over its storage partner even though the node detects an error that would otherwise prevent a takeover. For example, normally, if a detached or faulty interconnect cable between the nodes(ha pair) causes the nodes NVRAM contents to be unsynchronized, takeover is disabled. However, this will allow the node to take over its storage partner despite the unsynchronized NVRAM contents. cf-force-takeover is dangerous and can lead to data corruption; in almost all cases, use cf-takeover instead.

> Errno | Description
> ETAKEOVERINPROGRESS |  |
> ESENDHOMEINPROGRESS |  |
> EVERSIONMISMATCH |  |
> EMBOXDEGRADED |  |
> EBADOPTIONS |  |
> EWAITINGFORPARTNER |  |
> ENOTHALTED |  |
> ENODENOTFOUND |  |
> EINTERNALERROR |  |
> EINVENTORYMISMATCH |  |
> ENOPARTNERINVENTORY |  |
> EPARTNERTRYINGTAKEOVER |  |
> E_NODE_NOT_SF_UP |  |
> EARL_ABORT_FAILED |  |
> ECIFSACTIVEONPARTNER |  |