硬碟與儲存
部署時選擇容量
部署 頁面上有一個硬碟滑桿。它從 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.log | notebook 伺服器的輸出 |
/var/log/superheat/onstart.log | 範本 onstart 指令碼的輸出 |
整個檔案系統會在停止後留存,並在啟動時原封不動地回來。整個檔案系統會被銷毀刪掉,/workspace 也包含在內。這裡的東西沒有任何備份。
你付什麼錢,什麼時候付
| 執行個體狀態 | 費用 |
|---|---|
running | 該切片的 GPU 費率,按秒計量 |
stopped | 你佈建的那顆硬碟,按每 GB 每小時的儲存費率 |
creating、starting、stopping、destroying | 不收費 |
destroyed | 不收費 |
儲存費用是大家最容易忘記的一項。停止的執行個體每停一小時都在花錢,一顆大硬碟停上一個月,就是一筆為了沒在跑的工作而付出的實在帳單。費用大約每分鐘結算一次,所以計費頁面上的餘額會很接近即時值。
執行個體一被銷毀,儲存就不再計費,因為硬碟已經不存在了。這就是取捨所在:停止與銷毀的差別會帶你走過你要的是哪一個。