fbpx

NVIDIA Omniverse Nucleus Server Backup

需要備份 Omniverse Nucleus Server 可以透過 Nucleus Tools, 檔案 Rsync 與實做 omni.client.copy API 三種方法來實現,最後可以將備份的檔案透過 Git LFS 進行管理與版本控制。其實 Omniverse Nucleus 本身對於版本控制是使用 Checkpoint 機制,但是我們這裡是針對低階的備份做討論,主要是確保災難復原與高可用的實現方案。

Nucleus Tools 進行備份 Nucleus Server

這個 Nucleus Tools Package 只有提供在 Enterprise Nucleus Server 屬於付費的版本,如果是使用 Nucleus Workstation 那就很抱歉了,窮人請往下走。如果有安裝 Nucleus Tools 可以透過 docker 參考以下命令 dump_backup, dump_data 備份與還原 Nucleus,我是窮人組所以也沒有試過... NVIDIA 在官方文件也有一個章節專門說明 Nucleus Server 進行 Backups and Data Restoration 的方式。

export NUC_TOOLS=[PATH_TO_CONTAINER]

sudo docker run --rm -p 8888:80 -e "ACCEPT_EULA=Y" $NUC_TOOLS docs

相關 Nucleus Tools 可以參考下文件:

https://docs.omniverse.nvidia.com/nucleus/latest/enterprise/nucleus_tools.html

透過 Linux rsync 直接對檔案進行備份

進行備份的時候建議選擇在沒有人使用的時候進行 Backup,並且備份時時候要停止 Container 的執行會更好。

如果 Nucleus 直接安裝在 VMWare ESXi 或者公有雲,直接透過底層 IaaS 對整個磁碟進行備份也可以,建立 Sanpshot 速度也比較快。

開發 Omniverse Kit 與 omni.client.copy API

這個方法比較麻煩,就是自己寫 Python 實做 Backup 機制,Omniverse Core Library 有一個 omni.client.copy 的 API 可以使用,可以連線到 Nucleus Server 以後複製檔案會出到自己的檔案系統,其實這個動作就是與我們在 Nucleus Download 資料是一樣的意思。API 可以參考以下官方文件:

https://docs.omniverse.nvidia.com/kit/docs/client_library/latest/docs/python.html

Git Large File Storage (LFS) 管理大型檔案

Git Large File Storage 簡稱 Git LFS 是專門用來擴充 Git 滿足管理大型檔案的一種方式,由於一些二進位檔案不適合以 Diff 的方式透過 Git 進行管理,因此我們安裝 Git FLS 以後便可以將檔案放在專用的除存位置,然而在 Git File 留下檔案的 Hash 與存放的位置,這樣一來就可以僅管理檔案變更狀態而不需除存版本之間的 Diff 資訊。

GitLab 啟用 Git LFS 機制可以參考以下文件說明:

https://docs.gitlab.com/ee/administration/lfs/index.html