
به اشتراک بگذارید

به اشتراک بگذارید
تفاوت اسنپشات و بکاپ به یک چیز برمیگردد: اسنپشات اشارهگری به وضعیت لحظهای همان دیسک است و نسخه پشتیبان یک کپی مستقل روی رسانهای دیگر. اسنپشات در چند ثانیه ساخته میشود و برای برگشت پیش از آپدیت بهترین ابزار است، اما اگر استوریج یا حساب سرور از دست برود با همان سرور از بین میرود. نسخه پشتیبان کندتر است و فضا میخواهد؛ در عوض بدون سرور اصلی هم بازیابی میشود.
| معیار | اسنپشات | نسخه پشتیبان |
|---|---|---|
| محل ذخیره | روی همان استوریج یا pool سرور | رسانه یا سرور جداگانه |
| فضای اولیه | تقریباً صفر، بعد با تغییر داده رشد میکند | اندازه داده از همان ابتدا |
| کاربرد اصلی | برگشت از یک تغییر مشخص | بازیابی بعد از خرابی یا حذف |
| بازه نگهداری (پیشنهاد عملی ما) | چند ساعت تا چند روز | هفتهها تا ماهها |
💡 یک جمله که باید یادتان بماند
اسنپشات نسخه دوم داده شما نیست؛ همان داده است، با یک علامت زمانی.
✅ پیش از هر آپدیت یا تغییر کانفیگ اسنپشات بگیرید و تا مطمئن شدن از سلامت سرویس نگهش دارید.
✅ اسنپشات پنل، مثل پنل سرور مجازی ایرانی وبداده، را بهجای نسخه پشتیبان حساب نکنید.
مسیر مقاله از پایین به بالا است. اول از مستندات کرنل لینوکس، OpenZFS و QEMU میخوانیم که هر فناوری چه چیزی را نگه میدارد و حالت خرابی هرکدام چیست. بعد چهار سناریوی از دست رفتن داده را میآزماییم و آخر هم دستورهای بررسی فضا و تست بازیابی را دارید.
📌 آنچه در این مقاله میخوانید
◀️ اسنپشات پشت صحنه چه کاری انجام میدهد؟
◀️ بکاپ چه چیزی را جدا میکند و چرا این جدایی مهم است
◀️ چهار شکستی که اسنپشات جلوی آنها را نمیگیرد
◀️ قاعده 3-2-1 و تست بازیابی؛ ترکیب درست دو ابزار

