在DSW中掛載資料集或直接掛載OSS路徑,可以在雲端環境中便捷地訪問和處理資料,方便多使用者間的資料共用和協作,簡化資料管理和維護,以及確保資料的一致性和即時性。本文為您介紹DSW掛載配置。
背景資訊
系統為使用公用資源群組建立的DSW執行個體提供一定儲存空間的雲端硬碟,用於持久化儲存。如果該執行個體停機超過15天未開機,雲端硬碟的內容將被清空。而使用專有資源群組建立的DSW執行個體則提供非持久化的本機存放區。如果您需要持久化儲存DSW資料,需要建立NAS、OSS或CPFS類型的資料集,並將資料集掛載到DSW指定的路徑,以實現在DSW中讀寫資料集資料。
掛載模式
DSW的掛載項不同,支援的掛載模式不同,詳情請參見下表。
掛載項 | 支援的掛載模式 | |
非OSS類型資料集 | 無掛載模式。 | |
OSS類型資料集 | 支援預設配置和自訂配置。
| |
本文提供部分情境的Jindo配置建議,並未覆蓋所有情境下的最優效能。更靈活的配置,請參見JindoFuse使用指南。
快速讀寫:允許使用者讀寫,讀取速度快,但並發讀寫可能會出現資料不一致的問題,適合掛載訓練資料和模型,不適合作為工作目錄。
{ "fs.oss.download.thread.concurrency": "cpu核心數2倍", "fs.oss.upload.thread.concurrency": "cpu核心數2倍", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
增量讀寫:在增量寫入時能夠保證資料一致性,覆蓋原有資料會有一致性問題。讀取速度略慢,適合儲存訓練的模型權重檔案。
{ "fs.oss.upload.thread.concurrency": "cpu核心數2倍", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
讀寫一致:在並發讀寫中能保持資料一致性,適用於對資料一致性要求高,可以容忍讀取速度慢的情境,適合儲存代碼專案。
{ "fs.jindo.args": "-oattr_timeout=0 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
唯讀:僅允許讀取,不允許寫入,適合掛載公用資料集。
{ "fs.oss.download.thread.concurrency": "cpu核心數2倍", "fs.jindo.args": "-oro -oattr_timeout=7200 -oentry_timeout=7200 -onegative_timeout=7200 -okernel_cache -ono_symlink" }
使用限制
多個資料集掛載的路徑不能重複。
在OSS掛載的目錄下,不建議進行頻繁的寫操作。
掛載自訂資料集
步驟一:建立資料集
在AI資產管理>資料集頁面建立自訂資料集。由於DSW只能掛載目錄,不能掛載檔案,因此,屬性只能選擇檔案夾。
具體操作,請參見建立及管理資料集。
步驟二:掛載資料集
在模型開發與訓練>互動式建模(DSW)頁面建立DSW執行個體,或變更已有DSW執行個體配置。其中,資料集選擇已建立的自訂資料集,掛載路徑和掛載模式按需配置。
其他參數詳情,請參見建立DSW執行個體。
如果配置了CPFS類型的資料集,需要設定網路設定,且選擇的專用網路需要與CPFS一致。否則,DSW執行個體可能會建立失敗。
如果配置了NAS類型的資料集,需要設定網路設定,選擇安全性群組。
當資源群組選擇專有資源群組時,因為OSS對fuse介面的支援不如NAS完善,DSW限制第一個資料集必須選擇NAS類型資料集,並且該資料集會同時掛載到您指定的路徑和DSW預設工作目錄/home/admin/workspace下。
掛載公用資料集
步驟一:建立資料集
在AI資產管理>資料集頁面建立公用資料集。具體操作,請參見建立資料集:公用資料集。
步驟二:掛載資料集
在模型開發與訓練>互動式建模(DSW)頁面建立DSW執行個體,或變更已有DSW執行個體配置。其中,資料集選擇已建立的公用資料集,掛載路徑和掛載模式按需配置。
其他參數詳情,請參見建立DSW執行個體。
掛載OSS路徑
步驟一:建立OSS Bucket
Bucket所屬地區與PAI的地區一致。Bucket一旦建立,則無法更改其所屬地區。
步驟二:掛載OSS路徑
在模型開發與訓練>互動式建模(DSW)頁面建立DSW執行個體,或變更已有DSW執行個體配置。其中,在掛載配置地區,OSS選擇已建立的OSS Bucket路徑,掛載路徑和掛載模式按需配置。
其他參數詳情,請參見建立DSW執行個體。
動態掛載
在模型開發與訓練>互動式建模(DSW)頁面建立並開啟DSW執行個體,在執行個體中自行編寫代碼掛載資料集。
步驟一:準備工作
在模型開發與訓練>互動式建模(DSW)頁面建立DSW執行個體,在DSW執行個體執行如下命令,安裝PAI Python SDK。
python -m pip install pai>=0.4.11
通過以下兩種方式中的任意一種,配置SDK訪問PAI的密鑰:
方式一:配置DSW執行個體的PAI預設角色或自訂RAM角色,執行個體內包含存取金鑰。具體操作,請參見配置DSW執行個體RAM角色。
方式二:手動通過PAI Python SDK提供的命令列工具完成配置。
步驟二:掛載資料集
通過動態掛載功能,您無需重啟配置DSW執行個體,即可將指定的OSS Bucket目錄直接掛載到執行個體內,實現在執行個體內通過讀寫本地檔案的方式訪問OSS資料。可參考如下使用樣本:
配置掛載OSS Bucket
相應的資料會被掛載到執行個體內的預設掛載路徑下。
from pai.dsw import mount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/")
配置掛載到指定路徑
動態掛載功能目前需要將資料掛載到容器內的指定路徑(或是相應的子路徑下),可以通過SDK提供的API擷取動態掛載路徑。
from pai.dsw import mount, default_dynamic_mount_point # 擷取執行個體的預設掛載路徑 default_path = default_dynamic_mount_path() mount_point = mount("oss://<YourBucketName>/Path/Data/Directory", mount_point=default_path + "tmp/output/model")
卸載掛載資料
from pai.dsw import unmount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") unmount(mount_point)
查看當前執行個體內的所有掛載資料配置
from pai.dsw import list_dataset_configs print(list_dataset_configs())
配置掛載選項
DSW基於JindoFuse掛載,您可以針對自己不同的讀寫情境,配置符合需求的掛載參數。
from pai.dsw import mount, OptionType # 使用預設的掛載配置模版 mount("oss://<YourBucket>/path/to/data/", option_type=OptionType.FastReadWrite) # 使用JindoFuse的掛載配置參數 mount("oss://<YourBucket>/path/to/data/", options={ "fs.oss.download.thread.concurrency": "8", "fs.oss.upload.thread.concurrency": "8", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }))
查看掛載配置
單擊目標DSW執行個體操作列下的開啟。
在DSW執行個體頁面的頂部功能表列中,單擊Terminal頁簽。然後按照操作指引開啟Terminal。
在Terminal中,輸入以下命令,查看NAS及OSS類型的資料集是否掛載成功。
#查詢NAS掛載路徑 mount | grep nas #查詢OSS掛載路徑 mount | grep oss
系統輸出如下返回結果,說明資料集已成功掛載。
NAS資料集已掛載到/mnt/data_nas、/mnt/workspace和/home/admin/workspace目錄。其中,/mnt/data_nas為建立DSW執行個體時指定的掛載路徑,後兩個路徑為配置第一個NAS資料集時,被掛載的DSW的預設工作目錄。後續只要您的NAS盤和服務正常運行,資料和代碼就可以持久化儲存。
OSS資料集掛載到DSW的/mnt/data_oss目錄。