全部產品
Search
文件中心

Platform For AI:掛載資料集/OSS/NAS/CPFS

更新時間:Jul 03, 2026

公用資源群組和專有資源群組的預設資料存放區空間有限,且一定時間後資料會被清空。通過掛載資料集或儲存路徑,您可以擴充DSW執行個體儲存空間、持久化儲存資料、跨執行個體共用資料。

重要
  • 公用資源群組DSW執行個體,資料存放區在空間有限(100GiB)的免費雲端硬碟中,在刪除執行個體或停機超過15天后,雲端硬碟資料將被清空。

  • 專有資源群組DSW執行個體,資料存放區在執行個體的系統硬碟中,在停止或刪除執行個體後,臨時儲存將被清空。

掛載資料集與直接掛載儲存路徑區別

如果需要長期儲存、團隊協作,選擇掛載資料集;如果只是臨時任務、快速擴充儲存,選擇直接掛載儲存路徑。

特性

掛載資料集

直接掛載儲存路徑

支援的雲產品

Object Storage Service、Apsara File Storage NAS、檔案儲存體CPFS

版本管理

支援版本管理和資料加速

不支援版本管理

資料共用

支援多執行個體共用

僅限當前執行個體使用

操作複雜度

需建立資料集並配置

簡單,直接掛載路徑即可

適用情境

長期儲存、團隊協作、高安全性需求

臨時任務、快速擴充儲存需求

啟動時掛載與動態掛載區別

掛載方式分為啟動時掛載和動態掛載。

  • 啟動時掛載:在建立執行個體或變更配置時設定。需重啟執行個體才會生效。

  • 動態掛載:在啟動並執行執行個體中通過PAI SDK掛載,無需重啟執行個體。

使用限制

  • 路徑唯一: 每個資料集的掛載路徑必須唯一。

  • 寫入限制: 避免在OSS掛載目錄中頻繁寫入,可能導致效能下降或操作失敗。

  • Git限制: OSS掛載目錄不支援Git操作。請在本地或其他非掛載路徑下執行Git命令。

動態掛載限制

  • 唯讀限制:動態掛載僅支援唯讀,不支援寫操作,適用於快速掛載或臨時唯讀訪問的情境。

  • 儲存類型限制:動態掛載僅支援OSS和NAS掛載。

  • 資源限制:動態掛載不支援靈駿智算資源。

啟動時掛載

啟動時掛載,通過設定執行個體配置頁面的数据集挂载存储挂载參數,完成資料集或儲存路徑掛載配置。配置後需重啟執行個體才會生效。

掛載資料集

  1. 建立資料集

    登入PAI控制台,在AI资产管理 > 数据集頁面建立自訂資料集或公用資料集。具體操作可參見建立及管理資料集

  2. 掛載資料集

    在建立DSW執行個體時出現的配置頁中(已存在的執行個體通過單擊变更配置開啟配置頁),找到数据集挂载參數,單擊自定义,選擇已建立的資料集並填寫挂载路径

說明

掛載自訂資料集須知:

  • CPFS 資料集:配置CPFS資料集時,DSW執行個體的Virtual Private Cloud必須與CPFS檔案系統一致,否則執行個體將建立失敗。

  • NAS 資料集:配置NAS資料集時,請設定網路並選擇安全性群組。

  • 使用專有資源群組:使用專有資源群組時,第一個資料集必須為NAS類型。該資料集將同時掛載到您指定的路徑和DSW預設工作目錄 /home/admin/workspace

直接掛載儲存路徑

以掛載Object Storage Service為例。

  1. 建立OSS Bucket

    開通OSS服務建立Bucket

    重要

    Bucket所屬地區與PAI的地區一致。Bucket一旦建立,則無法更改其所屬地區。

  2. 掛載OSS路徑

    在建立DSW執行個體時出現的配置頁中(已存在的執行個體通過單擊变更配置開啟配置頁),找到存储挂载參數。點擊OSS,然後選擇已建立的OSS Bucket路徑並填寫挂载路径高级配置預設為空白,您可以參考下文的掛載進階配置,按需配置。

動態掛載

動態掛載是在DSW執行個體中基於PAI SDK編寫代碼,完成資料集或儲存路徑的掛載,無需重啟執行個體。

