netapp.ontap.na_ontap_snapmirror 模块 – NetApp ONTAP 或 ElementSW 管理 SnapMirror
注意
此模块是 netapp.ontap 集合(版本 22.13.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install netapp.ontap
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求。
要在剧本中使用它,请指定:netapp.ontap.na_ontap_snapmirror
。
netapp.ontap 2.7.0 中的新增功能
概要
为 ONTAP/ONTAP 创建/删除/更新/初始化/中断/重新同步/恢复 SnapMirror 卷/vserver 关系
这包括 SVM 复制,也称为 vserver DR
在 ElementSW 和 ONTAP 之间创建/删除/更新/初始化 SnapMirror 卷关系
修改 ONTAP/ONTAP 和 ElementSW/ONTAP 的 SnapMirror 关系的计划
ElementSW 到 ONTAP 或反之亦然的先决条件是为 ONTAP 集群建立 SnapMirror 端点,并具有 ElementSW UI
ElementSW 到 ONTAP 或反之亦然的先决条件是在 ElementSW 卷中启用 SnapMirror
对于创建 SnapMirror ElementSW/ONTAP 关系,应存在现有的 ONTAP/ElementSW 关系
如果
relationship_state=active
并且 snapmirror 关系的当前镜像状态为已断开,则执行重新同步如果
relationship_state=active
,当前 snapmirror 关系状态为 quiesced 并且镜像状态为 snapmirrored,则执行恢复如果
relationship_type=restore
,则执行恢复,并且在此任务期间将不执行所有其他操作
要求
执行此模块的主机需要以下要求。
Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。
Python3 - 建议使用 3.9 或更高版本。
使用 ZAPI 时,建议使用 netapp-lib 2018.11.13 或更高版本(使用 'pip install netapp-lib' 安装),强烈建议使用 netapp-lib 2020.3.12,因为它为连接问题提供了更好的错误报告。
物理或虚拟集群 Data ONTAP 系统,模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。
参数
参数 |
注释 |
---|---|
SSL 客户端证书文件 (.pem) 的路径。 不支持 Python 2.6。 |
|
一个可选参数,用于从中止或失败的恢复操作中恢复。 任何临时的 RST 关系都将从目标 Vserver 中删除。 仅支持 ZAPI。 选项
|
|
SnapMirror 关系的类型。 对于 elementsw_ontap 或 ontap_elementsw,先决条件是 ElementSW 卷应将 enableSnapmirror 选项设置为 true。 要使用 ontap_elementsw,应存在 elementsw_ontap snapmirror 关系。 选项
|
|
需要 ONTAP 9.7 或更高版本。 如果启用且存在 destination_volume 或 destination_path 包含卷名称,则创建目标卷。 为 SVM DR 创建并对等目标 vserver。 |
|
是否创建目标卷或 vserver。 如果存在任何其他子选项,则会自动启用此选项。 选项
|
|
与目标端点关联的存储服务。 |
|
是否使用存储服务创建目标端点。 选项
|
|
是否在目标端点上强制执行存储服务性能。 选项
|
|
此卷端点的性能服务级别 (PSL)。 选项
|
|
云分层策略。 |
|
云分层策略。 选项
|
|
在 FabricPool 聚合上启用目标端点卷的置备。 仅支持 FlexVol 卷、FlexGroup 卷和一致性组端点。 选项
|
|
需要 ONTAP 9.7 或更高版本。 需要创建 SVM DR 的目标 vserver 或目标卷。 自 21.2.0 起已弃用,请使用 destination_endpoint 和 cluster。 |
|
SnapMirror 关系的目标端点。 |
|
需要 ONTAP 9.7 或更高版本。 需要创建 SVM DR 的目标 vserver 或目标卷。 |
|
需要 ONTAP 9.8 或更高版本。 一致性组端点的强制属性。指定一致性组的 FlexVol 卷列表。 |
|
需要 ONTAP 9.8 或更高版本。 可选属性,用于指定 SVM 的 IPSpace。 |
|
关系的目标端点。 格式为 <vserver:volume>、<vserver:>、<vserver:/cg/cg_name> |
|
SVM 的名称。不确定何时需要此项。 |
|
指定 SnapMirror 关系的目標端點。 自 21.2.0 起已棄用,請使用 destination_endpoint 和 path。 |
|
指定 SnapMirror 的目標磁碟區名稱。 自 21.2.0 起已棄用,請使用 source_endpoint 和 path。 |
|
SnapMirror 的目標 Vserver 名稱。 自 21.2.0 起已棄用,請使用 destination_endpoint 和 path 或 svm。 |
|
啟用或停用新功能。 這可用於啟用實驗性功能或停用破壞回溯相容性的新功能。 支援的鍵和值如有變更,恕不另行通知。未知的鍵將被忽略。 |
|
使用 REST 時,覆寫叢集 ONTAP 版本。 如果版本與目標叢集不符,則行為未定義。 當由於權限問題而無法讀取叢集版本時,這可作為一種變通方法。請參閱 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues。 這應採用 9.10 或 9.10.1 的形式,每個元素都是一個整數。 當 使用 ZAPI 時將被忽略。 |
|
ONTAP 實例的主機名稱或 IP 位址。 |
|
使用此端口覆寫預設端口(80 或 443) |
|
啟用和停用 https。 使用 REST 時將被忽略,因為僅支援 https。 使用 SSL 憑證驗證時將被忽略,因為它需要 SSL。 选项
|
|
指定將來源 SVM 的哪個組態複寫到目標 SVM。 此屬性僅適用於採用「async」原則類型的 SVM 資料保護。 僅 REST 支援,且需要 ONTAP 9.11.1 或更高版本。 选项
|
|
指定是否將來源 Vserver 的身分複寫到目標 Vserver。 如果此參數設定為 true,則來源 Vserver 的組態也會被複寫到目標。 如果此參數設定為 false,則僅來源 Vserver 的磁碟區和 RBAC 組態會被複寫到目標。 选项
|
|
指定是否初始化 SnapMirror 關係。 預設值為 True,可以明確設定為 False 以避免初始化 SnapMirror 關係。 选项
|
|
SSL 用戶端金鑰檔案的路徑。 |
|
指定資料傳輸的上限,單位為每秒千位元組。 預設值為無限制,可以明確設定為 0 表示無限制。 |
|
要使用的 ontap api 版本 |
|
指定使用者的密碼。 |
|
對等系統的 IP 位址和連線選項。 如果未指定這些選項中的任何一個,則使用相應的來源選項。 |
|
SSL 客户端证书文件 (.pem) 的路径。 |
|
使用 REST 時,覆寫叢集 ONTAP 版本。 如果版本與目標叢集不符,則行為未定義。 當由於權限問題而無法讀取叢集版本時,這可作為一種變通方法。請參閱 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues。 這應採用 9.10 或 9.10.1 的形式,每個元素都是一個整數。 當 使用 ZAPI 時將被忽略。 |
|
ONTAP 實例的主機名稱或 IP 位址。 |
|
使用此端口覆寫預設端口(80 或 443) |
|
啟用和停用 https。 选项
|
|
SSL 用戶端金鑰檔案的路徑。 |
|
要使用的 ontap api 版本 |
|
指定使用者的密碼。 |
|
如果模組所需的所有資源和屬性均為目標系統支援,則使用 REST API。否則,將還原為 ZAPI。 always – 將始終使用 REST API never – 將始終使用 ZAPI auto – 將嘗試使用 REST API |
|
使用基本驗證時的使用者名稱。 |
|
如果設定為 這僅應設定為 选项
|
|
指定套用於此關係的 SnapMirror 原則名稱。 |
|
如果 relationship-info-only 設定為 true,則僅移除關係資訊。 选项
|
|
指定是否中斷 SnapMirror 關係或建立 SnapMirror 關係。 必須存在狀態才能使用此選項。 选项
|
|
指定 SnapMirror 關係的類型。 對於「restore」,除非指定「source_snapshot」,否則會還原來源磁碟區上最新的快照副本。 還原 SnapMirror 不是等冪的。 使用 REST 時,僅支援「extended_data_protection」和「restore」。 选项
|
|
指定用於更新 SnapMirror 關係的目前排程名稱。 對於建立,此選項為選用,可修改。 使用 REST 時,此選項需要 ONTAP 9.11.1 或更高版本。 |
|
需要 ONTAP 9.7 或更高版本。 需要建立來源和目標 SVM 之間的對等關係。 自 21.2.0 起已棄用,請使用 source_endpoint 和 cluster。 |
|
SnapMirror 關係的來源端點。 |
|
需要 ONTAP 9.7 或更高版本。 需要建立來源和目標 SVM 之間的對等關係。 |
|
需要 ONTAP 9.8 或更高版本。 一致性组端点的强制属性。指定一致性组的 FlexVol 卷列表。 |
|
需要 ONTAP 9.8 或更高版本。 可选属性,用于指定 SVM 的 IPSpace。 |
|
關係的來源端點。 如果來源為 ONTAP 磁碟區(FlexVol 或 FlexGroup),則格式應為 <vserver:volume> 對於 SVM DR,格式應為 <vserver:> 對於一致性群組,格式應為 <vserver:/cg/cg_name> 如果來源為 ElementSW 磁碟區,則格式應為 <Element_SVIP:/lun/Element_VOLUME_ID> 如果來源為 ElementSW 磁碟區,則應啟用磁碟區的 SnapMirror。 |
|
SVM 的名称。不确定何时需要此项。 |
|
已棄用 - 請使用 ONTAP 或 ElementSW 叢集的來源主機名稱或管理 IP 位址。 如果存在,則當狀態為 absent 時,會在來源釋放關係,然後在目標刪除。 建議在刪除之前始終釋放,因此如果知道來源主機名稱,請確保存在此參數。 |
|
已棄用 - 請使用 ONTAP 或 ElementSW 叢集的來源密碼。 如果與目標密碼相同,則為選用。 |
|
指定 SnapMirror 關係的來源端點。 如果來源是 ONTAP 磁碟區,則格式應為 <[vserver:][volume]> 或 <[[cluster:]//vserver/]volume> 如果來源為 ElementSW 磁碟區,則格式應為 <[Element_SVIP]:/lun/[Element_VOLUME_ID]> 如果來源為 ElementSW 磁碟區,則應啟用磁碟區的 SnapMirror。 自 21.2.0 起已棄用,請使用 source_endpoint 和 path。 |
|
指定要還原的來源快照。 |
|
已棄用 - 請使用 ONTAP 或 ElementSW 叢集的來源使用者名稱。 如果與目標使用者名稱相同,則為選用。 |
|
指定 SnapMirror 的來源磁碟區名稱。 自 21.2.0 起已棄用,請使用 source_endpoint 和 path。 |
|
SnapMirror 的來源 Vserver 名稱。 自 21.2.0 起已棄用,請使用 source_endpoint 和 path 或 svm。 |
|
指定的關係是否應存在。 选项
|
|
傳輸進行中時(例如,在初始化之後)等待的時間。單位為秒。 預設值: |
|
指定僅當關係已存在且處於活動狀態時,才更新 SnapMirror 關係的目標端點。 預設值為 True。 选项
|
|
是否使用 REST 或 ZAPI。 always – 如果模組支援 REST,則將始終使用 REST API。如果模組不支援 REST,則會發出警告。如果 REST 中不支援模組選項,則會發出錯誤。 never – 如果模組支援 ZAPI,則將始終使用 ZAPI。如果 ZAPI 中不支援 REST 選項,則可能會發出錯誤。 auto – 如果模組支援 REST 且支援模組選項,則將嘗試使用 REST API。否則,還原為 ZAPI。 預設值: |
|
這可以是叢集範圍或 SVM 範圍的帳戶,具體取決於是否需要叢集層級或 SVM 層級的 API。 如需更多資訊,請閱讀文件 https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/。 支援兩種驗證方法
若要使用憑證,則必須在 ONTAP 叢集中安裝該憑證,並且必須啟用憑證驗證。 |
|
如果設定為 這僅應設定為 选项
|
|
根據目標找到關係,因為它是唯一的。 預設情況下,會驗證來源資訊,如果存在不符,則會報告錯誤。這表示目標已由其他關係使用。 此檢查會將可能與遠端 Vserver 名稱不同的本機 Vserver 名稱考慮在內。 如果此檢查過於嚴格,則可能會停用此檢查,例如,無條件刪除關係。 选项
|
註解
注意
支援 REST 和 ZAPI。
支援 check_mode。
還原不是等冪的。
SnapMirror 在目標上執行大多數作業,peer_options 識別來源叢集。
ONTAP 支援使用者名稱/密碼或 SSL 憑證進行驗證。
ElementSW 僅支援使用者名稱/密碼進行驗證。
以 na_ontap 为前缀的模块旨在支持 ONTAP 存储平台。
默认启用并推荐使用 https。要在集群上启用 http,您必须运行以下命令:‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’
示例
# creates and initializes the snapmirror
- name: Create ONTAP/ONTAP SnapMirror
netapp.ontap.na_ontap_snapmirror:
state: present
source_volume: test_src
destination_volume: test_dest
source_vserver: ansible_src
destination_vserver: ansible_dest
schedule: hourly
policy: MirrorAllSnapshots
max_transfer_rate: 1000
initialize: False
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
# creates and initializes the snapmirror between vservers
- name: Create ONTAP/ONTAP vserver SnapMirror
netapp.ontap.na_ontap_snapmirror:
state: present
source_vserver: ansible_src
destination_vserver: ansible_dest
identity_preserve: true
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
# existing snapmirror relation with status 'snapmirrored' will be initialized
- name: Inititalize ONTAP/ONTAP SnapMirror
netapp.ontap.na_ontap_snapmirror:
state: present
source_path: 'ansible:test'
destination_path: 'ansible:dest'
relationship_state: active
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
- name: Delete SnapMirror
netapp.ontap.na_ontap_snapmirror:
state: absent
destination_path: <path>
relationship_info_only: True
source_hostname: "{{ source_hostname }}"
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
- name: Break SnapMirror
netapp.ontap.na_ontap_snapmirror:
state: present
relationship_state: broken
destination_path: <path>
source_hostname: "{{ source_hostname }}"
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
- name: Restore SnapMirror volume using location (Idempotency)
netapp.ontap.na_ontap_snapmirror:
state: present
source_path: <path>
destination_path: <path>
relationship_type: restore
source_snapshot: "{{ snapshot }}"
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
- name: Set schedule to NULL
netapp.ontap.na_ontap_snapmirror:
state: present
destination_path: <path>
schedule: ""
hostname: "{{ destination_cluster_hostname }}"
username: "{{ destination_cluster_username }}"
password: "{{ destination_cluster_password }}"
- name: Create SnapMirror from ElementSW to ONTAP
netapp.ontap.na_ontap_snapmirror:
state: present
connection_type: elementsw_ontap
source_path: '10.10.10.10:/lun/300'
destination_path: 'ansible_test:ansible_dest_vol'
schedule: hourly
policy: MirrorLatest
hostname: "{{ netapp_hostname }}"
username: "{{ netapp_username }}"
password: "{{ netapp_password }}"
source_hostname: " {{ Element_cluster_mvip }}"
source_username: "{{ Element_cluster_username }}"
source_password: "{{ Element_cluster_password }}"
- name: Create SnapMirror from ONTAP to ElementSW
netapp.ontap.na_ontap_snapmirror:
state: present
connection_type: ontap_elementsw
destination_path: '10.10.10.10:/lun/300'
source_path: 'ansible_test:ansible_dest_vol'
policy: MirrorLatest
hostname: "{{ Element_cluster_mvip }}"
username: "{{ Element_cluster_username }}"
password: "{{ Element_cluster_password }}"
source_hostname: " {{ netapp_hostname }}"
source_username: "{{ netapp_username }}"
source_password: "{{ netapp_password }}"
- name: Create SnapMirror relationship (create destination volume)
tags: create
netapp.ontap.na_ontap_snapmirror:
state: present
source_endpoint:
cluster: "{{ _source_cluster }}"
path: "{{ source_vserver + ':' + source_volume }}"
destination_endpoint:
cluster: "{{ _destination_cluster }}"
path: "{{ destination_vserver_VOLDP + ':' + destination_volume }}"
create_destination:
enabled: true
hostname: "{{ destination_hostname }}"
username: "{{ username }}"
password: "{{ password }}"
https: true
validate_certs: false
- name: Create SnapMirror relationship - SVM DR (creating and peering destination svm)
tags: create_svmdr
netapp.ontap.na_ontap_snapmirror:
state: present
source_endpoint:
cluster: "{{ _source_cluster }}"
path: "{{ source_vserver + ':' }}"
destination_endpoint:
cluster: "{{ _destination_cluster }}"
path: "{{ destination_vserver_SVMDR + ':' }}"
create_destination:
enabled: true
hostname: "{{ destination_hostname }}"
username: "{{ username }}"
password: "{{ password }}"
https: true
validate_certs: false