附註:

使用同步處理在 Oracle Cloud Infrastructure 中執行跨區域雙向同步

簡介

跨區域物件儲存同步對於各種雲端工作負載至關重要,包括資料備份、災害復原及多區域存取。雖然 Oracle Cloud Infrastructure (OCI) 提供 OCI Object Storage 的複製功能,但它不提供原生雙向同步解決方案。此限制表示使用者必須仰賴自訂實行,才能跨區域同步檔案。

開放原始碼、分散式檔案同步化工具的 Syncthing 能提供即時操作的連續雙向同步功能。與 OCI Functions 不同 (依賴事件導向模型進行物件複製),Syncthing 能夠在虛擬機器 (VM) 之間有效率地同步整個檔案結構,同時支援本機和 OCI 物件儲存掛載目錄。

在本教學課程中,我們將使用 OCI 資源管理程式堆疊,在兩個區域的 OCI Compute 執行處理上部署 Syncthing,以便在本機 VM 儲存和 OCI 物件儲存掛載目錄之間進行自動雙向同步。

注意事項

使用 s3fs 掛載與 OCI Object Storage 的同步處理時:

Syncthing 有什麼好主意?

目標

必要條件

作業 1:準備進行 VM 部署的必要資訊

  1. 下載 OCI 資源管理程式堆疊。此堆疊可自動部署在 VM.Standard.E5 上執行 Oracle Linux 8 的 VM。彈性資源配置。它會使用 CloudInit 安裝 Syncthing、掛載現有的 OCI 貯體,以及使用 s3fs 設定存取權。VM 佈建了 SSH 存取、公用 IP,並標記為方便識別。如需詳細資訊,請參閱 OCI 資源管理程式堆疊

  2. 在兩個目標區域中建立一個含有公用子網路的 VCN。

    堆疊將會部署在這兩個位置,以佈建搭配 Syncthing 的 VM,進行雙向跨區域儲存同步化。部署之後,即可使用 VM 的公用 IP 在瀏覽器中存取 Syncthing。

  3. 確定將執行測試的每個區域中都有 OCI Object Storage 貯體。儲存桶的可見性可以是專用

  4. 建立 s3fs 掛載的客戶秘密金鑰。客戶秘密金鑰將用於存取 OCI 物件儲存。

    1. 登入 OCI 主控台,瀏覽至設定檔,按一下您的使用者名稱和客戶密鑰

      設定檔 - 客戶秘密金鑰

    2. 按一下產生秘密金鑰,然後輸入名稱,例如 s3fs-access

    3. 請務必複製產生的金鑰,因為我們稍後將在「任務 2」中使用該金鑰。

      客戶加密密碼存取金鑰

    4. 按一下存取鍵並複製值,因為稍後我們將在「任務 2」中使用該值。

      客戶加密密碼存取金鑰

    5. 儲存桶詳細資訊頁面中複製命名空間,稍後將在作業 2 中使用。

      物件儲存的儲存桶命名空間

作業 2:套用堆疊

  1. 登入 OCI 主控台,瀏覽至開發人員服務資源管理程式,然後按一下堆疊

    OCI 資源管理器堆疊

  2. 建立 Terraform OCI 資源管理程式堆疊。如需詳細資訊,請參閱 Creating a Stack from a Zip File

    1. 按一下建立堆疊

    2. 選取 .zip 檔案並新增堆疊。

    3. 輸入標記索引鍵

    4. 下一步

  3. 設定變數頁面中,輸入下列資訊。

    • 區間: 輸入區間。
    • VCN 和子網路: 選取現有的 VCN 和公用子網路。
    • 視需要修改 vm 顯示名稱
    • 公用 SSH 金鑰:輸入 VM 的公用 SSH 金鑰。
    • 可用性網域: 選取可用性網域。
    • 客戶秘密金鑰 OCID 和客戶秘密存取金鑰:輸入在任務 1 中建立的客戶秘密金鑰 OCID 和客戶秘密存取金鑰。
    • 分組名稱:輸入分組名稱。
    • 物件儲存命名空間:選取物件儲存命名空間。
  4. 按一下下一步,然後複查資訊。如果一切都正常,請選取執行套用,然後按一下建立

    OCI ORM 套用堆疊

    套用工作順利完成後,應傳回新建立 VM 的公用和專用 IP。

    ORM 堆疊輸出

  5. 重複次要區域中的步驟,在該處建立第二個 VM。

  6. 使用下列命令透過 SSH 連線,確認 OCI 物件儲存的儲存桶掛載至 VM 層次的 /home/opc/logging

    mount | grep s3fs
    

    如果順利掛載儲存桶,您應該會看到類似以下的輸出:

    掛載儲存桶資訊

    這會確認 s3fs 已將儲存桶掛載至任何 VM 上的 /home/opc/logging

作業 3:設定同步處理

