نصب Proxmox Backup Server و اتصال آن به Proxmox VE

نصب 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

  1. فایل ISO را روی فلش بنویسید یا از طریق کنسول مدیریتی سرور (iLO یا iDRAC) Mount کنید و از آن بوت شوید.
  2. دیسک سیستم‌عامل را انتخاب کنید. اگر دو دیسک برای سیستم‌عامل دارید، در بخش Options گزینه ZFS با RAID1 را انتخاب کنید و دیسک‌های بکاپ را در این مرحله دست نزنید.
  3. منطقه زمانی، رمز root و ایمیل مدیر را وارد کنید. ایمیل برای اعلان خطای بکاپ و Verify استفاده می‌شود.
  4. نام کامل هاست (مثلاً pbs01.corp.local) و IP ثابت، Gateway و DNS را تنظیم کنید.
  5. پس از ری‌استارت، رابط وب را با آدرس 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 کنید و طبق توصیه مستندات، همه بکاپ‌ها را دست‌کم ماهی یک بار دوباره بررسی کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *