APIs in Category: cf | Cluster-Mode API version 1.15

cf-force-takeover cf-get-partner cf-giveback cf-hwassist-stats cf-hwassist-stats-clear cf-hwassist-status cf-hwassist-test 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. This option is not allowd in case of cluster zapi.
> node |  | string optional | This parameter is the name of the node which is doing a takeover of its partner.

> 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.

> Input Name | Range | Type | Description
> node |  | string optional | The node name is passed as an argument
> 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 |  |

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.
> node |  | string optional | This parameter is the name of the node which performs giveback to its partner.
> only-cfo-aggregates |  | boolean optional | When set to true, only the CFO HA-style aggregates (which includes the root aggregate) will be given back. This may be needed in the case when the partner node's VLDB and other such management applications are not properly working (they are required to be online for the SFO HA-style aggregates to start serving data), so it might not be possible to giveback SFO HA-style aggregates. When set to false, all the aggregates (CFO HA-style aggregates + SFO HA-style aggregates) will be given back. The default value is false.
> override-vetoes |  | boolean optional | Some conditions cause attempts to giveback aggregates to be vetoed. When set to true, this allows the process of giveback of the aggregates to be initiated even in the face of such vetoes. When set to false, this does not allow the process of giveback of the aggregates to proceed if there are any vetoes. The default value is false.
> require-partner-waiting |  | boolean optional | When set to true, this ensures that the process of giveback of the aggregates is not initiated if the partner is not up and waiting to receive them. When set to false, this allows the process of giveback of the aggregates to proceed even if the partner is not up and waiting to receive them. The default value is true.

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

cf-hwassist-stats | [top]

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

> Input Name | Range | Type | Description
> node |  | string optional | Node name of the filer for which the API is requested.
> 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-stats-clear | [top]

> Get useful information about stats of hw_assist functionality.

> Input Name | Range | Type | Description
> node |  | string | Node name of the filer for which the API is requested.

> Errno | Description
> EINTERNALERROR |  |

cf-hwassist-status | [top]

> Get useful information about the status of hw_assist functionality.

> Input Name | Range | Type | Description
> node |  | string optional | Node name of the filer for which the API is requested.
> Output Name | Range | Type | Description
> 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 addr; 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 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 addr, 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 Active: If functionality is active. Inactive: If functionality is inactive

> Errno | Description
> EINTERNALERROR |  |

cf-hwassist-test | [top]

> Validates the hardware-assisted takeover configuration. functionality.

> Input Name | Range | Type | Description
> node |  | string | Node name of the filer for which the API is requested.
> Output Name | Range | Type | Description
> hwassist-test-result |  | string | This string corresponds to the result of the test. The possible outcomes are: Hwassist is not initialized No hw_assist hardware found. Partner is throttling alerts. Resource busy. Try again after some time. Hwassist hardware returned error. No response from partner. Timed out. Unexpected abort. Partner has taken over. Interconnect is down between nodes. Make sure partner is booted up.Run 'storage failover hwassist show' for details.

> Errno | Description
> EINTERNALERROR |  |

cf-service-disable | [top]

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

> Input Name | Range | Type | Description
> node |  | string optional | This parameter is the name of the node on which service is to be disabled

> 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

> Input Name | Range | Type | Description
> node |  | string optional | This parameter is the name of the node on which service is to be enabled

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

cf-status | [top]

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