اسنپشات یک تصویر فقطخواندنی از وضعیت داده در یک لحظه مشخص است. مستندات OpenZFS آن را «کپی فقطخواندنی از یک فایلسیستم یا والیوم» توصیف میکند که «بسیار سریع ساخته میشود و در ابتدا هیچ فضای اضافهای در pool مصرف نمیکند».
ایده مشترک همه پیادهسازیها کپی هنگام نوشتن یا copy-on-write است. طبق مستندات کرنل لینوکس برای device-mapper، در dm-snapshot فقط همان قطعههایی از داده کپی میشوند که تغییر میکنند و برای نگهداریشان یک دستگاه COW جداگانه به کار میرود؛ قطعههای دستنخورده از دیسک اصلی یا origin خوانده میشوند. همین نقطه ریشه تفاوت اسنپشات و بکاپ است: داده قدیمی از دیسک مبدأ جدا نمیشود، فقط علامت میخورد.
روی سرور مجازی، سازنده اسنپشات استوریج هایپروایزر است و چهار پیادهسازی رایج دارد که سازوکارشان یکی نیست. مراحل گرفتن اسنپشات از پنل را در آموزش گرفتن اسنپشات در پنل سرور مجازی نوشتهایم.
اسنپشات در لحظه تولد فضایی نمیگیرد، ولی هرچه داده زنده تغییر کند نسخه قدیمی بلاکها باید جایی بماند. مستندات OpenZFS میگوید «با تغییر داده در دیتاست فعال، اسنپشات فضای بیشتری مصرف میکند»؛ پس رشد اسنپشات تابع نرخ تغییر داده است، نه اندازه دیسک. اینکه پر شدن فضا چه چیزی را از کار میاندازد، به فناوری بستگی دارد.
⚠️ اسنپشات رهاشده یک بدهی فنی است
اسنپشاتی که هفتهها روی سرور پرترافیک میماند، در LVM کلاسیک غیرفعال میشود و در LVM-thin و ZFS فضای مشترک را تا لبه پر میکند. پیش از هر اسنپشات فضای آزاد را ببینید؛ کمتر از ۲۰ درصد آزاد علامت خطر است.
# فضای فایلسیستم و مخزن را پیش از ساخت اسنپشات ببینید
df -h /
sudo lvs -o lv_name,lv_size,data_percent,metadata_percent
sudo zpool list -o name,size,alloc,free,capacity
sudo zfs list -t snapshot
نسخه پشتیبان یک کپی مستقل از داده است که روی رسانه یا سرور دیگری نوشته میشود و برای بازیابی به دیسک مبدأ نیازی ندارد. تمام ارزش بکاپ در همین استقلال است: اگر سرور یا حساب کاربری از دست برود، نسخه پشتیبان جای دیگری سالم مانده است.
طبق مستندات رسمی Proxmox VE، بکاپهای این هایپروایزر «همیشه کامل» هستند و کانفیگ ماشین و تمام داده آن را در بر میگیرند. حالت stop بالاترین سازگاری را میدهد و یک قطعی کوتاه دارد. حالت snapshot کمترین قطعی را دارد، ولی خود مستندات آن را «به بهای یک ریسک کوچک ناسازگاری» توصیف میکند؛ با guest agent فعال، فایلسیستم مهمان freeze و thaw میشود تا این ریسک کمتر شود. حالت suspend را همان مستندات توصیه نمیکند.
| نوع | چه چیزی نوشته میشود | نقطه قوت | ریسک اصلی |
|---|---|---|---|
| کامل | همه داده در هر اجرا | بازیابی یکمرحلهای | فضا و زمان بیشتر |
| افزایشی | فقط تغییرات نسبت به نسخه قبلی | اجرای سریع و کمحجم | بازیابی هر نسخه به سالم بودن حلقههای پیش از آن وابسته است |
| فایلمحور | فایلها و دامپ منطقی دیتابیس | بازیابی انتخابی یک فایل یا جدول | دامپ نادرست دیتابیس در حال نوشتن |
پیش از انتخاب نوع، فهرست محتویات آرشیو را بنویسید: ریشه سایت، دامپ منطقی دیتابیس، پوشه /etc، کرونتب کاربران و گواهیهای TLS. هر چه در فهرست نباشد، در روز بازیابی هم نیست.
در نگهداری بلندمدت، تفاوت اسنپشات و بکاپ به یک محدودیت فنی سخت تبدیل میشود: هر اسنپشات زنده فضای مشترک مصرف میکند، پس دهها نسخه را ماهها نمیتوان نگه داشت؛ برای آرشیو چنین محدودیتی نیست. Proxmox گزینه prune-backups را دارد که نسخهها را بر اساس keep-last، keep-hourly، keep-daily، keep-weekly، keep-monthly و keep-yearly نگه میدارد؛ نسخههای protected از حذف خودکار معاف هستند.
نقطه شروعی که پیشنهاد میکنیم ۷ نسخه روزانه، ۴ هفتگی و ۶ ماهانه است؛ هم اشتباه دیرکشفشده را میپوشاند و هم فضا را منفجر نمیکند. مسیر پیادهسازی خودکار را در راهاندازی بکاپ خودکار روی سرور مجازی قدمبهقدم آوردهایم.