將這兩個 VM 部署到兩個區域後,請依照下列步驟在每個 VM 上配置 Syncthing,以同步化它們之間的儲存體。

  1. 複製第一個區域中 VM 的公用 IP,並在瀏覽器中使用此 IP 存取 Syncthing 介面。輸入下列 URL。

    http://<vm1-public-ip>:8384
    
  2. 存取介面之後,您會看到與以下影像類似的 Syncthing 介面。資料夾遠端裝置是您在下一個步驟中設定進行同步的區域。

    同步化畫面

    注意:您可以在 GUI 區段的設定值中設定 usernamepassword ,以移除警告。

  3. 資料夾段落中,按一下新增資料夾,即可在 Syncthing 管理介面中建立或包含本機 VM 資料夾。

    同步新增資料夾

  4. 輸入下列資訊以設定本機資料夾,然後按一下儲存

    • 資料夾標籤:用來識別資料夾的使用者易記名稱。例如,local_VM1
    • 資料夾路徑:本機資料夾的目錄路徑。例如,~/local_VM1

    同步化本機資料夾

    您可以存入 VM 終端機,讓新資料夾 local_VM1 建立。

  5. 從次要區域重複 VM 中的步驟 1 到 4,然後在 VM2 Syncthing 介面中新增 local_VM2 資料夾。

  6. 從 VM1 開始,設定兩個 VM 之間的跨區域 Syncthing 連線。

    1. 在第一個 Syncthing VM 的遠端裝置段落中,按一下新增遠端裝置,以納入第二個區域的遠端資料夾。

      新增遠端裝置

    2. 一般中,輸入下列資訊。

      • 裝置 ID:這是第二個 Syncthing 裝置的 ID。在 VM2 上,開啟 Syncthing 介面,瀏覽至動作顯示 ID ,複製顯示的值,然後將其貼到此欄位中。

        遠端裝置 - 顯示 ID

      • 裝置名稱:輸入相關名稱,例如 remote_VM2

        遠端裝置 - 一般分頁

    3. 共用中,選取要與遠端裝置共用的 local_VM1

      遠端裝置 - 共用頁籤

    4. 進階位址中輸入 tcp://<vm2-public-ip>:2200022000 是用於 Syncthing 資料的 TCP 連接埠。

    5. 按一下儲存

  7. 此時,在 VM1 Syncthing 上,本機資料夾 local_VM1 應顯示為綠色最新版,而遠端裝置 remote_VM2 則會顯示為已斷線

    若要完成連線,請使用從 VM1 Syncthing 收集的對等資料,在 VM2 Syncthing 上執行相同的步驟,輸入裝置 IDtcp://<vm1-public-ip>:22000 作為位址,輸入裝置名稱,例如 remote_VM1

    注意:請確定已在 VCN 的安全清單中開啟連接埠 22000

  8. 當同等配置完成後,應在每個 Syncthing 介面中提示您接受新增遠端資料夾。按一下新增

    接受遠端資料夾

  9. 系統會提示您將特定詳細資訊儲存在本機,例如,在 VM1 上,系統會提示您儲存內送 local_VM2 ,您可以將 VM1 上的名稱變更為 remote_VM2 ,以取得更清晰的顯示。您也可以將它對應至本機 VM1 路徑。可以是任何路徑;如果新資料夾不存在,就會加以建立。您也可以選取 ~/local_VM1,表示兩個 VM 的兩個資料夾內容將會合併至相同位置。在範例中,輸入路徑 ~/remote_VM2

  10. 在 VM2 上執行與內送 local_VM1 資料夾相關的相同步驟,並將其對應為 remote_VM1

  11. 現在,這兩個 VM 應同步及由 Syncthing 管理的資料夾;在 VM1、local_VM1remote_VM2 上,在 VM2 上,local_VM2remote_VM1

    已同步化資料夾

作業 4:測試本機儲存的同步化

如果要測試 Syncthing 同步化,請使用 SSH 登入每個 VM。在 opc 本位目錄中,您會找到兩個資料夾。

為了驗證同步化,我們將新增或修改一個 VM 上本機資料夾的檔案,並檢查變更是否出現在遠端 VM 的對應資料夾中。此外,我們會監控 Syncthing 介面或日誌,以確認兩個 OCI 區域之間的同步化成功 。

  1. SSH 至 VM1。

    ssh opc@<vm1-public-ip>
    
  2. 執行下列指令以瀏覽至本機 Syncthing 共用 local_VM1 資料夾。

    cd ~/local_VM1
    
  3. 執行下列命令以建立測試檔案。

    echo "testing sync" > testVM1.txt
    
  4. 開啟新的終端機,然後透過 SSH 登入 VM2。

    ssh opc@<vm2-public-ip>
    
  5. 執行下列命令以瀏覽至 VM2 上的共用資料夾。

    cd ~/remote_VM1
    
  6. 執行下列指令以檢查檔案是否顯示。

    ls -l
    cat testVM1.txt
    
  7. VM2 上執行相同的步驟,並檢查 remote_VM2 資料夾中是否有檔案顯示於 VM1

  8. 驗證 Syncthing 介面中的同步化狀態。在瀏覽器中開啟 http://<vm1-public-ip>:8384http://<vm2-public-ip>:8384,以檢查日誌和同步狀態。

    同步的檔案

作業 5:測試 OCI 物件儲存的儲存桶內容同步

儲存桶會掛載在 /home/opc/logging 目錄中部署的 VM 上。若要測試和同步掛載儲存桶中的檔案,您必須重做先前的步驟,才能將 logging VM 目錄新增為本機資料夾,然後從遠端裝置共用檔案。您會看到類似以下的內容:

接著,在 logging 目錄中建立一個檔案,讓檔案顯示在 OCI 儲存桶中,並同步至 VM2 logging 目錄 (如果正確設定),因此也會在跨區域的第二個儲存桶中。

儲存桶同步

作業 6:執行一些其他測試

有兩個點可以輕易地使用與先前設定相同的資料夾和共用裝置進行進一步測試。

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center