> Input Name | Range | Type | Description
> node |  | string | This parameter is the name of the node for which High Availability service status is being requested
> Output Name | Range | Type | Description
> backup-io-times |  | mailbox-io-times-info optional | Backup mailbox IO times. Not returned if state is "waiting_for_root_aggr".
> backup-mailbox-status |  | mailbox-status-info[] optional | Backup mailbox status information, represented as a list of strings. Not returned if state is "waiting_for_root_aggr".
> booting-received |  | integer | time booting notification received, in milliseconds. XXX this is a uint_8
> control-partner-aggregates |  | boolean | True, if we control one or more partner aggregates.
> current-giveback-module |  | string optional | The current module giveback process is in
> current-resource-table-entry |  | string optional | If we're doing takeover processing, the name of the current entry in the resource table.
> current-resource-table-entry-index |  | integer optional | If we're doing takeover processing, the index of the current entry in the resource table.
> current-time |  | integer | Current time on the filer
> firmware-received |  | integer | time firmware notification received, in milliseconds. XXX this is a uint_8
> interconnect-links |  | string optional | States of the individual interconnect links e.g. VIA Interconnect is down (link 0 down, link 1 down) VIA Interconnect is up (link 0 down, link 1 up) VIA Interconnect is up (link 0 up, link 1 down)
> interconnect-type |  | string optional | Type and Vendor of the interconnect e.g. Infiniband ( Mellanox Arbel ) Infiniband ( Mellanox Tavor ) FCVI ( Qlogic 2462 )
> 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 storage clustering interconnect is up
> kill-packets |  | boolean | True, if we issue ic kill messages during takeover.
> local-firmware-progress |  | integer optional | A counter to indicate that the local node is progressing in the current firmware state The range of possible values is [0..2^31-1]
> local-firmware-state |  | string optional | Local firmware state that will be communicated through interconnect to the partner SF_OPERATOR_EXIT - operator completed SF_DEBUG_EXIT - debugger completed SF_PROGRESS - progress counter SF_IOERROR - I/O error SF_BADCKSUM - bad checksum SF_RESERVED - reserved SF_UNKNOWN - unknown SF_OPEN - initializing SF_POST - in power-on self test SF_BOOTING - booting SF_FAIL - boot failed SF_WAITING - waiting SF_OS_BOOTED - kernel loaded SF_UP - up SF_DEBUG - in debugger SF_OPERATOR - waiting for operator input SF_DUMPCORE - dumping core SF_HALT - halted SF_REBOOT - rebooting SF_GIVEWAIT - waiting for giveback SF_MBWAIT - waiting for cluster mailbox release SF_SPARECORE - dumping sparecore and ready to be taken-over SF_MDP - multi-disk panic SF_TO - in takeover SF_NOTO
> local-mailbox-disks |  | sf-disk-info[] optional | List of local mailbox disks. Not returned if state is "waiting_for_root_aggr".
> logs-unsynced-count |  | integer | Number of times the log was unsynchronized.
> max-resource-table-index |  | integer optional | The maximum resource table index.
> name |  | string | Hostname of the dblade.
> nvram-id |  | integer | NVRAM identifier
> partner |  | string | Hostname of the partner. If the partner is unknown, returns an empty string. This is for 7G like output compatibility.
> partner-firmware-progress |  | integer optional | A counter to indicate that the partner node is progressing in the current firmware state The range of possible values is [0..2^31-1]
> partner-firmware-state |  | string optional | Partner firmware state as communicated by the partner through interconnect SF_OPERATOR_EXIT - operator completed SF_DEBUG_EXIT - debugger completed SF_PROGRESS - progress counter SF_IOERROR - I/O error SF_BADCKSUM - bad checksum SF_RESERVED - reserved SF_UNKNOWN - unknown SF_OPEN - initializing SF_POST - in power-on self test SF_BOOTING - booting SF_FAIL - boot failed SF_WAITING - waiting SF_OS_BOOTED - kernel loaded SF_UP - up SF_DEBUG - in debugger SF_OPERATOR - waiting for operator input SF_DUMPCORE - dumping core SF_HALT - halted SF_REBOOT - rebooting SF_GIVEWAIT - waiting for giveback SF_MBWAIT - waiting for cluster mailbox release SF_SPARECORE - dumping sparecore and ready to be taken-over SF_MDP - multi-disk panic SF_TO - in takeover SF_NOTO
> partner-mailbox-disks |  | sf-disk-info[] optional | List of partner mailbox disks as this dblade sees them. Not returned if state is "waiting_for_root_aggr".
> partner-name |  | string optional | Hostname of the partner. Not returned if unknown.
> partner-nvram-id |  | integer optional | Partner NVRAM identifier. Not returned if unknown.
> primary-io-times |  | mailbox-io-times-info optional | Primary mailbox IO times. Not returned if state is "waiting_for_root_aggr".
> primary-mailbox-status |  | mailbox-status-info[] optional | Primary mailbox statusPrimary mailbox status information, represented as a list of strings. Not returned if state is "waiting_for_root_aggr".
> resource-table |  | resource-table-info[] optional | The failover monitor resource table.Pre-rsrctbl information will be prep-ended to this output.
> sf-options |  | sf-options-info optional | The following is the clustering view of various options, for debugging purposes. The actual interface is via the options mechanism. Not returned if state is "waiting_for_root_aggr".
> 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 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-by-partner-not-possible-reason |  | takeover-info[] optional | If takeover by the partner is not possible, list of one or more reasons why. Note that in for non-verbose command output the first reason returned is the one that should be displayed.
> takeover-failure-reason |  | string optional | if state == takeover_failed, this is the reason for the takeover failure
> takeover-of-partner-not-possible-reason |  | takeover-info[] optional | If is-enabled is false, list of one or more reasons why. Note that in for non-verbose command output the first reason returned is the one that should be displayed.
> takeover-possible |  | boolean | True, if storage failover takeover is currently possible, false otherwise.
> time-master-status |  | string optional | host is time "master" or "slave". If master, then other host syncs it's time with this one. If slave, then this host syncs it's time with the other. Nothing is returned if clustering is disabled.
> time-until-auto-giveback |  | integer optional | If state == takeover this is the countdown time in seconds until auto-giveback is started. The range of possible values is [0..2^31-1]. This attribute will be absent on output when the value is 0.
> time-until-takeover |  | integer optional | if state == takeover_scheduled, this is the countdown time in seconds until state == takeover_started.
> timeouts |  | timeout-info | Various failover monitor timeouts.
> transit-event-time |  | integer | Time at which last takeover/giveback event occurred, in milliseconds. XXX this is a uint_8

