全部產品
Search
文件中心

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

更新時間:Nov 01, 2025

公用資源群組和專有資源群組預設資料存放區空間有限,且一定時間後資料會被清空。當您想要擴充DSW執行個體儲存空間、持久化儲存資料、共用資料時,可以通過為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執行個體,在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的掛載串連已斷開。可能的原因及排查方法如下:

  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路徑即可,這是最便捷的資料移轉方式。

相關文檔

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