نصب Proxmox Backup Server روی یک سرور جداگانه و اتصال آن به Proxmox VE، بکاپ افزایشی با Deduplication، بررسی صحت دادهها و بازیابی ماشینها و کانتینرها را در یک ابزار متنباز فراهم میکند. مراحل اصلی به این ترتیب است: نصب از ISO، ساخت Datastore، تعریف کاربر با کمترین دسترسی لازم، افزودن Storage در Proxmox VE، زمانبندی بکاپ، تنظیم Prune و Garbage Collection و Verify، و در پایان نسخه دوم خارج از سایت و تست بازیابی.
دستورها بر اساس مستندات رسمی Proxmox Backup Server 4.2 (منتشرشده در اردیبهشت ۱۴۰۵ و مبتنی بر Debian 13) نوشته شدهاند. معرفی نسخهها و فایل نصب در دانلود Proxmox Backup Server آمده است و اگر هنوز کلاستر را راه نینداختهاید، از آموزش کانفیگ سرور Proxmox VE شروع کنید. همه مراحل را اول روی محیط آزمایشی اجرا کنید.
پیشنیازهای سختافزاری و محل نصب
مستندات Proxmox نصب سرور بکاپ روی خود هایپروایزر را توصیه نمیکند و سرور فیزیکی جداگانه را امنتر میداند؛ اگر هاست Proxmox VE از کار بیفتد یا رمزگذاری شود، بکاپها نباید همراه آن از دست بروند. جدول زیر حداقلها و پیشنهادهای مستندات رسمی را نشان میدهد:
| منبع | حداقل برای ارزیابی | پیشنهاد برای محیط عملیاتی |
|---|---|---|
| پردازنده | 64 بیتی با دستکم 2 هسته | پردازنده جدید Intel یا AMD با دستکم 4 هسته |
| حافظه | 2 گیگابایت | 4 گیگابایت برای سیستمعامل و سرویسها، بهعلاوه دستکم 1 گیگابایت برای هر ترابایت فضای بکاپ |
| دیسک سیستمعامل | بیش از 8 گیگابایت | دستکم 32 گیگابایت روی RAID سختافزاری با باتری یا ZFS با افزونگی |
| فضای بکاپ | هر دیسک محلی | SSD سازمانی؛ اگر از هارد مکانیکی استفاده میکنید، دیسک SSD برای Metadata |
| شبکه | یک کارت شبکه | کارتهای شبکه چندگیگابیتی با افزونگی |
برای فایلسیستم Datastore از ext4، XFS یا ZFS استفاده کنید. PBS دادهها را بهصورت Chunkهای کوچک در دهها هزار پوشه ذخیره میکند و فایلسیستم باید تعداد زیادی زیرپوشه را پشتیبانی کند.
نصب Proxmox Backup Server از ISO
- فایل ISO را روی فلش بنویسید یا از طریق کنسول مدیریتی سرور (iLO یا iDRAC) Mount کنید و از آن بوت شوید.
- دیسک سیستمعامل را انتخاب کنید. اگر دو دیسک برای سیستمعامل دارید، در بخش Options گزینه ZFS با RAID1 را انتخاب کنید و دیسکهای بکاپ را در این مرحله دست نزنید.
- منطقه زمانی، رمز root و ایمیل مدیر را وارد کنید. ایمیل برای اعلان خطای بکاپ و Verify استفاده میشود.
- نام کامل هاست (مثلاً pbs01.corp.local) و IP ثابت، Gateway و DNS را تنظیم کنید.
- پس از ریاستارت، رابط وب را با آدرس https://IP:8007 باز کنید و با کاربر root و Realm با نام Linux PAM وارد شوید.
نصب روی Debian 13 موجود
اگر سرور Debian 13 آماده دارید، میتوانید PBS را از مخزن رسمی نصب کنید. نمونه زیر مخزن no-subscription را اضافه میکند؛ Proxmox این مخزن را برای محیط آزمایشی و غیرعملیاتی توصیه میکند و مخزن Enterprise به اشتراک نیاز دارد. پیش از ادامه، هش فایل کلید را با مقدار درجشده در ویکی Proxmox مقایسه کنید.
wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg \
-O /usr/share/keyrings/proxmox-archive-keyring.gpg
sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg
cat > /etc/apt/sources.list.d/proxmox.sources <<'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pbs
Suites: trixie
Components: pbs-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
apt update
apt install proxmox-backup-serverساخت Datastore روی دیسکهای بکاپ
Datastore محلی است که Chunkها و فهرست بکاپها در آن نوشته میشود. از رابط وب در بخش Administration → Storage / Disks یا با دستورهای زیر، دیسک را آماده کنید. نام دیسکها را حتماً از خروجی disk list بخوانید تا دیسک اشتباهی پاک نشود.
# list disks and their usage
proxmox-backup-manager disk list
# single disk: GPT, XFS filesystem, added as datastore "store1"
proxmox-backup-manager disk initialize sdb
proxmox-backup-manager disk fs create store1 --disk sdb --filesystem xfs --add-datastore true
# or: ZFS mirror from two disks
proxmox-backup-manager disk zpool create zpool1 --devices sdc,sdd --raidlevel mirror
# datastore on a path that is already mounted
proxmox-backup-manager datastore create store2 /backup/disk1/store2اگر چند کلاستر یا چند شعبه روی یک سرور بکاپ میگیرند، به جای ساخت چند Datastore از Namespace استفاده کنید. هر Namespace تا هشت سطح تودرتو دارد و دسترسی آن را میتوان جدا تعیین کرد، در حالی که Deduplication در کل Datastore انجام میشود.
کاربر اختصاصی با کمترین دسترسی لازم
اتصال Proxmox VE با کاربر root سرور بکاپ رایج است و خطرناک. رمز این اتصال روی نودهای Proxmox VE ذخیره میشود؛ اگر یکی از نودها آلوده شود، مهاجم با همان رمز میتواند بکاپها را هم پاک کند. برای همین یک کاربر در Realm با نام pbs بسازید و فقط نقش DatastoreBackup را روی Datastore به آن بدهید.
| نقش | مجوزها | کاربرد |
|---|---|---|
| DatastoreBackup | بکاپ و بازیابی بکاپهای متعلق به همان کاربر، بهعلاوه خواندن و Verify | اتصال Proxmox VE و کلاینتهای بکاپ |
| DatastorePowerUser | بکاپ، بازیابی و Prune بکاپهای متعلق به خود کاربر | وقتی Prune باید سمت کلاینت انجام شود |
| DatastoreAdmin | همه کارها روی Datastoreهای موجود | مدیر سرور بکاپ |
| DatastoreAudit | مشاهده تنظیمات، آمار و فهرست محتوا بدون خواندن داده | مانیتورینگ و گزارش |
proxmox-backup-manager user create pve-backup@pbs --email backup-admin@example.com
proxmox-backup-manager acl update /datastore/store1 DatastoreBackup --auth-id pve-backup@pbs
# check the effective permissions
proxmox-backup-manager user permissions pve-backup@pbs --path /datastore/store1رمز کاربر را از مسیر Configuration → Access Control → User Management در رابط وب تعیین کنید. به جای رمز میتوانید برای هر کلاستر یک API Token بسازید و همین نقش را به Token بدهید؛ در این حالت با باطل کردن Token، دسترسی همان کلاستر قطع میشود و بقیه اتصالها کار میکنند.
اتصال Proxmox Backup Server به Proxmox VE
گواهی پیشفرض PBS خودامضا است، پس Proxmox VE برای اعتماد به سرور به Fingerprint آن نیاز دارد. آن را روی سرور بکاپ بخوانید و Storage را روی یکی از نودهای کلاستر اضافه کنید؛ تنظیم Storage در کل کلاستر مشترک است. در رابط وب همین کار از مسیر Datacenter → Storage → Add → Proxmox Backup Server انجام میشود.
# on the backup server
proxmox-backup-manager cert info | grep Fingerprint
# on one Proxmox VE node
pvesm add pbs pbs-store1 --server 192.168.20.10 --datastore store1 \
--username pve-backup@pbs --fingerprint 64:d3:ff:3a:50:38:53:5a:9b:f7:50:...:ab:fe
pvesm set pbs-store1 --password
pvesm status --storage pbs-store1در تب Encryption همان پنجره میتوانید رمزنگاری سمت کلاینت را فعال کنید تا داده پیش از رسیدن به سرور بکاپ رمز شود. طبق مستندات، بدون کلید رمزنگاری بکاپها قابل خواندن نیستند؛ یک نسخه از کلید را بیرون از کلاستر، مثلاً در Password Manager سازمان و یک نسخه چاپی در جای امن، نگه دارید.
زمانبندی بکاپ در Proxmox VE
از مسیر Datacenter → Backup → Add یک Job بسازید: Storage را pbs-store1، زمان اجرا را بیرون از ساعت کاری، انتخاب ماشینها را روی All یا یک Pool و حالت را Snapshot بگذارید. پیش از فعال کردن Job، یک بکاپ دستی از یک ماشین کماهمیت بگیرید و خروجی Task را بررسی کنید:
# first manual test for VM 100
vzdump 100 --storage pbs-store1 --mode snapshot
# container: reuse unchanged file chunks from the previous snapshot
vzdump 123 --storage pbs-store1 --pbs-change-detection-mode metadataاولین بکاپ هر ماشین کل داده را منتقل میکند و بکاپهای بعدی فقط Chunkهای جدید را میفرستند. برای کانتینرها حالت metadata فایلهای بدون تغییر را از روی Metadata بکاپ قبلی تشخیص میدهد و آنها را دوباره نمیخواند. اگر نوشتن روی سرور بکاپ کند است و ماشین در زمان بکاپ کند میشود، گزینه Fleecing را با یک استوریج محلی سریع و Thin فعال کنید. نگهداری نسخهها را در سمت سرور بکاپ با Prune Job مدیریت کنید تا سیاست نگهداری فقط در یک جا تعریف شده باشد.
Prune، Garbage Collection و Verify
این سه کار جدا از هم زمانبندی میشوند. Prune فقط Snapshotهای خارج از سیاست نگهداری را از فهرست حذف میکند و فضای دیسک را آزاد نمیکند. فضای Chunkهای بیاستفاده را Garbage Collection آزاد میکند و طبق مستندات، فقط Chunkهایی را پاک میکند که زمان دسترسی آنها از 24 ساعت و 5 دقیقه پیش از شروع GC قدیمیتر باشد. به همین دلیل بعد از Prune و GC در همان روز، فضای خالی معمولاً تا اجرای بعدی GC برنمیگردد.
| گزینه | معنی | مقدار نمونه |
|---|---|---|
| keep-last | آخرین N بکاپ، صرفنظر از زمان | 3 |
| keep-daily | آخرین بکاپ هر روز برای N روز | 7 |
| keep-weekly | آخرین بکاپ هر هفته برای N هفته | 4 |
| keep-monthly | آخرین بکاپ هر ماه برای N ماه | 6 |
| keep-yearly | آخرین بکاپ هر سال برای N سال | 1 |
مقادیر جدول فقط نمونهاند و سیاست واقعی را بر اساس نیاز بازیابی هر سرویس و فضای موجود تعیین کنید. پیش از ذخیره، اثر سیاست را با Prune Simulator خود Proxmox روی زمانبندی بکاپتان ببینید. Prune Job را از بخش Prune & GC Jobs در صفحه Datastore بسازید و زمانبندی GC را هم تنظیم کنید:
proxmox-backup-manager datastore update store1 --gc-schedule 'daily'Verify Job با خواندن دوباره Chunkها و مقایسه Checksum، خرابی دیسک یا تغییر ناخواسته داده را پیدا میکند. گزینه ignore-verified بکاپهایی که قبلاً سالم تشخیص داده شدهاند را رد میکند، اما مستندات توصیه میکند همه بکاپها دستکم ماهی یک بار دوباره Verify شوند.
نسخه دوم بکاپ خارج از سایت
یک سرور بکاپ در همان رک، در برابر آتشسوزی، سرقت یا حملهای که به کل شبکه برسد کافی نیست. PBS با تعریف Remote و Sync Job، بکاپها را به سرور بکاپ دوم در ساختمان یا دیتاسنتر دیگر منتقل میکند. اگر Sync از سمت سرور دوم بهصورت Pull انجام شود، سرور اصلی هیچ رمزی برای حذف دادههای سایت دوم ندارد.
# on the offsite server: register the main backup server as a remote
proxmox-backup-manager remote create pbs-main --host 192.168.20.10 \
--userid sync-reader@pbs --password 'SECRET' \
--fingerprint 64:d3:ff:3a:50:38:53:5a:9b:f7:50:...:ab:fe
# pull store1 from pbs-main into the local datastore offsite1 every night
proxmox-backup-manager sync-job create main-to-offsite --remote pbs-main \
--remote-store store1 --store offsite1 --schedule '02:30'Sync در جهت Push هم پشتیبانی میشود و از نسخه 4.2 میتواند Snapshotها را پیش از ارسال رمزنگاری کند. در همین نسخه، Object Storage سازگار با S3 هم بهطور رسمی بهعنوان محل ذخیره Datastore پشتیبانی میشود. اگر طراحی نسخه خارج از سایت، RPO و RTO و سناریوی بازیابی را یکجا لازم دارید، خدمات بکاپگیری سرور و بازیابی بحران همین موارد را پوشش میدهد.
بکاپ از سرور لینوکسی با proxmox-backup-client
PBS از سرورهای فیزیکی لینوکسی هم بکاپ میگیرد. روی این سرورها proxmox-backup-client را نصب کنید و فایلسیستم را با همان Deduplication بکاپ بگیرید:
export PBS_REPOSITORY='pve-backup@pbs@192.168.20.10:store1'
# optional client-side encryption key (keep a copy outside this server)
proxmox-backup-client key create my-backup.key
proxmox-backup-client backup root.pxar:/ --keyfile my-backup.keyتست بازیابی پس از بکاپ موفق
سبز بودن Taskهای بکاپ فقط نشان میدهد داده نوشته شده است. دستکم هر ماه یک ماشین را از روی بکاپ با VMID جدید و روی شبکه جدا Restore کنید، بوت و سرویسهایش را بررسی کنید و زمان بازیابی را ثبت کنید. برای بازیابی یک فایل هم از گزینه File Restore در صفحه Storage استفاده کنید. اگر وضعیت فعلی بکاپها را نمیدانید، بررسی وضعیت بکاپ و تست بازیابی نقطه شروع خوبی است و برای سناریوی آلودگی، بازیابی از باجافزار را ببینید.
خطاهای رایج و راهحل آنها
| خطا یا نشانه | علت محتمل | راهحل |
|---|---|---|
| خطای Fingerprint در Proxmox VE | گواهی سرور بکاپ عوض شده است | Fingerprint جدید را با cert info بخوانید و در تنظیم Storage جایگزین کنید |
| permission check failed | نقش روی مسیر اشتباه یا کاربر اشتباه داده شده | با user permissions مجوزهای مؤثر را روی /datastore/store1 بررسی کنید |
| فضا بعد از Prune آزاد نمیشود | GC اجرا نشده یا Chunkها هنوز در بازه 24 ساعت و 5 دقیقهاند | زمانبندی GC را بررسی کنید و اجرای بعدی را ببینید |
| بکاپ ماشین را کند میکند | نوشتن کند روی سرور بکاپ یا شبکه ضعیف | Fleecing را فعال کنید و مسیر شبکه بکاپ را از ترافیک کاربران جدا کنید |
| Datastore پر شده و بکاپها شکست میخورند | سیاست نگهداری بزرگتر از فضای موجود | Prune Simulator را اجرا، سیاست را اصلاح و GC را اجرا کنید |
برای اعلان خطای Taskها، ایمیل یا مقصد Notification را در سرور بکاپ تنظیم کنید و وضعیت Datastore را در سیستم مانیتورینگ ببینید. در پروژههای مهاجرت هم، مثل مهاجرت از VMware به Proxmox، سرور بکاپ را پیش از انتقال اولین ماشین آماده کنید.
سوالات متداول
آیا میتوان Proxmox Backup Server را روی همان سرور Proxmox VE نصب کرد؟
از نظر فنی بله، اما مستندات آن را برای محیط عملیاتی توصیه نمیکند. با خرابی یا آلودگی هاست، بکاپها هم از دست میروند؛ برای آزمایشگاه اشکالی ندارد.
Proxmox Backup Server رایگان است؟
بله، نرمافزار متنباز با مجوز AGPLv3 است و همه قابلیتها بدون اشتراک کار میکنند. اشتراک برای مخزن Enterprise و پشتیبانی رسمی است.
تفاوت بکاپ روی PBS با بکاپ vzdump روی NFS چیست؟
vzdump روی NFS هر بار یک فایل کامل میسازد. PBS داده را Chunk و Deduplicate میکند، بکاپهای بعدی فقط داده جدید را میفرستند و Verify، رمزنگاری سمت کلاینت و Sync به سایت دوم را هم دارد.
هر چند وقت یک بار Verify اجرا کنیم؟
بکاپهای جدید را پس از ایجاد Verify کنید و طبق توصیه مستندات، همه بکاپها را دستکم ماهی یک بار دوباره بررسی کنید.