چهار سناریو هست که تفاوت اسنپشات و بکاپ را از یک بحث فنی به یک تصمیم عملیاتی تبدیل میکند: خرابی استوریج، از دست رفتن حساب، نفوذی قدیمیتر از زنجیره اسنپشات، و اشتباهی که دیر کشف میشود. ریشه هر چهار یکی است؛ نسخه نجات روی همان سیستمی نگهداری میشود که خودش باید نجات پیدا کند.
| سناریو | اسنپشات دیروز | نسخه پشتیبان بیرون از سرور |
|---|---|---|
| خرابی استوریج یا نود | همراه دیسک از بین میرود | قابل بازیابی |
| حذف یا تعلیق حساب سرور | از دسترس خارج میشود | بازیابی روی سرور جدید |
| نفوذ قدیمیتر از زنجیره اسنپشات | همان در پشتی را دارد | نسخه آفلاین قدیمیتر سالم است |
| اشتباه کانفیگ که یک ماه بعد دیده شد | معمولاً پاک شده | در چرخه ماهانه موجود است |
| پر شدن فضای استوریج یا مخزن | غیرفعال میشود یا والیوم زنده را مختل میکند | اثری نمیپذیرد |
اوراکل در صفحه رسمی Snapshots Are NOT Backups سه دلیل میآورد. آن صفحه درباره دیتابیس اوراکل و RMAN نوشته شده، ولی هر سه دلیل از جنس استوریج است. اول اینکه روی همان آرایه داده اصلی مینشیند و «در برابر خرابیهایی که آرایه استوریج را تحت تأثیر قرار میدهند آسیبپذیر است». دوم اینکه در سطح بلاک کار میکند و از ساختار بلاک دیتابیس «آگاهی ندارد». سوم اینکه «مجموعهای از اشارهگرها بهجای بلاکها» است و برای بکاپ شدن باید «روی آرایه استوریج دیگر یا نوار بازسازی شود».
اگر حساب سرویس تعلیق شود، پنل و اسنپشاتها همزمان از دسترس خارج میشوند. آرشیوی که روی استوریج دیگری نشسته، چنین وابستگی ندارد.
راهنمای #StopRansomware سیسا با همکاری MS-ISAC و NSA و FBI منتشر شده و نسخه روی سایت به سپتامبر ۲۰۲۳ بازنگری شده است. توصیهاش این است: «نسخههای پشتیبان آفلاین و رمزنگاریشده از داده حیاتی نگه دارید و دسترسپذیری و صحت آنها را بهطور منظم تست کنید». دلیلش را هم میگوید: «بسیاری از گونههای باجافزار تلاش میکنند نسخههای پشتیبان قابل دسترسی را پیدا و سپس حذف یا رمزنگاری کنند».
اسنپشاتی که در همان پنل و با همان دسترسی قابل حذف است، مصداق روشن «نسخه پشتیبان قابل دسترسی» است. مسئله دوم طول حضور مهاجم است: گزارش Active Adversary سوفوس در نسخه ۲۰۲۵، بر پایه پروندههای ۲۰۲۴، میانه این مدت را در پروندههای باجافزار ۴ روز گزارش کرده است. قاعده روشن است؛ اگر زنجیره نسخههای شما کوتاهتر از مدت حضور مهاجم باشد، همه نسخهها آلودهاند.
یک اسکریپت پاکسازی اشتباه ممکن است هفتهها بیصدا کار کند و فقط وقتی دیده شود که مشتری زنگ بزند. اسنپشات اینجا کمکی نمیکند، چون نگهداشتنش برای یک ماه توجیه ندارد. راهحل، نسخه ماهانه چرخه بکاپ است.