注意:動態掛載僅支援唯讀訪問,不支援寫操作,僅支援OSS和NAS掛載,並且暫不支援靈駿智算資源。

準備工作

  1. 安裝PAI Python SDK。在開啟的DSW執行個體終端中執行以下命令,安裝PAI Python SDK,要求python >= 3.8

    python -m pip install pai>=0.4.11
  2. 配置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)

掛載進階配置

在配置掛載時,可設定進階參數來適配快速讀寫、增量讀寫、唯讀等情境,最佳化讀寫效能。

掛載進階配置

OSS掛載

OSS掛載可通過進階配置指定Jindo參數,或選用ossfs掛載。

  • 在進階配置中設定{"mountType":"ossfs"},以使用ossfs方式掛載OSS儲存。如果不設定,預設使用Jindo掛載。

  • 在進階配置中設定Jindo參數,可以更靈活地使用Jindo掛載。常見情境如下:

    • 快速讀寫:允許使用者讀寫,讀取速度快,但並發讀寫可能會出現資料不一致的問題,適合掛載訓練資料和模型,不適合作為工作目錄。

      {
        "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"
      }

通用型NAS和CPFS

通用型NAS和CPFS掛載可通過進階配置,提升容器訪問儲存的吞吐效能。

在進階配置中設定nconnect參數,例如{"nconnect":"<樣本值>"},將<樣本值>替換為具體的正整數。

查看掛載配置

開啟DSW執行個體,在终端中,輸入以下命令,查看NAS及OSS類型的資料集是否掛載成功。

# 查看所有掛載
mount
# 查詢NAS掛載路徑
mount | grep nas
# 查詢OSS掛載路徑
mount | grep oss

系統輸出以下返回結果,說明資料集已成功掛載。

(base) /mnt/workspace> mount | grep nas
xxx /dsw01/ on /mnt/workspace type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=xxx,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=xxx)
xxx /dsw01/ on /mnt/data_nas type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=xxx,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=xxx)
xxx:/dsw01/ on /home/admin/workspace type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=xxx,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=xxx)
(base) /mnt/workspace>
(base) /mnt/workspace> mount | grep oss
jindo-fuse on /mnt/data_oss type fuse.jindo-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
(base) /mnt/workspace>
  • 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的掛載串連已斷開。可能的原因及排查方法如下:

  1. RAM角色許可權問題:檢查DSW執行個體配置的RAM角色是否被授予了訪問OSS的許可權(例如 AliyunPAIDLCAccessingOSSRole)。許可權不足是導致無法讀取OSS的常見原因。

  2. 掛載服務資源不足:高強度隨機讀寫或大量小檔案操作時,負責掛載的ossfsJindoFuse進程可能因記憶體不足(OOM)而崩潰 。可在掛載配置的”進階配置”中關閉中繼資料Cache,或增加記憶體配置。詳情參見JindoFuse

  3. 恢複串連:

    • 對於啟動時掛載,最簡單的恢複方法是重啟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路徑即可。

Q:DSW執行個體無法開啟/無法啟動,如何匯出系統硬碟中的資料?

如果DSW執行個體因資源不足或其他原因無法啟動,系統硬碟中的資料不會立即丟失。可嘗試以下方法匯出資料:

  1. 變更執行個體規格後重新啟動:在執行個體列表頁,單擊"變更配置",選擇其他可用的執行個體規格後重新啟動執行個體。變更規格不會導致系統硬碟資料丟失。啟動成功後,立即將資料備份到OSS或NAS。

  2. 更換地區或可用性區域:如果當前地區資源不足,且資料已儲存在外部儲存中,可以嘗試建立新執行個體並掛載相同的OSS/NAS儲存來恢複資料。

  3. 聯絡支援人員:如果以上方法均無法解決,請提交工單聯絡支援人員協助匯出資料。

重要

公用資源群組執行個體停機超過15天,免費雲端硬碟資料將被清空且無法恢複。如果您收到"系統硬碟將於X天后釋放"的通知,請務必在到期日前通過變更規格等方式啟動執行個體並備份資料。

相關文檔

更多常見問題參見DSW常見問題