抄寫失效接手

故障轉移會切換複製角色。 複本將成為讀寫來源,而原始來源則轉為唯讀狀態,藉此在系統中斷期間維持資料的可用性。

抄寫失效接手概念

當您建立抄本檔案共用時,抄本會根據抄寫排程從來源檔案共用取回資料。 抄本檔案共用上的資料設為唯讀。 失效接手會切換抄寫關係。 唯讀抄本檔案共用會變成讀寫原始檔共用,而原始共用會變成唯讀。 您現在可以裝載作用中檔案共用,並將它當作一般檔案共用來管理。

當您起始失效接手時,可以選擇失效接手作業失敗或逾時的情況。 預設的超時時間為 5 分鐘。

  • 如果您決定保留抄寫關係,系統會「回復」至來源共用。 即使操作失敗,系統仍會嘗試在下一個排定時間再次複製資料。 當排定主要站台進行 例行維護 時,可以使用此選項。 當維護完成且網站再次穩定時,您可以回到原始共用。 可以回復抄寫。

  • 如果您決定移除抄寫關係,系統會將兩個檔案共用分割成獨立的讀寫檔案共用。 在 災難回復 狀況中,如果更重要的是儘快啟動應用程式,則可以使用此選項進行失效接手。 因此,您可以在抄本網站上繼續正常作業,而原始網站的未來不確定。

在來源或抄本檔案共用上執行另一個作業 (例如,正在展開檔案共用大小) 時,無法進行失效接手作業或抄本分割。 分割或故障移轉作業會繼續暫停,直到其他作業完成為止。

當作業正在進行時,或當服務正在等待另一個作業完成時,失效接手狀態 會顯示 failover_pending

例行維護的失效接手

在主要站台上或當站台發生問題時,使用失效接手進行例行維護。 該流程的運作方式如下。

  • 區域 A 中的原始檔共用拒絕所有讀取及寫入作業。 然後,系統會嘗試將共用資料的最終副本取回至區域 B 中的抄本共用。
  • 資料會複製到抄本檔案共用,這會變成讀寫,並被視為新的來源網站。 (複製關係被反轉了。)
  • 服務會依照排程,嘗試將資料從區域 B 中的作用中來源抄寫至區域 A 中的原始共用。 如果資料傳送失敗,系統會在下一個排定的抄寫時間再次嘗試。
  • 當維護完成且網站再次穩定時,您可以回復為原始共用。 或者,您可以保留抄本共用作為來源共用。

災難回復狀況中的失效接手

失效接手也是災難回復的選項。 如果原始網站已確定不可用,而您需要儘快在複製位置上啟動應用程式,請選擇移除複製關係。 當您啟動故障移轉時,移除複製關係是備援策略的一個選項。 災難回復失效接手的運作方式如下:

  • 來源站台的檔案共用拒絕所有讀取及寫入作業,且系統會嘗試將共用資料的最終副本取回至抄本檔案共用。
  • 當資料取出逾時且失敗時,檔案服務會中斷抄寫關係。 抄本檔案共用會變成讀寫,並以獨立檔案共用方式運作。 它可以作為一般檔案共用來裝載及管理。
  • 無法重新建立抄寫關係。 不過,如果網站重新開始運作,您可以在原始網站上設定新的抄本。

由於災難復原切換的特性,您可能會發現最新資料集未能成功複製。 在該情況下,當原始檔共用再次可用時,您可能需要手動核對應用程式的狀態。 如果來源檔案共用區域再次變成可用,則可從抄本共用取得資料,以從發生事件的時間到回復點進行一致化。

限制

當您執行失效接手時,這些限制適用。

  • 成功失效接手的預設逾時是 5 分鐘。 當您 起始失效接手 選項時,可以修改此值。

  • 在原始檔共用上執行其他作業 (例如擴充共用大小) 時,失效接手仍處於擱置狀態。 當作業完成時,失效接手會回復。

在主控台中啟動故障移轉

  1. 導覽至所有檔案共用的清單。 在 IBM Cloud 主控台中,按一下「導航功能表 圖示 > Infrastructure VPC 圖示 > 儲存 > 檔案儲存共用

  2. 按一下抄本檔案共用的名稱,以開啟其詳細資料頁面。

  3. 動作 功能表 「動作」圖示 中,選取 執行失效接手。 在故障轉移前,系統會執行最終檔案同步作業,以確保故障轉移共用資料夾具備最新內容。 當失效接手完成時,抄本檔案共用會變成新的來源檔案共用。 先前的來源共用會變成新的唯讀抄本共用。

  4. 若要設定逾時值,請勾選 逾時 (選用) 下的方框,並指定時間值。 此值指定完成失效接手的絕對時間限制。 根據您可以讓檔案共用離線的時間長度來設定逾時。

  5. 失效接手原則下,如果失效接手作業不成功或逾時,請選擇保留抄寫關係或變更它:

    • 保留抄寫關係-不變更抄本檔案共用或來源檔案共用。
    • 移除抄寫關係-此動作會建立兩個個別的讀寫檔案共用。 因為關係已中斷,所以對一個檔案共用的變更不會影響另一個檔案共用。

    在你打破了關係之後,它就無法重新建立。

  6. 按一下 執行失效接手。 即會顯示訊息,指出已要求失效接手且正在執行中。

即會更新檔案共用詳細資料頁面,且抄寫關係會將抄本檔案共用顯示為新的來源檔案共用。

從 CLI 起始失效接手

在使用 CLI 之前,您必須先安裝「IBM Cloud」CLI 以及 VPC CLI 外掛程式。 如需相關資訊,請參閱 CLI 必要條件

  1. 使用 ibmcloud is shares 指令列出區域中的所有檔案共用,以找出您要失效接手至的抄本檔案共用。

    ibmcloud is shares
    
    Listing 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
    
    
  2. 執行 ibmcloud is share-replica-failover 指令並指定 fallback-policy 內容。 您可以針對此內容指定 failsplit

    • 下列範例針對 fallback-policy 內容指定 fail。 如果失效接手作業失敗或達到逾時,則失效接手作業不成功。 來源共用會保持作用中,且抄寫會依排程回復。
    ibmcloud is share-replica-failover r006-a60bfa90-a893-40ad-be34-28ab51a963f9 --fallback-policy fail
    
    The 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 split
    
    The 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 要求,並指定 timeoutfallback_policy 內容。 逾時下限為 300 秒,上限為 3600 秒。 此要求會起始將來源檔案共用失效接手至抄本共用 (由抄本檔案共用 ID 指定)。

fallback_policy 內容可以具有值: splitfail。 當指定 fail 時,如果失效接手作業失敗或達到逾時,則失效接手作業不成功。 抄寫關係保持不變。

如果您針對 fallback_policy 內容指定 split,則每當失效接手作業失敗時,就會從來源共用分割抄本共用。 結果是兩個獨立的讀寫檔案共用。 在此情況下,因為最終檔案同步化未完成,所以抄本共用可能未包含來源檔案共用的所有資料。 當已知無法呼叫到原始檔共用時,請使用此選項進行災難回復。

如果要求中未指定 fallback_policy 內容,當失效接手作業失敗時,系統會預設為 split

這個範例指定 fallback_policy 內容的 failtimeout 內容是選用的。 您可以使用預設的超時設定。

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 定義了當故障轉移請求被接受,但無法執行或超時時應採取的動作。 接受值為 splitfail。 如果您指定 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

下一步

管理抄寫