容器可以被更新或重新建立。需要在這些操作後保留的業務資料,應寫入持久化資料卷,而不是只寫在容器自身的檔案系統中。
建立前準備
資料卷由管理員在伺服器的資料卷頁面建立。應用程式操作者需要知道目標伺服器、卷名稱和映像檔要求的資料目錄。
本地資料屬於所選伺服器。當前應用程式必須在建立時選擇這一部署方式:固定到該伺服器、執行一個副本,不能同時使用 XConfig、動態調度或 Guardian。普通應用程式建立後不能直接通過添加掛載切換為本地資料模式。
掛載資料卷
- 建立應用程式,在檔案與存儲中選擇資料方式。
- 選擇持有目標卷的伺服器。
- 添加資料卷並填寫容器內的絕對目錄,例如
/var/lib/mysql。 - 根據需要選擇唯讀;資料庫寫入目錄通常需要可寫。
- 儲存並建立應用程式,檢查初始化日誌。
卷名稱表示宿主機上的存儲對象,目標路徑表示容器內的位置。名稱相同但位於不同伺服器上的卷,不應被視為同一份資料。
確認資料寫到了正確位置
使用映像檔文件中的資料目錄,不要憑名稱猜測。某些映像檔允許環境變數改變資料目錄,此時掛載目標也必須與最終設定一致。
先寫入一條可識別的測試資料,在允許中斷的測試場景下重新建立執行容器,再驗證資料仍可讀取。生產資料庫的此類檢查應遵循業務維護流程。
| 操作 | 對資料的含義 |
|---|---|
| 重啟或更新容器 | 掛載正確時繼續使用原卷,應用程式自身仍可能修改資料 |
| 刪除應用程式 | 保留本地卷,停止應用程式對它的使用 |
| 刪除資料卷 | 刪除對應持久化資料,應先確認備份及使用情況 |
| 伺服器失效 | 本地資料不會因為存在其他伺服器就自動複製過去 |
常見問題
卷清單為空時,先確認所選伺服器和資料卷服務狀態。權限錯誤時檢查映像檔使用的使用者及卷內檔案權限。應用程式啟動後看不到舊資料時,核對伺服器、卷和容器目錄三個條件。
更新資料庫映像檔前確認資料格式兼容。應用程式設定回復不能撤銷資料庫已完成的遷移或業務寫入。備份、恢復及資料一致性應採用資料庫自身支援的方法。
需要資料庫部署示例及限制說明,繼續有狀態應用程式。