پشتیبان از دیسک دائمی
پشتیبان دیسک دائمی امکان ایجاد snapshot از دیسکهای متصل به اپلیکیشن (PVC) و بازیابی آنها را فراهم میکند.
این سند درباره دیسکهای دائمی اپلیکیشن است (فایلهای آپلودشده، SQLite، cache). برای پشتیبان پایگاههای داده (PostgreSQL، MongoDB) به پشتیبان پایگاه داده مراجعه کنید.
پیشنیازها
- یک اپلیکیشن با دیسک دائمی فعال
- دسترسی به داشبورد یا API
ایجاد پشتیبان دستی
پشتیبان دیسک یک snapshot لحظهای از تمام دادههای روی دیسک است. این snapshot روی Object Storage ذخیره میشود.
از طریق داشبورد
۱. وارد داشبورد ابرکلیک شوید ۲. پروژه موردنظر را باز کنید ۳. از منوی سمت راست، دیسکها را انتخاب کنید ۴. روی دیسک موردنظر کلیک کنید ۵. تب پشتیبانها را باز کنید ۶. دکمه ایجاد پشتیبان را بزنید
پشتیبان ظرف چند دقیقه (بسته به حجم داده) آماده میشود.
از طریق API
curl -X POST https://api.abrclick.ir/v1/disks/{diskId}/backups \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"description": "قبل از migration"
}'
پاسخ:
{
"data": {
"id": "backup-uuid",
"diskId": "disk-uuid",
"sizeBytes": 524288000,
"status": "creating",
"description": "قبل از migration",
"createdAt": "2026-07-20T10:30:00Z"
},
"status": 201
}
مشاهده لیست پشتیبانها
از طریق داشبورد
در صفحه دیسک، تب پشتیبانها لیست تمام snapshot های موجود را نشان میدهد.
از طریق API
curl https://api.abrclick.ir/v1/disks/{diskId}/backups \
-H "Authorization: Bearer <token>"
پاسخ:
{
"data": [
{
"id": "backup-uuid",
"diskId": "disk-uuid",
"sizeBytes": 524288000,
"status": "ready",
"description": "قبل از migration",
"createdAt": "2026-07-20T10:30:00Z",
"completedAt": "2026-07-20T10:35:00Z"
}
],
"status": 200
}
دانلود پشتیبان
شما میتوانید فایل پشتیبان را دانلود کنید.
از طریق API
curl https://api.abrclick.ir/v1/disks/{diskId}/backups/{backupId}/download \
-H "Authorization: Bearer <token>"
پاسخ یک URL موقت (presigned) است:
{
"data": {
"url": "https://s3.ir-thr-1.arvancloud.com/abrclick-backups/...",
"expiresAt": "2026-07-20T12:00:00Z"
},
"status": 200
}
لینک دانلود تا ۱ ساعت معتبر است:
wget "https://s3.ir-thr-1.arvancloud.com/abrclick-backups/..." -O backup.tar.gz
بازیابی از پشتیبان
بازیابی یک پشتیبان دیسک در دو مرحله انجام میشود:
۱. دریافت URL موقت برای آپلود فایل پشتیبان ۲. آپلود فایل به URL و درخواست restore
بازیابی دادههای فعلی دیسک را جایگزین میکند. این عملیات غیرقابل بازگشت است. قبل از restore یک پشتیبان جدید بگیرید.
مرحله ۱: دریافت URL آپلود
curl -X POST https://api.abrclick.ir/v1/disks/{diskId}/backups/restore/presign \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"sizeBytes": 524288000
}'
پاسخ:
{
"data": {
"uploadUrl": "https://s3.ir-thr-1.arvancloud.com/...",
"uploadId": "upload-uuid",
"expiresAt": "2026-07-20T12:00:00Z"
},
"status": 200
}
مرحله ۲: آپلود فایل پشتیبان
curl -X PUT "https://s3.ir-thr-1.arvancloud.com/..." \
--data-binary @backup.tar.gz \
-H "Content-Type: application/gzip"
مرحله ۳: اجرای restore
curl -X POST https://api.abrclick.ir/v1/disks/{diskId}/backups/restore \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"uploadId": "upload-uuid"
}'
پاسخ:
{
"data": {
"jobId": "restore-job-uuid",
"status": "running"
},
"status": 202
}
دیسک بهصورت موقت unavailable میشود. پس از اتمام restore، اپلیکیشن بهطور خودکار ریاستارت میشود و دادههای بازیابیشده در دسترس قرار میگیرند.
سهمیهٔ فضای پشتیبان
پشتیبانهای دیسک و دامپهای پایگاه داده از یک سهمیهٔ مشترک فضای پشتیبان در هر حساب استفاده میکنند. اگر ساخت پشتیبان بهخاطر پر شدن این سهمیه رد شد، پشتیبانهای قدیمی را حذف کنید یا پلن خود را ارتقا دهید. مدت نگهداری پشتیبانها بر اساس پلن است (۷ تا ۹۰ روز).
tar czf backup.tar.gz /data
برای دیسکهای بزرگ، از ابزارهای compression بهتری مثل xz یا zstd استفاده کنید:
tar -I zstd -cf backup.tar.zst /data
حذف پشتیبان
curl -X DELETE https://api.abrclick.ir/v1/disks/{diskId}/backups/{backupId} \
-H "Authorization: Bearer <token>"
مثال کامل: Backup و Restore
فرض کنید یک اپلیکیشن Node.js با دیسک دائمی روی /uploads دارید.
۱. ایجاد پشتیبان
curl -X POST https://api.abrclick.ir/v1/disks/disk-123/backups \
-H "Authorization: Bearer mytoken" \
-H "Content-Type: application/json" \
-d '{"description": "before update"}'
۲. دانلود پشتیبان
curl https://api.abrclick.ir/v1/disks/disk-123/backups/backup-456/download \
-H "Authorization: Bearer mytoken" | jq -r .data.url | xargs wget -O backup.tar.gz
۳. بازیابی (اگر نیاز باشد)
# درخواست URL آپلود
RESPONSE=$(curl -X POST https://api.abrclick.ir/v1/disks/disk-123/backups/restore/presign \
-H "Authorization: Bearer mytoken" \
-H "Content-Type: application/json" \
-d '{"sizeBytes": 524288000}')
UPLOAD_URL=$(echo $RESPONSE | jq -r .data.uploadUrl)
UPLOAD_ID=$(echo $RESPONSE | jq -r .data.uploadId)
# آپلود فایل
curl -X PUT "$UPLOAD_URL" --data-binary @backup.tar.gz
# اجرای restore
curl -X POST https://api.abrclick.ir/v1/disks/disk-123/backups/restore \
-H "Authorization: Bearer mytoken" \
-H "Content-Type: application/json" \
-d "{\"uploadId\": \"$UPLOAD_ID\"}"
رفع خطاهای رایج
ساخت پشتیبان رد میشود — سهمیهٔ فضا پر است
علت: سهمیهٔ مشترک فضای پشتیبان حساب (پشتیبان دیسک + دامپ پایگاه داده) پر شده است.
راهحل: پشتیبانهای قدیمی را حذف کنید تا فضا آزاد شود، یا پلن خود را ارتقا دهید.
# حذف فایلهای موقت
rm -rf /data/tmp/*
# استفاده از compression قویتر
tar -I zstd -9 -cf backup.tar.zst /data
DISK_IN_USE — دیسک در حال استفاده است
علت: نمیتوان در حین استفاده از دیسک restore کرد.
راهحل: اپ را detach یا stop کنید:
abrclick disk detach disk-123
# سپس restore کنید
# سپس دوباره attach کنید
abrclick disk attach disk-123 --app app-456
BACKUP_NOT_FOUND — پشتیبان یافت نشد
علت: ID پشتیبان اشتباه است یا پشتیبان حذف شده.
راهحل: لیست پشتیبانهای موجود را بررسی کنید:
curl https://api.abrclick.ir/v1/disks/{diskId}/backups \
-H "Authorization: Bearer <token>"
PRESIGNED_URL_EXPIRED — URL منقضی شده
علت: URL آپلود پس از ۱ ساعت منقضی میشود.
راهحل: URL جدید بگیرید:
curl -X POST https://api.abrclick.ir/v1/disks/{diskId}/backups/restore/presign \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"sizeBytes": 524288000}'
مطالب مرتبط
- دیسک دائمی — راهنمای کامل دیسکهای دائمی
- پشتیبان پایگاه داده — پشتیبان PostgreSQL و MongoDB
- فضای ابری (Object Storage) — ذخیرهسازی S3-compatible