فایلسیستم container موقت است. برای دادهای که باید پس از restart یا deploy باقی بماند، یک disk بسازید و آن را روی path مشخصی در App mount کنید.
پیشنیازها
- App موجود و project انتخابشده
- path مطلقی که برنامه برای داده پایدار استفاده میکند
- ظرفیت مجاز plan برای تعداد و اندازه disk
۱. دیسک را بسازید
اندازه با GB بیان میشود و باید عدد مثبت باشد:
abrun app disk create <app> app-data --size 10نام disk در App یکتا است. وضعیت و ظرفیت را بررسی کنید:
abrun app disk list <app>
abrun app disk inspect <app> app-data۲. دیسک را mount کنید
path باید مطلق و مخصوص داده برنامه باشد:
abrun app disk mount <app> app-data /var/lib/appیک mount path را بین چند disk همان App تکرار نکنید. فایلهای خود application را روی disk قرار ندهید؛ image باید کد قابلاجرا را در خود داشته باشد و disk فقط داده متغیر را نگه دارد.
پس از mount، App را بررسی و یک فایل آزمایشی از مسیر واقعی application ایجاد کنید. سپس restart انجام دهید و ماندگاری داده را از خود برنامه تأیید کنید.
۳. ظرفیت را افزایش دهید
CLI فقط افزایش ظرفیت را پشتیبانی میکند؛ کوچککردن disk ارائه نمیشود:
abrun app disk expand <app> app-data --size 20--size ظرفیت نهایی جدید است، نه مقدار افزودهشده. پیش از expansion قیمت و سقف plan را بررسی کنید و پس از آن usage را دوباره بخوانید.
unmount
قبل از unmount مطمئن شوید برنامه دیگر روی path نمینویسد:
abrun app disk unmount <app> app-dataApp را پس از تغییر بررسی کنید. unmount داده disk را حذف نمیکند، اما برنامه دیگر آن را در mount path نمیبیند.
حذف دیسک
هشدار: حذف disk داده آن را از دسترس خارج میکند و برای داده بدون backup قابلبازگشت نیست. ابتدا export یا backup قابلآزمون تهیه کنید.
دیسک را unmount و سپس حذف کنید:
abrun app disk delete <app> app-dataبا abrun app disk list <app> حذف را بررسی کنید. persistent disk بهتنهایی backup نیست و در برابر حذف اشتباه یا خرابی داده محافظت کامل ایجاد نمیکند.
هزینه در حالت stop
با stop شدن App، ظرفیت disk رزروشده همچنان نگهداری و rating میشود. برای پایان هزینه storage باید داده لازم را منتقل و resource بدون استفاده را حذف کنید.
رفع مشکل
- ساخت disk رد میشود: سقف تعداد یا ظرفیت plan را بررسی کنید.
- mount path نامعتبر است: path باید مطلق باشد و
//نداشته باشد. - برنامه permission ندارد: UID/GID و permission مسیر را در image اصلاح کنید؛ ابتدا security profile را تضعیف نکنید.
- داده بعد از restart دیده نمیشود: mount path واقعی برنامه و وضعیت mounted را بررسی کنید.