> Errno | Description
> ENODENOTFOUND |  |
> ESERVICENOTINITIALIZED |  |
> EINTERNALERROR |  |

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
> allow-disk-inventory-mismatch |  | boolean optional | This allows takeover if disk inventory information is mismatched for non root volume disks. If mismatched, local node performance could degrade as what appears to be missing disks are rebuilt. NOTE:: When using this option and if some of partner's file system disks are not visible to local node, then after giveback those missing disks can create new failed aggregate with same name. So, if any aggregate is offline after giveback with same name then using "zapi_aggr_destroy", you have to destroy that offline aggregate.
> 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.
> immediate |  | boolean optional | This causes takeover to be initiated immediately. 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.
> node |  | string optional | This parameter is the name of the node which is doing a takeover of its partner.
> version-mismatch-ok |  | boolean optional | This allows takeover if the partner was running an incompatible operating system version and was cleanly halted. This option is used for non-disruptive upgrade(NDU).

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

Element definition: mailbox-io-times-info | [top]

> Mailbox IO times

> Name | Range | Type | Description
> normal |  | integer | Maximum IO time in milliseconds, normal
> transition |  | integer | Maximum IO time in milliseconds, transition

Element definition: mailbox-status-info | [top]

> Mailbox status info.

> Name | Range | Type | Description
> mailbox-status |  | string | representation of mailbox status bit. Possible values: mbx_status_nodisks mbx_status_uncertain mbx_status_stale mbx_status_conflicted mbx_status_old_version mbx_status_not_found mbx_status_wrong_state mbx_status_backup

Element definition: resource-table-info | [top]

> A failover monitor resource table entry.

> Name | Range | Type | Description
> fail |  | string | Entry failure code, represented as a string: ok fail fail_always hang panic veto
> name |  | string | Name of the entry
> state |  | string | Entry state, represented as a string: up start_running start_done start_failed stop_running stop_failed takeover_barrier only_when_initd
> time-delta |  | integer | Amount of time spent in this element, in milliseconds.