قاعده 3-2-1 یک عرف جاافتاده در صنعت پشتیبانگیری است، نه استاندارد رسمی: سه نسخه از داده، روی دو نوع رسانه، و یک نسخه بیرون از محل اصلی. اسنپشات شرط دوم و سوم را برآورده نمیکند، چون نسخهاش نه روی رسانه جداست و نه بیرون از محل اصلی.
یک شرط چهارم هم هست که جزء خود قاعده نیست و بعدها اضافه شده: نسخهای که از دسترس خود سرور خارج باشد. مصداق عملیاش قفل آبجکت روی فضای ابری، حساب جداگانه با دسترسی فقط افزودن، یا دیسک خارجی است. همین شرط، توصیه «نسخه آفلاین» سیسا را عملی میکند.
🔶 نکته درباره پنل وبداده
پنل سرور مجازی ایران وبداده گزینه اسنپشات و بازگردانی دارد و سرورها در دیتاسنتر تهران روی شبکه رسپینا میزبانی میشوند. این گزینه مسیر برگشت را کوتاه میکند، ولی جای نسخه مستقل بیرون از سرور را نمیگیرد.
آرشیوی که بدون خطا باز میشود لزوماً سرویس را برنمیگرداند؛ یک دامپ نیمهکاره هم بدون خطا extract میشود. به همین دلیل سیسا از تست منظم «دسترسپذیری و صحت» حرف میزند. سه فرمان زیر همین تست را روی یک ماشین خالی انجام میدهند.
# 1) سلامت آرشیو، بدون استخراج
tar -tzf backup-2026-10-24.tar.gz > /dev/null && echo "archive OK"
sha256sum -c backup-2026-10-24.tar.gz.sha256
# 2) بازیابی روی ماشین خالی، نه روی سرور اصلی
mkdir -p /restore && tar -xzf backup-2026-10-24.tar.gz -C /restore
# 3) صحت داده را با یک کوئری واقعی بسنجید
mysql -u root -p restore_test < /restore/db/shop.sql
mysql -u root -p -e "SELECT COUNT(*) FROM restore_test.orders;"
مدت کار را تا بالا آمدن سرویس اندازه بگیرید. این عدد زمان واقعی بازیابی شما است و نشان میدهد RTO، یعنی سقف قطعی قابل تحمل کسبوکارتان، دستیافتنی هست یا نه. تاریخ تست و نسخه را ثبت کنید و این کار را به روال ماهانه تبدیل کنید.
⚠️ این دستورها بازگشتناپذیرند
بازگردانی و حذف اسنپشات راه برگشت ندارند. نام والیوم را پیش از اجرا بررسی کنید و اگر به وضعیت فعلی نیاز دارید، اول از آن نسخه مستقل بگیرید. اسنپشات پیش از آپدیت را تا چند ساعت کار سالم سرویس پاک نکنید؛ بخشی از خرابیها با تأخیر بروز میکنند.
# LVM: ادغام اسنپشات در والیوم اصلی (اسنپشات بعد از merge حذف میشود)
sudo lvconvert --merge /dev/vg0/snap-before-update
sudo lvremove /dev/vg0/snap-before-update
# ZFS: بازگردانی دیتاست؛ گزینه -r اسنپشاتهای جدیدتر را حذف میکند
sudo zfs rollback -r tank/vm-101@before-update
sudo zfs destroy tank/vm-101@before-update
همینجا تفاوت اسنپشات و بکاپ به یک تقسیم کار ساده ترجمه میشود: اسنپشات ابزار ساعت است و نسخه پشتیبان ابزار هفته و ماه.
پرسشهایی که درباره اسنپشات و نسخه پشتیبان بیشتر از همه پرسیده میشود:
وضعیت داده در یک لحظه مشخص، بهشکل مجموعهای از اشارهگرها به بلاکها. داده دستنخورده از دیسک اصلی خوانده میشود و فقط بلاکهای تغییریافته جدا نگه داشته میشوند. در qcow2، طبق مستندات QEMU، وضعیت ماشین هم در همان ایمیج نوشتنی ذخیره میشود.
چهار خانواده رایج است: اسنپشات داخلی qcow2، LVM کلاسیک با دستگاه COW جداگانه، thin در LVM-thin، و دیتاست در ZFS. ایده همه copy-on-write است، ولی حالت خرابیشان یکی نیست.
در لحظه ساخت تقریباً هیچ. به تصریح مستندات OpenZFS، اسنپشات در ابتدا فضای اضافهای در pool نمیگیرد، اما با تغییر داده در دیتاست فعال رشد میکند.
پاسخ از RPO درمیآید؛ حداکثر دادهای که از دست رفتنش قابل تحمل است. اگر چهار ساعت سفارش را میتوانید از دست بدهید، فاصله دو بکاپ باید کمتر از چهار ساعت باشد.
یک اسکریپت که آرشیو را میسازد و با rsync بیرون از سرور میفرستد، بههمراه یک کرون و سیاست حذف نسخههای قدیمی. روی هایپروایزر، Proxmox برای vzdump زمانبندی داخلی و Backup Job دارد.
به توضیح اوراکل، بازگردانی یک اسنپشات، اسنپشاتهای بعد از آن را بیاعتبار میکند، مگر اینکه بازیابی در مقصد دیگری انجام شود. در ZFS هم گزینه بازگردانی بازگشتی، اسنپشاتهای جدیدتر را حذف میکند.
تنها راه معتبر، بازیابی واقعی روی محیطی جداگانه و بررسی کارکرد سرویس است. سیسا هم روی تست منظم دسترسپذیری و صحت تأکید میکند؛ باز شدن بدون خطای یک آرشیو، نشانه سالم بودن داده درونش نیست.
جمعبندی؛ اسنپشات دکمه برگشت است و بکاپ بیمه
تفاوت اسنپشات و بکاپ یک بحث لغوی نیست، یک تقسیم کار است. اسنپشات روی همان استوریج ساخته میشود و بر پایه copy-on-write فقط بلاکهای تغییریافته را نگه میدارد. همین ساختار آن را برای برگشت از یک تغییر عمدی بیرقیب و برای نجات داده بیفایده میکند. حالت خرابی هم به فناوری بستگی دارد: در LVM کلاسیک پر شدن دستگاه COW خود اسنپشات را غیرفعال میکند، و در LVM-thin و ZFS تمام شدن فضای مشترک نوشتن روی داده زنده را هم تهدید میکند. اوراکل تصریح میکند اسنپشات در برابر خرابی آرایه استوریج آسیبپذیر است و برای بکاپ شدن باید روی رسانه دیگری بازسازی شود. برنامه عملی روشن است: پیش از هر آپدیت اسنپشات بگیرید و تا اطمینان از سلامت سرویس نگهش دارید. در موازات آن یک چرخه بکاپ خودکار بیرون از سرور بسازید که سه شرط قاعده 3-2-1 را برآورده کند. یک نسخهاش باید از دسترس خود سرور خارج بماند و هر ماه روی محیطی خالی بازیابی شود.
🚀 سرور مجازی ایران وبداده
پنل اختصاصی با اسنپشات و بازگردانی، نصب مجدد سیستمعامل و کنسول VNC در اختیار شما است و امکان تست ساعتی رایگان سرور هم وجود دارد.
اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.