跳至主要內容

硬碟與儲存

部署時選擇容量

部署 頁面上有一個硬碟滑桿。它從 50 GB 起算,以 10 GB 為級距移動,從最小 10 GB 到你挑的那台機器能給你的最大值。滑桿下方的輔助說明文字會寫出那個最大值。不同機器的上限不同,所以換一個報價也會換掉滑桿的頂端。

透過 API 時,這個欄位是 POST /v1/instances 上的 disk_gb,可接受 10 到 20,000。超過所選機器容量的值會以 422 DISK_TOO_LARGE 遭拒,錯誤訊息會告訴你那台機器能給你的最大值。

{
"offer_id": "…",
"template_id": "…",
"disk_gb": 200,
"label": "llama-finetune"
}

依整份工作來決定容量:映像檔、你的資料集、套件快取,以及你打算同時保留的每一個檢查點。通常爆掉的都是檢查點 — 一個每個 epoch 寫一份、什麼都不刪的訓練,會把看起來很充裕的硬碟塞滿。

事後無法調整容量

主控台裡沒有調整容量的控制項,也沒有任何端點的欄位能在部署後改變 disk_gb。硬碟在執行個體的一生中都是固定的。

如果你當初給得太小,唯一能換到更大硬碟的路是開一個新的執行個體:把資料複製出來,銷毀舊的執行個體,然後用更大的硬碟重新部署。請見把資料搬進搬出

寧可高估,不要低估

儲存費率按每 GB 每小時計費,所以多給 50 GB 是一筆小而可預期的成本。訓練跑到一半硬碟爆掉則不是。

什麼東西放在哪裡

硬碟承載容器的檔案系統。沒有主機掛載,也沒有外接磁碟區 — 容器寫下的一切都落在你付錢買的那顆硬碟上。

路徑存放什麼
/workspace依慣例存放你的資料與程式碼,也是 JupyterLab 的預設根目錄
/root/.ssh/authorized_keys你在部署時附加的公開金鑰,每次開機都會寫入
/var/log/superheat/jupyter.lognotebook 伺服器的輸出
/var/log/superheat/onstart.log範本 onstart 指令碼的輸出

整個檔案系統會在停止後留存,並在啟動時原封不動地回來。整個檔案系統會被銷毀刪掉,/workspace 也包含在內。這裡的東西沒有任何備份。

你付什麼錢,什麼時候付

執行個體狀態費用
running該切片的 GPU 費率,按秒計量
stopped你佈建的那顆硬碟,按每 GB 每小時的儲存費率
creatingstartingstoppingdestroying不收費
destroyed不收費

儲存費用是大家最容易忘記的一項。停止的執行個體每停一小時都在花錢,一顆大硬碟停上一個月,就是一筆為了沒在跑的工作而付出的實在帳單。費用大約每分鐘結算一次,所以計費頁面上的餘額會很接近即時值。

執行個體一被銷毀,儲存就不再計費,因為硬碟已經不存在了。這就是取捨所在:停止與銷毀的差別會帶你走過你要的是哪一個。

相關內容