Element definition: sf-disk-info | [top]

> Disk information.

> Name | Range | Type | Description
> disk-uid |  | string | Disk unique identifier. Maximum length of 90 characters. XXX should use same typedef as storage ZAPI. Note sure where it is defined.
> name |  | string | Name of the disk, e.g. v1.1

Element definition: sf-options-info | [top]

> The clustering view of various options.

> Name | Range | Type | Description
> giveback-auto |  | boolean | Indicates if the automatic giveback is enabled. Same as send-home-auto.
> node-status-in-mailbox-disks |  | boolean | Indicates if we propagate node status via mailbox disks.
> node-status-in-mailbox-disks-read-interval |  | integer | Rate in seconds at which we read node status from mailbox disks.
> node-status-in-mailbox-disks-write-interval |  | integer | Rate in seconds at which we write node status to mailbox disks.
> send-home-auto |  | boolean | Indicates if the automatic send-home facility enabled.
> send-home-auto-attempts |  | integer | The number of times we'll try to do an automatic giveback within send-home-auto-minutes
> send-home-auto-attempts-minutes |  | integer | The number of minutes in which we should not execeed send-home-auto-attempts automatic send-home attempts.
> send-home-auto-delay-seconds |  | integer | The number of seconds of delay before initiating automatic send-home. This will be the minimum time a node will be in takeover state before performing auto sendhome.
> send-home-check-partner-waiting |  | boolean | Indicates if we require the partner to be waiting for a send-home in order to do a send-home.
> takeover-detection-time |  | integer | Takeover detection time in seconds.
> takeover-on-failure |  | boolean | Indicates if we will automatically takeover upon partner failure.
> takeover-on-panic |  | boolean | Indicates if we will automatically takeover upon partner panic.
> takeover-on-reboot |  | boolean | Indicates if we will automatically takeover upon partner reboot.
> takeover-on-short-uptime |  | boolean | Indicates if we will automatically takeover if the partner fails within 60 seconds of booting.

Element definition: takeover-info | [top]

> Takeover info.

> Name | Range | Type | Description
> reason |  | string | reason we can't takeover: not_initialized - Uninitialized. unlicensed - Clustering is not licensed. disabled - Cluster is disabled. degraded - Degraded mode (mailbox disks). mailbox_invalid - Partner mailbox status not accessible or invalid. mailbox_uninit - Partner mailbox status uninitialized. fm_version_mismatch - Fm mailbox version mismatch. partner_disabled - Partner disabled cluster. operator_deny - Disabled by operator. nvram_mismatch - NVRAM size mismatch. version - Version mismatch. ic_error - Interconnect error. booting - Partner is booting. shelf_hot - Disk shelf is too hot. Note that this feature is not currently implemented. partner_revert_in_progress - Partner is performing revert. local_revert_in_progress - We are performing revert. partner_takeover - Partner is trying to take us over. local_takeover - We are in takeover state. halt_no_takeover - Filer halted using 'halt -f'. log_unsync - NVRAM log unsynchronized. unknown - notakeover due to unknown reason. waiting_for_partner - Waiting for partner recovery. low_memory - Low memory condition. halting - About to halt. mailbox_uncertain - Status of backup mailbox doubtful. no_auto_takeover - Automatic takeover is disabled.

Element definition: timeout-info | [top]

> Failover monitor timeouts.

> Name | Range | Type | Description
> booting |  | integer | booting timeout, in milliseconds
> connect |  | integer | connect timeout, in milliseconds
> dumpcore |  | integer | dumpcore timeout, in milliseconds
> fast |  | integer | fast timeout, in milliseconds
> firmware |  | integer | firmware timeout, in milliseconds
> mailbox |  | integer | mailbox timeout, in milliseconds
> operator |  | integer | operator timeout, in milliseconds
> slow |  | integer | slow timeout, in milliseconds
> transit |  | integer | transit timeout, in milliseconds
> transit-timer-enabled |  | boolean | True, if the transit timer is enabled