公用資源群組和專有資源群組預設資料存放區空間有限,且一定時間後資料會被清空。當您想要擴充DSW執行個體儲存空間、持久化儲存資料、共用資料時,可以通過為DSW執行個體掛載資料集或直接掛載儲存路徑的方式實現。
公用資源群組DSW執行個體,資料存放區在空間有限(100GiB)的免費雲端硬碟中,在刪除執行個體或停機超過15天后,雲端硬碟資料將被清空。
專有資源群組DSW執行個體,資料存放區在執行個體的系統硬碟中,在停止或刪除執行個體後,臨時儲存將被清空。
掛載資料集與直接掛載儲存路徑區別
如果您需要長期儲存、團隊協作可以選擇掛載資料集,如果只是臨時任務、快速擴充儲存需求可以選擇直接掛載儲存路徑。
特性 | 掛載資料集 | 直接掛載儲存路徑 |
支援的雲產品 | Object Storage Service、Apsara File Storage NAS、檔案儲存體CPFS | |
版本管理 | 支援版本管理和資料加速 | 不支援版本管理 |
資料共用 | 支援多執行個體共用 | 僅限當前執行個體使用 |
操作複雜度 | 需建立資料集並配置 | 簡單,直接掛載路徑即可 |
適用情境 | 長期儲存、團隊協作、高安全性需求 | 臨時任務、快速擴充儲存需求 |
啟動時掛載與動態掛載區別
掛載方式分為啟動時掛載和動態掛載。
啟動時掛載:在建立執行個體或變更配置時設定。配置後需重啟執行個體才會生效。
動態掛載:在啟動並執行執行個體中通過PAI SDK掛載。此方式無需重啟執行個體。
使用限制
路徑唯一: 每個資料集的掛載路徑必須唯一。
寫入限制: 避免在OSS掛載目錄中頻繁寫入,這可能導致效能下降或操作失敗。
Git限制: OSS掛載目錄不支援Git操作。請在本地或其他非掛載路徑下執行Git命令。
動態掛載限制
唯讀限制:動態掛載僅支援唯讀,不支援寫操作,適用於需要快速掛載或臨時唯讀訪問的情境。
儲存類型限制:動態掛載僅支援OSS和NAS掛載。
資源限制:動態掛載暫不支援靈駿智算資源。
啟動時掛載
啟動時掛載,通過設定執行個體配置頁面的資料集掛載或儲存路徑掛載參數,完成資料集或儲存路徑掛載配置。在配置後需要重啟執行個體才會生效。
掛載資料集
建立資料集
登入PAI控制台,在AI資產管理>資料集頁面建立自訂資料集或者公用資料集。具體操作可參見建立及管理資料集。
掛載資料集
在建立DSW執行個體時出現的配置頁中(已存在的執行個體通過單擊變更配置開啟配置頁),找到資料集掛載配置地區。單擊自訂資料集,然後選擇已建立的資料集並填寫掛載路徑。
掛載自訂資料集須知:
CPFS 資料集:配置CPFS資料集時,DSW執行個體的Virtual Private Cloud必須與CPFS檔案系統一致。否則,執行個體將建立失敗。
NAS 資料集:配置NAS資料集時,請設定網路並選擇安全性群組。
使用專有資源群組:使用專有資源群組時,第一個資料集必須為NAS類型。該資料集將同時掛載到您指定的路徑和DSW預設工作目錄
/home/admin/workspace。
直接掛載儲存路徑
以掛載Object Storage Service為例。
動態掛載
動態掛載是在DSW執行個體中基於PAI SDK自行編寫代碼,完成資料集或儲存路徑的掛載,無需重啟執行個體即可完成。
注意:動態掛載僅支援唯讀訪問,不支援寫操作,僅支援OSS和NAS掛載,並且暫不支援靈駿智算資源。
準備工作
安裝PAI Python SDK。在開啟的DSW執行個體終端中執行如下命令,安裝PAI Python SDK,要求python >= 3.8。
python -m pip install pai>=0.4.11配置SDK訪問PAI的密鑰。
方式一:配置DSW執行個體為PAI預設角色或自訂RAM角色。開啟執行個體配置頁,在頁面底部單擊展開更多配置選擇執行個體RAM角色。具體操作,請參見配置DSW執行個體RAM角色。
方式二:手動通過PAI Python SDK提供的命令列工具完成配置。在終端中執行如下命令配置訪問參數。操作樣本請參見初始化配置。
python -m pai.toolkit.config
使用樣本
通過動態掛載功能,您無需重啟配置DSW執行個體,使用樣本如下:
掛載到預設路徑
相應的資料會被掛載到執行個體內的預設掛載路徑下(使用官方預置執行個體鏡像預設路徑為
/mnt/dynamic/)。from pai.dsw import mount # 掛載oss路徑 mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") # 掛載資料集, 入參為資料集的id # mount_point = mount("d-m7rsmu350********")
掛載到指定路徑
動態掛載功能目前需要將資料掛載到容器內的指定路徑(或是相應的子路徑下),可以通過SDK提供的API擷取動態掛載路徑。
from pai.dsw import mount, default_dynamic_mount_path # 擷取執行個體的預設掛載路徑 default_path = default_dynamic_mount_path() mount_point = mount("oss://<YourBucketName>/Path/Data/Directory" , mount_point=default_path + "tmp/output/model")
動態掛載NAS
from pai.dsw import mount, default_dynamic_mount_path # 擷取執行個體的預設掛載路徑 default_path = default_dynamic_mount_path() # 掛載nas,要求nas的endpoint和執行個體在同一個vpc,<region>替換為regionId,例如cn-hagnzhou mount("nas://06ba748***-xxx.<region>.nas.aliyuncs.com/", default_path+"mynas3/")查看執行個體內的所有掛載資料配置
from pai.dsw import list_dataset_configs print(list_dataset_configs())卸載掛載資料
from pai.dsw import mount, unmount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") # 入參為掛載的路徑,即list_dataset_configs查詢到的MountPath # 執行卸載後需要等待幾秒鐘才會生效 unmount(mount_point)
掛載進階配置
在配置掛載時,還可以設定進階參數來適配快速讀寫、增量讀寫、唯讀等讀寫情境,最佳化讀寫效能。
查看掛載配置
開啟DSW執行個體,在Terminal中,輸入如下命令,查看NAS及OSS類型的資料集是否掛載成功。
# 查看所有掛載
mount
# 查詢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目錄。
常見問題
Q:成功掛載了OSS,為什麼在JupyterLab介面的左側檔案瀏覽器中看不到?
這是因為DSW的檔案瀏覽器預設顯示的是執行個體的工作目錄,其路徑通常是/mnt/workspace。而您掛載OSS時指定的掛載路徑(例如 /mnt/data)並不在預設工作目錄下,因此不會直接顯示在左側檔案清單中。
解決方案:
通過代碼訪問:您的檔案實際上已經成功掛載。在代碼中,您需要使用完整的掛載路徑來訪問它們,例如
open('/mnt/data/my_file.csv')。更改掛載點:為了在UI中方便地看到檔案,您可以在配置掛載時,將掛載路徑設定為工作目錄下的一個子目錄,例如
/mnt/workspace/my_oss_data。這樣,掛載完成後,您就可以在檔案瀏覽器的my_oss_data檔案夾中看到您的OSS檔案了。通過終端訪問:您可以在DSW的Terminal中使用
cd /mnt/data命令進入掛載目錄,然後通過ls等命令查看和操作檔案。
Q:使用掛載的OSS時,程式報錯“Transport endpoint is not connected”或“輸入/輸出錯誤”?
這個錯誤表明DSW執行個體與OSS的掛載串連已斷開。可能的原因及排查方法如下:
RAM角色許可權問題:請檢查您為DSW執行個體配置的RAM角色是否被授予了訪問OSS的許可權(例如
AliyunPAIDLCAccessingOSSRole)。許可權不足是導致無法讀取OSS的常見原因。掛載服務資源不足:當進行高強度的隨機讀寫或大量小檔案操作時,負責掛載的
ossfs或JindoFuse進程可能會因記憶體不足(OOM)而崩潰 。您可以在掛載配置的“進階配置”中,可以關閉中繼資料Cache,或增加記憶體配置。詳情請參見JindoFuse。恢複串連:
對於啟動時掛載,最簡單的恢複方法是重啟DSW執行個體,系統會自動重新執行掛載。
您也可以使用PAI SDK執行動態掛載命令,在不重啟執行個體的情況下重新掛載路徑。
Q:DSW支援掛載哪些類型的資料?可以直接掛載阿里雲盤或MaxCompute表嗎?
DSW支援通過建立資料集或直接掛載路徑的方式使用OSS、NAS和CPFS這幾種雲端儲存體服務
不支援阿里雲盤:目前DSW不直接支援掛載個人阿里雲盤。需要處理的資料建議存放在OSS中。
不支援掛載MaxCompute表:MaxCompute(原ODPS)的表資料,不能像檔案系統一樣直接“掛載”到DSW的目錄中。您可以通過PAI提供的SDK或API在DSW代碼中進行讀寫,詳情請參見使用PyODPS讀寫MaxCompute表。
Q:DSW執行個體關機或刪除後,代碼和資料會丟失嗎?如何?資料持久化和遷移?
DSW執行個體的系統硬碟是臨時儲存。對於公用資源群組,執行個體停機超過15天資料會被清空;對於專有資源群組,執行個體停止或刪除後,系統硬碟資料也會被清空。
為了實現資料和代碼的持久化儲存,以及在不同執行個體間遷移,必須使用外部掛載儲存 。
持久化方案:將您的重要資料、代碼、模型等全部儲存在通過掛載的OSS或NAS路徑下。這樣,即使DSW執行個體被刪除,您的所有資產依然安全地存放在您自己的OSS或NAS中。
遷移方案:當您需要將資料從一個DSW執行個體遷移到另一個時,只需在新執行個體中掛載包含這些資料的同一個OSS或NAS路徑即可,這是最便捷的資料移轉方式。
相關文檔
更多常見問題請參見DSW常見問題