抄寫失效接手
故障轉移會切換複製角色。 複本將成為讀寫來源,而原始來源則轉為唯讀狀態,藉此在系統中斷期間維持資料的可用性。
抄寫失效接手概念
當您建立抄本檔案共用時,抄本會根據抄寫排程從來源檔案共用取回資料。 抄本檔案共用上的資料設為唯讀。 失效接手會切換抄寫關係。 唯讀抄本檔案共用會變成讀寫原始檔共用,而原始共用會變成唯讀。 您現在可以裝載作用中檔案共用,並將它當作一般檔案共用來管理。
當您起始失效接手時,可以選擇失效接手作業失敗或逾時的情況。 預設的超時時間為 5 分鐘。
-
如果您決定保留抄寫關係,系統會「回復」至來源共用。 即使操作失敗,系統仍會嘗試在下一個排定時間再次複製資料。 當排定主要站台進行 例行維護 時,可以使用此選項。 當維護完成且網站再次穩定時,您可以回到原始共用。 可以回復抄寫。
-
如果您決定移除抄寫關係,系統會將兩個檔案共用分割成獨立的讀寫檔案共用。 在 災難回復 狀況中,如果更重要的是儘快啟動應用程式,則可以使用此選項進行失效接手。 因此,您可以在抄本網站上繼續正常作業,而原始網站的未來不確定。
在來源或抄本檔案共用上執行另一個作業 (例如,正在展開檔案共用大小) 時,無法進行失效接手作業或抄本分割。 分割或故障移轉作業會繼續暫停,直到其他作業完成為止。
當作業正在進行時,或當服務正在等待另一個作業完成時,失效接手狀態 會顯示 failover_pending。
例行維護的失效接手
在主要站台上或當站台發生問題時,使用失效接手進行例行維護。 該流程的運作方式如下。
- 區域 A 中的原始檔共用拒絕所有讀取及寫入作業。 然後,系統會嘗試將共用資料的最終副本取回至區域 B 中的抄本共用。
- 資料會複製到抄本檔案共用,這會變成讀寫,並被視為新的來源網站。 (複製關係被反轉了。)
- 服務會依照排程,嘗試將資料從區域 B 中的作用中來源抄寫至區域 A 中的原始共用。 如果資料傳送失敗,系統會在下一個排定的抄寫時間再次嘗試。
- 當維護完成且網站再次穩定時,您可以回復為原始共用。 或者,您可以保留抄本共用作為來源共用。
災難回復狀況中的失效接手
失效接手也是災難回復的選項。 如果原始網站已確定不可用,而您需要儘快在複製位置上啟動應用程式,請選擇移除複製關係。 當您啟動故障移轉時,移除複製關係是備援策略的一個選項。 災難回復失效接手的運作方式如下:
- 來源站台的檔案共用拒絕所有讀取及寫入作業,且系統會嘗試將共用資料的最終副本取回至抄本檔案共用。
- 當資料取出逾時且失敗時,檔案服務會中斷抄寫關係。 抄本檔案共用會變成讀寫,並以獨立檔案共用方式運作。 它可以作為一般檔案共用來裝載及管理。
- 無法重新建立抄寫關係。 不過,如果網站重新開始運作,您可以在原始網站上設定新的抄本。
由於災難復原切換的特性,您可能會發現最新資料集未能成功複製。 在該情況下,當原始檔共用再次可用時,您可能需要手動核對應用程式的狀態。 如果來源檔案共用區域再次變成可用,則可從抄本共用取得資料,以從發生事件的時間到回復點進行一致化。
限制
當您執行失效接手時,這些限制適用。
-
成功失效接手的預設逾時是 5 分鐘。 當您 起始失效接手 選項時,可以修改此值。
-
在原始檔共用上執行其他作業 (例如擴充共用大小) 時,失效接手仍處於擱置狀態。 當作業完成時,失效接手會回復。
在主控台中啟動故障移轉
-
導覽至所有檔案共用的清單。 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
-
按一下抄本檔案共用的名稱,以開啟其詳細資料頁面。
-
從 動作 功能表
中,選取 執行失效接手。 在故障轉移前,系統會執行最終檔案同步作業,以確保故障轉移共用資料夾具備最新內容。 當失效接手完成時,抄本檔案共用會變成新的來源檔案共用。 先前的來源共用會變成新的唯讀抄本共用。
-
若要設定逾時值,請勾選 逾時 (選用) 下的方框,並指定時間值。 此值指定完成失效接手的絕對時間限制。 根據您可以讓檔案共用離線的時間長度來設定逾時。
-
在 失效接手原則下,如果失效接手作業不成功或逾時,請選擇保留抄寫關係或變更它:
- 保留抄寫關係-不變更抄本檔案共用或來源檔案共用。
- 移除抄寫關係-此動作會建立兩個個別的讀寫檔案共用。 因為關係已中斷,所以對一個檔案共用的變更不會影響另一個檔案共用。
在你打破了關係之後,它就無法重新建立。
-
按一下 執行失效接手。 即會顯示訊息,指出已要求失效接手且正在執行中。
即會更新檔案共用詳細資料頁面,且抄寫關係會將抄本檔案共用顯示為新的來源檔案共用。
從 CLI 起始失效接手
在使用 CLI 之前,您必須先安裝「IBM Cloud」CLI 以及 VPC CLI 外掛程式。 如需相關資訊,請參閱 CLI 必要條件。
-
使用
ibmcloud is shares指令列出區域中的所有檔案共用,以找出您要失效接手至的抄本檔案共用。ibmcloud is sharesListing shares in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Lifecycle state Zone Profile Size(GB) Resource group Replication role Accessor binding role Snapshot count Snapshot size r006-a8d6af48-0c97-4c6b-bab1-fbefdc1e1e03 my-file-share stable us-south-2 dp2 10 defaults none none 0 0 r006-aaf4bfe9-358c-4faa-a4ec-0b955090b940 my-file-share-2 stable us-south-2 dp2 10 defaults none none 0 0 r006-a60bfa90-a893-40ad-be34-28ab51a963f9 replica-dal-2 stable us-south-2 dp2 10 defaults replica none 0 0 r006-3f21e3c3-e12d-425f-ab77-810cabfde8df source-dal-1 stable us-south-1 dp2 10 defaults source none 0 0 r006-455b601c-8fc1-4476-8771-4708c49c8ef7 my-replica-share-dal-1 stable us-south-1 dp2 10 defaults replica none 0 0 r006-4dadac27-cd17-42df-a5fe-1388705d33e0 my-source-share-dal-2 stable us-south-2 dp2 10 defaults source none 0 0 -
執行
ibmcloud is share-replica-failover指令並指定fallback-policy內容。 您可以針對此內容指定fail或split。- 下列範例針對
fallback-policy內容指定fail。 如果失效接手作業失敗或達到逾時,則失效接手作業不成功。 來源共用會保持作用中,且抄寫會依排程回復。
ibmcloud is share-replica-failover r006-a60bfa90-a893-40ad-be34-28ab51a963f9 --fallback-policy failThe file share r006-a60bfa90-a893-40ad-be34-28ab51a963f9 failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted.- 下列範例針對
fallback-policy內容指定split。 如果失效接手作業失敗,則會從來源檔案共用分割抄本共用。 如果失效接手失敗,則結果會是兩個獨立的讀寫檔案共用。
ibmcloud is share-replica-failover my-source-share-dal-2 --fallback-policy splitThe file share r006-4dadac27-cd17-42df-a5fe-1388705d33e0 failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted. - 下列範例針對
如需指令選項的相關資訊,請參閱 ibmcloud is share-replica-failover。
使用 API 起始失效接手
提出 POST /shares/{share_id}/failover 要求,並指定 timeout 和 fallback_policy 內容。 逾時下限為 300 秒,上限為 3600 秒。 此要求會起始將來源檔案共用失效接手至抄本共用 (由抄本檔案共用 ID 指定)。
fallback_policy 內容可以具有值: split 或 fail。 當指定 fail 時,如果失效接手作業失敗或達到逾時,則失效接手作業不成功。 抄寫關係保持不變。
如果您針對 fallback_policy 內容指定 split,則每當失效接手作業失敗時,就會從來源共用分割抄本共用。 結果是兩個獨立的讀寫檔案共用。 在此情況下,因為最終檔案同步化未完成,所以抄本共用可能未包含來源檔案共用的所有資料。 當已知無法呼叫到原始檔共用時,請使用此選項進行災難回復。
如果要求中未指定 fallback_policy 內容,當失效接手作業失敗時,系統會預設為 split。
這個範例指定 fallback_policy 內容的 fail。 timeout 內容是選用的。 您可以使用預設的超時設定。
curl -X POST \
"$vpc_api_endpoint/v1/shares/$replica_id?/failover?version=2023-08-08"\
-H "Authorization: Bearer $iam_token"\
-d '{
"fallback_policy": "fail",
"timeout": 600
}'
成功回應指出已接受檔案共用失效接手要求。
您可以使用 API 來驗證抄寫失效接手成功、擱置或失敗。 發出 GET /shares/{replica_id} 呼叫。 查看 latest_job 內容。 如需相關資訊,請參閱 使用 API 驗證抄寫。
使用 Terraform 起始失效接手
執行失效接手時,抄本共用會變成來源,而來源共用會變成抄本。 需要修改 Terraform 配置以符合此變更。 fallback_policy 定義了當故障轉移請求被接受,但無法執行或超時時應採取的動作。 接受值為 split 或 fail。 如果您指定 split 且失效接手不成功,則系統會中斷抄寫關係,且兩個檔案共用會彼此獨立。
resource "ibm_is_share_replica_operations" "test" {
share_replica = ibm_is_share.replica.id
fallback_policy = "split"
timeout = 500
}
如需引數及屬性的相關資訊,請參閱 ibm_is_share_replica_operations。
下一步
管理抄寫。