٪80 تخفیف

دانلود کتاب آموزشی مجازی‌سازی با Proxmox VE جلد اول

دسته‌بندی: برچسب: تاریخ به روز رسانی: 6 دی 1404 تعداد بازدید: 734 بازدید
ویژگی های محصول: پشتیبانی واتساپ

قیمت اصلی: ۲,۰۰۰,۰۰۰ تومان بود.قیمت فعلی: ۴۰۰,۰۰۰ تومان.

torobpay
هر قسط با ترب‌پی: ۱۰۰,۰۰۰ تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.

دوره جامع آموزش مجازی‌سازی با Proxmox VE معمولاً شامل مجموعه‌ای از سر فصل‌ها است که به شما کمک می‌کند تا اصول، پیکربندی، مدیریت و استفاده از این پلتفرم مجازی‌سازی قدرتمند را به خوبی یاد بگیرید. Proxmox VE (Virtual Environment) یک پلتفرم متن‌باز برای مجازی‌سازی است که از KVM (برای مجازی‌سازی ماشین‌های مجازی) و LXC (برای کانتینرها) پشتیبانی می‌کند. در اینجا سر فصل‌های معمول این دوره‌ها آورده شده است:

بخش 1. مقدمه به مجازی‌سازی و Proxmox VE

 

فصل 1. مفاهیم پایه‌ای مجازی‌سازی

  • تعریف مجازی‌سازی و تاریخچه آن
  • انواع مختلف مجازی‌سازی:
    • مجازی‌سازی سطح سخت‌افزار (Hardware Virtualization)
    • مجازی‌سازی سطح سیستم‌عامل (OS-level Virtualization)
    • مجازی‌سازی شبکه و ذخیره‌سازی
  • مزایا و چالش‌های استفاده از مجازی‌سازی
  • کاربردهای معمول مجازی‌سازی در صنعت و تجارت

فصل 2. معرفی Proxmox VE

  • معرفی کلی Proxmox VE به عنوان یک پلتفرم مجازی‌سازی متن‌باز
  • ویژگی‌های برجسته Proxmox VE
    • پشتیبانی از KVM برای ماشین‌های مجازی
    • پشتیبانی از LXC برای کانتینرها
    • ادغام ذخیره‌سازی و شبکه در یک پلتفرم واحد
  • مزایای استفاده از Proxmox VE در مقایسه با پلتفرم‌های دیگر مثل VMware و Hyper-V
  • آشنایی با جامعه متن‌باز Proxmox VE و پشتیبانی آن

فصل 3. ویژگی‌ها و قابلیت‌های کلیدی Proxmox VE

  • مجازی‌سازی ماشین‌های مجازی با KVM
  • کانتینرها (LXC) و کاربرد آن‌ها در Proxmox
  • مدیریت ذخیره‌سازی:
    • ذخیره‌سازی محلی و شبکه‌ای
    • پشتیبانی از Ceph برای مقیاس‌پذیری
    • استفاده از ZFS برای مدیریت داده‌ها
  • مدیریت شبکه:
    • تعریف و مدیریت شبکه‌های مجازی
    • پشتیبانی از VLAN، Bridge و Bonding
  • پشتیبانی از High Availability (HA) و Clustering

فصل 4. مقایسه Proxmox VE با سایر پلتفرم‌های مجازی‌سازی

  • مقایسه Proxmox VE با VMware vSphere
  • مقایسه Proxmox VE با Microsoft Hyper-V
  • مزایا و معایب هر کدام از این پلتفرم‌ها
  • انتخاب Proxmox VE برای نیازهای خاص کسب‌وکار

فصل 5. نصب Proxmox VE و تنظیمات اولیه

  • مراحل نصب Proxmox VE بر روی سخت‌افزار فیزیکی
  • نصب و پیکربندی اولیه از طریق رابط وب
  • بررسی پیش‌نیازهای سخت‌افزاری و نرم‌افزاری برای نصب Proxmox VE
  • آشنایی با تنظیمات شبکه و ذخیره‌سازی اولیه
  • معرفی ابزارهای مدیریتی و گزارش‌دهی در Proxmox VE

بخش 2. آشنایی با محیط کاربری Proxmox VE

 

فصل 1. مرور رابط کاربری وب (Web UI) Proxmox

  • معرفی رابط کاربری وب Proxmox VE
  • نحوه دسترسی به Web UI و ورود به سیستم
  • مرور کلی بر صفحه اصلی:
    • وضعیت سیستم (Node Status)
    • وضعیت ماشین‌های مجازی و کانتینرها
    • هشدارها و رویدادها
  • نمایش اطلاعات سیستم و منابع (CPU, RAM, Storage)

فصل 2. آشنایی با پنل مدیریتی Proxmox

  • نمای کلی از نوار کناری و منوهای اصلی
  • بخش‌های مختلف پنل مدیریتی:
    • Datacenter: مدیریت محیط کلی و تنظیمات سطح Datacenter
    • Node: مدیریت تنظیمات و منابع هر نود (سرور)
    • VM/CT: مدیریت ماشین‌های مجازی و کانتینرها
  • تنظیمات نمایشی (Themes, Languages, User Preferences)
  • مدیریت کاربر و دسترسی‌ها از طریق Web UI

فصل 3. مدیریت ماشین‌های مجازی و کانتینرها

  • نحوه ایجاد، راه‌اندازی و خاموش کردن ماشین‌های مجازی از طریق Web UI
  • پیکربندی منابع (CPU, RAM, Disk) برای ماشین‌های مجازی
  • مشاهده وضعیت و گزارش‌های ماشین‌های مجازی
  • مدیریت کانتینرها (LXC):
    • ایجاد، راه‌اندازی و حذف کانتینرها
    • پیکربندی منابع و شبکه در کانتینرها
    • نظارت بر وضعیت و عملکرد کانتینرها

فصل 4. مدیریت شبکه در Proxmox VE

  • آشنایی با بخش شبکه در Web UI
  • تنظیمات و پیکربندی شبکه:
    • Bridge Networking: ایجاد شبکه‌های مجازی
    • VLAN: پیکربندی شبکه‌های مجازی و اختصاص VLAN به ماشین‌های مجازی
    • Bonding: اتصال چندین رابط شبکه برای افزونگی
  • تنظیمات IP و DHCP از Web UI
  • مشاهده و مدیریت وضعیت شبکه‌های متصل به سیستم

فصل 5. مدیریت ذخیره‌سازی در Proxmox VE

  • نمایش منابع ذخیره‌سازی موجود و استفاده از آن‌ها
  • پیکربندی ذخیره‌سازی جدید از Web UI:
    • افزودن ذخیره‌سازی محلی، NFS، iSCSI
    • پیکربندی Ceph و ZFS در محیط Proxmox
  • مشاهده وضعیت فضای ذخیره‌سازی و تخصیص منابع به ماشین‌های مجازی و کانتینرها
  • پشتیبانی از افزونگی و بکاپ‌گیری از داده‌ها از طریق Web UI

فصل 6. مدیریت Datacenter و Clustering در Proxmox VE

  • مدیریت Datacenter در Web UI
  • ایجاد و مدیریت خوشه‌های Proxmox VE از طریق Web UI
  • مشاهده وضعیت نودهای مختلف در خوشه
  • انجام تنظیمات HA (High Availability) برای ماشین‌های مجازی در Datacenter
  • نظارت و مدیریت وضعیت خوشه‌ها

فصل 7. گزارش‌ها و هشدارها در Proxmox VE

  • مشاهده رویدادها و گزارش‌های سیستم
  • تنظیم هشدارها برای نظارت بر منابع و مشکلات سیستم
  • پیکربندی و دریافت ایمیل‌های هشدار در صورت بروز مشکلات
  • استفاده از Logs برای عیب‌یابی و تجزیه‌و‌تحلیل مشکلات

فصل 8. تنظیمات امنیتی و کاربران در Web UI

  • مدیریت دسترسی‌ها و مجوزها از طریق Web UI
  • ایجاد و مدیریت کاربران مختلف و تعیین سطح دسترسی
  • فعال‌سازی احراز هویت دو مرحله‌ای (2FA) برای امنیت بیشتر
  • تنظیمات امنیتی برای حفاظت از Web UI

بخش 3. ایجاد و مدیریت ماشین‌های مجازی (VMs)

 

فصل 1. مفاهیم پایه‌ای ماشین‌های مجازی

  • معرفی ماشین‌های مجازی (VMs) و نحوه عملکرد آن‌ها
  • تفاوت‌های بین ماشین‌های مجازی و کانتینرها
  • اجزای کلیدی یک ماشین مجازی:
    • CPU، RAM، Disk، Network
    • ساختار و اجزای ماشین مجازی در Proxmox VE

فصل 2. ایجاد ماشین‌های مجازی جدید

  • نحوه ایجاد ماشین مجازی از طریق Web UI
  • تنظیمات اولیه هنگام ایجاد VM:
    • انتخاب سیستم‌عامل (OS)
    • تخصیص منابع (CPU, RAM, Disk)
    • انتخاب نوع کارت شبکه
    • انتخاب نوع دیسک (SCSI, IDE, VirtIO)
  • انتخاب و پیکربندی Media (CD/DVD) برای نصب سیستم‌عامل
  • پیکربندی ماشین مجازی در حالت UEFI یا BIOS
  • انتخاب تنظیمات اضافی مانند پشتیبانی از KVM و Nested Virtualization

فصل 3. نصب سیستم‌عامل در ماشین‌های مجازی

  • نصب سیستم‌عامل‌های مختلف (Linux, Windows) در ماشین مجازی
  • روش‌های مختلف نصب سیستم‌عامل‌ها:
    • از طریق فایل ISO
    • از طریق شبکه (PXE Boot)
    • استفاده از Templateها برای نصب سریع
  • پیکربندی شبکه و اتصال به اینترنت در حین نصب
  • تنظیمات لازم برای نصب در حالت Headless (بدون رابط گرافیکی)

فصل 4. پیکربندی منابع ماشین‌های مجازی

  • تخصیص منابع به ماشین‌های مجازی:
    • CPU: انتخاب تعداد هسته‌ها و تخصیص CPU
    • RAM: تخصیص حافظه به ماشین مجازی و تنظیمات پیشرفته
    • Disk: انتخاب نوع دیسک (Hard Disk, SSD) و تنظیمات I/O
    • Network: پیکربندی کارت شبکه و اتصال به شبکه‌های مختلف
  • استفاده از VirtIO برای بهبود عملکرد ماشین‌های مجازی
  • تنظیمات Advanced در VM:
    • دستگاه‌های اضافی (USB, PCI)
    • تنظیمات Boot Order

فصل 5. مدیریت و نظارت بر ماشین‌های مجازی

  • مشاهده وضعیت ماشین‌های مجازی از Web UI
  • بررسی اطلاعات عملکرد (CPU, RAM, Disk I/O)
  • انجام عملیات بر روی ماشین‌های مجازی:
    • Start، Stop، Reboot، Shutdown
    • Suspend و Resume
    • Snapshot گرفتن از وضعیت سیستم
  • مدیریت حالت‌های مختلف ماشین مجازی:
    • حالت متوقف (Stopped)
    • حالت در حال اجرا (Running)
    • حالت تعلیق (Suspended)
    • حالت قفل (Locked)

فصل 6. مدیریت دیسک و ذخیره‌سازی ماشین‌های مجازی

  • افزودن و مدیریت دیسک‌های اضافی به ماشین‌های مجازی
  • تغییر اندازه دیسک‌های ماشین مجازی (Resize)
  • استفاده از انواع مختلف ذخیره‌سازی (Local Storage, NFS, Ceph)
  • پیکربندی افزونگی (Redundancy) و بکاپ‌گیری از دیسک‌ها
  • اتصال به سیستم‌های ذخیره‌سازی خارجی برای ذخیره‌سازی VM

فصل 7. پیکربندی و مدیریت شبکه ماشین‌های مجازی

  • تنظیمات شبکه در ماشین‌های مجازی:
    • Bridge Networking: اتصال ماشین مجازی به شبکه فیزیکی
    • VLAN و اتصال ماشین‌های مجازی به شبکه‌های مختلف
    • تنظیمات NAT برای اتصال به اینترنت
  • مدیریت کارت شبکه و تغییر تنظیمات در VM
  • پیکربندی و استفاده از کارت شبکه VirtIO برای عملکرد بهتر

فصل 8. مدیریت Snapshotها و Backup ماشین‌های مجازی

  • ایجاد Snapshot از ماشین‌های مجازی
  • استفاده از Snapshot برای تست و بازیابی سیستم‌ها
  • نحوه انجام پشتیبان‌گیری از ماشین‌های مجازی و ذخیره‌سازی نسخه‌های مختلف
  • مدیریت و بازگردانی Snapshotها
  • تنظیمات پشتیبان‌گیری خودکار و زمانبندی آن

فصل 9. مدیریت ماشین‌های مجازی در محیط‌های خوشه‌ای (Clustering)

  • ایجاد و مدیریت ماشین‌های مجازی در یک خوشه Proxmox VE
  • انتقال ماشین‌های مجازی بین نودهای مختلف در خوشه
  • پیکربندی HA (High Availability) برای ماشین‌های مجازی
  • مشاهده وضعیت ماشین‌های مجازی در خوشه و مانیتورینگ آن‌ها

بخش 4. مدیریت کانتینرها (LXC)

 

فصل 1. مفاهیم پایه‌ای کانتینرها (LXC)

  • معرفی کانتینرها و تفاوت آن‌ها با ماشین‌های مجازی
  • مزایا و معایب استفاده از LXC
    • کارایی بالا و استفاده کمتر از منابع
    • ایزولاسیون بین کانتینرها
  • نحوه کار LXC: استفاده از هسته لینوکس برای ایزوله‌سازی منابع
  • کاربردهای معمول کانتینرها در محیط‌های سرور و توسعه

فصل 2. ایجاد کانتینرهای LXC در Proxmox VE

  • نحوه ایجاد کانتینر جدید از طریق Web UI
  • انتخاب قالب سیستم‌عامل برای کانتینر
    • کانتینرهای مبتنی بر لینوکس (Debian, Ubuntu, CentOS)
    • استفاده از Templateها برای راه‌اندازی سریع
  • تخصیص منابع (CPU, RAM, Disk) به کانتینر
  • تنظیمات شبکه در کانتینر:
    • Bridge Networking، NAT و VLAN
  • پیکربندی دستگاه‌ها و دیسک‌های اضافی برای کانتینر
  • انتخاب و پیکربندی سیستم فایل برای کانتینر

فصل 3. مدیریت کانتینرهای LXC

  • مشاهده وضعیت کانتینرها از Web UI
  • انجام عملیات مختلف بر روی کانتینرها:
    • Start، Stop، Reboot، Shutdown
    • Suspend و Resume
  • مدیریت منابع و محدودیت‌ها:
    • تخصیص CPU و حافظه
    • محدودیت‌های I/O (Disk و Network)
  • مشاهده و بررسی لاگ‌ها و وضعیت کانتینر

فصل 4. پیکربندی و مدیریت شبکه در کانتینرها

  • تنظیمات شبکه در کانتینرهای LXC:
    • اتصال به شبکه‌های موجود با استفاده از Bridge یا NAT
    • استفاده از VLAN و تنظیمات پیشرفته شبکه در LXC
  • پیکربندی IP و DHCP برای کانتینرها
  • استفاده از کارت شبکه VirtIO در کانتینرها برای افزایش کارایی
  • پیکربندی DNS و Gateway برای ارتباط اینترنتی کانتینرها

فصل 5. مدیریت دیسک و ذخیره‌سازی کانتینرها

  • استفاده از ذخیره‌سازی محلی و شبکه‌ای برای کانتینرها
  • تنظیمات دیسک کانتینر:
    • تخصیص فضای ذخیره‌سازی برای هر کانتینر
    • انتخاب و استفاده از فرمت‌های ذخیره‌سازی مختلف (ext4, ZFS, Btrfs)
  • پشتیبان‌گیری و بازیابی داده‌های کانتینرها
    • ایجاد Snapshot برای ذخیره وضعیت کانتینر
    • پشتیبان‌گیری از کانتینرها و بازیابی آن‌ها از نسخه‌های پشتیبان

فصل 6. مدیریت امنیت در کانتینرهای LXC

  • تنظیمات ایزولاسیون منابع در LXC
  • استفاده از ویژگی‌های امنیتی مانند cgroups و namespaces
  • تنظیمات دسترسی و مجوزها در کانتینرها
  • استفاده از AppArmor و SELinux برای افزایش امنیت
  • مدیریت کاربران و سطوح دسترسی در داخل کانتینر

فصل 7. مدیریت پیکربندی پیشرفته در LXC

  • تنظیمات پیشرفته سیستم‌عامل و هسته برای کانتینرها
  • استفاده از LXC config files برای پیکربندی کانتینر
  • تنظیمات ورودی و خروجی I/O برای بهینه‌سازی عملکرد
  • تخصیص منابع و تخصیص حافظه (Swapping, Memory Limits)
  • پیکربندی تنظیمات شبکه پیشرفته و ویژگی‌های VPN برای کانتینرها

فصل 8. اسکن و نظارت بر وضعیت کانتینرها

  • استفاده از ابزارهای مانیتورینگ و اسکن وضعیت کانتینرها
  • پیگیری مصرف منابع (CPU, RAM, Disk I/O) در کانتینرها
  • مشاهده و نظارت بر عملکرد شبکه در داخل کانتینرها
  • استفاده از ابزارهای extern برای مانیتورینگ کانتینرها (مثل Zabbix, Prometheus)
  • تنظیم هشدارها برای مصرف منابع غیرمعمول یا خطاها

فصل 9. پشتیبان‌گیری، Snapshot و Migration در LXC

  • استفاده از Snapshot برای مدیریت وضعیت کانتینر
  • پشتیبان‌گیری از کانتینرها و ذخیره‌سازی نسخه‌های مختلف
  • بازیابی کانتینر از نسخه‌های پشتیبان
  • انتقال (Migration) کانتینرها بین نودهای مختلف در خوشه Proxmox
  • تنظیمات HA برای تضمین در دسترس بودن کانتینرها
[cdb_course_lessons title=”بخش 1. مقدمه به مجازی‌سازی و Proxmox VE”][cdb_course_lesson title=”فصل 1. مفاهیم پایه‌ای مجازی‌سازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تعریف مجازی‌سازی” subtitle=”توضیحات کامل”]مجازی‌سازی (Virtualization) یک فناوری است که به کمک آن می‌توان یک منبع فیزیکی را به چندین محیط مجزا تقسیم کرد. این کار باعث افزایش بهره‌وری، کاهش هزینه‌های سخت‌افزاری و مدیریت بهتر منابع IT می‌شود.

با استفاده از مجازی‌سازی می‌توان چندین سیستم‌عامل، شبکه، سرور یا فضای ذخیره‌سازی را روی یک سخت‌افزار واحد اجرا کرد. فناوری Hypervisor (نرم‌افزاری که ماشین‌های مجازی را مدیریت می‌کند) نقش اساسی در این فرآیند دارد.


تاریخچه مجازی‌سازی

دهه 1960 – پیدایش مفهوم مجازی‌سازی

مجازی‌سازی در اواخر دهه 1960 توسط شرکت IBM توسعه یافت. در آن زمان، کامپیوترهای Mainframe بسیار گران بودند و کاربران مجبور بودند به‌صورت اشتراکی از آن‌ها استفاده کنند. برای حل این مشکل، IBM سیستم‌عامل CP-40 و بعدها CP-67 را معرفی کرد که امکان اجرای چندین سیستم مستقل بر روی یک سخت‌افزار را فراهم می‌کرد.

دهه 1980 – کاهش نیاز به مجازی‌سازی

با ظهور کامپیوترهای شخصی (PCs)، نیاز به مجازی‌سازی کاهش یافت، زیرا کاربران می‌توانستند دستگاه‌های مستقل خود را داشته باشند. در این دوره، تمرکز بیشتر بر روی سیستم‌عامل‌های مستقل مانند MS-DOS و Unix بود.

دهه 1990 – بازگشت مجازی‌سازی با VMware

در سال 1999، شرکت VMware اولین Hypervisor تجاری را معرفی کرد که امکان اجرای چندین سیستم‌عامل روی یک سخت‌افزار را بدون نیاز به Mainframe فراهم می‌کرد. این محصول، VMware Workstation، باعث تحول در صنعت IT شد.

دهه 2000 – پذیرش گسترده در دیتاسنترها

در دهه 2000، مجازی‌سازی به بخش مهمی از زیرساخت‌های دیتاسنترها تبدیل شد. شرکت‌های مختلفی مانند Microsoft (Hyper-V)، Citrix (XenServer) و Red Hat (KVM) وارد این حوزه شدند. در این دوره، تکنولوژی‌هایی مانند Live Migration و High Availability (HA) معرفی شدند.

دهه 2010 – ظهور کانتینرها و رایانش ابری

فناوری Docker و Kubernetes مجازی‌سازی را به سطح بعدی بردند. برخلاف ماشین‌های مجازی، کانتینرها سبک‌تر و سریع‌تر هستند و امکان اجرای برنامه‌ها در محیط‌های ایزوله را فراهم می‌کنند. همچنین، پلتفرم‌های ابری مانند AWS، Google Cloud و Microsoft Azure از مجازی‌سازی به‌عنوان پایه اصلی خود استفاده کردند.

دهه 2020 – حرکت به سمت Edge Computing و Serverless

در سال‌های اخیر، مجازی‌سازی علاوه بر دیتاسنترها، به سمت Edge Computing (محاسبات لبه‌ای) و Serverless Computing حرکت کرده است. این فناوری‌ها امکان اجرای برنامه‌ها را در نزدیک‌ترین نقطه به کاربران فراهم می‌کنند تا زمان تأخیر کاهش یابد و عملکرد بهینه‌تر شود.


جمع‌بندی

مجازی‌سازی از دهه 1960 تا به امروز یکی از مهم‌ترین تحولات دنیای فناوری بوده است. این فناوری که ابتدا برای Mainframeها توسعه یافت، امروزه در دیتاسنترها، رایانش ابری، کانتینرسازی و حتی Edge Computing نقش کلیدی ایفا می‌کند.

با ظهور تکنولوژی‌های جدید، مجازی‌سازی همچنان به تکامل خود ادامه خواهد داد و به یکی از ستون‌های اصلی محاسبات مدرن تبدیل خواهد شد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”انواع مختلف مجازی‌سازی” subtitle=”توضیحات کامل”]مجازی‌سازی انواع مختلفی دارد که بسته به سطح اجرا و کاربرد، به چند دسته اصلی تقسیم می‌شود. در این بخش، به بررسی سه نوع مهم از مجازی‌سازی پرداخته و هر کدام را با مثال‌های عملی و دستورات پیکربندی توضیح می‌دهیم.


مجازی‌سازی سطح سخت‌افزار (Hardware Virtualization)

تعریف

مجازی‌سازی سخت‌افزار به فرایندی گفته می‌شود که در آن، یک Hypervisor، سخت‌افزار فیزیکی را به چندین ماشین مجازی (VM) تقسیم می‌کند. هر ماشین مجازی سیستم‌عامل، پردازنده، حافظه و دیسک مخصوص خود را دارد و می‌تواند به‌صورت مستقل اجرا شود.

انواع Hypervisor

دو نوع Hypervisor وجود دارد:

  • نوع 1 (Bare-Metal): مستقیماً روی سخت‌افزار اجرا شده و عملکرد بالایی دارد. مثال‌ها: VMware ESXi، Microsoft Hyper-V، KVM
  • نوع 2 (Hosted): روی یک سیستم‌عامل میزبان اجرا می‌شود. مثال‌ها: VMware Workstation، VirtualBox
مثال عملی – نصب KVM در لینوکس

در لینوکس، KVM یکی از محبوب‌ترین Hypervisorهای سطح سخت‌افزار است. برای نصب آن روی Ubuntu، مراحل زیر را دنبال کنید:

1. بررسی پشتیبانی از مجازی‌سازی:

egrep -c '(vmx|svm)' /proc/cpuinfo

اگر خروجی عددی غیر از صفر باشد، پردازنده شما از مجازی‌سازی پشتیبانی می‌کند.

2. نصب KVM و ابزارهای مرتبط:

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

3. فعال‌سازی و اجرای سرویس libvirt:

sudo systemctl enable --now libvirtd

4. بررسی وضعیت KVM:

sudo virsh list --all

مجازی‌سازی سطح سیستم‌عامل (OS-level Virtualization)

تعریف

در این روش، هسته سیستم‌عامل امکان اجرای چندین محیط مجزا را روی یک کرنل فراهم می‌کند. برخلاف ماشین‌های مجازی، این روش از یک کرنل مشترک استفاده می‌کند و مصرف منابع بهینه‌تر است.

ابزارهای رایج
  • Docker
  • LXC (Linux Containers)
  • OpenVZ
مثال عملی – اجرای یک کانتینر Docker

1. نصب Docker در اوبونتو:

sudo apt update
sudo apt install -y docker.io

2. فعال‌سازی سرویس Docker:

sudo systemctl enable --now docker

3. بررسی وضعیت Docker:

sudo systemctl status docker

4. اجرای یک کانتینر ساده:

sudo docker run -d -p 8080:80 --name webserver nginx

این دستور یک کانتینر Nginx اجرا کرده و آن را روی پورت 8080 در دسترس قرار می‌دهد.


مجازی‌سازی شبکه و ذخیره‌سازی

مجازی‌سازی شبکه (Network Virtualization)

در این روش، منابع شبکه مانند سوئیچ‌ها، روترها و فایروال‌ها به‌صورت مجازی پیاده‌سازی می‌شوند تا مدیریت شبکه انعطاف‌پذیرتر شود.

ابزارهای رایج
  • VMware NSX
  • Cisco ACI
  • Open vSwitch (OVS)
مثال عملی – ایجاد یک سوییچ مجازی با OVS در لینوکس

1. نصب Open vSwitch:

sudo apt update
sudo apt install -y openvswitch-switch

2. ایجاد یک سوییچ مجازی:

sudo ovs-vsctl add-br br0

3. اتصال یک اینترفیس به سوییچ مجازی:

sudo ovs-vsctl add-port br0 eth0

مجازی‌سازی ذخیره‌سازی (Storage Virtualization)

در این روش، منابع ذخیره‌سازی به‌صورت یکپارچه مدیریت می‌شوند تا بهره‌وری افزایش یابد.

ابزارهای رایج
  • Ceph
  • GlusterFS
  • VMware vSAN
مثال عملی – ایجاد یک Volume در Ceph

1. نصب Ceph در لینوکس:

sudo apt update
sudo apt install -y ceph

2. ایجاد یک Volume جدید:

sudo ceph osd pool create mypool 128

3. بررسی وضعیت Pool:

sudo ceph osd lspools

جمع‌بندی

مجازی‌سازی به سه دسته سخت‌افزاری، سطح سیستم‌عامل و شبکه/ذخیره‌سازی تقسیم می‌شود.

  • مجازی‌سازی سخت‌افزار به کمک Hypervisorها انجام می‌شود و امکان اجرای چندین سیستم‌عامل مستقل را روی یک سرور فراهم می‌کند.
  • مجازی‌سازی سطح سیستم‌عامل از کرنل مشترک استفاده کرده و با ابزارهایی مانند Docker و LXC بهینه‌تر از ماشین‌های مجازی عمل می‌کند.
  • مجازی‌سازی شبکه و ذخیره‌سازی امکان ایجاد شبکه‌های نرم‌افزاری و مدیریت بهتر ذخیره‌سازی را فراهم می‌کند.

این فناوری‌ها تأثیر بسزایی در مدیریت دیتاسنترها، رایانش ابری و محاسبات توزیع‌شده دارند و امروزه به یک استاندارد در دنیای IT تبدیل شده‌اند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مزایا و چالش‌های استفاده از مجازی‌سازی” subtitle=”توضیحات کامل”]مجازی‌سازی یکی از مهم‌ترین فناوری‌های زیرساختی در دنیای فناوری اطلاعات محسوب می‌شود که باعث افزایش بهره‌وری، کاهش هزینه‌ها و بهینه‌سازی منابع سخت‌افزاری می‌شود. با این حال، این فناوری چالش‌های خاص خود را نیز دارد که باید در پیاده‌سازی آن در نظر گرفته شود. در این بخش، به بررسی مزایا و چالش‌های مجازی‌سازی پرداخته و مثال‌های عملی ارائه خواهیم داد.


مزایای مجازی‌سازی

1. کاهش هزینه‌های سخت‌افزاری

با استفاده از مجازی‌سازی، یک سرور فیزیکی می‌تواند چندین ماشین مجازی (VM) را اجرا کند که نیاز به خرید سخت‌افزارهای متعدد را کاهش می‌دهد. این امر باعث کاهش هزینه‌های اولیه (CAPEX) و هزینه‌های عملیاتی (OPEX) می‌شود.

2. بهره‌وری بالاتر و استفاده بهینه از منابع

در سرورهای سنتی، پردازنده و حافظه معمولاً به‌صورت بهینه استفاده نمی‌شوند، اما در مجازی‌سازی، چندین ماشین مجازی می‌توانند از منابع یک سرور استفاده کنند و بهره‌وری را افزایش دهند.

3. استقرار سریع و مقیاس‌پذیری آسان

مجازی‌سازی امکان استقرار سریع سیستم‌های جدید را فراهم می‌کند. به‌عنوان مثال، می‌توان یک سرور جدید را در چند دقیقه به‌جای چند ساعت یا چند روز راه‌اندازی کرد.

مثال عملی – ایجاد سریع یک ماشین مجازی در KVM
virt-install --name vm1 --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/vm1.img,size=10 --cdrom /var/lib/libvirt/boot/ubuntu.iso --os-variant ubuntu20.04

این دستور، یک ماشین مجازی جدید با 2 گیگابایت رم، 2 پردازنده و 10 گیگابایت فضای دیسک ایجاد می‌کند.

4. افزایش قابلیت اطمینان و بازیابی سریع در برابر خرابی‌ها

یکی از مزایای کلیدی مجازی‌سازی، امکان ایجاد Snapshot و بازیابی سریع سیستم‌ها در صورت بروز خرابی است.

مثال عملی – گرفتن Snapshot در VMware ESXi
vim-cmd vmsvc/snapshot.create 1 "backup-snapshot" "Snapshot for backup purpose"

این دستور یک Snapshot از ماشین مجازی با VM ID = 1 ایجاد می‌کند.

5. بهبود مدیریت و امنیت شبکه

با استفاده از مجازی‌سازی شبکه (SDN)، می‌توان سیاست‌های امنیتی را به‌صورت نرم‌افزاری اعمال کرد و از تکنیک‌هایی مانند ایزوله‌سازی شبکه و سگمنت‌بندی ترافیک بهره برد.

مثال عملی – ایجاد یک VLAN در Open vSwitch
sudo ovs-vsctl add-br br0
sudo ovs-vsctl add-port br0 eth1 tag=10

این دستورات یک Bridge مجازی ایجاد کرده و پورت eth1 را به VLAN 10 اختصاص می‌دهند.


چالش‌های مجازی‌سازی

1. سربار عملکردی (Performance Overhead)

مجازی‌سازی معمولاً مقداری سربار به همراه دارد، زیرا Hypervisor باید بین سخت‌افزار و ماشین‌های مجازی واسطه باشد.

2. نیاز به مدیریت و پیکربندی پیچیده

مجازی‌سازی به مدیریت دقیق منابع نیاز دارد. تخصیص نادرست CPU، RAM و Storage ممکن است باعث کاهش کارایی سیستم شود.

مثال عملی – بررسی میزان استفاده از منابع در KVM
virsh domstats vm1

این دستور وضعیت CPU، RAM و Disk ماشین مجازی vm1 را نمایش می‌دهد.

3. مسائل امنیتی و حملات احتمالی
  • فرار از ماشین مجازی (VM Escape): مهاجم می‌تواند از طریق یک آسیب‌پذیری از داخل ماشین مجازی به Hypervisor یا سایر ماشین‌های مجازی دسترسی پیدا کند.
  • حملات DoS به منابع اشتراکی: یک ماشین مجازی ممکن است منابع زیادی مصرف کند و باعث اختلال در سایر VMها شود.
مثال عملی – محدود کردن مصرف CPU یک ماشین مجازی در KVM
virsh schedinfo --set cpu_shares=512 vm1

این دستور CPU Shares را برای VM1 محدود می‌کند تا از مصرف بیش از حد منابع جلوگیری شود.

4. نیاز به ذخیره‌سازی و شبکه پرسرعت

در محیط‌های مجازی، سرورها معمولاً به یک Storage مشترک (مانند SAN یا NAS) متصل هستند که ممکن است باعث افزایش تأخیر شود.

مثال عملی – بررسی تأخیر دیسک در یک ماشین مجازی
iostat -xm 5

این دستور عملکرد ورودی/خروجی دیسک را نمایش می‌دهد تا مشکلات احتمالی I/O Bottleneck شناسایی شوند.


جمع‌بندی

مجازی‌سازی دارای مزایای متعددی از جمله کاهش هزینه‌ها، افزایش بهره‌وری، مقیاس‌پذیری، بازیابی سریع و امنیت بهتر است. با این حال، چالش‌هایی مانند سربار عملکردی، پیچیدگی مدیریت، مسائل امنیتی و نیاز به سخت‌افزار قدرتمند نیز وجود دارند که باید در طراحی و پیاده‌سازی در نظر گرفته شوند.

با درک مزایا و چالش‌های مجازی‌سازی، می‌توان راهکارهای مناسبی برای بهینه‌سازی عملکرد و افزایش امنیت محیط‌های مجازی ارائه داد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”کاربردهای معمول مجازی‌سازی در صنعت و تجارت” subtitle=”توضیحات کامل”]مجازی‌سازی در صنایع مختلف به‌عنوان یک فناوری کلیدی برای کاهش هزینه‌ها، افزایش بهره‌وری و بهبود مدیریت منابع شناخته می‌شود. این فناوری امکان استفاده بهینه از سخت‌افزار را فراهم کرده و انعطاف‌پذیری سیستم‌های فناوری اطلاعات را افزایش می‌دهد. در این بخش، مهم‌ترین کاربردهای مجازی‌سازی در صنعت و تجارت بررسی شده و مثال‌های عملی برای هر مورد ارائه خواهد شد.


1. مجازی‌سازی سرورها (Server Virtualization) در مراکز داده

در بسیاری از دیتاسنترها و شرکت‌های تجاری، مجازی‌سازی سرورها یکی از رایج‌ترین کاربردها است. این فناوری اجازه می‌دهد چندین ماشین مجازی (VM) روی یک سرور فیزیکی اجرا شوند، که منجر به کاهش مصرف انرژی، هزینه‌های سخت‌افزاری و فضای مورد نیاز می‌شود.

مثال عملی – ایجاد یک ماشین مجازی در VMware ESXi
vim-cmd vmsvc/createdummyvm VM-Test /vmfs/volumes/datastore1/

این دستور یک ماشین مجازی با نام VM-Test را در دیتاستور datastore1 ایجاد می‌کند.

مزایا:
  • کاهش هزینه‌های سخت‌افزاری
  • استفاده بهینه از منابع پردازشی
  • افزایش قابلیت‌های مدیریت و مقیاس‌پذیری

2. مجازی‌سازی دسکتاپ (VDI – Virtual Desktop Infrastructure)

مجازی‌سازی دسکتاپ به شرکت‌ها این امکان را می‌دهد که به‌جای خرید سیستم‌های فیزیکی متعدد، از دسکتاپ‌های مجازی برای کارمندان استفاده کنند. این روش مخصوصاً در شرکت‌های بزرگ، دانشگاه‌ها و بیمارستان‌ها کاربرد دارد.

مثال عملی – ایجاد دسکتاپ مجازی در Microsoft Hyper-V
New-VM -Name "VirtualDesktop01" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "C:\VMs\VirtualDesktop01.vhdx" -NewVHDSizeBytes 50GB

این دستور یک دسکتاپ مجازی با 2 گیگابایت رم و 50 گیگابایت هارد ایجاد می‌کند.

مزایا:
  • کاهش هزینه‌های سخت‌افزاری برای ایستگاه‌های کاری
  • بهبود امنیت اطلاعات (زیرا داده‌ها روی سرور ذخیره می‌شوند)
  • دسترسی کاربران از هر مکانی به دسکتاپ خود

3. مجازی‌سازی شبکه (Network Virtualization) در مراکز داده و شرکت‌های مخابراتی

با مجازی‌سازی شبکه، شرکت‌ها می‌توانند مدیریت سوییچ‌ها، روترها و فایروال‌ها را به‌صورت نرم‌افزاری انجام دهند. این فناوری در مراکز داده و شرکت‌های مخابراتی برای ایجاد شبکه‌های انعطاف‌پذیر و ایمن بسیار مهم است.

مثال عملی – ایجاد یک Bridge مجازی در Open vSwitch
sudo ovs-vsctl add-br br0
sudo ovs-vsctl add-port br0 eth1

این دستورات یک Bridge مجازی ایجاد کرده و پورت eth1 را به آن متصل می‌کنند.

مزایا:
  • کاهش پیچیدگی مدیریت شبکه
  • افزایش امنیت و انعطاف‌پذیری
  • امکان پیکربندی شبکه به‌صورت خودکار و نرم‌افزاری

4. مجازی‌سازی ذخیره‌سازی (Storage Virtualization) در سازمان‌ها

در شرکت‌ها و سازمان‌های بزرگ، نیاز به مدیریت و ذخیره‌سازی حجم بالای داده‌ها وجود دارد. مجازی‌سازی ذخیره‌سازی با ترکیب چندین دستگاه ذخیره‌سازی، یک فضای متمرکز و انعطاف‌پذیر ایجاد می‌کند که به بهینه‌سازی عملکرد و کاهش هزینه‌ها کمک می‌کند.

مثال عملی – ایجاد یک LVM برای مدیریت مجازی‌سازی ذخیره‌سازی در لینوکس
pvcreate /dev/sdb
vgcreate my_vg /dev/sdb
lvcreate -L 50G -n my_lv my_vg

این دستورات یک Volume Group جدید ایجاد کرده و یک Logical Volume با ظرفیت 50 گیگابایت می‌سازد.

مزایا:
  • مدیریت بهتر فضای ذخیره‌سازی
  • افزایش قابلیت اطمینان و تحمل خطا
  • کاهش هزینه‌های خرید تجهیزات ذخیره‌سازی

5. مجازی‌سازی اپلیکیشن‌ها در محیط‌های سازمانی

مجازی‌سازی نرم‌افزار به سازمان‌ها این امکان را می‌دهد که برنامه‌ها را بدون نیاز به نصب مستقیم روی دستگاه کاربران اجرا کنند. این فناوری در شرکت‌های توسعه نرم‌افزار، دانشگاه‌ها و بیمارستان‌ها بسیار مفید است.

مثال عملی – اجرای اپلیکیشن در یک Container با Docker
docker run -d --name app_container -p 8080:80 my_application

این دستور یک اپلیکیشن را در Container داکر اجرا کرده و روی پورت 8080 منتشر می‌کند.

مزایا:
  • اجرای نرم‌افزارها بدون وابستگی به سیستم‌عامل
  • کاهش نیاز به نصب و پشتیبانی نرم‌افزارها روی کلاینت‌ها
  • امکان اجرای نرم‌افزارها روی محیط‌های مختلف (Windows، Linux، MacOS)

6. استفاده از مجازی‌سازی در تست و توسعه نرم‌افزار

تیم‌های توسعه نرم‌افزار از مجازی‌سازی برای ایجاد محیط‌های تست مستقل و مقیاس‌پذیر استفاده می‌کنند. این کار اجازه می‌دهد تا بدون تأثیر بر سیستم‌های عملیاتی، تست‌های مختلفی روی کدها انجام شود.

مثال عملی – اجرای یک ماشین مجازی برای تست در VirtualBox
VBoxManage createvm --name TestVM --register
VBoxManage modifyvm TestVM --memory 2048 --cpus 2
VBoxManage storagectl TestVM --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach TestVM --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/disk.vdi

این دستورات یک ماشین مجازی جدید برای تست نرم‌افزار ایجاد می‌کنند.

مزایا:
  • اجرای محیط‌های تست بدون تأثیر بر سیستم‌های اصلی
  • کاهش هزینه‌های سخت‌افزاری برای تیم‌های توسعه
  • امکان تست نرم‌افزار روی سیستم‌عامل‌های مختلف

جمع‌بندی

مجازی‌سازی در مراکز داده، شرکت‌های تجاری، دانشگاه‌ها و سازمان‌های دولتی برای کاهش هزینه‌ها، افزایش انعطاف‌پذیری و بهبود مدیریت منابع استفاده می‌شود. از مجازی‌سازی می‌توان در سرورها، دسکتاپ‌ها، شبکه‌ها، ذخیره‌سازی، اپلیکیشن‌ها و محیط‌های توسعه نرم‌افزار بهره برد.

با استفاده از ابزارهای مختلف مانند VMware، Hyper-V، KVM، Docker و Open vSwitch، سازمان‌ها می‌توانند سیستم‌های خود را بهینه‌سازی کرده و بهره‌وری بیشتری داشته باشند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 2. معرفی Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”معرفی کلی Proxmox VE به عنوان یک پلتفرم مجازی‌سازی متن‌باز” subtitle=”توضیحات کامل”]Proxmox Virtual Environment (Proxmox VE) یک پلتفرم مجازی‌سازی متن‌باز است که امکان اجرای ماشین‌های مجازی (VMs) و کانتینرها را در یک محیط واحد فراهم می‌کند. این نرم‌افزار بر پایه Debian Linux توسعه یافته و شامل KVM (Kernel-based Virtual Machine) برای مجازی‌سازی کامل و LXC (Linux Containers) برای مجازی‌سازی سبک و کانتینرسازی است.

Proxmox VE به دلیل محیط مدیریتی تحت وب، قابلیت‌های پیشرفته در مدیریت سرورها و امکان راه‌اندازی کلاسترهای HA (High Availability)، در دیتاسنترها، سازمان‌های تجاری، و محیط‌های توسعه کاربرد گسترده‌ای دارد.


ویژگی‌های کلیدی Proxmox VE

پشتیبانی از KVM و LXC – اجرای همزمان ماشین‌های مجازی و کانتینرها
رابط مدیریتی تحت وب – امکان مدیریت کامل از طریق مرورگر بدون نیاز به SSH
کلاسترینگ و HA – مدیریت چندین نود و قابلیت High Availability
پشتیبانی از Ceph و ZFS – ذخیره‌سازی توزیع‌شده و قابلیت Snapshot
پشتیبان‌گیری و بازیابی – تهیه نسخه‌های پشتیبان از VMها و کانتینرها
فایروال و شبکه مجازی – امنیت بالا و انعطاف‌پذیری در مدیریت شبکه


نصب و راه‌اندازی اولیه Proxmox VE

برای نصب Proxmox VE، ابتدا باید تصویر ISO رسمی را دانلود کرده و روی سرور نصب کنیم.

1. دانلود و رایت ISO روی فلش یا DVD

برای دریافت آخرین نسخه، به سایت رسمی Proxmox مراجعه کنید:
🔗 دانلود Proxmox VE

پس از دانلود، می‌توان ISO را روی فلش USB رایت کرد:

sudo dd if=proxmox-ve.iso of=/dev/sdX bs=1M status=progress

🔹 /dev/sdX را با مسیر فلش خود جایگزین کنید.


2. نصب Proxmox VE روی سرور

بعد از بوت شدن از طریق USB، مراحل نصب را دنبال کنید:

  1. گزینه Install Proxmox VE را انتخاب کنید.
  2. دیسک موردنظر برای نصب را مشخص کنید.
  3. کشور، کیبورد و منطقه زمانی را تنظیم کنید.
  4. رمز عبور و ایمیل ادمین را وارد کنید.
  5. تنظیمات شبکه را انجام دهید (آدرس IP و Gateway را مشخص کنید).
  6. نصب را تأیید کرده و منتظر تکمیل فرآیند شوید.

3. ورود به داشبورد مدیریتی Proxmox VE

بعد از نصب، از طریق مرورگر به پنل تحت وب متصل شوید:

https://<Server-IP>:8006

🔹 را با آدرس IP سرور خود جایگزین کنید.

برای ورود از نام کاربری root و رمز عبوری که هنگام نصب وارد کردید استفاده کنید.


ایجاد ماشین مجازی در Proxmox VE

برای ایجاد یک VM جدید از طریق خط فرمان، از دستورات زیر استفاده کنید:

1. ایجاد یک ماشین مجازی جدید
qm create 100 --name "UbuntuVM" --memory 2048 --net0 virtio,bridge=vmbr0

🔹 100: شناسه ماشین مجازی
🔹 UbuntuVM: نام ماشین مجازی
🔹 2048MB رم برای VM
🔹 vmbr0: اینترفیس شبکه

2. افزودن دیسک سخت به ماشین مجازی
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:10

🔹 یک دیسک 10 گیگابایتی در استوریج local-lvm اضافه می‌کند.

3. نصب سیستم‌عامل از یک ISO
qm set 100 --cdrom local:iso/ubuntu-22.04.iso

🔹 فایل ISO سیستم‌عامل را به VM متصل می‌کند.

4. راه‌اندازی ماشین مجازی
qm start 100

ایجاد کانتینر در Proxmox VE

Proxmox از LXC (Linux Containers) پشتیبانی می‌کند که سبک‌تر از VMها بوده و برای اجرای برنامه‌ها و سرویس‌ها با مصرف منابع کمتر استفاده می‌شود.

1. دانلود یک قالب (Template) برای کانتینر
pveam update
pveam available
pveam download local debian-12-standard_12.0-1_amd64.tar.zst
2. ایجاد یک کانتینر جدید
pct create 101 local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst --memory 1024 --cores 2 --rootfs local-lvm:8

🔹 این دستور یک کانتینر Debian 12 با 1 گیگابایت رم و 2 هسته پردازشی ایجاد می‌کند.

3. تنظیم آدرس IP و شبکه کانتینر
pct set 101 --net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1

🔹 تنظیم IP کانتینر روی 192.168.1.100 و Gateway روی 192.168.1.1

4. راه‌اندازی کانتینر
pct start 101

مدیریت ذخیره‌سازی در Proxmox VE

Proxmox از ZFS، LVM، Ceph و NFS برای ذخیره‌سازی پشتیبانی می‌کند. برای افزودن یک استوریج جدید، می‌توان از این دستور استفاده کرد:

افزودن یک دیسک جدید به استوریج LVM
pvcreate /dev/sdb
vgcreate pve_storage /dev/sdb
lvcreate -L 100G -n vm_storage pve_storage

🔹 ایجاد یک Volume Group جدید و اختصاص 100 گیگابایت فضای ذخیره‌سازی به ماشین‌های مجازی.


کلاسترینگ و High Availability در Proxmox VE

برای ایجاد یک کلاستر Proxmox، باید نودهای جدید را به سرور اصلی اضافه کنید.

1. ایجاد کلاستر در سرور اصلی
pvecm create my-cluster
2. اضافه کردن یک نود جدید به کلاستر

روی سرور جدید، این دستور را اجرا کنید:

pvecm add <Cluster-IP>

🔹 را با آدرس IP سرور اصلی جایگزین کنید.


جمع‌بندی

Proxmox VE یک پلتفرم مجازی‌سازی متن‌باز، قدرتمند و مقرون‌به‌صرفه است که امکان ایجاد و مدیریت ماشین‌های مجازی و کانتینرها را در محیطی یکپارچه فراهم می‌کند. با پشتیبانی از KVM، LXC، شبکه‌های مجازی، استوریج‌های توزیع‌شده و قابلیت High Availability، این پلتفرم برای دیتاسنترها، شرکت‌ها و محیط‌های توسعه ایده‌آل است.

مدیریت Proxmox از طریق رابط تحت وب و خط فرمان به‌سادگی انجام می‌شود و امکان یکپارچه‌سازی با Ceph، ZFS و دیگر فناوری‌های ذخیره‌سازی را دارد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”ویژگی‌های برجسته Proxmox VE” subtitle=”توضیحات کامل”]Proxmox VE یکی از محبوب‌ترین پلتفرم‌های مجازی‌سازی متن‌باز است که امکانات پیشرفته‌ای را برای مدیریت ماشین‌های مجازی (VMs) و کانتینرها (LXC) ارائه می‌دهد. این پلتفرم علاوه بر پشتیبانی از KVM و LXC، مدیریت ذخیره‌سازی و شبکه را نیز در یک محیط یکپارچه فراهم می‌کند.

در ادامه به بررسی ویژگی‌های کلیدی این پلتفرم و نحوه استفاده عملی از آنها می‌پردازیم.


پشتیبانی از KVM برای ماشین‌های مجازی

Proxmox VE از KVM (Kernel-based Virtual Machine) برای اجرای ماشین‌های مجازی با عملکرد بالا و پشتیبانی از سخت‌افزارهای مختلف استفاده می‌کند. این امکان به کاربران اجازه می‌دهد که سیستم‌عامل‌های مختلف مانند ویندوز، لینوکس و BSD را در محیط‌های ایزوله اجرا کنند.

ویژگی‌های KVM در Proxmox VE:

  • پشتیبانی از سیستم‌عامل‌های مختلف (Windows، Linux، BSD و غیره)
  • پشتیبانی از GPU Passthrough برای اجرای نرم‌افزارهای گرافیکی سنگین
  • مدیریت منابع پردازنده، حافظه و دیسک برای هر VM
  • امکان استفاده از Snapshots برای بازگردانی سریع ماشین‌ها
  • پشتیبانی از Live Migration برای جابه‌جایی VMها بدون قطعی سرویس
ایجاد یک ماشین مجازی KVM در Proxmox

1️⃣ ایجاد یک ماشین مجازی جدید:

qm create 200 --name "UbuntuVM" --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0

🔹 ایجاد VM با 4 گیگابایت رم و 2 هسته پردازشی
🔹 vmbr0 به عنوان Bridge شبکه برای اتصال به LAN

2️⃣ افزودن یک دیسک سخت به ماشین مجازی:

qm set 200 --scsihw virtio-scsi-pci --scsi0 local-lvm:20

🔹 اختصاص 20 گیگابایت فضای ذخیره‌سازی در local-lvm

3️⃣ اتصال ISO و راه‌اندازی VM برای نصب سیستم‌عامل:

qm set 200 --cdrom local:iso/ubuntu-22.04.iso
qm start 200

🔹 بوت شدن ماشین از فایل ISO برای نصب سیستم‌عامل


پشتیبانی از LXC برای کانتینرها

Proxmox از LXC (Linux Containers) پشتیبانی می‌کند که یک روش مجازی‌سازی سبک و سریع است. کانتینرها مستقیماً از کرنل میزبان استفاده کرده و منابع را بهینه‌تر از VMها مصرف می‌کنند.

مزایای LXC در Proxmox:

  • مصرف منابع کمتر نسبت به VMها
  • راه‌اندازی سریع‌تر و کارایی بالاتر
  • بهینه برای اجرای سرویس‌های لینوکسی مانند پایگاه داده و وب‌سرور
  • مدیریت آسان از طریق رابط گرافیکی و خط فرمان
ایجاد یک کانتینر جدید LXC در Proxmox

1️⃣ دانلود یک Template برای کانتینر:

pveam update
pveam available
pveam download local debian-12-standard_12.0-1_amd64.tar.zst

🔹 بروزرسانی لیست Templateها و دانلود Debian 12

2️⃣ ایجاد یک کانتینر با 2 هسته و 2 گیگابایت رم:

pct create 201 local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst --memory 2048 --cores 2 --rootfs local-lvm:8

🔹 این دستور یک کانتینر با 8 گیگابایت فضای ذخیره‌سازی ایجاد می‌کند.

3️⃣ تنظیم آدرس IP و Gateway برای کانتینر:

pct set 201 --net0 name=eth0,bridge=vmbr0,ip=192.168.1.150/24,gw=192.168.1.1

🔹 تنظیم شبکه روی 192.168.1.150 با Gateway 192.168.1.1

4️⃣ راه‌اندازی کانتینر:

pct start 201

ادغام ذخیره‌سازی و شبکه در یک پلتفرم واحد

Proxmox قابلیت مدیریت همزمان ذخیره‌سازی محلی و شبکه‌ای را در یک محیط یکپارچه ارائه می‌دهد. این ویژگی امکان استفاده از انواع دیسک‌ها، NAS، SAN و سیستم‌های فایل توزیع‌شده مانند Ceph را فراهم می‌کند.

💾 ذخیره‌سازی در Proxmox VE

پشتیبانی از انواع ذخیره‌سازی:

  • ZFS برای مدیریت دیسک‌های محلی با RAID نرم‌افزاری
  • LVM و LVM-Thin برای تخصیص داینامیک فضای ذخیره‌سازی
  • NFS و CIFS برای ذخیره‌سازی شبکه‌ای
  • Ceph برای پیاده‌سازی ذخیره‌سازی توزیع‌شده
💡 مثال: افزودن یک استوریج NFS به Proxmox
pvesm add nfs storage-nfs --server 192.168.1.100 --export /mnt/storage --path /mnt/pve/storage-nfs

🔹 اضافه کردن استوریج NFS از سرور 192.168.1.100

💡 مثال: افزودن یک دیسک جدید و ایجاد Volume Group در LVM
pvcreate /dev/sdb
vgcreate proxmox_storage /dev/sdb
lvcreate -L 200G -n vm_data proxmox_storage

🔹 استفاده از دیسک sdb برای ایجاد Volume Group جدید و تخصیص 200GB


🌐 شبکه در Proxmox VE

پشتیبانی از شبکه‌های مختلف:

  • Bridge Networking برای اتصال VMها و کانتینرها به شبکه داخلی
  • VLAN برای جداسازی ترافیک شبکه
  • SDN (Software Defined Networking) برای مدیریت پیشرفته شبکه
💡 مثال: ایجاد یک Bridge برای اتصال VMها به شبکه LAN
ip link add name vmbr1 type bridge
ip link set dev vmbr1 up
ip addr add 192.168.2.1/24 dev vmbr1

🔹 ایجاد یک Bridge جدید برای VMها با IP 192.168.2.1

💡 مثال: افزودن یک کارت شبکه به ماشین مجازی
qm set 200 --net1 virtio,bridge=vmbr1

🔹 اضافه کردن کارت شبکه دوم به VM و متصل کردن آن به vmbr1


جمع‌بندی

Proxmox VE به عنوان یک پلتفرم مجازی‌سازی متن‌باز، قدرتمند و انعطاف‌پذیر امکانات متنوعی را برای مدیریت ماشین‌های مجازی و کانتینرها ارائه می‌دهد. پشتیبانی از KVM برای اجرای VMها، پشتیبانی از LXC برای مجازی‌سازی سبک و امکان مدیریت ذخیره‌سازی و شبکه در یک محیط یکپارچه، این پلتفرم را به یک راه‌حل مناسب برای دیتاسنترها و شرکت‌های تجاری تبدیل کرده است.

با استفاده از دستورات و مثال‌های عملی ارائه‌شده، می‌توان VMها، کانتینرها، استوریج و شبکه را در Proxmox به‌صورت حرفه‌ای مدیریت کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مزایای استفاده از Proxmox VE در مقایسه با VMware و Hyper-V” subtitle=”توضیحات کامل”]Proxmox VE یکی از محبوب‌ترین پلتفرم‌های متن‌باز مجازی‌سازی است که در مقایسه با راهکارهای تجاری مانند VMware vSphere/ESXi و Microsoft Hyper-V مزایای متعددی دارد. در این بخش، بررسی کاملی از تفاوت‌ها و برتری‌های Proxmox VE نسبت به این دو پلتفرم خواهیم داشت.


1️⃣ رایگان و متن‌باز بودن Proxmox VE

یکی از مهم‌ترین مزایای Proxmox VE، رایگان و متن‌باز بودن آن است. در حالی که VMware و Hyper-V نسخه‌های رایگان محدودی دارند، Proxmox VE تمامی قابلیت‌ها را به‌صورت رایگان و بدون محدودیت در اختیار کاربران قرار می‌دهد.

مقایسه هزینه‌ها:

  • Proxmox VE: کاملاً رایگان و متن‌باز، با امکان خرید پشتیبانی حرفه‌ای
  • VMware ESXi: نسخه رایگان با محدودیت‌های زیاد + نیاز به خرید لایسنس برای امکانات پیشرفته
  • Microsoft Hyper-V: رایگان همراه با ویندوز سرور، اما نیاز به لایسنس برای امکانات مدیریتی کامل

🔹 در محیط‌های Enterprise و دیتاسنترها که تعداد زیادی ماشین مجازی اجرا می‌شود، استفاده از VMware یا Hyper-V می‌تواند هزینه‌های بسیار بالایی به همراه داشته باشد، در حالی که Proxmox VE هزینه‌ای ندارد و به‌راحتی قابل توسعه است.


2️⃣ پشتیبانی همزمان از KVM و LXC (مجازی‌سازی ترکیبی)

Proxmox VE هم‌زمان از دو نوع مجازی‌سازی پشتیبانی می‌کند:
1️⃣ KVM (Kernel-based Virtual Machine) برای اجرای ماشین‌های مجازی (VM)
2️⃣ LXC (Linux Containers) برای اجرای کانتینرهای سبک و سریع

🔹 در مقابل،

  • VMware تنها از مجازی‌سازی مبتنی بر VM پشتیبانی می‌کند
  • Hyper-V نیز فقط بر پایه VM است و پشتیبانی محدودی از کانتینرهای ویندوزی دارد

مزیت Proxmox: امکان اجرای سرورها و سرویس‌های سبک در قالب LXC به‌جای VM، که باعث مصرف کمتر منابع و بهینه‌سازی عملکرد می‌شود.

💡 مثال: ایجاد یک کانتینر LXC در Proxmox VE
pct create 201 local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst --memory 2048 --cores 2 --rootfs local-lvm:8

🔹 ایجاد یک کانتینر Debian 12 با 2 گیگابایت رم و 2 هسته پردازشی


3️⃣ محیط مدیریتی تحت وب قدرتمند (بدون نیاز به نرم‌افزار اضافی)

Proxmox VE دارای یک رابط کاربری وب‌محور جامع و کاربردی است که امکان مدیریت ماشین‌های مجازی، کانتینرها، شبکه، استوریج و پشتیبان‌گیری را در یک پنل واحد فراهم می‌کند.

🔹 در مقابل:

  • VMware vSphere نیاز به نرم‌افزار vCenter دارد که برای مدیریت پیشرفته باید جداگانه خریداری شود.
  • Hyper-V Manager فقط برای ویندوز در دسترس است و امکانات محدودی دارد.

مزیت Proxmox VE:

  • دسترسی تحت وب بدون نیاز به نصب نرم‌افزار اضافه
  • مدیریت یکپارچه VMها، کانتینرها و ذخیره‌سازی
  • امکان مدیریت از طریق CLI و API
💡 مثال: راه‌اندازی مجدد یک ماشین مجازی از طریق خط فرمان
qm restart 200

🔹 راه‌اندازی مجدد VM شماره 200 از طریق CLI


4️⃣ یکپارچگی ذخیره‌سازی و پشتیبانی از سیستم‌های مختلف

Proxmox VE از چندین نوع استوریج بدون نیاز به افزونه یا لایسنس اضافی پشتیبانی می‌کند:
ZFS برای RAID نرم‌افزاری و مدیریت بهینه دیسک
LVM و LVM-Thin برای تخصیص فضای ذخیره‌سازی داینامیک
Ceph برای پیاده‌سازی ذخیره‌سازی توزیع‌شده
NFS، CIFS و iSCSI برای استفاده از منابع ذخیره‌سازی شبکه‌ای

🔹 در مقابل:

  • VMware برای برخی از قابلیت‌های ذخیره‌سازی نیاز به نسخه‌های Enterprise دارد
  • Hyper-V پشتیبانی محدودی از ZFS دارد
💡 مثال: افزودن یک استوریج NFS در Proxmox
pvesm add nfs storage-nfs --server 192.168.1.100 --export /mnt/storage --path /mnt/pve/storage-nfs

🔹 اضافه کردن یک استوریج NFS از سرور 192.168.1.100


5️⃣ قابلیت Live Migration بدون هزینه اضافی

Live Migration یکی از مهم‌ترین قابلیت‌های Proxmox VE است که به شما اجازه می‌دهد VMها را بدون قطعی سرویس بین سرورها جابه‌جا کنید.

🔹 در VMware این قابلیت فقط در نسخه‌های vSphere Enterprise موجود است، که نیاز به لایسنس گران‌قیمت دارد.
🔹 در Hyper-V نیز نیاز به Failover Clustering دارد، که پیکربندی آن پیچیده است.

💡 مثال: انتقال یک ماشین مجازی به سرور دیگر در Proxmox
qm migrate 200 proxmox-node2 --online

🔹 مهاجرت زنده VM 200 به سرور proxmox-node2 بدون Downtime


6️⃣ پشتیبان‌گیری و بازیابی (Backup & Restore) رایگان

Proxmox VE دارای سیستم پشتیبان‌گیری و بازیابی داخلی است که نیازی به لایسنس اضافی ندارد.

🔹 در مقابل:

  • VMware نیاز به استفاده از vSphere Data Protection یا Veeam دارد
  • Hyper-V نیز نیاز به ابزارهای جداگانه مانند Windows Backup دارد

مزیت Proxmox VE:

  • پشتیبان‌گیری زمان‌بندی شده از VMها و کانتینرها
  • قابلیت Snapshot گیری برای بازگردانی سریع
  • سازگاری با Proxmox Backup Server برای بکاپ‌گیری پیشرفته
💡 مثال: گرفتن یک بکاپ از VM در Proxmox
vzdump 200 --mode snapshot --compress zstd --storage local

🔹 گرفتن یک بکاپ فشرده‌شده از VM 200


جمع‌بندی

چرا Proxmox VE بهتر از VMware و Hyper-V است؟
1️⃣ رایگان و متن‌باز بودن، در حالی که VMware و Hyper-V نیاز به لایسنس دارند.
2️⃣ پشتیبانی از KVM و LXC در یک پلتفرم، برخلاف VMware و Hyper-V که فقط VM اجرا می‌کنند.
3️⃣ رابط کاربری وب یکپارچه بدون نیاز به نصب نرم‌افزار اضافی.
4️⃣ پشتیبانی قوی از انواع ذخیره‌سازی مانند ZFS، LVM، Ceph، NFS و iSCSI.
5️⃣ امکان Live Migration بدون هزینه اضافی، برخلاف VMware که نیاز به نسخه Enterprise دارد.
6️⃣ پشتیبان‌گیری و بازیابی داخلی رایگان، در حالی که VMware و Hyper-V نیاز به ابزارهای جداگانه دارند.

با این توضیحات، Proxmox VE یک گزینه ایده‌آل برای سازمان‌ها، شرکت‌ها و دیتاسنترها است که به دنبال یک پلتفرم مجازی‌سازی قدرتمند، منعطف و بدون هزینه اضافی هستند. 🚀[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”آشنایی با جامعه متن‌باز Proxmox VE و پشتیبانی آن” subtitle=”توضیحات کامل”]Proxmox VE یک پلتفرم مجازی‌سازی متن‌باز است که تحت مدل Open Source توسعه داده شده است. این به معنای آن است که کد منبع این پلتفرم به‌طور آزاد در دسترس همه قرار دارد و توسعه‌دهندگان، کاربران و سازمان‌ها می‌توانند آن را به‌دلخواه تغییر دهند، بهبود بخشند و حتی در پروژه‌های خود استفاده کنند. یکی از مهم‌ترین ویژگی‌های این پلتفرم، جامعه فعال و پشتیبانی قوی است که در کمک به حل مشکلات و پاسخ به سوالات کاربران نقش اساسی دارد.

در این بخش، به ویژگی‌ها و مزایای جامعه متن‌باز Proxmox VE و همچنین نحوه پشتیبانی آن می‌پردازیم.


1️⃣ جامعه متن‌باز Proxmox VE

جامعه Proxmox VE شامل کاربران، توسعه‌دهندگان، متخصصان و ارائه‌دهندگان خدمات مختلف از سراسر جهان است که به‌طور مستمر در حال مشارکت و بهبود پلتفرم هستند. برخی از ویژگی‌های این جامعه عبارتند از:

🔹 فروم‌ها و انجمن‌ها

  • Proxmox Forum یکی از منابع اصلی ارتباطی برای کاربران است. در این فروم، پرسش‌ها، مشکلات و راه‌حل‌ها به اشتراک گذاشته می‌شود و اعضای جامعه به یکدیگر کمک می‌کنند.
  • در این انجمن، می‌توانید از تجربیات کاربران دیگر استفاده کرده و یا راه‌حل‌هایی برای مشکلات خود پیدا کنید.
  • آدرس انجمن Proxmox: forum.proxmox.com

🔹 گروه‌های کاربری و مشارکت

  • جامعه Proxmox VE در بسیاری از شبکه‌های اجتماعی از جمله Slack، Telegram و Discord فعال است و کاربران می‌توانند از طریق این پلتفرم‌ها با یکدیگر در ارتباط باشند.
  • همچنین، افراد علاقه‌مند به مشارکت در کدنویسی و بهبود پلتفرم می‌توانند در پروژه‌های متن‌باز Proxmox شرکت کنند و تغییرات خود را به کد اصلی ارسال کنند.
  • Proxmox GitLab یکی از مکان‌هایی است که کاربران می‌توانند برای مشارکت در توسعه نرم‌افزار به آن دسترسی داشته باشند: GitLab Proxmox

🔹 مدیریت و مستندات

  • Proxmox VE دارای مستندات جامع و قابل دسترس برای کاربران است. این مستندات شامل راهنماهای نصب، پیکربندی، مدیریت و عیب‌یابی است که در سایت رسمی موجود است.
  • به‌علاوه، کاربران می‌توانند سوالات خود را در مستندات راهنما جستجو کرده و پاسخ‌های آن را بیابند.
  • آدرس مستندات رسمی Proxmox: Proxmox VE Documentation

2️⃣ پشتیبانی رسمی Proxmox VE

علاوه بر جامعه متن‌باز، Proxmox VE یک پشتیبانی رسمی نیز از طریق مدل‌های اشتراک تجاری ارائه می‌دهد. این نوع پشتیبانی به کاربران و سازمان‌هایی که به پشتیبانی تخصصی و تضمینی نیاز دارند، خدمات گسترده‌ای را ارائه می‌دهد.

🔹 پشتیبانی فنی تجاری Proxmox

  • Proxmox VE به مشتریانی که اشتراک‌های Enterprise یا Subscription خریداری می‌کنند، پشتیبانی فنی 24/7 از طریق ایمیل و تیکت ارائه می‌دهد.
  • این پشتیبانی می‌تواند شامل عیب‌یابی سیستم، مشاوره و راهنمایی فنی باشد و مشکلات پیچیده‌تر را با همکاری تیم فنی Proxmox حل کند.
  • پشتیبانی با اولویت بالا در مواقع اضطراری نیز از دیگر مزایای اشتراک‌های تجاری است.

🔹 آدرس خرید اشتراک و پشتیبانی تجاری Proxmox:
برای کسب اطلاعات بیشتر در مورد خدمات اشتراک تجاری و خرید آن، می‌توانید به صفحه اشتراک Proxmox مراجعه کنید: Proxmox Subscription

🔹 نوع اشتراک‌ها

  • Basic: این نوع اشتراک، به‌صورت سالانه پشتیبانی از طریق ایمیل و دسترسی به آپدیت‌های بسته‌ها را فراهم می‌کند.
  • Standard: این اشتراک پشتیبانی از طریق ایمیل و دسترسی به بروزرسانی‌های سریع را نیز ارائه می‌دهد.
  • Enterprise: این اشتراک شامل پشتیبانی کامل 24/7، پیش‌اولویت در حل مشکلات و بروزرسانی‌های امن است.

3️⃣ مستندات و منابع آموزشی

یکی از بزرگترین مزایای جامعه متن‌باز Proxmox VE، دسترس‌پذیری مستندات و منابع آموزشی است که به کاربران این امکان را می‌دهد تا به‌راحتی مشکلات خود را شناسایی و رفع کنند. این مستندات به‌طور مرتب به‌روزرسانی می‌شوند و شامل اطلاعاتی برای شروع، پیکربندی و حل مشکلات هستند.

🔹 مستندات آنلاین
مستندات آنلاین Proxmox VE به‌طور کامل به‌صورت رایگان در دسترس است. این مستندات شامل موضوعات مختلفی مانند نصب، مدیریت، امنیت، شبکه، ذخیره‌سازی و راه‌اندازی سرویس‌های مختلف است.

🔹 مقالات آموزشی و ویدیوها

  • همچنین منابع آموزشی متنی و ویدیویی از منابع مختلف مانند YouTube، وبلاگ‌های تخصصی و دوره‌های آموزشی آنلاین نیز در دسترس است.
  • کاربران می‌توانند از این منابع برای یادگیری روش‌های استفاده از امکانات پیشرفته Proxmox VE بهره‌مند شوند.

4️⃣ مشارکت در توسعه Proxmox VE

چرا که Proxmox VE یک پروژه متن‌باز است، کاربران و توسعه‌دهندگان می‌توانند به‌طور فعال در پیشرفت و بهبود پلتفرم مشارکت کنند. این مشارکت می‌تواند به‌شکل‌های مختلفی باشد:

🔹 ارسال مشکلات و پیشنهادات به تیم توسعه

  • کاربران می‌توانند مشکلات و پیشنهادات خود را در سایت GitLab گزارش کنند یا در فروم‌ها به اشتراک بگذارند.

🔹 توسعه کد و افزونه‌ها

  • هر کسی که به زبان‌های برنامه‌نویسی مختلف مسلط است، می‌تواند کدهای جدید را به پروژه اضافه کرده و یا خطاها و باگ‌ها را رفع کند.
  • همچنین توسعه‌دهندگان می‌توانند افزونه‌ها و ویژگی‌های جدید برای Proxmox VE توسعه دهند و به جامعه معرفی کنند.

جمع‌بندی

جامعه متن‌باز Proxmox VE از مشارکت‌های گسترده و پشتیبانی فعال بهره‌مند است که امکان حل مشکلات، بهبود مستمر و یادگیری از یکدیگر را فراهم می‌آورد. همچنین، با داشتن مستندات جامع و پشتیبانی تجاری، کاربران و سازمان‌ها می‌توانند اطمینان حاصل کنند که در هر مرحله از استفاده از این پلتفرم، منابع و پشتیبانی مناسب را در اختیار دارند.
Proxmox VE با رویکرد منبع باز و قابلیت‌های فراوان خود، به کاربران این امکان را می‌دهد که از این پلتفرم مجازی‌سازی قدرتمند بدون محدودیت‌های تجاری و با استفاده از پشتیبانی‌های گسترده بهره‌برداری کنند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 3. ویژگی‌ها و قابلیت‌های کلیدی Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مجازی‌سازی ماشین‌های مجازی با KVM” subtitle=”توضیحات کامل”]KVM (Kernel-based Virtual Machine) یکی از مهم‌ترین و قدرتمندترین ابزارهای مجازی‌سازی در سطح سخت‌افزار است که برای ایجاد و مدیریت ماشین‌های مجازی در سیستم‌عامل‌های لینوکس استفاده می‌شود. KVM یک ماژول هسته (Kernel module) است که اجازه می‌دهد تا سیستم‌عامل لینوکس به‌عنوان یک Hypervisor عمل کند و ماشین‌های مجازی را بر روی سخت‌افزار میزبان اجرا کند. در این بخش، به معرفی مجازی‌سازی با KVM، نحوه نصب و پیکربندی آن، و همچنین دستورات و مثال‌های عملی خواهیم پرداخت.


1️⃣ معرفی KVM و اجزای آن

KVM یک هایپروایزر نوع 1 است که به‌طور خاص برای لینوکس طراحی شده است و از قابلیت‌های ویژه‌ای برای مجازی‌سازی سطح سخت‌افزار استفاده می‌کند. KVM به‌طور مستقیم در هسته لینوکس (Linux Kernel) قرار دارد و نیاز به پردازنده‌هایی با قابلیت Intel VT-x یا AMD-V برای کارکرد صحیح دارد.

نکات اصلی در مورد KVM:

  • ماژول KVM: برای فعال‌سازی KVM در لینوکس، از ماژول‌های kvm.ko، kvm-intel.ko یا kvm-amd.ko بسته به نوع پردازنده استفاده می‌شود.
  • QEMU: برای شبیه‌سازی سخت‌افزار ماشین‌های مجازی و ارتباط با KVM از QEMU استفاده می‌شود. QEMU در واقع ابزار مدیریت ماشین‌های مجازی است که با KVM ترکیب می‌شود.
  • Libvirt: برای مدیریت ماشین‌های مجازی از ابزار Libvirt استفاده می‌شود که به‌طور گسترده برای تعامل با KVM و QEMU در پلتفرم‌های مختلف طراحی شده است.

2️⃣ نصب و پیکربندی KVM در لینوکس

برای نصب KVM و راه‌اندازی ماشین‌های مجازی در لینوکس، مراحل زیر را دنبال می‌کنیم. این دستورالعمل‌ها برای سیستم‌عامل‌های مبتنی بر Debian/Ubuntu است، اما مشابه آن‌ها برای سایر توزیع‌ها قابل اجرا هستند.

مراحل نصب KVM:

  1. بررسی پیش‌نیازها
    قبل از نصب KVM، ابتدا باید بررسی کنید که پردازنده شما از قابلیت‌های مجازی‌سازی پشتیبانی می‌کند. برای این کار، دستور زیر را اجرا کنید:

    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    اگر خروجی بیشتر از 0 بود، پردازنده شما از قابلیت مجازی‌سازی پشتیبانی می‌کند.

  2. نصب بسته‌های مورد نیاز
    برای نصب KVM و ابزارهای مربوطه، بسته‌های زیر را نصب کنید:

    sudo apt update
    sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
    

    این دستور تمامی ابزارهای مورد نیاز برای KVM و مدیریت ماشین‌های مجازی را نصب می‌کند.

  3. فعال‌سازی و بررسی وضعیت سرویس libvirt
    بعد از نصب، سرویس‌های مربوط به KVM و libvirt را فعال کنید:

    sudo systemctl enable --now libvirtd
    sudo systemctl status libvirtd
    

    این دستور سرویس‌های libvirt را راه‌اندازی کرده و وضعیت آن‌ها را نمایش می‌دهد.

  4. بررسی نصب KVM
    برای اطمینان از نصب درست KVM، دستور زیر را اجرا کنید:

    kvm-ok
    

    اگر همه چیز درست نصب شده باشد، پیامی مشابه این خواهید دید:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

3️⃣ ایجاد و مدیریت ماشین‌های مجازی با KVM

پس از نصب و پیکربندی، حالا می‌توانیم ماشین‌های مجازی را ایجاد و مدیریت کنیم. برای این کار می‌توان از ابزارهای مختلفی مانند virt-manager (برای محیط گرافیکی) یا virsh (برای محیط خط فرمان) استفاده کرد.

استفاده از virt-manager (رابط گرافیکی):
  1. اجرای virt-manager
    برای باز کردن Virt-Manager که محیط گرافیکی برای مدیریت ماشین‌های مجازی است، دستور زیر را اجرا کنید:

    virt-manager
    

    پس از باز شدن، می‌توانید ماشین‌های مجازی جدید ایجاد کرده، تنظیمات آن‌ها را تغییر دهید و منابع سیستم را مدیریت کنید.

  2. ایجاد ماشین مجازی جدید: در Virt-Manager، روی File کلیک کنید و سپس گزینه New را انتخاب کنید تا یک ماشین مجازی جدید ایجاد کنید. مراحل راه‌اندازی شامل انتخاب سیستم‌عامل، تخصیص منابع، پیکربندی شبکه و دیسک‌ها است.
استفاده از virsh (رابط خط فرمان):

virsh ابزاری است که به شما این امکان را می‌دهد تا ماشین‌های مجازی را از طریق خط فرمان مدیریت کنید.

  1. ایجاد یک ماشین مجازی جدید با virsh:ابتدا یک فایل XML برای ماشین مجازی خود ایجاد کنید. برای مثال، یک فایل XML ساده برای ماشین مجازی Ubuntu:
    <domain type='kvm'>
      <name>ubuntu-vm</name>
      <memory unit='KiB'>1048576</memory>  <!-- 1GB RAM -->
      <vcpu placement='static'>1</vcpu>      <!-- 1 vCPU -->
      <os>
        <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
        <boot dev='hd'/>
      </os>
      <devices>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/var/lib/libvirt/images/ubuntu-vm.qcow2'/>
          <target dev='vda' bus='virtio'/>
          <address type='pci' slot='0x04'/>
        </disk>
        <interface type='network'>
          <mac address='52:54:00:6b:3e:fe'/>
          <source network='default'/>
          <model type='virtio'/>
          <address type='pci' slot='0x03'/>
        </interface>
      </devices>
    </domain>
    

    سپس فایل XML را با دستور زیر به ماشین مجازی تبدیل کنید:

    virsh define /path/to/your/ubuntu-vm.xml
    
  2. شروع و مدیریت ماشین‌های مجازی:برای شروع ماشین مجازی:
    virsh start ubuntu-vm
    

    برای توقف آن:

    virsh shutdown ubuntu-vm
    
  3. لیست کردن ماشین‌های مجازی موجود:برای مشاهده ماشین‌های مجازی فعال:
    virsh list
    

4️⃣ پیکربندی شبکه و ذخیره‌سازی برای ماشین‌های مجازی با KVM

یکی از مهم‌ترین بخش‌های مدیریت ماشین‌های مجازی، پیکربندی شبکه و ذخیره‌سازی برای این ماشین‌ها است. در اینجا نحوه پیکربندی این دو مورد را توضیح خواهیم داد.

پیکربندی شبکه برای ماشین‌های مجازی:
  1. Bridge Networking
    برای اتصال ماشین‌های مجازی به شبکه بیرونی، باید از Bridge Networking استفاده کنید. این کار به ماشین مجازی اجازه می‌دهد تا به شبکه همانند یک دستگاه فیزیکی متصل شود. فایل پیکربندی شبکه در مسیر /etc/network/interfaces قرار دارد. برای ایجاد یک bridge جدید:

    auto br0
    iface br0 inet dhcp
      bridge_ports eth0
    

    سپس ماشین‌های مجازی را به این bridge متصل می‌کنیم.

پیکربندی ذخیره‌سازی برای ماشین‌های مجازی:
  1. ایجاد دیسک‌های جدید برای ماشین‌های مجازی
    برای ایجاد یک دیسک جدید برای ماشین مجازی با استفاده از دستور زیر:

    qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 10G
    

    این دستور یک دیسک ۱۰ گیگابایتی با فرمت qcow2 ایجاد می‌کند که به ماشین مجازی اختصاص داده خواهد شد.


جمع‌بندی

KVM یکی از قدرتمندترین ابزارهای مجازی‌سازی در لینوکس است که برای ایجاد و مدیریت ماشین‌های مجازی با استفاده از قابلیت‌های سخت‌افزاری پردازنده‌ها طراحی شده است. این ابزار همراه با سایر ابزارهای متن‌باز مانند QEMU و Libvirt، امکاناتی عالی برای ایجاد و مدیریت ماشین‌های مجازی فراهم می‌آورد. در این بخش، نحوه نصب، پیکربندی و مدیریت ماشین‌های مجازی با KVM بررسی شد و دستورات عملی برای کار با آن ارائه گردید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”کانتینرها (LXC) و کاربرد آن‌ها در Proxmox” subtitle=”توضیحات کامل”]کانتینرها یکی از مفاهیم کلیدی در دنیای مجازی‌سازی مدرن هستند که به‌طور ویژه در سیستم‌عامل‌های لینوکس و با استفاده از ابزارهای مختلفی مانند LXC (Linux Containers) پیاده‌سازی می‌شوند. کانتینرها به شما این امکان را می‌دهند که برنامه‌ها و سرویس‌ها را در یک محیط ایزوله، سبک و بدون نیاز به استفاده از منابع زیاد (برخلاف ماشین‌های مجازی) اجرا کنید. در پلتفرم‌های مجازی‌سازی مانند Proxmox VE، LXC به‌عنوان یک گزینه بسیار کارآمد برای اجرا و مدیریت کانتینرها در کنار ماشین‌های مجازی (KVM) ارائه می‌شود. در این بخش، به بررسی کانتینرها (LXC)، مزایای آن‌ها و نحوه استفاده از این فناوری در Proxmox خواهیم پرداخت.


1️⃣ معرفی LXC (Linux Containers)

LXC یکی از تکنولوژی‌های مجازی‌سازی سطح سیستم‌عامل است که به‌جای شبیه‌سازی کامل سخت‌افزار مانند ماشین‌های مجازی، از هسته لینوکس برای ایزوله‌سازی و جداسازی فرآیندها در داخل یک کانتینر استفاده می‌کند. این روش باعث می‌شود که کانتینرها نسبت به ماشین‌های مجازی بسیار سبک‌تر و سریع‌تر باشند، زیرا منابع بیشتری از سیستم اصلی (هسته لینوکس) را به اشتراک می‌گذارند.

نکات کلیدی در مورد LXC:

  • LXC یک محیط مجازی‌سازی است که به شما امکان می‌دهد سیستم‌های عامل (مانند لینوکس) را در داخل یک فضای ایزوله اجرا کنید.
  • برخلاف ماشین‌های مجازی که هرکدام سیستم‌عامل کامل و جداگانه‌ای دارند، کانتینرها از هسته سیستم‌عامل میزبان استفاده می‌کنند و فقط برنامه‌ها و محیط کاربری آن‌ها ایزوله می‌شود.
  • کانتینرها برای توسعه‌دهندگان و متخصصان IT که نیاز به محیط‌های آزمایشی سریع، مقیاس‌پذیر و کم‌هزینه دارند، مناسب هستند.

2️⃣ مزایای استفاده از کانتینرها (LXC)

استفاده از کانتینرها مزایای متعددی دارد که موجب شده‌اند این فناوری در صنایع مختلف به‌ویژه در پروژه‌های بزرگ و مقیاس‌پذیر محبوبیت زیادی پیدا کند. در اینجا به برخی از مزایای LXC می‌پردازیم:

  • سبک و کم‌هزینه: کانتینرها بسیار سبک هستند، زیرا نیازی به سیستم‌عامل کامل برای هر کانتینر نیست. آن‌ها از هسته سیستم‌عامل میزبان استفاده می‌کنند.
  • عملکرد بالا: چون کانتینرها به‌طور مستقیم از هسته سیستم‌عامل استفاده می‌کنند، می‌توانند کارایی بهتری نسبت به ماشین‌های مجازی داشته باشند.
  • آغاز سریع‌تر: کانتینرها سریع‌تر از ماشین‌های مجازی راه‌اندازی می‌شوند، زیرا نیازی به بارگذاری سیستم‌عامل کامل ندارند.
  • مدیریت ساده: مدیریت کانتینرها نسبت به ماشین‌های مجازی ساده‌تر است و ابزارهایی مانند Docker و Kubernetes به‌راحتی می‌توانند برای مدیریت کانتینرها استفاده شوند.
  • پشتیبانی از برنامه‌های میکروسرویس: کانتینرها به‌طور طبیعی برای معماری‌های میکروسرویس‌ها مناسب هستند، زیرا می‌توان هر میکروسرویس را در یک کانتینر جداگانه اجرا کرد.

3️⃣ کانتینرها در Proxmox VE

در پلتفرم مجازی‌سازی Proxmox VE، از LXC برای ایجاد و مدیریت کانتینرها استفاده می‌شود. Proxmox VE با ارائه این گزینه، امکان راه‌اندازی محیط‌های ایزوله و سبک را به‌صورت کاملاً یکپارچه در کنار ماشین‌های مجازی KVM فراهم می‌کند. این ترکیب اجازه می‌دهد که کاربر از هر دو تکنولوژی (ماشین‌های مجازی و کانتینرها) بسته به نیاز خود استفاده کند.

نحوه استفاده از LXC در Proxmox VE
  1. نصب Proxmox VE
    ابتدا باید پلتفرم Proxmox VE را نصب کرده باشید. پس از نصب، به‌راحتی می‌توانید از LXC برای ایجاد و مدیریت کانتینرها استفاده کنید.
  2. ایجاد کانتینر جدید با LXC در Proxmox
    برای ایجاد یک کانتینر جدید با استفاده از LXC در Proxmox، مراحل زیر را دنبال کنید:

    • وارد Proxmox Web GUI شوید.
    • از منوی سمت چپ، روی Datacenter و سپس Node (که قصد ایجاد کانتینر در آن را دارید) کلیک کنید.
    • سپس روی Create CT کلیک کنید.
    • در پنجره باز شده، جزئیات کانتینر جدید مانند نام، شناسه، سیستم‌عامل، منابع (مانند RAM و CPU)، و دیسک را وارد کنید.
    • پس از وارد کردن تمامی اطلاعات، روی Finish کلیک کنید تا کانتینر جدید ایجاد شود.
  3. پیکربندی کانتینرها (LXC)
    در Proxmox VE می‌توانید کانتینرها را از طریق Web GUI یا دستور خط فرمان مدیریت کنید. برای پیکربندی تنظیمات یک کانتینر، به پنل کانتینر در Proxmox بروید و از گزینه‌های مختلف برای تغییر تنظیمات مانند منابع سیستم، شبکه و دیسک استفاده کنید.

    • به‌طور مثال، برای تنظیم مقدار RAM کانتینر به 2 گیگابایت، وارد بخش Resources در پیکربندی کانتینر شوید و مقدار را تغییر دهید.
  4. مدیریت کانتینرها از طریق خط فرمان
    برای شروع، توقف یا ریستارت کردن یک کانتینر از طریق خط فرمان، می‌توانید از دستورهای زیر استفاده کنید:

    • شروع کردن کانتینر:
      pct start 100
      

      در این دستور، 100 شناسه کانتینر شما است.

    • توقف کردن کانتینر:
      pct stop 100
      
    • ریستارت کردن کانتینر:
      pct restart 100
      
    • دسترسی به کانتینر از طریق خط فرمان:
      pct enter 100
      

      این دستور شما را وارد محیط لینوکس داخل کانتینر می‌کند.

  5. پیکربندی شبکه برای کانتینرها
    برای پیکربندی شبکه در کانتینرها می‌توانید از Bridge networking در Proxmox استفاده کنید. در این حالت، کانتینر به شبکه میزبان متصل خواهد شد.برای افزودن یک رابط شبکه به کانتینر، می‌توانید در بخش Network هنگام ایجاد کانتینر، گزینه‌های مختلفی مانند Bridge و VLAN را پیکربندی کنید.

4️⃣ نکات و بهترین شیوه‌ها در استفاده از LXC در Proxmox VE

  • استفاده از قالب‌های آماده: برای سرعت بخشیدن به فرآیند ایجاد کانتینر، از template های آماده استفاده کنید. این قالب‌ها شامل سیستم‌عامل‌های مختلف مانند Ubuntu، Debian و Alpine Linux هستند.
  • بهترین تنظیمات منابع: از منابع بهینه‌شده برای هر کانتینر استفاده کنید. به‌طور معمول، کانتینرها از منابع کمی نسبت به ماشین‌های مجازی استفاده می‌کنند، اما باید از تنظیمات مناسب برای تعداد CPU و RAM اطمینان حاصل کنید.
  • ایزولاسیون امنیتی: برای ایجاد امنیت بیشتر، می‌توانید از ابزارهای AppArmor و SELinux برای اعمال سیاست‌های امنیتی بیشتر روی کانتینرها استفاده کنید.
  • پشتیبان‌گیری از کانتینرها: برای محافظت از داده‌ها، از قابلیت‌های پشتیبان‌گیری و بازیابی داده‌ها در Proxmox برای کانتینرها بهره‌برداری کنید. Proxmox امکان پشتیبان‌گیری از کانتینرها به‌صورت خودکار را فراهم می‌کند.

جمع‌بندی

کانتینرها (LXC) یک تکنولوژی مجازی‌سازی سبک و کارآمد هستند که می‌توانند برای اجرای برنامه‌ها و سرویس‌ها در محیط‌های ایزوله استفاده شوند. در پلتفرم Proxmox VE، LXC به‌عنوان یک گزینه قدرتمند برای راه‌اندازی و مدیریت کانتینرها ارائه می‌شود. این ویژگی باعث می‌شود که کاربران بتوانند از هر دو روش مجازی‌سازی (ماشین‌های مجازی و کانتینرها) به‌طور همزمان استفاده کنند و از مزایای هریک بهره‌مند شوند.[/cdb_course_lesson][cdb_course_lesson title=”مدیریت ذخیره‌سازی:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”ذخیره‌سازی لوکال و شبکه‌ای” subtitle=”توضیحات کامل”]در دنیای مجازی‌سازی، انتخاب صحیح نوع ذخیره‌سازی نقش بسیار مهمی در عملکرد و مقیاس‌پذیری سیستم‌ها ایفا می‌کند. هنگامی که یک پلتفرم مجازی‌سازی مانند Proxmox VE را پیکربندی می‌کنید، باید تصمیم بگیرید که از ذخیره‌سازی لوکال (محلی) یا ذخیره‌سازی شبکه‌ای استفاده کنید. این تصمیم بستگی به نیازهای عملکردی، مقیاس‌پذیری و انعطاف‌پذیری شما دارد. در این بخش، به بررسی ذخیره‌سازی لوکال و شبکه‌ای خواهیم پرداخت و نحوه پیکربندی آن‌ها در Proxmox VE را بررسی خواهیم کرد.


1️⃣ ذخیره‌سازی لوکال (Local Storage)

ذخیره‌سازی لوکال به ذخیره‌سازی‌هایی گفته می‌شود که به‌طور مستقیم به سرور میزبان متصل شده‌اند، مانند دیسک‌های سخت (HDD)، دیسک‌های حالت جامد (SSD) یا RAID‌های داخلی. در این روش، داده‌ها و ماشین‌های مجازی یا کانتینرها مستقیماً بر روی این ذخیره‌سازی‌ها قرار می‌گیرند.

ویژگی‌ها و مزایای ذخیره‌سازی لوکال:

  • عملکرد بالا: به‌دلیل اینکه داده‌ها مستقیماً بر روی سرور ذخیره می‌شوند و نیازی به شبکه نیست، عملکرد در ذخیره‌سازی لوکال معمولاً بالاتر است.
  • سادگی در راه‌اندازی: تنظیمات ذخیره‌سازی لوکال ساده‌تر از ذخیره‌سازی شبکه‌ای است و نیاز به تجهیزات اضافی ندارد.
  • هزینه کمتر: در صورتی که نیازی به مقیاس‌پذیری بالا نداشته باشید، ذخیره‌سازی لوکال از نظر هزینه‌ای مقرون به صرفه است.

معایب ذخیره‌سازی لوکال:

  • مقیاس‌پذیری محدود: ذخیره‌سازی لوکال معمولاً به اندازه ظرفیت دیسک‌های فیزیکی سرور محدود است.
  • عدم انعطاف‌پذیری در دسترسی از راه دور: دسترسی به داده‌ها در صورت نیاز به استفاده از آن‌ها در چندین سرور مشکل‌ساز می‌شود.

پیکربندی ذخیره‌سازی لوکال در Proxmox VE: برای پیکربندی ذخیره‌سازی لوکال در Proxmox، معمولاً از LVM یا ZFS برای مدیریت دیسک‌ها استفاده می‌شود.

نحوه افزودن ذخیره‌سازی لوکال:

  1. وارد Web GUI Proxmox شوید.
  2. از منوی سمت چپ، روی Datacenter کلیک کنید.
  3. سپس به بخش Storage بروید.
  4. روی گزینه Add کلیک کنید و نوع ذخیره‌سازی Directory یا LVM را انتخاب کنید.
  5. مسیر ذخیره‌سازی (مانند /dev/sdb یا /mnt/data) را مشخص کنید و نام ذخیره‌سازی را وارد کنید.
  6. گزینه‌های مختلف مانند Content (نوع داده‌ها) را تنظیم کنید.
  7. روی Add کلیک کنید تا ذخیره‌سازی لوکال شما افزوده شود.

2️⃣ ذخیره‌سازی شبکه‌ای (Network Storage)

ذخیره‌سازی شبکه‌ای به سیستمی گفته می‌شود که از طریق شبکه به سرورهای مختلف متصل است. در این نوع ذخیره‌سازی، داده‌ها به‌جای قرار گرفتن بر روی دیسک‌های محلی سرور، روی دستگاه‌های ذخیره‌سازی که از طریق شبکه قابل دسترسی هستند، ذخیره می‌شوند. انواع مختلفی از ذخیره‌سازی شبکه‌ای وجود دارد که شامل NAS (Network Attached Storage)، SAN (Storage Area Network) و iSCSI می‌شوند.

ویژگی‌ها و مزایای ذخیره‌سازی شبکه‌ای:

  • مقیاس‌پذیری بالا: ذخیره‌سازی شبکه‌ای به شما این امکان را می‌دهد که حجم داده‌های ذخیره‌شده را به‌راحتی افزایش دهید.
  • دسترسی مشترک: امکان دسترسی به داده‌ها از چندین سرور مختلف وجود دارد که این ویژگی برای محیط‌های کلان یا سیستم‌های HA (High Availability) بسیار مهم است.
  • افزایش انعطاف‌پذیری: شما می‌توانید از ذخیره‌سازی شبکه‌ای برای ایجاد محیط‌های ایمن و پشتیبان‌گیری یکپارچه استفاده کنید.

معایب ذخیره‌سازی شبکه‌ای:

  • عملکرد پایین‌تر: به‌دلیل وجود شبکه میان سرور و دستگاه ذخیره‌سازی، عملکرد نسبت به ذخیره‌سازی لوکال ممکن است کمی کاهش یابد.
  • نیاز به تنظیمات پیچیده: پیکربندی و نگهداری ذخیره‌سازی شبکه‌ای معمولاً پیچیده‌تر است و نیاز به تجهیزات اضافی مانند سوئیچ‌ها و سرورهای ذخیره‌سازی دارد.
  • هزینه بالاتر: به‌دلیل نیاز به سخت‌افزار اضافی (مثل دستگاه‌های NAS یا SAN) هزینه نصب و نگهداری ممکن است بالاتر باشد.

پیکربندی ذخیره‌سازی شبکه‌ای در Proxmox VE: برای استفاده از ذخیره‌سازی شبکه‌ای مانند NFS یا iSCSI در Proxmox، می‌توانید مراحل زیر را دنبال کنید:

  1. پیکربندی NFS:
    • وارد Web GUI Proxmox شوید.
    • از منوی سمت چپ، روی Datacenter کلیک کرده و سپس روی Storage بروید.
    • روی گزینه Add کلیک کنید و NFS را انتخاب کنید.
    • آدرس Server (آدرس IP دستگاه NFS) و مسیر Export را وارد کنید.
    • روی Add کلیک کنید تا ذخیره‌سازی NFS اضافه شود.
  2. پیکربندی iSCSI:
    • وارد Web GUI شوید و به بخش Datacenter بروید.
    • سپس روی Storage کلیک کنید و گزینه Add و iSCSI را انتخاب کنید.
    • در قسمت Portal، آدرس IP سرور iSCSI را وارد کنید.
    • در بخش Target، هدف ذخیره‌سازی iSCSI را انتخاب کنید.
    • پس از تکمیل تنظیمات، روی Add کلیک کنید.

3️⃣ مقایسه ذخیره‌سازی لوکال و شبکه‌ای

ویژگی ذخیره‌سازی لوکال ذخیره‌سازی شبکه‌ای
عملکرد بالاتر، زیرا داده‌ها مستقیماً از دیسک خوانده می‌شوند ممکن است با کاهش عملکرد به‌دلیل تأخیر شبکه روبه‌رو شود
مقیاس‌پذیری محدود به ظرفیت دیسک‌های موجود مقیاس‌پذیری بالا به‌راحتی امکان‌پذیر است
هزینه کمتر، زیرا نیاز به تجهیزات اضافی ندارد بالاتر به‌دلیل نیاز به تجهیزات اضافی (NAS/SAN)
انعطاف‌پذیری محدود به سرور میزبان امکان دسترسی از چندین سرور به داده‌ها وجود دارد
سادگی نصب و پیکربندی ساده‌تر پیچیده‌تر و نیاز به تنظیمات شبکه‌ای دارد

جمع‌بندی

در این بخش، به بررسی ذخیره‌سازی لوکال و ذخیره‌سازی شبکه‌ای پرداختیم. هرکدام از این نوع ذخیره‌سازی‌ها مزایا و معایب خاص خود را دارند. ذخیره‌سازی لوکال مناسب برای محیط‌های کوچک و نیازهای عملکردی بالا است، در حالی که ذخیره‌سازی شبکه‌ای بیشتر برای محیط‌های بزرگ، مقیاس‌پذیر و نیازمند دسترسی از چندین سرور مورد استفاده قرار می‌گیرد. در نهایت، انتخاب نوع ذخیره‌سازی بستگی به نیازهای خاص سیستم شما و پلتفرم مجازی‌سازی دارد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پشتیبانی از Ceph برای مقیاس‌پذیری” subtitle=”توضیحات کامل”]در دنیای ذخیره‌سازی و مجازی‌سازی، مقیاس‌پذیری یکی از ویژگی‌های حیاتی است. برای بسیاری از سازمان‌ها و محیط‌های تولیدی، نیاز به سیستم‌های ذخیره‌سازی مقیاس‌پذیر، مقاوم و توزیع‌شده به‌منظور مدیریت حجم‌های عظیم داده احساس می‌شود. Ceph به عنوان یک سیستم ذخیره‌سازی توزیع‌شده و مقیاس‌پذیر، قادر است به‌طور مؤثری از حجم بالای داده‌ها پشتیبانی کند. در این بخش، به نحوه پشتیبانی از Ceph در Proxmox VE و نحوه پیکربندی آن برای مقیاس‌پذیری خواهیم پرداخت.


1️⃣ معرفی Ceph

Ceph یک سیستم ذخیره‌سازی توزیع‌شده است که برای تأمین دسترسی بالا و مقیاس‌پذیری افقی طراحی شده است. این سیستم می‌تواند به‌طور خودکار داده‌ها را بین دستگاه‌های مختلف توزیع کرده و از تکثیر و پشتیبان‌گیری داده‌ها برای جلوگیری از از دست رفتن آن‌ها استفاده کند. Ceph از سه نوع ذخیره‌سازی اصلی پشتیبانی می‌کند:

  • Block Storage (حجم داده‌ها) برای استفاده به عنوان دیسک‌های مجازی برای ماشین‌های مجازی
  • Object Storage برای ذخیره‌سازی شیءها
  • File System برای سیستم‌های فایل توزیع‌شده

مزایای استفاده از Ceph:

  • مقیاس‌پذیری افقی (افزودن گره‌های بیشتر برای گسترش ظرفیت ذخیره‌سازی)
  • دسترسی بالا (High Availability)
  • تحمل خرابی (Fault Tolerance) از طریق تکنیک‌های مانند replication و erasure coding
  • مدیریت خودکار (Self-Healing) داده‌ها در صورت بروز مشکل

2️⃣ چرا Ceph برای مقیاس‌پذیری مهم است؟

در محیط‌هایی که نیاز به مقیاس‌پذیری بسیار بالا دارند، Ceph این امکان را فراهم می‌آورد که ذخیره‌سازی را بدون نیاز به متوقف کردن سرویس‌ها گسترش دهید. Ceph به‌طور خودکار داده‌ها را بر روی گره‌های مختلف توزیع کرده و در صورت بروز خرابی در هر یک از گره‌ها، داده‌ها را به‌طور خودکار از گره‌های دیگر بازیابی می‌کند.

نکات اصلی برای مقیاس‌پذیری با Ceph عبارتند از:

  • گسترش افقی: اضافه کردن گره‌های ذخیره‌سازی جدید به خوشه بدون متوقف کردن سیستم
  • توزیع داده‌ها: Ceph داده‌ها را به‌طور خودکار بر روی گره‌ها توزیع کرده و از توازن بار (Load Balancing) بهره می‌برد.
  • Replication: اطلاعات به‌صورت خودکار تکثیر می‌شوند تا از از دست رفتن داده‌ها جلوگیری شود.

3️⃣ پشتیبانی از Ceph در Proxmox VE

در Proxmox VE، Ceph یک گزینه ایده‌آل برای کسانی است که نیاز به ذخیره‌سازی مقیاس‌پذیر و مقاوم در برابر خرابی دارند. این پلتفرم از Ceph به‌طور کامل پشتیبانی می‌کند و شما می‌توانید آن را به‌راحتی به‌عنوان یک سیستم ذخیره‌سازی توزیع‌شده برای ماشین‌های مجازی و کانتینرها راه‌اندازی کنید.

برای استفاده از Ceph در Proxmox، شما باید یک Ceph Cluster راه‌اندازی کنید و آن را به عنوان ذخیره‌سازی برای ماشین‌های مجازی خود پیکربندی نمایید. پیکربندی Ceph در Proxmox به‌صورت یکپارچه و ساده در کنسول مدیریت Web GUI و همچنین از طریق دستورات CLI انجام می‌شود.


4️⃣ مراحل پیکربندی Ceph در Proxmox VE

برای پیکربندی Ceph در Proxmox VE، مراحل زیر را دنبال کنید:

  1. نصب Ceph در Proxmox VE: ابتدا برای نصب Ceph بر روی سرور خود باید بسته‌های مربوطه را نصب کنید.به‌منظور نصب Ceph، دستور زیر را در هر سرور Proxmox اجرا کنید:
    apt update && apt install proxmox-ve-2.3 ceph ceph-deploy
    
  2. ایجاد Ceph Cluster: برای ایجاد یک Ceph Cluster، می‌توانید از دستور زیر استفاده کنید که گره‌های مختلف را به خوشه اضافه می‌کند.ابتدا در یک سرور، از دستور زیر برای راه‌اندازی خوشه Ceph استفاده کنید:
    pveceph init --network 192.168.1.0/24
    

    پس از اجرای این دستور، سایر گره‌ها می‌توانند به خوشه اضافه شوند.

  3. اضافه کردن گره‌ها به خوشه Ceph: برای اضافه کردن گره‌های دیگر به خوشه Ceph از دستور زیر استفاده کنید:
    pveceph join <IP-of-primary-node>
    

    این دستور خوشه را به‌صورت خودکار گسترش می‌دهد و تمام گره‌ها به یکدیگر متصل می‌شوند.

  4. ایجاد و پیکربندی OSDs: OSDها (Object Storage Daemon) در واقع مسئول ذخیره‌سازی داده‌ها در Ceph هستند. برای راه‌اندازی OSD جدید، از دستور زیر استفاده کنید:
    pveceph osd create <disk>
    

    در اینجا، <disk> به دیسک فیزیکی که قرار است برای ذخیره‌سازی استفاده شود، اشاره دارد. هر گره می‌تواند چندین OSD داشته باشد.

  5. ایجاد Pool: پس از راه‌اندازی OSDها، باید یک Pool برای ذخیره‌سازی داده‌ها ایجاد کنید. Pools به‌عنوان یک واحد منطقی برای ذخیره‌سازی داده‌ها در Ceph عمل می‌کنند.برای ایجاد یک Pool جدید، از دستور زیر استفاده کنید:
    ceph osd pool create <pool-name> 128
    
  6. اتصال Ceph به Proxmox برای ذخیره‌سازی: پس از پیکربندی Ceph Cluster و OSDها، باید آن را به Proxmox اضافه کنید تا بتوانید از آن به‌عنوان ذخیره‌سازی برای ماشین‌های مجازی و کانتینرها استفاده کنید.برای این کار، وارد Web GUI Proxmox شوید، به قسمت Datacenter رفته و سپس از منوی Storage گزینه Add و Ceph را انتخاب کنید. سپس اطلاعات مربوط به Cluster Name و Pool خود را وارد کرده و ذخیره‌سازی Ceph را اضافه کنید.

5️⃣ مزایای استفاده از Ceph برای مقیاس‌پذیری در Proxmox VE

  • مقیاس‌پذیری بی‌وقفه: با اضافه کردن گره‌های جدید به خوشه Ceph، می‌توانید فضای ذخیره‌سازی را بدون نیاز به توقف ماشین‌های مجازی یا کانتینرها گسترش دهید.
  • دسترسی بالا و تحمل خرابی: Ceph از Replication و Erasure Coding برای حفظ دسترسی به داده‌ها حتی در صورت خرابی قطعات استفاده می‌کند.
  • توزیع خودکار داده‌ها: Ceph به‌طور خودکار داده‌ها را در خوشه توزیع می‌کند، بنابراین شما می‌توانید از بار توازن (Load Balancing) و افزایش کارایی استفاده کنید.
  • مدیریت خودکار: Ceph به‌طور خودکار داده‌ها را تکرار کرده و سیستم را در صورت خرابی به حالت پایدار باز می‌گرداند.

جمع‌بندی

در این بخش، با پشتیبانی از Ceph برای مقیاس‌پذیری در Proxmox VE آشنا شدیم. Ceph به‌عنوان یک سیستم ذخیره‌سازی توزیع‌شده و مقیاس‌پذیر، قادر است نیازهای ذخیره‌سازی بزرگ و پیچیده را برآورده کند. با پیکربندی Ceph در Proxmox VE، می‌توانید ذخیره‌سازی مقیاس‌پذیر، مقاوم در برابر خرابی و با دسترسی بالا برای ماشین‌های مجازی و کانتینرهای خود ایجاد کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”استفاده از ZFS برای مدیریت داده‌ها” subtitle=”توضیحات کامل”]ZFS یکی از سیستم‌های فایل و مدیریت داده‌های پیشرفته است که از تکنولوژی‌های نوآورانه برای ارائه عملکرد بالا، پایداری و مقیاس‌پذیری عالی برخوردار است. این سیستم فایل ابتدا توسط شرکت Sun Microsystems توسعه داده شد و امروزه در بسیاری از سیستم‌های متن‌باز مانند Proxmox VE مورد استفاده قرار می‌گیرد. ZFS نه‌تنها به عنوان یک سیستم فایل بلکه به عنوان یک مدیریت سیستم ذخیره‌سازی نیز شناخته می‌شود، که قابلیت‌هایی مانند تراکم داده‌ها (Compression)، نقل و انتقالات تصادفی با سرعت بالا و بازسازی خودکار را ارائه می‌دهد.

در این بخش، به بررسی نحوه استفاده از ZFS برای مدیریت داده‌ها در پلتفرم‌های مختلف مانند Proxmox VE می‌پردازیم و تنظیمات و پیکربندی‌های آن را به‌صورت عملی بیان خواهیم کرد.


1️⃣ معرفی ZFS

ZFS (Zettabyte File System) یک سیستم فایل و مدیریت داده‌ها است که برای سیستم‌های ذخیره‌سازی مقیاس‌پذیر و با ویژگی‌های پیشرفته طراحی شده است. این سیستم فایل از چندین ویژگی منحصربه‌فرد پشتیبانی می‌کند که از جمله آن‌ها می‌توان به موارد زیر اشاره کرد:

  • Snapshot: امکان گرفتن عکس‌برداری از سیستم فایل در یک زمان خاص که می‌تواند برای پشتیبان‌گیری یا بازسازی داده‌ها مورد استفاده قرار گیرد.
  • Data Integrity: تضمین یکپارچگی داده‌ها به‌صورت خودکار و از طریق روش‌هایی مانند Checksumming و Self-Healing.
  • Pooled Storage: مدیریت فضای ذخیره‌سازی به‌صورت یکپارچه از چندین دیسک که از طریق آن می‌توان داده‌ها را به‌طور موثری مدیریت کرد.
  • Compression: فشرده‌سازی داده‌ها به‌طور خودکار برای صرفه‌جویی در فضای ذخیره‌سازی.
  • Replication: امکان تکثیر داده‌ها برای بالا بردن مقاومت در برابر خرابی‌ها.
  • Scalability: مقیاس‌پذیری بالا و کارایی عالی برای محیط‌های بزرگ.

2️⃣ مزایای استفاده از ZFS برای مدیریت داده‌ها

ZFS دارای مزایای قابل توجهی در مقایسه با سیستم‌های فایل سنتی است که به ویژه در مقیاس‌های بزرگ ذخیره‌سازی و محیط‌های مجازی‌سازی اهمیت دارد. برخی از این مزایا عبارتند از:

  • دسترس‌پذیری بالا و مقاومت در برابر خرابی: ZFS به‌طور خودکار داده‌ها را چک کرده و اگر خطایی در داده‌ها شناسایی شود، آن را برطرف می‌کند.
  • افزایش عملکرد: ZFS با ارائه قابلیت‌هایی مانند Cache، Compression و Deduplication می‌تواند عملکرد بالاتری نسبت به سیستم‌های فایل سنتی ارائه دهد.
  • مدیریت آسان فضای ذخیره‌سازی: با استفاده از ZFS Pools، فضای ذخیره‌سازی به‌طور خودکار در چندین دیسک تقسیم و مدیریت می‌شود.
  • Snapshot و Backup: قابلیت گرفتن Snapshot و بازسازی آسان داده‌ها به شما کمک می‌کند تا از از دست رفتن داده‌ها جلوگیری کنید.
  • پشتیبانی از RAID: ZFS قابلیت‌های مشابه RAID را برای حافظه‌های با افزونگی (Redundancy) ارائه می‌دهد، بدون اینکه نیاز به سخت‌افزار خاص RAID باشد.

3️⃣ استفاده از ZFS در Proxmox VE

در Proxmox VE، ZFS به‌طور کامل پشتیبانی می‌شود و می‌توان آن را برای مدیریت ذخیره‌سازی ماشین‌های مجازی و کانتینرها به‌کار برد. در این بخش، نحوه نصب، پیکربندی و استفاده از ZFS در Proxmox VE را بررسی خواهیم کرد.


4️⃣ نصب ZFS در Proxmox VE

برای استفاده از ZFS در Proxmox VE ابتدا باید بسته‌های لازم را نصب کنید. در نسخه‌های اخیر Proxmox، ZFS به‌طور پیش‌فرض در پکیج‌ها موجود است، ولی در صورتی که آن را نداشته باشید، می‌توانید آن را به‌راحتی نصب کنید.

  1. نصب ZFS: ابتدا برای نصب ZFS، وارد سرور Proxmox خود شوید و دستور زیر را اجرا کنید:
    apt update
    apt install zfsutils-linux
    

    این دستور تمامی بسته‌های مورد نیاز برای استفاده از ZFS را نصب خواهد کرد.

  2. بررسی نصب: پس از نصب، می‌توانید با دستور زیر از نصب صحیح ZFS اطمینان حاصل کنید:
    zfs --version
    

    این دستور نسخه نصب‌شده ZFS را نمایش خواهد داد.


5️⃣ پیکربندی ZFS در Proxmox VE

پس از نصب ZFS، باید یک ZFS Pool ایجاد کنید که به‌عنوان ذخیره‌سازی برای ماشین‌های مجازی و کانتینرها در Proxmox VE استفاده شود. مراحل زیر را برای پیکربندی ZFS دنبال کنید:

  1. ایجاد یک ZFS Pool: برای ایجاد یک ZFS Pool، باید حداقل یک دیسک فیزیکی در دسترس داشته باشید. دستور زیر را برای ایجاد ZFS Pool اجرا کنید:
    zpool create mypool /dev/sdb
    

    در اینجا، mypool نام ZFS Pool شما است و /dev/sdb دیسک فیزیکی است که برای ذخیره‌سازی انتخاب شده است.

  2. بررسی وضعیت ZFS Pool: پس از ایجاد Pool، می‌توانید وضعیت آن را با دستور زیر بررسی کنید:
    zpool status mypool
    

    این دستور وضعیت و سلامت Pool شما را نمایش می‌دهد.


6️⃣ استفاده از ZFS در Proxmox VE برای ذخیره‌سازی ماشین‌های مجازی

پس از پیکربندی ZFS، می‌توانید از آن برای ذخیره‌سازی ماشین‌های مجازی در Proxmox VE استفاده کنید.

  1. اضافه کردن ZFS به Proxmox VE: برای اضافه کردن ZFS به Proxmox به‌عنوان یک ذخیره‌سازی جدید، وارد Web GUI شوید، سپس به قسمت Datacenter رفته و از منوی Storage گزینه Add و سپس ZFS را انتخاب کنید.
  2. پیکربندی ذخیره‌سازی ZFS: در پنجره بازشده، نام ZFS Pool (که همان mypool است) را وارد کرده و تنظیمات مربوط به آن را برای استفاده از آن به‌عنوان ذخیره‌سازی ماشین‌های مجازی یا کانتینرها انجام دهید.

7️⃣ ویژگی‌های پیشرفته ZFS برای مدیریت داده‌ها

ZFS علاوه بر قابلیت‌های پایه‌ای مانند Snapshot و Raid-Z، ویژگی‌های پیشرفته‌ای نیز دارد که می‌تواند مدیریت داده‌ها را بهبود ببخشد. برخی از این ویژگی‌ها عبارتند از:

  1. Snapshot و Rollback: امکان گرفتن یک Snapshot از یک سیستم فایل یا Pool در یک زمان خاص وجود دارد. این کار می‌تواند برای پشتیبان‌گیری، بازیابی داده‌ها، یا مدیریت تغییرات در سیستم استفاده شود. دستور زیر برای گرفتن Snapshot استفاده می‌شود:
    zfs snapshot mypool@snapshot1
    

    برای بازگشت به وضعیت قبلی (Rollback) از دستور زیر استفاده کنید:

    zfs rollback mypool@snapshot1
    
  2. Compression: ZFS به‌طور خودکار داده‌ها را فشرده می‌کند و از فضای ذخیره‌سازی به‌صورت بهینه استفاده می‌کند. برای فعال‌سازی فشرده‌سازی، دستور زیر را اجرا کنید:
    zfs set compression=lz4 mypool
    
  3. Deduplication: ویژگی دیگر ZFS که می‌تواند باعث صرفه‌جویی بیشتر در فضای ذخیره‌سازی شود، Deduplication است. این ویژگی به سیستم فایل کمک می‌کند تا داده‌های تکراری را شناسایی کرده و فقط یک نسخه از آن‌ها را ذخیره کند.
    zfs set dedup=on mypool
    

جمع‌بندی

استفاده از ZFS به‌عنوان سیستم فایل و مدیریت داده‌ها در Proxmox VE امکانات متعددی را برای مدیریت ذخیره‌سازی به‌طور مقیاس‌پذیر، مقاوم و با عملکرد بالا فراهم می‌آورد. با ویژگی‌هایی مانند Snapshot، Compression، Deduplication و Self-Healing، ZFS به ابزاری قدرتمند برای مدیریت داده‌ها در محیط‌های مجازی‌سازی تبدیل شده است. این سیستم فایل به‌ویژه برای محیط‌های بزرگ با نیازهای پیچیده ذخیره‌سازی بسیار مناسب است.[/cdb_course_lesson][cdb_course_lesson title=”مدیریت شبکه:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تعریف و مدیریت شبکه‌های مجازی” subtitle=”توضیحات کامل”]شبکه‌های مجازی یکی از اجزای مهم در زمینه مجازی‌سازی هستند که امکان اتصال و ارتباط بین ماشین‌های مجازی (VM) و کانتینرها را در محیط‌های مجازی مختلف فراهم می‌آورد. شبکه‌های مجازی به شما این امکان را می‌دهند که به‌طور منطقی شبکه‌ها را ایجاد، پیکربندی و مدیریت کنید بدون اینکه به سخت‌افزار فیزیکی وابسته باشید. این نوع شبکه‌ها به‌ویژه در محیط‌های مجازی‌سازی مانند Proxmox VE کاربرد زیادی دارند و برای مدیریت پهنای باند، امنیت و مقیاس‌پذیری بهینه استفاده می‌شوند.

در این بخش، به تعریف شبکه‌های مجازی، روش‌های مختلف پیکربندی آن‌ها و نحوه مدیریت شبکه‌های مجازی در پلتفرم‌های مختلف مثل Proxmox VE خواهیم پرداخت.


1️⃣ شبکه‌های مجازی چیست؟

شبکه‌های مجازی (Virtual Networks) به‌طور کلی به شبکه‌هایی گفته می‌شود که به‌طور نرم‌افزاری ایجاد و مدیریت می‌شوند و به شما این امکان را می‌دهند که ماشین‌های مجازی یا کانتینرها را به یکدیگر متصل کنید. این شبکه‌ها مشابه شبکه‌های فیزیکی عمل می‌کنند، اما تفاوت‌های زیادی از نظر مدیریت و مقیاس‌پذیری دارند.

چند ویژگی کلیدی شبکه‌های مجازی عبارتند از:

  • انعطاف‌پذیری: شبکه‌های مجازی به‌راحتی قابل تنظیم، گسترش و اصلاح هستند و می‌توانند برای مقیاس‌های بزرگ بدون نیاز به سخت‌افزار جدید گسترش یابند.
  • الگوریتم‌های تنظیمات امنیتی: می‌توانند با استفاده از فایروال‌ها، قوانین امنیتی و پروکسی‌ها به‌طور مؤثری از اطلاعات محافظت کنند.
  • آی‌پی‌گذاری منطقی: به‌جای وابستگی به آی‌پی‌های فیزیکی، از آی‌پی‌های مجازی برای ماشین‌ها استفاده می‌شود که به انعطاف بیشتر و انتقال راحت‌تر بین شبکه‌ها کمک می‌کند.
  • هزینه‌های کمتر: به‌دلیل حذف نیاز به سخت‌افزار فیزیکی و استفاده از منابع نرم‌افزاری، هزینه‌های عملیاتی به‌طور چشمگیری کاهش می‌یابد.

2️⃣ انواع شبکه‌های مجازی

در مجازی‌سازی، انواع مختلفی از شبکه‌های مجازی وجود دارند که بسته به نیاز شما می‌توانند پیکربندی شوند. این شبکه‌ها شامل موارد زیر می‌شوند:

  1. شبکه‌های Virtual Bridge:
    • این شبکه‌ها به ماشین‌های مجازی و کانتینرها امکان می‌دهند که به شبکه فیزیکی سرور میزبان دسترسی داشته باشند.
    • در این شبکه‌ها، ماشین‌های مجازی می‌توانند به‌طور مستقیم از یک درگاه شبکه فیزیکی استفاده کنند و در نتیجه قادر به برقراری ارتباط با شبکه‌های خارجی هستند.
  2. شبکه‌های Virtual NAT (Network Address Translation):
    • در این شبکه‌ها، ماشین‌های مجازی از یک آی‌پی خصوصی استفاده می‌کنند و برای برقراری ارتباط با شبکه خارجی از آی‌پی عمومی یکپارچه می‌شوند.
    • این شبکه‌ها معمولاً در مواقعی که نیاز به محافظت از ماشین‌های مجازی در برابر شبکه خارجی دارید و نمی‌خواهید آی‌پی‌های خارجی خود را به نمایش بگذارید، استفاده می‌شوند.
  3. شبکه‌های Internal:
    • این شبکه‌ها به ماشین‌های مجازی اجازه می‌دهند که فقط با یکدیگر ارتباط داشته باشند و ارتباط آن‌ها با شبکه‌های خارجی قطع باشد.
    • این نوع شبکه معمولاً برای محیط‌های تست و آزمایش یا محیط‌های با امنیت بالا استفاده می‌شود.
  4. شبکه‌های VLAN (Virtual Local Area Network):
    • شبکه‌های VLAN برای تقسیم‌بندی و مجزا کردن ترافیک در یک شبکه بزرگ استفاده می‌شوند. در این شبکه‌ها، ماشین‌های مجازی می‌توانند به شبکه‌های مختلف با آی‌پی‌های متفاوت متصل شوند.
    • این نوع شبکه برای جداسازی ترافیک در محیط‌های با مقیاس بالا و نیاز به ایزوله کردن داده‌ها از یکدیگر مفید است.

3️⃣ نحوه پیکربندی و مدیریت شبکه‌های مجازی در Proxmox VE

در Proxmox VE، ابزارهای مختلفی برای مدیریت شبکه‌های مجازی وجود دارد. شما می‌توانید شبکه‌های مختلف را برای ماشین‌های مجازی (VM) یا کانتینرها ایجاد کرده و پیکربندی کنید. در اینجا به بررسی نحوه پیکربندی و مدیریت شبکه‌های مجازی در Proxmox VE می‌پردازیم.

  1. ایجاد یک Virtual Bridge در Proxmox VE: برای ایجاد یک Virtual Bridge در Proxmox VE به‌منظور اتصال ماشین‌های مجازی به شبکه فیزیکی، دستور زیر را در ترمینال سرور Proxmox وارد کنید:
    nano /etc/network/interfaces
    

    سپس تنظیمات زیر را اضافه کنید:

    auto vmbr0
    iface vmbr0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
    

    در اینجا:

    • vmbr0: نام Virtual Bridge است.
    • eth0: رابط شبکه فیزیکی سرور میزبان است که به شبکه خارجی متصل می‌شود.

    پس از انجام این تغییرات، رابط شبکه را بازنشانی کنید:

    systemctl restart networking
    

    حالا، ماشین‌های مجازی که به این Bridge متصل می‌شوند، به‌طور مستقیم به شبکه خارجی متصل خواهند شد.

  2. پیکربندی شبکه‌های مجازی NAT در Proxmox VE: اگر می‌خواهید ماشین‌های مجازی خود را از طریق NAT (ترجمه آدرس شبکه) به شبکه خارجی متصل کنید، باید یک شبکه NAT ایجاد کنید.ابتدا یک Virtual Bridge مشابه دستور قبلی ایجاد کنید و سپس تغییرات زیر را انجام دهید:
    nano /etc/network/interfaces
    

    و تنظیمات زیر را به‌صورت دستی اضافه کنید:

    auto vmbr1
    iface vmbr1 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        bridge_ports none
    

    سپس از طریق ابزار iptables، دسترسی NAT را برای ماشین‌های مجازی فراهم کنید:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    این تنظیمات به ماشین‌های مجازی در VMbr1 اجازه می‌دهند که از طریق eth0 به اینترنت دسترسی پیدا کنند.

  3. پیکربندی شبکه‌های VLAN در Proxmox VE: برای راه‌اندازی یک شبکه VLAN در Proxmox، می‌توانید از دستور زیر استفاده کنید:
    nano /etc/network/interfaces
    

    تنظیمات زیر را برای ایجاد VLAN 100 اضافه کنید:

    auto vlan100
    iface vlan100 inet static
        address 192.168.200.1
        netmask 255.255.255.0
        vlan_raw_device eth0
    

    این دستور، یک VLAN با شناسه 100 روی رابط شبکه eth0 ایجاد می‌کند. حالا ماشین‌های مجازی می‌توانند به این شبکه متصل شوند.

  4. مدیریت شبکه‌های مجازی از طریق Web GUI: برای مدیریت شبکه‌های مجازی از طریق Web GUI Proxmox، وارد صفحه مدیریت وب شوید و به قسمت Datacenter بروید. سپس از منوی Network، گزینه‌های مختلفی برای افزودن و مدیریت شبکه‌های مجازی مانند Linux Bridge، VLAN و NAT را مشاهده خواهید کرد.

4️⃣ نکات امنیتی در شبکه‌های مجازی

هنگام استفاده از شبکه‌های مجازی، نکات امنیتی زیر باید رعایت شود تا اطمینان حاصل شود که ماشین‌های مجازی و کانتینرها از تهدیدات شبکه‌ای محافظت می‌شوند:

  • استفاده از فایروال: فایروال‌ها به‌عنوان یک لایه امنیتی عمل می‌کنند که می‌توانند ترافیک ورودی و خروجی ماشین‌های مجازی را کنترل کنند.
  • جداسازی شبکه‌ها: استفاده از شبکه‌های مجازی برای جداسازی ماشین‌های حساس از ماشین‌های دیگر می‌تواند امنیت را تقویت کند.
  • VLAN: استفاده از VLAN برای جداسازی ترافیک در سطح شبکه می‌تواند به افزایش امنیت کمک کند.

جمع‌بندی

شبکه‌های مجازی یکی از اجزای اصلی در مدیریت و پیکربندی محیط‌های مجازی‌سازی هستند. این شبکه‌ها به‌طور نرم‌افزاری قابل پیکربندی و مدیریت هستند و انعطاف‌پذیری زیادی در اتصال ماشین‌های مجازی و کانتینرها فراهم می‌کنند. در Proxmox VE، پیکربندی شبکه‌های مختلف مانند Virtual Bridge، NAT و VLAN به‌راحتی انجام می‌شود و می‌تواند به بهبود عملکرد و امنیت محیط‌های مجازی کمک کند. همچنین، با رعایت نکات امنیتی، می‌توان از تهدیدات شبکه‌ای جلوگیری کرد و به حفظ یکپارچگی و امنیت داده‌ها کمک کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پشتیبانی از VLAN، Bridge و Bonding” subtitle=”توضیحات کامل”]پشتیبانی از فناوری‌های شبکه مانند VLAN، Bridge و Bonding یکی از ویژگی‌های کلیدی Proxmox VE است که به شما این امکان را می‌دهد تا به‌طور بهینه و انعطاف‌پذیر شبکه‌های مختلف را پیکربندی و مدیریت کنید. این تکنیک‌ها به‌ویژه در محیط‌های بزرگ و پیچیده مجازی‌سازی که نیاز به مدیریت پهنای باند، امنیت، مقیاس‌پذیری و قابلیت اطمینان بالا دارند، کاربرد دارند.

در این بخش، به معرفی و پیکربندی VLAN، Bridge و Bonding در Proxmox VE خواهیم پرداخت و نحوه استفاده از این فناوری‌ها را با کدهای عملی توضیح خواهیم داد.


1️⃣ VLAN (Virtual Local Area Network) در Proxmox VE

VLAN یک فناوری است که به شما این امکان را می‌دهد تا شبکه فیزیکی را به چندین شبکه منطقی تقسیم کنید. این تقسیم‌بندی به‌طور نرم‌افزاری انجام می‌شود و به شما کمک می‌کند تا ترافیک‌های مختلف را از یکدیگر ایزوله کرده و امنیت شبکه را افزایش دهید.

در Proxmox VE، می‌توانید از VLAN برای تقسیم‌بندی شبکه ماشین‌های مجازی استفاده کنید تا ترافیک‌های مختلف به‌صورت جداگانه ارسال شوند. این کار با استفاده از شناسه‌های VLAN (که معمولاً یک عدد 12 بیتی هستند) انجام می‌شود.

مراحل پیکربندی VLAN در Proxmox VE:

  1. ایجاد یک شبکه VLAN در Proxmox VE: ابتدا باید یک رابط شبکه VLAN ایجاد کنید. این کار را می‌توان از طریق فایل تنظیمات شبکه انجام داد.دستور زیر را برای ویرایش فایل تنظیمات شبکه وارد کنید:
    nano /etc/network/interfaces
    

    سپس یک شبکه VLAN جدید را به‌طور مثال با شناسه VLAN 100 ایجاد کنید. تنظیمات به‌شکل زیر خواهد بود:

    auto vlan100
    iface vlan100 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        vlan_raw_device eth0
    

    در اینجا:

    • vlan100: نام رابط شبکه VLAN است.
    • eth0: رابط شبکه فیزیکی است که VLAN روی آن پیکربندی می‌شود.
    • vlan_raw_device eth0: مشخص می‌کند که این VLAN از رابط eth0 استفاده می‌کند.
  2. اعمال تغییرات: برای اعمال تغییرات، می‌توانید از دستور زیر استفاده کنید:
    systemctl restart networking
    
  3. اتصال ماشین‌های مجازی به شبکه VLAN: پس از ایجاد VLAN، می‌توانید آن را به ماشین‌های مجازی خود متصل کنید. در Web GUI Proxmox، وارد تنظیمات ماشین مجازی شده و در بخش Network، به‌عنوان Bridge یا VLAN، نام رابط شبکه VLAN (مثلاً vlan100) را انتخاب کنید.

2️⃣ Bridge در Proxmox VE

Bridge در واقع یک شبکه مجازی است که به ماشین‌های مجازی اجازه می‌دهد که به‌طور مستقیم به شبکه فیزیکی میزبان متصل شوند. با استفاده از Bridge، ماشین‌های مجازی می‌توانند از آی‌پی‌های موجود در شبکه فیزیکی استفاده کنند و به شبکه‌های خارجی دسترسی داشته باشند.

مراحل پیکربندی Bridge در Proxmox VE:

  1. ایجاد Bridge در Proxmox VE: ابتدا فایل تنظیمات شبکه را ویرایش کنید:
    nano /etc/network/interfaces
    

    سپس یک bridge جدید ایجاد کنید. به‌عنوان مثال، برای ایجاد یک Bridge با نام vmbr0 که به رابط شبکه فیزیکی eth0 متصل باشد، تنظیمات به شکل زیر خواهد بود:

    auto vmbr0
    iface vmbr0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
    

    در اینجا:

    • vmbr0: نام رابط Bridge است.
    • eth0: رابط فیزیکی است که به Bridge متصل می‌شود.
    • bridge_ports eth0: مشخص می‌کند که کدام رابط شبکه فیزیکی به این Bridge متصل است.
  2. اعمال تغییرات: برای اعمال تغییرات در تنظیمات شبکه، دستور زیر را وارد کنید:
    systemctl restart networking
    
  3. اتصال ماشین‌های مجازی به Bridge: پس از ایجاد Bridge، می‌توانید ماشین‌های مجازی خود را به این Bridge متصل کنید. از Web GUI Proxmox، وارد تنظیمات ماشین مجازی شوید و در بخش Network، به‌عنوان Bridge، نام Bridge (مثل vmbr0) را انتخاب کنید.

3️⃣ Bonding در Proxmox VE

Bonding یا Link Aggregation به شما این امکان را می‌دهد که چندین رابط شبکه فیزیکی را به یک رابط منطقی ترکیب کنید. این کار به افزایش پهنای باند و قابلیت اطمینان شبکه کمک می‌کند. برای مثال، شما می‌توانید چندین رابط شبکه eth0 و eth1 را به یک رابط منطقی به نام bond0 ترکیب کنید.

مراحل پیکربندی Bonding در Proxmox VE:

  1. پیکربندی رابط Bonding: ابتدا فایل تنظیمات شبکه را باز کنید:
    nano /etc/network/interfaces
    

    سپس تنظیمات زیر را برای ترکیب رابط‌های eth0 و eth1 در یک رابط Bonding به‌نام bond0 وارد کنید:

    auto bond0
    iface bond0 inet static
        address 192.168.200.1
        netmask 255.255.255.0
        bond-mode balance-rr
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-slaves eth0 eth1
    

    در اینجا:

    • bond0: نام رابط Bonding است.
    • eth0 و eth1: رابط‌های شبکه فیزیکی که قرار است در این bond ترکیب شوند.
    • bond-mode balance-rr: نحوه توزیع ترافیک را مشخص می‌کند (در اینجا از Round Robin استفاده شده است که ترافیک را به‌طور مساوی بین رابط‌ها توزیع می‌کند).
    • bond-miimon 100: مشخص می‌کند که بررسی اتصال در هر 100 میلی‌ثانیه انجام شود.
  2. اعمال تغییرات: پس از انجام تنظیمات، برای اعمال تغییرات از دستور زیر استفاده کنید:
    systemctl restart networking
    
  3. اتصال ماشین‌های مجازی به Bonding: پس از پیکربندی bond0، می‌توانید ماشین‌های مجازی را به این رابط جدید متصل کنید. از Web GUI Proxmox وارد تنظیمات ماشین مجازی شوید و در بخش Network، به‌عنوان Bridge، نام رابط Bonding (مثل bond0) را انتخاب کنید.

جمع‌بندی

پشتیبانی از VLAN، Bridge و Bonding در Proxmox VE ابزارهای قدرتمندی را برای مدیریت شبکه در محیط‌های مجازی فراهم می‌کند. با استفاده از VLAN می‌توانید شبکه‌های فیزیکی خود را به چندین شبکه منطقی تقسیم کنید و امنیت را افزایش دهید. Bridge به شما این امکان را می‌دهد که ماشین‌های مجازی را به‌طور مستقیم به شبکه فیزیکی متصل کنید. همچنین با استفاده از Bonding می‌توانید چندین رابط شبکه را ترکیب کرده و پهنای باند و قابلیت اطمینان شبکه را افزایش دهید. این تکنیک‌ها در کنار هم می‌توانند به بهبود عملکرد، مقیاس‌پذیری و امنیت شبکه‌های مجازی کمک کنند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پشتیبانی از High Availability (HA) و Clustering” subtitle=”توضیحات کامل”]یکی از ویژگی‌های مهم و برجسته Proxmox VE، قابلیت‌های High Availability (HA) و Clustering است که به‌طور خاص برای فراهم کردن دسترسی مداوم، پایداری و مقیاس‌پذیری در محیط‌های مجازی‌سازی طراحی شده‌اند. این ویژگی‌ها به شما این امکان را می‌دهند که ماشین‌های مجازی و منابع خود را در یک خوشه از سرورها توزیع کنید و در صورت وقوع خرابی در هر کدام از سرورها، دسترسی به ماشین‌های مجازی و داده‌ها بدون وقفه حفظ شود.

در این بخش، به‌طور جامع به مفهوم HA و Clustering در Proxmox VE پرداخته و نحوه پیکربندی آن‌ها با دستورالعمل‌ها و کدهای عملی توضیح داده خواهد شد.


1️⃣ High Availability (HA) در Proxmox VE

High Availability (HA) به این معناست که سیستم یا سرویس به‌طور مستمر و بدون وقفه در دسترس باشد. در محیط‌های مجازی‌سازی، هدف از HA این است که در صورت خرابی یک ماشین مجازی یا سرور فیزیکی، ماشین‌های مجازی به‌صورت خودکار به سرور دیگر منتقل شوند تا عملکرد سیستم بدون وقفه ادامه یابد.

Proxmox VE قابلیت HA را برای ماشین‌های مجازی فراهم می‌آورد. به این ترتیب، شما می‌توانید ماشین‌های مجازی خود را به خوشه‌ای از سرورها متصل کرده و تنظیمات HA را اعمال کنید تا در صورت از دست رفتن اتصال یک سرور، ماشین مجازی به‌صورت خودکار به سرور دیگری منتقل شود.

مراحل پیکربندی High Availability در Proxmox VE:

  1. ایجاد یک Cluster در Proxmox VE: اولین گام برای پیکربندی HA، ایجاد یک خوشه (Cluster) در Proxmox VE است. برای ایجاد خوشه از دستور زیر استفاده کنید:
    • در سرور اصلی (Master Node) دستور زیر را برای ایجاد یک خوشه وارد کنید:
      pvecm create <cluster_name>
      

      در اینجا <cluster_name> نام خوشه‌ای است که می‌خواهید ایجاد کنید.

  2. اضافه کردن نودهای دیگر به خوشه: پس از ایجاد خوشه، می‌توانید نودهای دیگر را به آن اضافه کنید. برای این کار از دستور زیر استفاده می‌کنید:
    • در سرورهای دیگر (نودهای اضافی) دستور زیر را وارد کنید تا به خوشه اضافه شوند:
      pvecm add <master_node_ip>
      

      در اینجا <master_node_ip> آدرس IP سرور اصلی (Master Node) است.

  3. پیکربندی High Availability (HA) برای ماشین مجازی: برای پیکربندی HA برای یک ماشین مجازی خاص، ابتدا از Web GUI وارد Proxmox VE شوید. سپس ماشین مجازی مورد نظر را انتخاب کنید و به قسمت Options بروید. در این قسمت می‌توانید تنظیمات HA را فعال کنید.
    • از طریق Web GUI:
      • وارد بخش Datacenter > HA شوید.
      • سپس ماشین مجازی مورد نظر را به لیست HA اضافه کنید.
      • پس از این مرحله، ماشین مجازی شما تحت HA قرار می‌گیرد و در صورت از کار افتادن نود، به‌طور خودکار به نود دیگری منتقل می‌شود.
  4. فعال کردن HA برای ذخیره‌سازی: اگر از ذخیره‌سازی اشتراکی (Shared Storage) مانند Ceph یا NFS استفاده می‌کنید، باید ذخیره‌سازی مورد نظر را در پیکربندی HA قرار دهید تا ماشین‌های مجازی هنگام جابجایی بین نودها، به‌راحتی به ذخیره‌سازی دسترسی پیدا کنند.

2️⃣ Clustering در Proxmox VE

Clustering در Proxmox VE به شما این امکان را می‌دهد که چندین سرور Proxmox را به یک خوشه (Cluster) متصل کنید. این خوشه به شما کمک می‌کند تا منابع مختلف از جمله ماشین‌های مجازی، ذخیره‌سازی و شبکه را بین نودهای مختلف به اشتراک بگذارید و مدیریت بهتری داشته باشید.

در خوشه‌ها، می‌توانید تمام منابع خود را از یک نقطه مرکزی مدیریت کرده و عملیات‌های مختلف مانند Backup، Migration، Live Migration و HA را به‌راحتی انجام دهید.

مراحل پیکربندی Clustering در Proxmox VE:

  1. ایجاد خوشه (Cluster) در Proxmox VE: برای ایجاد یک خوشه جدید در Proxmox VE، از دستور زیر استفاده کنید:
    pvecm create <cluster_name>
    

    این دستور باعث می‌شود یک خوشه جدید به‌نام <cluster_name> ایجاد شود.

  2. اضافه کردن نود به خوشه: بعد از ایجاد خوشه، نودهای دیگر باید به خوشه اضافه شوند. برای این کار، ابتدا باید Cluster Join Key را از سرور اصلی دریافت کنید:در سرور اصلی (Master Node) دستور زیر را وارد کنید تا Cluster Join Key را دریافت کنید:
    cat /etc/pve/cluster.conf
    

    سپس در نودهای اضافی، دستور زیر را وارد کنید تا به خوشه بپیوندند:

    pvecm add <master_node_ip>
    
  3. بررسی وضعیت خوشه: برای بررسی وضعیت خوشه و نودهای موجود در آن، می‌توانید از دستور زیر استفاده کنید:
    pvecm status
    

    این دستور وضعیت خوشه را نمایش می‌دهد و نشان می‌دهد که نودهای مختلف به خوشه متصل هستند یا خیر.

  4. مدیریت ماشین‌های مجازی در خوشه: حالا که خوشه آماده است، می‌توانید ماشین‌های مجازی را بین نودهای مختلف منتقل کنید. به‌عنوان مثال، برای انجام یک Migration از یک نود به نود دیگر، دستور زیر را وارد کنید:
    qm migrate <vmid> <target_node> --online
    

    در اینجا:

    • <vmid> شناسه ماشین مجازی است.
    • <target_node> نام نود مقصد است که ماشین مجازی باید به آن منتقل شود.

3️⃣ پیکربندی High Availability (HA) در پروکسموکس VE

در پروکسموکس، HA برای ماشین‌های مجازی و ذخیره‌سازی انجام می‌شود تا در صورت خرابی یک نود، ماشین‌های مجازی به‌صورت خودکار به نود دیگری منتقل شوند.

برای این کار، ابتدا باید ذخیره‌سازی اشتراکی (Shared Storage) را پیکربندی کرده و پس از آن، می‌توانید HA را فعال کنید.

  1. پیکربندی ذخیره‌سازی اشتراکی: برای پیکربندی Ceph یا NFS به‌عنوان ذخیره‌سازی اشتراکی، می‌توانید از دستورات زیر استفاده کنید:
    • برای پیکربندی NFS:
      pvesh create /nodes/<node>/storage --storage nfs1 --type nfs --server <nfs_server_ip> --export /mnt/nfs_share
      
    • برای پیکربندی Ceph:
      ceph-deploy install <node>
      ceph-deploy new <node>
      ceph-deploy install --mon <node>
      
  2. فعال‌سازی HA برای ماشین مجازی: پس از پیکربندی ذخیره‌سازی اشتراکی، وارد Web GUI شده و ماشین مجازی خود را انتخاب کنید. سپس در قسمت HA، ماشین مجازی را به فهرست HA اضافه کنید.

جمع‌بندی

High Availability (HA) و Clustering از ویژگی‌های قدرتمند Proxmox VE هستند که به شما این امکان را می‌دهند که ماشین‌های مجازی و منابع خود را در یک خوشه از سرورها توزیع کرده و در صورت خرابی نودها، عملکرد سیستم بدون وقفه ادامه یابد. با استفاده از این ویژگی‌ها می‌توان پایداری سیستم را در محیط‌های مجازی‌سازی بالا برد. تنظیمات HA و Clustering می‌تواند برای محیط‌های تجاری و سازمانی که نیاز به سیستم‌های بدون وقفه و با قابلیت مقیاس‌پذیری دارند، بسیار مفید باشد.[/cdb_course_lesson][cdb_course_lesson title=”فصل 4. مقایسه Proxmox VE با سایر پلتفرم‌های مجازی‌سازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مقایسه Proxmox VE با VMware vSphere” subtitle=”توضیحات کامل”]در دنیای مجازی‌سازی، Proxmox VE و VMware vSphere دو پلتفرم شناخته‌شده و پرکاربرد هستند که از نظر ویژگی‌ها، قیمت، عملکرد و سادگی استفاده با یکدیگر رقابت می‌کنند. در این بخش، به مقایسه این دو پلتفرم خواهیم پرداخت و جنبه‌های مختلف هرکدام را بررسی خواهیم کرد. هدف این است که شما بتوانید با آگاهی بیشتر و با توجه به نیازهای خود، تصمیم بهتری بگیرید.


1️⃣ قیمت و مدل مجوز

  • Proxmox VE:
    • Proxmox VE یک پلتفرم متن‌باز است که به‌صورت رایگان قابل استفاده است.
    • مدل کسب‌وکار Proxmox به این صورت است که پشتیبانی تجاری از طریق اشتراک‌های سالانه به‌عنوان منبع درآمد خود استفاده می‌کند.
    • حتی بدون نیاز به اشتراک، می‌توانید از تمام قابلیت‌های Proxmox VE استفاده کنید.
    • به دلیل مدل متن‌باز، کاربران می‌توانند تغییرات دلخواه خود را در کدهای پلتفرم اعمال کنند.
  • VMware vSphere:
    • VMware vSphere برخلاف Proxmox VE، یک پلتفرم مجاز است که برای استفاده از آن نیاز به خرید مجوز دارید.
    • قیمت VMware vSphere به‌صورت متغیر است و بر اساس تعداد ماشین‌های مجازی و ویژگی‌هایی که نیاز دارید، متفاوت خواهد بود.
    • VMware معمولاً برای محیط‌های بزرگتر و سازمانی مناسب است، اما هزینه آن می‌تواند برای شرکت‌های کوچک و استارتاپ‌ها بالا باشد.

نتیجه‌گیری: از نظر هزینه، Proxmox VE گزینه بسیار مقرون‌به‌صرفه‌تری است، به‌ویژه برای کسب‌وکارهای کوچک و متوسط، در حالی که VMware vSphere به دلیل قیمت بالاتر معمولاً برای محیط‌های بزرگتر یا سازمان‌های بزرگتر مناسب است.


2️⃣ نصب و پیکربندی

  • Proxmox VE:
    • نصب Proxmox VE ساده است و مانند اکثر توزیع‌های لینوکس، به راحتی می‌توان آن را از یک ISO نصب کرد.
    • پس از نصب، رابط کاربری وب بسیار کاربرپسند برای مدیریت ماشین‌های مجازی و منابع مختلف فراهم می‌شود.
    • پیکربندی اولیه می‌تواند کمی پیچیده باشد، به خصوص اگر شما به ویژگی‌های پیشرفته مانند Ceph یا HA نیاز دارید، اما مستندات و منابع زیادی برای پیکربندی وجود دارد.
  • VMware vSphere:
    • نصب VMware vSphere نیز ساده است، اما ممکن است کمی پیچیده‌تر از Proxmox VE باشد، به‌ویژه اگر شما نیاز به ویژگی‌های خاص مانند vCenter داشته باشید.
    • vSphere همچنین نیاز به پیکربندی گسترده‌ای دارد، به خصوص اگر در حال مدیریت محیط‌های پیچیده با بسیاری از سرورها و ماشین‌های مجازی هستید.
    • vCenter Server برای مدیریت تعداد زیادی از سرورها و ماشین‌های مجازی ضروری است.

نتیجه‌گیری: اگر به دنبال یک راه‌حل ساده‌تر برای نصب و پیکربندی هستید، Proxmox VE گزینه مناسبی است. اما برای محیط‌های پیچیده‌تر با نیاز به مدیریت پیشرفته، VMware vSphere گزینه بهتری است.


3️⃣ ویژگی‌ها و قابلیت‌ها

  • Proxmox VE:
    • Proxmox VE از هر دو تکنولوژی مجازی‌سازی KVM (برای ماشین‌های مجازی) و LXC (برای کانتینرها) پشتیبانی می‌کند.
    • همچنین از Ceph برای ذخیره‌سازی مقیاس‌پذیر و ZFS برای مدیریت داده‌ها بهره می‌برد.
    • رابط کاربری وب آن نسبتاً ساده است و به راحتی می‌توان از آن برای ایجاد و مدیریت ماشین‌های مجازی و کانتینرها استفاده کرد.
    • قابلیت HA (High Availability) و Clustering نیز به راحتی پیکربندی می‌شود.
    • این پلتفرم به‌صورت متن‌باز است و اجازه می‌دهد که تغییرات دلخواه در سیستم اعمال شود.
  • VMware vSphere:
    • VMware vSphere ویژگی‌های پیشرفته‌ای دارد که شامل vMotion (انتقال زنده ماشین‌های مجازی بین سرورها)، Distributed Resource Scheduler (DRS)، vSphere HA، و Storage vMotion است.
    • پشتیبانی گسترده‌ای از ذخیره‌سازی‌های مختلف دارد، از جمله ذخیره‌سازی‌های مبتنی بر NFS، iSCSI و Fibre Channel.
    • vSphere ابزارهای پیشرفته‌ای برای مدیریت شبکه، پشتیبان‌گیری، بازیابی و ایمنی ماشین‌های مجازی فراهم می‌کند.
    • به دلیل محیط پیچیده و امکانات گسترده‌ای که در اختیار مدیران سیستم قرار می‌دهد، برای سازمان‌های بزرگ و محیط‌های تولیدی با نیاز به امنیت و مقیاس‌پذیری بالا مناسب‌تر است.

نتیجه‌گیری: از نظر ویژگی‌ها، VMware vSphere دارای امکانات بیشتری است، به‌ویژه برای محیط‌های سازمانی و مقیاس‌پذیر. در حالی که Proxmox VE ویژگی‌های مناسبی را ارائه می‌دهد، اما از نظر پیشرفته بودن امکانات در سطح VMware قرار ندارد.


4️⃣ پشتیبانی و مستندات

  • Proxmox VE:
    • Proxmox VE به‌عنوان یک پلتفرم متن‌باز، پشتیبانی رسمی از طریق اشتراک‌های تجاری ارائه می‌دهد.
    • اما مستندات و انجمن‌های آنلاین بسیار فعالی دارد که به کاربران کمک می‌کند مشکلات خود را حل کنند.
    • کاربران می‌توانند از مستندات جامع موجود در وب‌سایت Proxmox برای پیکربندی و استفاده از پلتفرم کمک بگیرند.
  • VMware vSphere:
    • VMware پشتیبانی گسترده‌ای از طریق فروش اشتراک‌های تجاری و پشتیبانی از مشتریان دارد.
    • علاوه بر پشتیبانی رسمی، مستندات بسیار دقیقی برای نصب، پیکربندی و رفع اشکال ارائه می‌دهد.
    • همچنین VMware دارای انجمن‌ها و منابع آموزشی گسترده‌ای است که کمک زیادی به کاربران می‌کند.

نتیجه‌گیری: هر دو پلتفرم پشتیبانی خوبی دارند، اما VMware vSphere به دلیل پشتیبانی رسمی و منابع آموزشی گسترده‌تر، برای محیط‌های سازمانی و پیچیده‌تر مناسب‌تر است.


5️⃣ مقیاس‌پذیری و عملکرد

  • Proxmox VE:
    • Proxmox VE به‌خوبی مقیاس‌پذیر است و می‌تواند در محیط‌های مختلف از سرورهای کوچک تا بزرگ‌ترین خوشه‌ها اجرا شود.
    • پشتیبانی از Ceph و ZFS به آن اجازه می‌دهد تا مقیاس‌پذیری بالایی را در ذخیره‌سازی و مدیریت داده‌ها فراهم کند.
    • عملکرد آن با توجه به نیازهای خاص می‌تواند بهینه‌سازی شود و معمولا در محیط‌های کوچک و متوسط عملکرد مناسبی دارد.
  • VMware vSphere:
    • VMware vSphere به‌طور خاص برای مقیاس‌پذیری بالا طراحی شده است و می‌تواند در محیط‌های بزرگ و پیچیده به‌خوبی عمل کند.
    • پشتیبانی از vMotion و DRS به آن این امکان را می‌دهد که ماشین‌های مجازی را به‌طور خودکار بین سرورها جابجا کند و منابع را به‌طور بهینه توزیع کند.
    • از نظر مقیاس‌پذیری و عملکرد، VMware vSphere بهترین گزینه برای محیط‌های بزرگ و با نیازهای پیچیده است.

نتیجه‌گیری: اگر مقیاس‌پذیری و عملکرد برای شما اهمیت زیادی دارد، به‌ویژه در محیط‌های بزرگ و پیچیده، VMware vSphere برتر است. Proxmox VE نیز مقیاس‌پذیری مناسبی دارد، اما در مقایسه با VMware برای محیط‌های کوچک و متوسط مناسب‌تر است.


جمع‌بندی

در نهایت، انتخاب بین Proxmox VE و VMware vSphere بستگی به نیازها و بودجه شما دارد. اگر به دنبال یک پلتفرم مقرون‌به‌صرفه و متن‌باز با ویژگی‌های اساسی هستید، Proxmox VE گزینه عالی است. اما اگر نیاز به ویژگی‌های پیشرفته، مقیاس‌پذیری بالا و پشتیبانی تجاری دارید، VMware vSphere گزینه بهتری خواهد بود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مقایسه Proxmox VE با Microsoft Hyper-V” subtitle=”توضیحات کامل”]در این بخش، قصد داریم دو پلتفرم معروف مجازی‌سازی، یعنی Proxmox VE و Microsoft Hyper-V را از جنبه‌های مختلف مقایسه کنیم. هرکدام از این پلتفرم‌ها ویژگی‌ها، مزایا و محدودیت‌های خاص خود را دارند. با بررسی دقیق این ویژگی‌ها، می‌توانید تصمیم بهتری بگیرید که کدام یک برای نیازهای شما مناسب‌تر است.


1️⃣ قیمت و مدل مجوز

  • Proxmox VE:
    • Proxmox VE یک پلتفرم متن‌باز است که به‌طور کامل رایگان قابل استفاده است.
    • کاربران می‌توانند از تمام ویژگی‌ها و امکانات آن بدون هیچ هزینه‌ای استفاده کنند.
    • پشتیبانی تجاری در قالب اشتراک‌های سالانه موجود است که برای دریافت پشتیبانی فنی، به‌ویژه در سازمان‌ها و محیط‌های حساس، مفید خواهد بود.
    • به دلیل مدل متن‌باز، Proxmox VE گزینه‌ای مناسب برای شرکت‌های کوچک و استارتاپ‌ها است.
  • Microsoft Hyper-V:
    • Microsoft Hyper-V به‌صورت رایگان به همراه نسخه‌های Windows Server قابل دسترسی است.
    • اگر از Windows Server استفاده کنید، هزینه لایسنس Windows Server برای استفاده از Hyper-V باید پرداخت شود.
    • همچنین، برای استفاده از ویژگی‌های پیشرفته‌تر Hyper-V، مانند Live Migration و Storage Migration، نیاز به اشتراک یا لایسنس اضافی خواهید داشت.
    • در محیط‌های سازمانی بزرگ که از اکوسیستم Microsoft استفاده می‌کنند، Hyper-V ممکن است به‌صرفه‌تر باشد.

نتیجه‌گیری: از نظر قیمت، Proxmox VE به دلیل رایگان بودن و مدل متن‌باز خود، گزینه‌ای بسیار مقرون‌به‌صرفه‌تر است. در مقابل، Microsoft Hyper-V معمولاً هزینه بیشتری به دلیل نیاز به لایسنس Windows Server خواهد داشت.


2️⃣ نصب و پیکربندی

  • Proxmox VE:
    • نصب Proxmox VE بسیار ساده است و می‌توان آن را از یک ISO روی سرور نصب کرد.
    • پس از نصب، رابط کاربری وب ساده و کاربرپسند است که به شما این امکان را می‌دهد که ماشین‌های مجازی و کانتینرها را به راحتی مدیریت کنید.
    • همچنین برای پیکربندی ویژگی‌های پیشرفته مانند Ceph، HA و Clustering، مستندات و منابع زیادی در اختیار شما قرار دارد.
  • Microsoft Hyper-V:
    • نصب Hyper-V نیاز به نصب اولیه Windows Server دارد که کمی پیچیده‌تر از نصب Proxmox است.
    • پس از نصب Windows Server، باید ویژگی Hyper-V را به‌صورت جداگانه فعال کنید.
    • اگر از Windows Server استفاده می‌کنید، رابط گرافیکی مدیریتی از طریق Hyper-V Manager و یا System Center Virtual Machine Manager (SCVMM) برای مدیریت ماشین‌های مجازی فراهم است.
    • پیکربندی Hyper-V به‌ویژه در موارد پیچیده‌تر مانند Live Migration، Failover Clustering و Dynamic Memory نیاز به مهارت‌های پیشرفته‌تری دارد.

نتیجه‌گیری: اگر به دنبال راه‌حل ساده‌تری برای نصب و پیکربندی هستید، Proxmox VE گزینه مناسبی است. در حالی که Microsoft Hyper-V به دلیل نیاز به Windows Server و پیکربندی‌های اضافی برای ویژگی‌های پیشرفته‌تر، کمی پیچیده‌تر است.


3️⃣ ویژگی‌ها و قابلیت‌ها

  • Proxmox VE:
    • Proxmox VE از دو فناوری مجازی‌سازی KVM (برای ماشین‌های مجازی) و LXC (برای کانتینرها) پشتیبانی می‌کند.
    • این پلتفرم ویژگی‌هایی مانند Ceph برای ذخیره‌سازی مقیاس‌پذیر، ZFS برای مدیریت داده‌ها، و Clustering و HA برای ایجاد خوشه‌های توزیع‌شده را به‌طور پیش‌فرض فراهم می‌آورد.
    • رابط کاربری وب آن نسبتاً ساده است و قابلیت‌های مدیریتی کاملی را در اختیار مدیران سیستم قرار می‌دهد.
    • Proxmox VE به‌طور کامل متن‌باز است، بنابراین می‌توانید به کدهای آن دسترسی داشته باشید و آن را به دلخواه خود تغییر دهید.
  • Microsoft Hyper-V:
    • Hyper-V ویژگی‌هایی مانند vMotion، Live Migration، Cluster Shared Volumes (CSV)، و Dynamic Memory را برای مدیریت بهتر ماشین‌های مجازی ارائه می‌دهد.
    • از Failover Clustering برای ارائه مقیاس‌پذیری و افزایش در دسترس بودن سیستم‌ها پشتیبانی می‌کند.
    • قابلیت‌های ذخیره‌سازی متنوعی از جمله پشتیبانی از SAN، iSCSI و Fibre Channel را داراست.
    • Hyper-V همچنین از Shielded VMs برای افزایش امنیت و محافظت از ماشین‌های مجازی در برابر تهدیدات پشتیبانی می‌کند.
    • یکی از ویژگی‌های قدرتمند Hyper-V این است که می‌توان آن را به‌طور مستقیم با اکوسیستم Microsoft مانند Windows Server و Active Directory ادغام کرد.

نتیجه‌گیری: از نظر قابلیت‌ها، Microsoft Hyper-V ویژگی‌های پیشرفته‌تری برای محیط‌های سازمانی و پیچیده‌تر دارد. در حالی که Proxmox VE برای محیط‌های کوچک و متوسط با نیاز به ویژگی‌های اساسی مناسب‌تر است.


4️⃣ پشتیبانی و مستندات

  • Proxmox VE:
    • Proxmox VE به‌عنوان یک پلتفرم متن‌باز، پشتیبانی رسمی از طریق اشتراک‌های تجاری ارائه می‌دهد.
    • علاوه بر این، مستندات بسیار جامعی در وب‌سایت Proxmox موجود است که راهنماهای نصب، پیکربندی و رفع مشکلات را پوشش می‌دهد.
    • انجمن‌های آنلاین بسیار فعالی برای دریافت کمک و مشاوره در خصوص استفاده از Proxmox VE وجود دارند.
    • اگرچه پشتیبانی رسمی ممکن است برای برخی از کاربران کافی نباشد، اما می‌توان از منابع آنلاین و انجمن‌ها بهره برد.
  • Microsoft Hyper-V:
    • Microsoft Hyper-V از پشتیبانی تجاری بسیار قوی برخوردار است. اگر از Windows Server استفاده می‌کنید، می‌توانید از پشتیبانی رسمی Microsoft بهره‌مند شوید.
    • مستندات دقیق و آموزش‌های گام‌به‌گام برای نصب و مدیریت Hyper-V از طریق Microsoft Docs و سایر منابع موجود است.
    • Microsoft همچنین برنامه‌های آموزشی و گواهینامه‌های فنی برای کاربران و مدیران سیستم فراهم می‌کند.
    • انجمن‌های آنلاین نیز برای پشتیبانی از Hyper-V در دسترس هستند، اما پشتیبانی رسمی Microsoft قطعاً سطح بالاتری از پشتیبانی را ارائه می‌دهد.

نتیجه‌گیری: در این بخش، Microsoft Hyper-V به‌طور قابل توجهی پشتیبانی بهتری ارائه می‌دهد، به‌ویژه برای سازمان‌های بزرگ و کاربران نیازمند پشتیبانی حرفه‌ای. Proxmox VE به‌عنوان یک پلتفرم متن‌باز، مستندات خوبی دارد، اما پشتیبانی رسمی آن به اندازه Microsoft Hyper-V گسترده نیست.


5️⃣ مقیاس‌پذیری و عملکرد

  • Proxmox VE:
    • Proxmox VE به خوبی مقیاس‌پذیر است و می‌تواند در محیط‌های مختلف از سرورهای کوچک تا بزرگ‌ترین خوشه‌ها اجرا شود.
    • پشتیبانی از Ceph و ZFS به آن اجازه می‌دهد تا مقیاس‌پذیری بالایی را در ذخیره‌سازی و مدیریت داده‌ها فراهم کند.
    • برای محیط‌های کوچک و متوسط که نیاز به مقیاس‌پذیری پیشرفته ندارند، Proxmox VE عملکرد مناسبی را ارائه می‌دهد.
  • Microsoft Hyper-V:
    • Hyper-V به‌طور خاص برای محیط‌های بزرگ و مقیاس‌پذیر طراحی شده است و می‌تواند در محیط‌های سازمانی بزرگ به‌خوبی عملکرد داشته باشد.
    • پشتیبانی از ویژگی‌هایی مانند Live Migration، Storage Migration و vMotion، آن را به یک پلتفرم عالی برای محیط‌های توزیع‌شده و مقیاس‌پذیر تبدیل می‌کند.
    • از نظر عملکرد، Hyper-V با یکپارچگی کامل با Windows Server و ابزارهای مدیریتی آن، محیطی بسیار کارآمد را ارائه می‌دهد.

نتیجه‌گیری: اگر مقیاس‌پذیری و عملکرد در محیط‌های بزرگ و پیچیده برای شما اهمیت دارد، Microsoft Hyper-V گزینه بهتری است. اما Proxmox VE نیز عملکرد مناسبی را در محیط‌های کوچک و متوسط ارائه می‌دهد.


جمع‌بندی

انتخاب بین Proxmox VE و Microsoft Hyper-V بستگی به نیازهای خاص شما دارد. اگر به دنبال یک راه‌حل متن‌باز و مقرون‌به‌صرفه برای محیط‌های کوچک تا متوسط هستید، Proxmox VE گزینه عالی است. اما اگر نیاز به ویژگی‌های پیشرفته‌تر برای محیط‌های بزرگ و مقیاس‌پذیر دارید و از اکوسیستم Microsoft استفاده می‌کنید، Microsoft Hyper-V گزینه بهتری خواهد بود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مزایا و معایب Proxmox VE” subtitle=”توضیحات کامل”]مزایا:

  1. متن‌باز و رایگان:
    • Proxmox VE یک پلتفرم متن‌باز است که برای استفاده از آن نیازی به خرید لایسنس ندارید. این ویژگی باعث می‌شود که برای کسب‌وکارهای کوچک، استارتاپ‌ها و حتی پروژه‌های شخصی گزینه بسیار مناسبی باشد.
    • تمام قابلیت‌های آن، از جمله ماشین‌های مجازی، کانتینرها، ذخیره‌سازی، و شبکه، به‌صورت رایگان در دسترس هستند.
  2. پشتیبانی از KVM و LXC:
    • Proxmox VE از KVM برای ماشین‌های مجازی و از LXC برای کانتینرها پشتیبانی می‌کند. این به شما این امکان را می‌دهد که بسته به نیاز، از مجازی‌سازی سطح سخت‌افزار یا مجازی‌سازی سطح سیستم‌عامل استفاده کنید.
    • شما می‌توانید همزمان از ماشین‌های مجازی و کانتینرها در کنار هم استفاده کنید که برای بسیاری از محیط‌ها بسیار مفید است.
  3. پشتیبانی از ذخیره‌سازی پیشرفته:
    • Proxmox VE از سیستم‌های ذخیره‌سازی پیشرفته‌ای مانند Ceph و ZFS پشتیبانی می‌کند که مقیاس‌پذیری و عملکرد بالایی را در مقایسه با بسیاری از پلتفرم‌های دیگر ارائه می‌دهد.
    • استفاده از ZFS برای مدیریت داده‌ها، ویژگی‌هایی مثل Snapshot و RAID را در اختیار شما قرار می‌دهد.
  4. پشتیبانی از HA و Clustering:
    • این پلتفرم به‌طور کامل از High Availability (HA) و Clustering پشتیبانی می‌کند که برای ایجاد محیط‌های مقیاس‌پذیر و با در دسترس بودن بالا بسیار مهم است.
  5. رابط کاربری ساده و کاربرپسند:
    • رابط کاربری وب‌سایت Proxmox VE بسیار ساده و کاربرپسند است. شما می‌توانید تمام تنظیمات و مدیریت ماشین‌های مجازی و کانتینرها را از طریق مرورگر وب انجام دهید.
    • این ویژگی به شما این امکان را می‌دهد که بدون نیاز به دستورات پیچیده، محیط مجازی خود را مدیریت کنید.

معایب:

  1. پشتیبانی محدود:
    • اگرچه Proxmox VE دارای انجمن آنلاین فعالی است، اما پشتیبانی رسمی از طریق اشتراک‌های تجاری محدود است و ممکن است برای کسب‌وکارهای بزرگ که نیاز به پشتیبانی 24/7 دارند، کافی نباشد.
    • از آنجایی که این پلتفرم متن‌باز است، بیشتر اطلاعات از طریق مستندات و انجمن‌ها ارائه می‌شود.
  2. محدودیت در ویژگی‌های پیشرفته:
    • در مقایسه با پلتفرم‌های دیگر مانند Hyper-V یا VMware vSphere، ویژگی‌های پیشرفته‌ای مانند vMotion و Storage Migration در Proxmox VE وجود ندارد.
    • این ویژگی‌ها برای محیط‌های بزرگ و پیچیده‌تری که به انتقال ماشین‌های مجازی در زمان اجرا نیاز دارند، مهم است.
  3. محدودیت در نرم‌افزارهای تجاری:
    • اگر شما به استفاده از نرم‌افزارهای تجاری خاصی نیاز دارید که از Proxmox VE پشتیبانی نمی‌کنند، ممکن است مجبور شوید از پلتفرم‌های دیگر استفاده کنید.
    • برای مثال، بسیاری از برنامه‌ها و نرم‌افزارها به‌طور مستقیم برای VMware یا Hyper-V طراحی شده‌اند.

مزایا و معایب Microsoft Hyper-V

مزایا:

  1. یکپارچگی با اکوسیستم Microsoft:
    • Microsoft Hyper-V یکپارچگی کامل با محصولات Microsoft، مانند Windows Server و Active Directory دارد.
    • این ویژگی برای سازمان‌هایی که از Windows Server استفاده می‌کنند، به‌ویژه در محیط‌های موجود، بسیار مفید است.
  2. پشتیبانی از ویژگی‌های پیشرفته:
    • Hyper-V از ویژگی‌هایی مانند Live Migration، vMotion، Cluster Shared Volumes (CSV)، Dynamic Memory و Shielded VMs پشتیبانی می‌کند که آن را به یک انتخاب عالی برای محیط‌های پیچیده و بزرگ تبدیل می‌کند.
    • به‌ویژه در محیط‌های تولیدی و داده‌محور، این ویژگی‌ها کمک می‌کنند تا مدیریت ماشین‌های مجازی ساده‌تر و عملکرد بهینه‌تر باشد.
  3. پشتیبانی از مقیاس‌پذیری بالا:
    • Hyper-V به‌ویژه برای محیط‌های سازمانی بزرگ طراحی شده است. این پلتفرم قابلیت مقیاس‌پذیری بسیار بالایی دارد و می‌تواند در محیط‌های پیچیده با نیازهای بالا به‌خوبی عمل کند.
    • از ویژگی‌هایی مانند Failover Clustering و Storage Migration برای ارائه در دسترس بودن بالا و عملکرد مطلوب استفاده می‌کند.
  4. پشتیبانی رسمی و مستندات گسترده:
    • Microsoft Hyper-V از پشتیبانی رسمی بسیار قدرتمندی برخوردار است که از طریق Microsoft ارائه می‌شود. این پشتیبانی شامل آموزش‌ها، مستندات و امکان پشتیبانی 24/7 است.
    • Microsoft Docs منبع اصلی اطلاعات و راهنماهای Hyper-V است که اطلاعات جامعی در زمینه پیکربندی و مدیریت آن فراهم می‌آورد.

معایب:

  1. هزینه بالا:
    • یکی از بزرگ‌ترین معایب Hyper-V هزینه‌های مربوط به لایسنس‌های Windows Server است که برای استفاده از آن لازم است.
    • در مقایسه با پلتفرم‌های متن‌باز مانند Proxmox VE، هزینه‌های مربوط به لایسنس برای Hyper-V ممکن است برای کسب‌وکارهای کوچک یا استارتاپ‌ها قابل تحمل نباشد.
  2. پیچیدگی در پیکربندی:
    • نصب و پیکربندی اولیه Hyper-V از Proxmox VE پیچیده‌تر است. به‌ویژه اگر از ویژگی‌های پیشرفته مانند Live Migration و Failover Clustering استفاده کنید، نیاز به تنظیمات اضافی دارید.
    • مدیریت و پیکربندی محیط‌های Hyper-V نیاز به دانش فنی بالاتری دارد که برای برخی از مدیران سیستم می‌تواند چالش‌برانگیز باشد.
  3. محدودیت در محیط‌های غیر-Microsoft:
    • Hyper-V عمدتاً برای محیط‌های Microsoft طراحی شده است و در محیط‌های غیر-Microsoft (مانند لینوکس) ممکن است برخی از ویژگی‌ها و امکانات به‌خوبی کار نکند.
    • استفاده از Hyper-V در محیط‌های مختلط که نیاز به پشتیبانی از سیستم‌عامل‌های مختلف دارند، می‌تواند دشوار باشد.

جمع‌بندی

در نهایت، انتخاب بین Proxmox VE و Microsoft Hyper-V به نیازهای خاص شما بستگی دارد:

  • اگر به دنبال یک پلتفرم رایگان، متن‌باز و ساده برای محیط‌های کوچک و متوسط هستید، Proxmox VE بهترین گزینه است. این پلتفرم برای کسانی که نیاز به مقابله با مشکلات ذخیره‌سازی و ماشین‌های مجازی و کانتینرها دارند، بسیار مناسب است.
  • از سوی دیگر، اگر شما به ویژگی‌های پیشرفته، مقیاس‌پذیری بالا و یکپارچگی کامل با اکوسیستم Microsoft نیاز دارید، Microsoft Hyper-V گزینه بهتری خواهد بود، به‌ویژه برای محیط‌های بزرگ و سازمانی که نیاز به پشتیبانی تجاری و قابلیت‌های پیشرفته دارند.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”انتخاب Proxmox VE برای نیازهای خاص کسب‌وکار” subtitle=”توضیحات کامل”]انتخاب Proxmox VE به‌عنوان یک پلتفرم مجازی‌سازی برای کسب‌وکارها می‌تواند به دلایل مختلفی از جمله هزینه‌های پایین، انعطاف‌پذیری در استفاده از ماشین‌های مجازی و کانتینرها، و پشتیبانی از ذخیره‌سازی و شبکه‌های پیشرفته، گزینه‌ای مناسب باشد. در این بخش به‌طور مفصل بررسی می‌کنیم که چرا کسب‌وکارهای مختلف می‌توانند از Proxmox VE استفاده کنند و چگونه این پلتفرم می‌تواند به‌طور مؤثر نیازهای خاص آن‌ها را برآورده کند.

1. کاهش هزینه‌ها

یکی از دلایل اصلی انتخاب Proxmox VE برای کسب‌وکارهای کوچک و متوسط (SMBs) یا استارتاپ‌ها، رایگان بودن و متن‌باز بودن آن است. کسب‌وکارها می‌توانند بدون نیاز به پرداخت هزینه‌های سنگین برای خرید لایسنس، از تمام ویژگی‌های این پلتفرم بهره‌برداری کنند.

  • Proxmox VE برای افرادی که به دنبال کاهش هزینه‌های مرتبط با مجازی‌سازی و مدیریت زیرساخت‌ها هستند، یک انتخاب عالی است. در مقایسه با پلتفرم‌های تجاری مانند VMware و Hyper-V که هزینه‌های لایسنس بالایی دارند، این پلتفرم از نظر مالی بسیار مقرون‌به‌صرفه‌تر است.

مثال عملی: اگر کسب‌وکاری بخواهد یک محیط آزمایشی با چندین ماشین مجازی راه‌اندازی کند، انتخاب Proxmox VE گزینه‌ای مناسب است، زیرا برای راه‌اندازی اولیه و حتی استفاده مداوم از آن نیازی به پرداخت هزینه لایسنس نخواهد داشت.

2. پشتیبانی از مقیاس‌پذیری و رشد کسب‌وکار

یکی دیگر از ویژگی‌های برجسته Proxmox VE این است که امکان مقیاس‌پذیری بالا را به کسب‌وکارها می‌دهد. کسب‌وکارها می‌توانند با استفاده از Ceph برای ذخیره‌سازی و Clustering برای افزایش در دسترس‌پذیری، ساختارهای مقیاس‌پذیر ایجاد کنند.

  • Clustering در Proxmox VE به کسب‌وکارها این امکان را می‌دهد که چندین Node را در یک خوشه قرار دهند. این ویژگی برای کسب‌وکارهایی که نیاز دارند منابع بیشتری را برای بار کاری خود اختصاص دهند و یا در صورت خرابی به راحتی منابع خود را تغییر دهند، بسیار مهم است.
  • Proxmox VE از ذخیره‌سازی Ceph پشتیبانی می‌کند که به کسب‌وکارها این امکان را می‌دهد که ذخیره‌سازی مقیاس‌پذیر و قابل اعتماد ایجاد کنند.

مثال عملی: یک شرکت که نیاز به گسترش زیرساخت خود دارد می‌تواند از Proxmox VE برای ایجاد یک خوشه استفاده کند و به سادگی به تعداد Node های بیشتری اضافه کند تا با رشد کسب‌وکار، نیازهای منابع بیشتری را برآورده کند.

3. یکپارچگی با سیستم‌عامل‌های مختلف

Proxmox VE از سیستم‌عامل‌های مختلفی مانند Linux و Windows پشتیبانی می‌کند. این پلتفرم به کسب‌وکارها این امکان را می‌دهد که ماشین‌های مجازی مختلف با سیستم‌عامل‌های مختلف را به‌راحتی مدیریت کنند.

  • Proxmox VE از KVM برای مجازی‌سازی ماشین‌های مجازی استفاده می‌کند و به‌طور کامل از ماشین‌های Windows و Linux پشتیبانی می‌کند. همچنین به‌خوبی از کانتینرهای LXC که برای راه‌اندازی برنامه‌ها و سرویس‌ها بسیار مفید هستند، پشتیبانی می‌کند.

مثال عملی: یک تیم توسعه نرم‌افزار که نیاز به تست نرم‌افزار در محیط‌های مختلف دارد، می‌تواند از Proxmox VE استفاده کند تا ماشین‌های مجازی مختلف با Windows و Linux را ایجاد و مدیریت کند.

4. استفاده از ویژگی‌های ذخیره‌سازی پیشرفته

یکی از ویژگی‌های کلیدی Proxmox VE که آن را برای کسب‌وکارها جذاب می‌کند، پشتیبانی از ذخیره‌سازی پیشرفته است. Proxmox VE از ZFS و Ceph برای مدیریت داده‌ها استفاده می‌کند که به کسب‌وکارها این امکان را می‌دهد که داده‌های خود را به‌طور مؤثر مدیریت کنند.

  • ZFS یک فایل‌سیستم پیشرفته است که قابلیت‌هایی مانند Snapshot، Compression و RAID را به‌صورت داخلی فراهم می‌آورد. این ویژگی‌ها به کسب‌وکارها این امکان را می‌دهند که از داده‌های خود نسخه‌برداری کنند و حجم ذخیره‌سازی را کاهش دهند.
  • Ceph یک سیستم ذخیره‌سازی مقیاس‌پذیر است که به کسب‌وکارها این امکان را می‌دهد که با افزودن سخت‌افزارهای جدید، ظرفیت ذخیره‌سازی خود را گسترش دهند.

مثال عملی: یک شرکت که نیاز به ذخیره‌سازی حجم بالای داده‌ها و همچنین نگهداری نسخه‌های مختلف از داده‌ها دارد، می‌تواند از ZFS در Proxmox VE برای ذخیره‌سازی داده‌ها و ایجاد Snapshot از سیستم‌های خود استفاده کند.

5. پشتیبانی از High Availability و Disaster Recovery

کسب‌وکارهایی که به High Availability (HA) و Disaster Recovery نیاز دارند، می‌توانند از قابلیت‌های Proxmox VE برای حفظ دسترس‌پذیری و بازیابی پس از خرابی استفاده کنند.

  • Proxmox VE به‌طور کامل از HA پشتیبانی می‌کند و این امکان را به کسب‌وکارها می‌دهد که در صورت خرابی یکی از Node ها، به‌طور خودکار بار را به Node دیگری منتقل کنند و از توقف سیستم جلوگیری کنند.
  • این پلتفرم همچنین از ویژگی‌هایی مانند Backup و Snapshot برای بازیابی داده‌ها پس از خرابی پشتیبانی می‌کند.

مثال عملی: یک کسب‌وکار که از سیستم‌های حیاتی برای پردازش داده‌ها استفاده می‌کند، می‌تواند از High Availability در Proxmox VE بهره‌برداری کند تا در صورت خرابی سخت‌افزار یا مشکلات دیگر، سیستم بدون توقف به‌کار خود ادامه دهد.

6. سادگی در استفاده و مدیریت

Proxmox VE دارای یک رابط کاربری وب ساده و کاربرپسند است که به کسب‌وکارها این امکان را می‌دهد که به‌راحتی ماشین‌های مجازی و کانتینرها را مدیریت کنند. به‌طور کلی، این پلتفرم دارای یک خط فرمان قوی نیز است که به مدیران سیستم این امکان را می‌دهد که کنترل بیشتری بر روی پیکربندی‌ها و تنظیمات داشته باشند.

  • Proxmox VE به‌طور کلی دارای UI است که از نظر طراحی ساده و کاربرپسند است و به مدیران سیستم این امکان را می‌دهد که به راحتی ماشین‌ها و ذخیره‌سازی خود را مدیریت کنند.

مثال عملی: یک تیم IT که نیاز به مدیریت و نظارت بر زیرساخت‌های مجازی دارد، می‌تواند از Proxmox VE برای مدیریت منابع، نظارت بر وضعیت سیستم‌ها، و انجام تنظیمات به‌راحتی استفاده کند.


جمع‌بندی

Proxmox VE یک پلتفرم مجازی‌سازی عالی برای کسب‌وکارهایی است که به دنبال یک راه‌حل مقیاس‌پذیر، مقرون‌به‌صرفه، و با قابلیت‌های پیشرفته هستند. این پلتفرم با ویژگی‌هایی نظیر پشتیبانی از KVM و LXC، پشتیبانی از ذخیره‌سازی پیشرفته مانند ZFS و Ceph، پشتیبانی از High Availability، و مقیاس‌پذیری بسیار بالا، توانسته است نیازهای بسیاری از کسب‌وکارها را پوشش دهد.

Proxmox VE برای کسب‌وکارهایی که به دنبال کاهش هزینه‌ها، افزایش مقیاس‌پذیری، و بهره‌برداری از قابلیت‌های ذخیره‌سازی پیشرفته هستند، گزینه‌ای بسیار مناسب است. همچنین، ویژگی‌هایی مانند HA و Clustering برای محیط‌های با نیاز به دسترس‌پذیری بالا، این پلتفرم را به انتخابی مناسب برای کسب‌وکارهای بزرگ و پیچیده تبدیل کرده است.[/cdb_course_lesson][cdb_course_lesson title=”فصل 5. نصب Proxmox VE و تنظیمات اولیه”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”بررسی پیش‌نیازهای سخت‌افزاری و نرم‌افزاری برای نصب Proxmox VE” subtitle=”توضیحات کامل”]قبل از نصب Proxmox VE بر روی سرور، لازم است که پیش‌نیازهای سخت‌افزاری و نرم‌افزاری را بررسی کنید تا اطمینان حاصل شود که سیستم شما قادر به اجرای این پلتفرم مجازی‌سازی خواهد بود. Proxmox VE نیاز به منابع خاصی دارد تا به‌طور بهینه عملکرد داشته باشد. در این بخش، پیش‌نیازهای سخت‌افزاری و نرم‌افزاری برای نصب Proxmox VE را به‌طور کامل توضیح خواهیم داد.


پیش‌نیازهای سخت‌افزاری

برای نصب و اجرای Proxmox VE به‌طور مؤثر، سیستم شما باید حداقل نیازمندی‌های سخت‌افزاری را داشته باشد. در اینجا به مهم‌ترین پیش‌نیازهای سخت‌افزاری اشاره می‌کنیم:

  1. پردازنده (CPU):
    • Intel VT-x یا AMD-V: برای استفاده از مجازی‌سازی سخت‌افزاری، باید پردازنده شما از فناوری مجازی‌سازی پشتیبانی کند. این ویژگی برای استفاده از ماشین‌های مجازی KVM ضروری است.
    • پردازنده‌هایی که از فناوری‌های مجازی‌سازی پشتیبانی می‌کنند معمولاً با Intel VT-x یا AMD-V شناخته می‌شوند.
    • تعداد هسته‌ها: به تعداد هسته‌های پردازنده بستگی دارد که چند ماشین مجازی به‌طور همزمان اجرا خواهند شد. توصیه می‌شود حداقل از پردازنده با 2 هسته یا بیشتر استفاده کنید.
  2. حافظه (RAM):
    • حداقل حافظه مورد نیاز: 2 گیگابایت (GB).
    • برای نصب و اجرای ماشین‌های مجازی و کانتینرها، پیشنهاد می‌شود حداقل 4 گیگابایت (GB) حافظه RAM برای Proxmox VE اختصاص دهید.
    • برای هر ماشین مجازی، باید به میزان حافظه اضافه برای آن نیز توجه داشته باشید.
  3. فضای ذخیره‌سازی:
    • حداقل فضای دیسک: 32 گیگابایت.
    • برای ذخیره‌سازی سیستم‌عامل Proxmox VE و فایل‌های مربوطه، فضای 32 گیگابایت یا بیشتر مناسب است.
    • اگر قصد دارید چندین ماشین مجازی یا کانتینر اجرا کنید، باید به فضای ذخیره‌سازی بیشتری توجه داشته باشید.
    • برای ذخیره‌سازی بهتر و مقیاس‌پذیری، استفاده از ZFS یا Ceph برای مدیریت داده‌ها توصیه می‌شود.
  4. کارت شبکه:
    • 1GbE یا 10GbE: یک یا چند کارت شبکه برای اتصال به شبکه محلی و اتصال ماشین‌های مجازی به شبکه‌های خارجی لازم است.
    • برای محیط‌های بزرگ و برای انتقال داده‌های حجیم، کارت‌های شبکه با پهنای باند بالاتر مانند 10GbE نیز مفید هستند.
  5. سایر دستگاه‌ها:
    • یک دستگاه USB یا DVD-ROM برای نصب از طریق ISO (اختیاری).
    • دسترسی به کنسول فیزیکی یا IPMI برای پشتیبانی از مدیریت از راه دور (اختیاری).

پیش‌نیازهای نرم‌افزاری

قبل از نصب Proxmox VE، باید مطمئن شوید که سیستم شما از نرم‌افزار و قابلیت‌های لازم پشتیبانی می‌کند. برخی از پیش‌نیازهای نرم‌افزاری شامل موارد زیر است:

  1. سیستم‌عامل:
    • Proxmox VE یک سیستم‌عامل مبتنی بر Debian است، بنابراین به‌طور پیش‌فرض بر روی سیستم‌های Debian 9.x و بالاتر نصب می‌شود.
    • اگرچه نصب از طریق ISO مخصوص Proxmox VE صورت می‌گیرد، اما لازم است که سیستم شما از یک نسخه به‌روز از Debian پشتیبانی کند.
  2. پشتیبانی از مجازی‌سازی:
    • مانند ذکر شده در بخش سخت‌افزاری، نیاز است که پردازنده شما از فناوری‌های مجازی‌سازی مانند Intel VT-x یا AMD-V پشتیبانی کند.
    • برای بررسی اینکه آیا پردازنده شما از این ویژگی پشتیبانی می‌کند یا خیر، می‌توانید از دستور زیر در لینوکس استفاده کنید:
      egrep -c '(vmx|svm)' /proc/cpuinfo
      

      اگر خروجی 1 یا بیشتر باشد، سیستم شما از مجازی‌سازی پشتیبانی می‌کند.

  3. دستگاه‌های ذخیره‌سازی:
    • Proxmox VE از انواع مختلف دستگاه‌های ذخیره‌سازی مانند Local, NFS, iSCSI, Ceph, و ZFS پشتیبانی می‌کند. لازم است که تنظیمات ذخیره‌سازی شما مطابق با نیازهای Proxmox VE باشد.
  4. آدرس IP ثابت:
    • برای نصب Proxmox VE، سیستم باید دارای یک آدرس IP ثابت باشد. این آدرس IP برای مدیریت از راه دور و پیکربندی شبکه و ذخیره‌سازی استفاده می‌شود.
    • اگر از DHCP استفاده می‌کنید، اطمینان حاصل کنید که آدرس IP ثابت است.
  5. دستگاه‌های مدیریت از راه دور:
    • برای نصب و پیکربندی از راه دور، ممکن است نیاز به استفاده از IPMI, iLO, DRAC یا دیگر دستگاه‌های مدیریت از راه دور داشته باشید.
  6. شبکه:
    • به‌طور پیش‌فرض، Proxmox VE برای اتصال به شبکه از Linux Bridge استفاده می‌کند. همچنین می‌توانید از VLAN و Bonding برای پیاده‌سازی شبکه‌های پیشرفته استفاده کنید.

جمع‌بندی

در این بخش، پیش‌نیازهای سخت‌افزاری و نرم‌افزاری برای نصب Proxmox VE بررسی شد. برای نصب موفقیت‌آمیز این پلتفرم، باید پردازنده شما از فناوری‌های مجازی‌سازی پشتیبانی کند و سیستم شما دارای حداقل حافظه 2 گیگابایت و 32 گیگابایت فضای ذخیره‌سازی باشد. علاوه بر این، نیاز به تنظیمات شبکه ثابت و سیستم‌عاملی مبتنی بر Debian خواهید داشت. با رعایت این پیش‌نیازها، نصب و اجرای Proxmox VE به‌راحتی انجام خواهد شد و شما می‌توانید از تمامی امکانات این پلتفرم برای مجازی‌سازی و مدیریت ماشین‌های مجازی و کانتینرها بهره‌برداری کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مراحل نصب Proxmox VE بر روی سخت‌افزار فیزیکی” subtitle=”توضیحات کامل”]نصب Proxmox VE (Virtual Environment) بر روی سخت‌افزار فیزیکی یکی از راه‌های اصلی برای استفاده از امکانات مجازی‌سازی در سرورهای فیزیکی است. در این بخش، مراحل نصب Proxmox VE بر روی سرورهای فیزیکی را به‌صورت گام به گام و با جزئیات بررسی خواهیم کرد.

پیش‌نیازها و نیازمندی‌ها

قبل از شروع نصب، اطمینان حاصل کنید که سخت‌افزار شما شرایط زیر را دارا باشد:

  • پردازنده: پشتیبانی از Intel VT-x یا AMD-V برای مجازی‌سازی.
  • RAM: حداقل 2 گیگابایت (پیشنهاد 8 گیگابایت یا بیشتر).
  • فضای دیسک: حداقل 32 گیگابایت برای نصب سیستم عامل.
  • کارت شبکه: برای اتصال به شبکه.

گام 1: دانلود Proxmox VE

  1. به آدرس https://www.proxmox.com/downloads بروید.
  2. از بخش Proxmox Virtual Environment, لینک دانلود ISO Installer را انتخاب کنید و فایل Proxmox VE ISO را دانلود کنید.

گام 2: ساخت USB Bootable برای نصب

بعد از دانلود فایل ISO، باید آن را به یک USB bootable تبدیل کنید تا بتوانید از طریق آن نصب را انجام دهید. برای این کار از ابزارهای مختلفی استفاده می‌کنیم.

استفاده از Rufus (ویندوز):
  1. نرم‌افزار Rufus را از https://rufus.ie دانلود و نصب کنید.
  2. USB را به کامپیوتر متصل کرده و Rufus را باز کنید.
  3. در قسمت Device، USB خود را انتخاب کنید.
  4. در قسمت Boot Selection، گزینه Disk or ISO image (Please select) را انتخاب کرده و فایل ISO که دانلود کرده‌اید را بارگذاری کنید.
  5. سایر تنظیمات پیش‌فرض را نگه داشته و روی Start کلیک کنید.
استفاده از dd (لینوکس):

در لینوکس می‌توانید از دستور dd برای ایجاد USB Bootable استفاده کنید:

sudo dd if=/path/to/proxmox-ve.iso of=/dev/sdX bs=4M status=progress && sync

در این دستور:

  • /path/to/proxmox-ve.iso: مسیر فایل ISO دانلود شده.
  • /dev/sdX: مسیر درایو USB که باید با دقت انتخاب شود (مثلاً /dev/sdb).

گام 3: بوت از USB و شروع نصب

  1. سیستم را روشن کرده و وارد BIOS/UEFI شوید (معمولاً با فشردن کلید F2 یا Del).
  2. در BIOS، ترتیب بوت را طوری تنظیم کنید که USB به‌عنوان اولین دستگاه انتخاب شود.
  3. پس از ذخیره تغییرات و خروج از BIOS، سیستم از روی USB بوت می‌شود.

گام 4: نصب Proxmox VE

پس از بوت شدن، مراحل نصب را دنبال کنید:

1. انتخاب زبان و منطقه زمانی

انتخاب زبان و منطقه زمانی مناسب برای استفاده در سیستم.

2. پذیرش مجوزها

شرایط و مجوزهای استفاده از Proxmox VE را قبول کنید تا ادامه دهید.

3. انتخاب دیسک نصب

در این مرحله، دیسک را انتخاب کنید که Proxmox VE روی آن نصب خواهد شد. از منوی انتخاب دیسک، دیسک مناسب را انتخاب کنید.

4. تنظیمات شبکه

در این مرحله باید اطلاعات مربوط به شبکه را وارد کنید:

  • Hostname: نام سرور.
  • IP Address: آدرس IP (DHCP یا استاتیک).
  • Gateway: آدرس گیت‌وی.
  • DNS: آدرس سرور DNS.
5. پیکربندی پسورد

پسورد root را برای ورود به Proxmox VE تنظیم کنید.

6. انتخاب کشور و زبان

کشور و زبان مورد نظر خود را انتخاب کنید.

7. نصب و راه‌اندازی

پس از پیکربندی تمامی گزینه‌ها، گزینه Install را انتخاب کرده و نصب را شروع کنید. پس از اتمام نصب، سیستم به شما اطلاع خواهد داد که فرآیند نصب به‌درستی انجام شده است.

گام 5: راه‌اندازی مجدد سیستم و ورود به Proxmox VE

پس از پایان نصب، سیستم را راه‌اندازی مجدد کنید و USB را از سیستم جدا کنید. سیستم از روی هارد دیسک بوت خواهد شد. برای ورود به محیط وب Proxmox VE، در مرورگر خود آدرس IP سرور را وارد کنید:

https://<your-server-ip>:8006

ورود با نام کاربری root و پسوردی که تنظیم کرده‌اید صورت می‌گیرد.

گام 6: پیکربندی اولیه پس از نصب

پس از ورود به Proxmox VE، می‌توانید تنظیمات زیر را انجام دهید:

  • تنظیمات ذخیره‌سازی (در صورت نیاز به افزودن دیسک‌های جدید).
  • تنظیمات شبکه و VLAN (در صورت نیاز به مدیریت چندین شبکه).
  • ایجاد اولین ماشین مجازی (VM) یا کانتینر (LXC).

جمع‌بندی

در این بخش، مراحل نصب Proxmox VE بر روی سرورهای فیزیکی را به‌طور کامل شرح دادیم. با دنبال کردن این مراحل، می‌توانید به‌راحتی Proxmox VE را نصب کرده و از امکانات پیشرفته مجازی‌سازی آن بهره‌برداری کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نصب و پیکربندی اولیه از طریق رابط وب Proxmox VE” subtitle=”توضیحات کامل”]پس از نصب Proxmox VE بر روی سخت‌افزار فیزیکی، تمامی پیکربندی‌های اصلی و مدیریت سرور مجازی‌سازی از طریق رابط وب انجام می‌شود. این رابط وب قدرتمند و کاربرپسند است که امکان مدیریت ماشین‌های مجازی، کانتینرها، شبکه‌ها، ذخیره‌سازی و بسیاری از ویژگی‌های دیگر را فراهم می‌آورد. در این بخش، مراحل پیکربندی اولیه از طریق رابط وب را به‌طور گام‌به‌گام با مثال‌های عملی توضیح خواهیم داد.

گام 1: دسترسی به رابط وب Proxmox VE

پس از نصب و راه‌اندازی اولیه Proxmox VE و تنظیم آدرس IP به‌طور صحیح، می‌توانید با استفاده از مرورگر وب خود به رابط وب Proxmox VE دسترسی پیدا کنید.

  1. در مرورگر وب خود، آدرس https://:8006 را وارد کنید. به‌عنوان مثال، اگر آدرس IP سرور شما 192.168.1.100 است، وارد کنید:
    https://192.168.1.100:8006
    
  2. در صورتی که برای اولین بار وارد می‌شوید، احتمالاً یک هشدار امنیتی در مرورگر مشاهده خواهید کرد، زیرا Proxmox VE از گواهینامه امنیتی خودامضا (self-signed) استفاده می‌کند. این هشدار را نادیده بگیرید و ادامه دهید.
  3. در صفحه ورود، نام کاربری root و پسوردی که برای کاربر ریشه تنظیم کرده‌اید را وارد کنید.

گام 2: بررسی وضعیت کلی سیستم

پس از ورود به رابط وب، صفحه اصلی داشبورد Proxmox VE نمایش داده می‌شود. در اینجا اطلاعات کلی در مورد وضعیت سیستم، مانند مصرف منابع (CPU، حافظه، فضای دیسک و شبکه) و ماشین‌های مجازی و کانتینرهای موجود نمایش داده می‌شود.

گام 3: پیکربندی شبکه

برای مدیریت بهتر شبکه‌ها و ارتباطات سرور، می‌توانید تنظیمات شبکه را از طریق رابط وب انجام دهید. در اینجا روش انجام این کار را توضیح می‌دهیم:

  1. در منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  2. در تب Network که در سمت راست نمایش داده می‌شود، می‌توانید تنظیمات مربوط به شبکه را مشاهده و ویرایش کنید.

برای افزودن یک Bridge Network (که معمولاً برای ارتباط ماشین‌های مجازی به شبکه محلی استفاده می‌شود)، مراحل زیر را دنبال کنید:

  1. بر روی دکمه Create در بخش Network کلیک کنید.
  2. گزینه Linux Bridge را انتخاب کنید.
  3. در فیلد Name یک نام برای bridge خود (مثلاً vmbr0) وارد کنید.
  4. در فیلد Bridge ports، نام کارت شبکه فیزیکی که قرار است به این bridge متصل شود را وارد کنید.
  5. در بخش IPv4، می‌توانید آدرس IP و subnet mask را برای vmbr0 تنظیم کنید. به‌عنوان مثال:
    Address: 192.168.1.100
    Netmask: 255.255.255.0
    Gateway: 192.168.1.1
    
  6. پس از اتمام پیکربندی، بر روی Apply کلیک کنید.

گام 4: پیکربندی ذخیره‌سازی

در این مرحله، می‌توانید ذخیره‌سازی برای ماشین‌های مجازی و کانتینرهای خود را اضافه و پیکربندی کنید. به‌طور پیش‌فرض، Proxmox VE از local storage استفاده می‌کند که معمولاً به‌صورت فیزیکی بر روی دیسک سرور قرار دارد.

برای افزودن یک NFS Storage (یا هر نوع ذخیره‌سازی دیگر مانند iSCSI یا Ceph)، مراحل زیر را دنبال کنید:

  1. در منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  2. سپس به تب Storage بروید.
  3. بر روی دکمه Add و سپس NFS کلیک کنید.
  4. در پنجره باز شده، تنظیمات زیر را وارد کنید:
    • ID: یک نام برای ذخیره‌سازی (مثلاً nfs-storage).
    • Server: آدرس IP سرور NFS.
    • Export: مسیر فایل‌هایی که از سرور NFS برای Proxmox VE قابل دسترس هستند.
    • Content: انتخاب کنید که این ذخیره‌سازی برای Disk image, ISO image و یا دیگر محتویات قابل استفاده باشد.
  5. پس از وارد کردن این اطلاعات، بر روی Add کلیک کنید.

گام 5: ایجاد اولین ماشین مجازی (VM)

برای ایجاد یک ماشین مجازی جدید، مراحل زیر را دنبال کنید:

  1. در منوی سمت چپ، بر روی Datacenter کلیک کنید.
  2. سپس بر روی Node سرور خود کلیک کنید (نام سرور فیزیکی که نصب کرده‌اید).
  3. در بالای صفحه، دکمه Create VM را انتخاب کنید.
  4. در پنجره جدید، تنظیمات ماشین مجازی را وارد کنید:
    • VM ID: شناسه ماشین مجازی (این مقدار به‌طور خودکار ایجاد می‌شود).
    • Name: نام ماشین مجازی.
    • OS: سیستم‌عاملی که می‌خواهید نصب کنید. (می‌توانید یک ISO انتخاب کنید یا از ذخیره‌سازی شبکه استفاده کنید).
    • Hard Disk: اندازه و نوع دیسک ماشین مجازی.
    • Memory: مقدار حافظه RAM.
    • CPU: تعداد هسته‌های پردازنده.
  5. پس از تنظیم تمامی گزینه‌ها، بر روی Finish کلیک کنید.

گام 6: پیکربندی کاربران و دسترسی‌ها

برای مدیریت دسترسی به Proxmox VE و اعطای سطح دسترسی‌های مختلف به کاربران، مراحل زیر را دنبال کنید:

  1. از منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  2. سپس به تب Permissions بروید.
  3. بر روی دکمه Add کلیک کنید و کاربری جدید ایجاد کنید.
  4. در پنجره Add User، نام کاربری و رمز عبور را وارد کنید.
  5. سطح دسترسی مورد نظر (مانند PVEAdmin, PVEUser و غیره) را انتخاب کنید.

جمع‌بندی

در این بخش، نحوه پیکربندی اولیه از طریق رابط وب Proxmox VE را بررسی کردیم. با استفاده از این رابط، می‌توانید تنظیمات شبکه، ذخیره‌سازی، ماشین‌های مجازی و سایر موارد مهم را به‌راحتی مدیریت کنید. رابط وب Proxmox VE ابزار قدرتمندی برای مدیریت و نظارت بر سرورهای مجازی‌سازی است که به شما این امکان را می‌دهد تا از تمامی امکانات این پلتفرم به‌طور مؤثر استفاده کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”آشنایی با تنظیمات شبکه و ذخیره‌سازی اولیه” subtitle=”توضیحات کامل”]در این بخش، به تنظیمات اولیه شبکه و ذخیره‌سازی در Proxmox VE خواهیم پرداخت. این تنظیمات می‌توانند هم از طریق رابط گرافیکی وب و هم از طریق دستورهای خط فرمان (کامندلاین) انجام شوند. خواهیم دید که چگونه می‌توان تنظیمات شبکه و ذخیره‌سازی را در Proxmox VE برای استفاده در محیط‌های مجازی‌سازی بهینه کرد.


تنظیمات شبکه در Proxmox VE

یکی از مهم‌ترین مراحل پیکربندی اولیه Proxmox VE، تنظیم شبکه است. برای کار با ماشین‌های مجازی و کانتینرها نیاز به یک شبکه مناسب است که می‌تواند از نوع bridge، VLAN و یا bonding باشد.

  1. تنظیم شبکه از طریق رابط گرافیکی وب:
    • ابتدا وارد رابط وب Proxmox VE شوید.
    • از منوی سمت چپ، بخش “Datacenter” را انتخاب کنید.
    • سپس روی گزینه “Node” کلیک کرده و از فهرست زیر آن، گزینه “Network” را انتخاب کنید.
    • در این صفحه می‌توانید شبکه‌های موجود را مشاهده کنید. برای اضافه کردن یا ویرایش شبکه‌ها، روی “Create” یا “Edit” کلیک کنید.
    • تنظیمات مورد نظر را وارد کنید و سپس با “Apply” تغییرات را ذخیره کنید.
  2. تنظیم شبکه از طریق خط فرمان:برای انجام تنظیمات شبکه از طریق کامندلاین، باید فایل /etc/network/interfaces را ویرایش کنید. این فایل تنظیمات شبکه را برای Proxmox VE مشخص می‌کند.
    • ابتدا وارد سرور Proxmox VE شوید و فایل تنظیمات شبکه را باز کنید:
      nano /etc/network/interfaces
      
    • برای ایجاد یک Bridge، که به‌طور معمول برای ماشین‌های مجازی استفاده می‌شود، می‌توانید خطوط زیر را به فایل اضافه کنید:
      auto lo
      iface lo inet loopback
      
      auto eth0
      iface eth0 inet manual
      
      auto vmbr0
      iface vmbr0 inet static
          address 192.168.1.100
          netmask 255.255.255.0
          gateway 192.168.1.1
          bridge_ports eth0
          bridge_stp off
          bridge_fd 0
      

      در این مثال:

      • vmbr0 یک bridge است که به eth0 متصل می‌شود.
      • آدرس IP استاتیک به vmbr0 اختصاص داده شده است.
      • بعد از ویرایش فایل، تغییرات را با دستور زیر ذخیره کنید و سرویس شبکه را ریستارت کنید:
      systemctl restart networking
      
  3. تنظیمات VLAN در Proxmox VE:اگر نیاز به پیکربندی VLAN دارید، می‌توانید از دستور زیر برای ایجاد VLAN استفاده کنید:
    • ویرایش فایل /etc/network/interfaces و اضافه کردن تنظیمات VLAN به شکل زیر:
      auto eth0.10
      iface eth0.10 inet static
          address 192.168.10.100
          netmask 255.255.255.0
          vlan-raw-device eth0
      

      در اینجا، eth0.10 یک VLAN با شناسه 10 است و آدرس IP برای آن تنظیم شده است.


تنظیمات ذخیره‌سازی اولیه در Proxmox VE

بعد از تنظیمات شبکه، باید تنظیمات ذخیره‌سازی را برای نگهداری داده‌های ماشین‌های مجازی و کانتینرها انجام دهید. Proxmox VE از چندین نوع ذخیره‌سازی پشتیبانی می‌کند، از جمله local storage, NFS, iSCSI, و ZFS.

  1. تنظیم ذخیره‌سازی از طریق رابط گرافیکی وب:
    • وارد رابط وب Proxmox VE شوید.
    • از منوی سمت چپ، بخش “Datacenter” را انتخاب کنید.
    • سپس از فهرست، گزینه “Storage” را انتخاب کنید.
    • در این صفحه، شما می‌توانید storage های موجود را مشاهده کرده و یا یک storage جدید اضافه کنید.
    • برای اضافه کردن local storage یا NFS, روی “Add” کلیک کرده و نوع ذخیره‌سازی را انتخاب کنید.
      • برای مثال، برای اضافه کردن local storage:
        • نوع storage را Directory انتخاب کنید.
        • مسیر ذخیره‌سازی را وارد کنید (مانند /var/lib/vz).
        • سپس تنظیمات را ذخیره کنید.
  2. تنظیم ذخیره‌سازی از طریق خط فرمان:برای افزودن ذخیره‌سازی به Proxmox VE از طریق کامندلاین، باید فایل پیکربندی /etc/pve/storage.cfg را ویرایش کنید. این فایل تمام اطلاعات مربوط به ذخیره‌سازی‌های Proxmox VE را ذخیره می‌کند.
    • ابتدا وارد سرور Proxmox VE شوید و فایل تنظیمات ذخیره‌سازی را ویرایش کنید:
      nano /etc/pve/storage.cfg
      
    • برای اضافه کردن یک ذخیره‌سازی محلی به نام local-lvm، تنظیمات زیر را وارد کنید:
      dir: local
          path /var/lib/vz
          content rootdir,iso,vztmpl,backup
          maxfiles 1
      
      • این تنظیمات ذخیره‌سازی محلی را برای نگهداری فایل‌های سیستم ریشه (root directory)، ISO images، قالب‌های کانتینر، و فایل‌های پشتیبان تنظیم می‌کند.
    • بعد از ویرایش فایل، تغییرات اعمال می‌شود و نیازی به راه‌اندازی مجدد نیست.
  3. استفاده از ZFS برای ذخیره‌سازی:ZFS یکی از قدرتمندترین سیستم‌های فایل است که می‌توانید در Proxmox VE برای ذخیره‌سازی استفاده کنید. برای راه‌اندازی ZFS، باید آن را به‌طور دستی نصب کنید.
    • نصب ZFS روی Proxmox VE:
      apt update
      apt install zfsutils-linux
      
    • ایجاد یک ZFS pool جدید:
      zpool create mypool /dev/sda /dev/sdb
      

      در اینجا، mypool یک ZFS pool جدید است که از دو دیسک /dev/sda و /dev/sdb استفاده می‌کند.

    • بعد از ایجاد ZFS pool، می‌توانید آن را به Proxmox VE اضافه کنید. این کار را با ویرایش فایل /etc/pve/storage.cfg انجام می‌دهید و به صورت زیر اضافه می‌کنید:
      zfs: mypool
          pool mypool
          content images,iso
      

      این تنظیمات به Proxmox VE می‌گوید که از mypool برای ذخیره‌سازی تصاویر و ISO‌ها استفاده کند.


جمع‌بندی

در این بخش، تنظیمات اولیه شبکه و ذخیره‌سازی در Proxmox VE بررسی شد. شما می‌توانید تنظیمات شبکه را هم از طریق رابط گرافیکی و هم از طریق کامندلاین انجام دهید، و برای ذخیره‌سازی، گزینه‌های مختلفی از جمله local storage, NFS, ZFS و iSCSI در دسترس هستند. برای هرکدام از این تنظیمات، روش‌های گرافیکی و خط فرمان توضیح داده شد تا شما بتوانید با هر کدام راحت‌تر کار کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”معرفی ابزارهای مدیریتی و گزارش‌دهی در Proxmox VE” subtitle=”توضیحات کامل”]در Proxmox VE، ابزارهای مختلفی برای مدیریت و نظارت بر سیستم‌ها و منابع وجود دارد. این ابزارها به مدیران سرور این امکان را می‌دهند که به‌راحتی ماشین‌های مجازی، کانتینرها، ذخیره‌سازی‌ها و منابع شبکه را مدیریت کرده و وضعیت سیستم را مانیتور کنند. در این بخش، ابزارهای مدیریتی و گزارش‌دهی در Proxmox VE معرفی شده و روش‌های استفاده از آن‌ها توضیح داده می‌شود.


1. رابط وب گرافیکی (Web GUI)

رابط وب گرافیکی Proxmox VE یکی از اصلی‌ترین ابزارهای مدیریتی برای انجام تمام عملیات‌ها به‌صورت بصری است. از طریق این رابط می‌توانید ماشین‌های مجازی، کانتینرها، ذخیره‌سازی، شبکه و سایر منابع را مشاهده و مدیریت کنید.

ویژگی‌ها و قابلیت‌ها:

  • مدیریت ماشین‌های مجازی و کانتینرها
  • مشاهده وضعیت ماشین‌های مجازی (CPU, Memory, Disk Usage)
  • دسترسی به کنسول ماشین‌های مجازی
  • مدیریت منابع ذخیره‌سازی
  • پیکربندی شبکه و بررسی وضعیت آن
  • مشاهده گزارش‌های سیستم و لاگ‌ها

برای دسترسی به رابط وب، تنها کافی است آدرس IP سرور Proxmox VE را در مرورگر خود وارد کرده و با استفاده از اطلاعات ورود وارد سیستم شوید:

https://<Proxmox-IP>:8006

2. ابزار Command Line Interface (CLI)

علاوه بر رابط گرافیکی وب، Proxmox VE از خط فرمان نیز برای مدیریت و پیکربندی سیستم پشتیبانی می‌کند. با استفاده از CLI، شما می‌توانید بسیاری از عملیات‌ها را انجام دهید. این روش به ویژه در هنگام مدیریت سرورهای از راه دور یا در سناریوهای اتوماسیون مفید است.

برخی از دستوراتی که می‌توانید از طریق CLI استفاده کنید:

  • لیست ماشین‌های مجازی:برای مشاهده ماشین‌های مجازی اجرا شده در سیستم از دستور زیر استفاده کنید:
    qm list
    
  • مشاهده وضعیت ماشین مجازی خاص:برای بررسی وضعیت یک ماشین مجازی خاص (مثلاً با ID 101) از دستور زیر استفاده کنید:
    qm status 101
    
  • ایجاد ماشین مجازی:برای ایجاد یک ماشین مجازی جدید، می‌توانید دستور زیر را وارد کنید:
    qm create 102 --memory 2048 --net0 virtio,bridge=vmbr0 --ide2 local:iso/debian-10.iso,media=cdrom
    
  • مشاهده وضعیت کلی سیستم:برای بررسی وضعیت کلی منابع سیستم (مانند استفاده از CPU، حافظه، دیسک و …) می‌توانید از دستور زیر استفاده کنید:
    pveperf
    

3. ابزار Proxmox VE API

Proxmox VE یک API RESTful نیز ارائه می‌دهد که به شما این امکان را می‌دهد تا از طریق درخواست‌های HTTP عملیات‌های مختلف را روی سیستم انجام دهید. این API بسیار قدرتمند است و برای اتوماسیون یا ادغام با سیستم‌های دیگر کاربرد دارد.

مثال درخواست برای مشاهده ماشین‌های مجازی:

برای دریافت لیست ماشین‌های مجازی از API می‌توانید از دستور curl استفاده کنید. به عنوان مثال:

curl -k -H "Authorization: PVEAPIToken=<TOKEN>" https://<Proxmox-IP>:8006/api2/json/nodes/<Node>/qemu

در اینجا:

  • <TOKEN> باید توکن API شما باشد.
  • <Proxmox-IP> آدرس IP سرور Proxmox VE است.
  • <Node> نام گره یا نود است که می‌خواهید اطلاعات آن را دریافت کنید.

4. ابزارهای گزارش‌دهی و لاگ‌ها

یکی از اجزای ضروری در هر سیستم مجازی‌سازی، قابلیت نظارت و گزارش‌دهی است. در Proxmox VE، ابزارهایی برای نظارت و دریافت گزارشات از وضعیت سیستم وجود دارد.

  1. Log Files:برای مشاهده گزارش‌های سیستم، می‌توانید از دستور زیر استفاده کنید:
    journalctl -u pvedaemon
    

    این دستور گزارش‌های مربوط به pvedaemon را که مسئول مدیریت و دستورات اجرایی در Proxmox VE است، نمایش می‌دهد.

  2. مانیتورینگ منابع سیستم:Proxmox VE از ابزارهای زیر برای نظارت بر منابع سیستم استفاده می‌کند:
    • CPU Usage: با استفاده از top یا htop می‌توانید مصرف پردازنده سیستم را بررسی کنید.
      top
      
    • Memory Usage: برای بررسی مصرف حافظه از دستور free استفاده کنید:
      free -m
      
    • Disk Usage: برای مشاهده استفاده از دیسک، از دستور df استفاده کنید:
      df -h
      
  3. Proxmox VE Metrics:از طریق رابط وب، می‌توانید عملکرد سیستم، ماشین‌های مجازی و کانتینرها را در قالب نمودارها و آمارهای مختلف مشاهده کنید. این ابزار به شما این امکان را می‌دهد که عملکرد سیستم را در طول زمان تحلیل کنید.
    • برای مشاهده آمار و نمودارهای مربوط به ماشین‌های مجازی یا کانتینرها، به بخش “Node” رفته و سپس بر روی ماشین مجازی یا کانتینر مورد نظر کلیک کنید.
    • در صفحه باز شده، بخش “Performance” را می‌بینید که اطلاعاتی مثل مصرف CPU، RAM و Disk Usage را در قالب نمودار نمایش می‌دهد.

5. نظارت از طریق ابزارهای خارجی

Proxmox VE قابلیت ادغام با ابزارهای نظارتی خارجی را نیز دارد. برخی از این ابزارها عبارتند از:

  1. Zabbix: Zabbix یکی از ابزارهای محبوب برای نظارت بر سرورها و ماشین‌های مجازی است که می‌تواند به راحتی با Proxmox VE یکپارچه شود. شما می‌توانید از Zabbix برای مانیتور کردن وضعیت سیستم، استفاده از منابع، و دریافت هشدارها استفاده کنید.
  2. Nagios: Nagios یکی دیگر از ابزارهای نظارتی است که با Proxmox VE سازگار است. از طریق Nagios می‌توان وضعیت ماشین‌های مجازی و منابع را زیر نظر داشت و هشدارهایی در صورت بروز مشکل دریافت کرد.

جمع‌بندی

در این بخش، ابزارهای مدیریتی و گزارش‌دهی در Proxmox VE معرفی شدند. این ابزارها به مدیران سیستم این امکان را می‌دهند که سیستم‌های خود را به‌راحتی مدیریت کرده و از وضعیت آن‌ها مطلع شوند. Proxmox VE با رابط گرافیکی وب، ابزار خط فرمان (CLI)، API و امکانات نظارتی داخلی و خارجی این امکان را فراهم می‌آورد که به‌طور مؤثر و کارآمد ماشین‌های مجازی و کانتینرها را مدیریت و نظارت کنید.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”بخش 2. آشنایی با محیط کاربری Proxmox VE”][cdb_course_lesson title=”فصل 1. مرور رابط کاربری وب (Web UI) Proxmox”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”معرفی رابط کاربری وب Proxmox VE” subtitle=”توضیحات کامل”]رابط کاربری وب Proxmox VE ابزار اصلی برای مدیریت، پیکربندی و نظارت بر ماشین‌های مجازی، کانتینرها و منابع ذخیره‌سازی است. این رابط به مدیران سرور این امکان را می‌دهد که سیستم خود را از طریق مرورگر وب به راحتی مدیریت کنند. Proxmox VE با استفاده از رابط گرافیکی خود، تمامی عملیات پیچیده را به سادگی در اختیار کاربر قرار می‌دهد.

رابط کاربری وب Proxmox VE امکان نظارت، مدیریت و تنظیم پارامترهای مختلف در سیستم را به راحتی فراهم می‌کند. با استفاده از این رابط می‌توان تنظیمات ماشین‌های مجازی، کانتینرها، ذخیره‌سازی، شبکه و حتی موارد پیشرفته مانند HA (High Availability) و Clustering را انجام داد.


ویژگی‌های اصلی رابط کاربری وب Proxmox VE:

  1. پنل داشبورد:
    • داشبورد Proxmox VE نمای کلی از وضعیت سیستم را نمایش می‌دهد. در این بخش می‌توانید آمار مصرف منابع سیستم مانند CPU، RAM، و دیسک را مشاهده کنید.
  2. مدیریت ماشین‌های مجازی و کانتینرها:
    • با استفاده از رابط وب، می‌توانید ماشین‌های مجازی و کانتینرهای LXC را ایجاد، حذف، پیکربندی، شروع و متوقف کنید.
  3. مدیریت ذخیره‌سازی و شبکه:
    • در این بخش می‌توانید انواع مختلف ذخیره‌سازی مانند ZFS، Ceph و NFS را پیکربندی کنید.
    • همچنین می‌توانید تنظیمات شبکه شامل تنظیمات VLAN، Bridge و Bonding را انجام دهید.
  4. پشتیبانی از High Availability (HA) و Clustering:
    • رابط کاربری وب امکان پیکربندی و نظارت بر HA و Clustering را به راحتی فراهم می‌کند.
  5. امنیت و دسترسی کاربران:
    • امکان مدیریت دسترسی‌ها، تعیین سطح دسترسی کاربران و تنظیمات مربوط به امنیت مانند احراز هویت دو مرحله‌ای (2FA) در رابط وب وجود دارد.

ورود به رابط کاربری وب Proxmox VE

برای دسترسی به رابط کاربری وب Proxmox VE، تنها کافیست از طریق مرورگر وب خود به آدرس IP یا نام دامنه سرور Proxmox خود وارد شوید. برای ورود به رابط وب از URL زیر استفاده می‌کنید:

https://<IP-ADDRESS>:8006

در اینجا <IP-ADDRESS> آدرس IP سرور Proxmox شما است. پس از وارد کردن این آدرس در مرورگر، صفحه ورود به سیستم ظاهر خواهد شد.

مراحل ورود به سیستم:

  1. در صفحه ورود، نام کاربری و رمز عبور سرور خود را وارد کنید. به طور پیش‌فرض، نام کاربری “root” است و رمز عبور را شما در هنگام نصب وارد کرده‌اید.
  2. پس از وارد کردن نام کاربری و رمز عبور، بر روی دکمه “Login” کلیک کنید.

پیکربندی و تنظیمات ابتدایی از طریق رابط کاربری وب

در این بخش نحوه انجام برخی از تنظیمات و پیکربندی‌های ابتدایی از طریق رابط وب را بررسی می‌کنیم.

1. ایجاد ماشین مجازی از طریق رابط وب:

برای ایجاد یک ماشین مجازی جدید، مراحل زیر را دنبال کنید:

  1. وارد رابط وب Proxmox VE شوید.
  2. در نوار کناری سمت چپ، بر روی “Datacenter” کلیک کنید.
  3. سپس بر روی “Create VM” در قسمت بالای صفحه کلیک کنید.
  4. مراحل زیر را دنبال کنید:
    • General: انتخاب نام و نوع سیستم‌عامل.
    • OS: انتخاب سیستم‌عاملی که قصد نصب آن را دارید.
    • Hard Disk: انتخاب دیسک سخت برای ماشین مجازی.
    • Memory: تخصیص حافظه به ماشین مجازی.
    • CPU: تخصیص منابع پردازنده.
  5. پس از اتمام تنظیمات، بر روی “Finish” کلیک کنید.
2. پیکربندی شبکه:

برای پیکربندی شبکه از رابط وب، مراحل زیر را دنبال کنید:

  1. وارد رابط وب شوید.
  2. در نوار کناری سمت چپ، بر روی “Datacenter” کلیک کنید.
  3. از منوی کشویی، گزینه “Network” را انتخاب کنید.
  4. در اینجا می‌توانید شبکه‌های مختلف (Bridge، VLAN و…) را پیکربندی کنید.
    • برای افزودن یک Bridge جدید، بر روی “Create” کلیک کنید و جزئیات مورد نظر مانند نام Bridge و نوع رابط شبکه را وارد کنید.
    • برای پیکربندی VLAN، می‌توانید از قسمت “Create” گزینه “VLAN” را انتخاب کنید و تنظیمات مربوط به VLAN را وارد کنید.
3. ایجاد کانتینر LXC:

برای ایجاد یک کانتینر LXC در Proxmox VE:

  1. وارد رابط وب شوید.
  2. در نوار کناری، روی “Datacenter” کلیک کنید.
  3. بر روی “Create CT” در بالای صفحه کلیک کنید.
  4. مراحل زیر را دنبال کنید:
    • General: انتخاب نام و نوع کانتینر.
    • Template: انتخاب یک الگو (template) برای کانتینر.
    • Disk: تخصیص فضای ذخیره‌سازی برای کانتینر.
    • Network: پیکربندی تنظیمات شبکه کانتینر.
  5. پس از انجام تنظیمات، بر روی “Finish” کلیک کنید.

انجام تنظیمات از طریق خط فرمان (کامند خطی)

در کنار استفاده از رابط کاربری گرافیکی، بسیاری از تنظیمات را می‌توان از طریق خط فرمان (CLI) نیز انجام داد. در ادامه به چند دستور اصلی اشاره خواهیم کرد که می‌توانید از آن‌ها برای پیکربندی Proxmox VE استفاده کنید.

1. ایجاد ماشین مجازی از طریق CLI:

برای ایجاد یک ماشین مجازی از خط فرمان، می‌توانید از دستور qm استفاده کنید.

qm create 100 --name myvm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /path/to/iso

در این دستور:

  • 100: شناسه ماشین مجازی
  • --name myvm: نام ماشین مجازی
  • --memory 2048: تخصیص حافظه 2GB
  • --cores 2: تخصیص 2 هسته پردازنده
  • --net0 virtio,bridge=vmbr0: اتصال شبکه به bridge vmbr0
  • --cdrom /path/to/iso: تعیین ISO برای نصب سیستم‌عامل
2. پیکربندی شبکه از طریق CLI:

برای پیکربندی یک Bridge جدید از دستور pvesh استفاده کنید.

pvesh create /nodes/<node>/network/bridges --bridge vmbr1 --iface eth1 --autostart 1

این دستور یک Bridge جدید به نام vmbr1 ایجاد می‌کند و آن را به رابط eth1 متصل می‌کند.

3. ایجاد کانتینر LXC از CLI:

برای ایجاد یک کانتینر LXC از دستور pct استفاده کنید:

pct create 101 /var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz -hostname mycontainer -net0 name=eth0,bridge=vmbr0,ip=dhcp

در این دستور:

  • 101: شناسه کانتینر
  • -hostname mycontainer: نام کانتینر
  • -net0 name=eth0,bridge=vmbr0,ip=dhcp: پیکربندی شبکه کانتینر

جمع‌بندی

رابط کاربری وب Proxmox VE یک ابزار قدرتمند برای مدیریت و نظارت بر ماشین‌های مجازی، کانتینرها و منابع سیستم است. این رابط به مدیران سیستم این امکان را می‌دهد که به راحتی تمامی عملیات مورد نیاز را از طریق مرورگر وب انجام دهند. در کنار آن، با استفاده از دستورات CLI نیز می‌توان عملیات را به صورت کارآمد و سریع انجام داد. پیکربندی شبکه، ذخیره‌سازی، ماشین‌های مجازی و کانتینرها از طریق رابط گرافیکی و دستورات خط فرمان هر دو در دسترس مدیران قرار دارند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نحوه دسترسی به Web UI و ورود به سیستم” subtitle=”توضیحات کامل”]رابط کاربری وب (Web UI) در Proxmox VE یک ابزار مدیریتی مهم است که به شما این امکان را می‌دهد تا به راحتی سرورهای مجازی، کانتینرها، ذخیره‌سازی و شبکه‌ها را مدیریت کنید. این رابط از طریق مرورگر وب قابل دسترسی است و امکان انجام تمام عملیات‌های ضروری مدیریتی را به صورت گرافیکی فراهم می‌کند.

برای دسترسی به Web UI، باید چند مرحله ساده را دنبال کنید.


1. آدرس دسترسی به Web UI

پس از نصب Proxmox VE بر روی سرور، شما می‌توانید به رابط وب از طریق آدرس IP سرور دسترسی پیدا کنید. به صورت پیش‌فرض، Web UI بر روی پورت 8006 در دسترس است.

آدرس دسترسی به Web UI به شکل زیر است:

https://<IP-ADDRESS>:8006

در اینجا:

  • <IP-ADDRESS> آدرس IP یا دامنه سرور Proxmox شما است. به عنوان مثال، اگر IP شما 192.168.1.100 است، آدرس دسترسی به Web UI به شکل زیر خواهد بود:
https://192.168.1.100:8006

2. ورود به رابط وب

پس از وارد کردن آدرس در مرورگر وب، صفحه ورود (Login) برای شما نمایش داده می‌شود. در این صفحه، شما باید نام کاربری و رمز عبور مربوط به Proxmox را وارد کنید. به طور پیش‌فرض، نام کاربری root است.

مراحل ورود:
  1. باز کردن مرورگر وب و وارد کردن آدرس زیر در نوار آدرس:
    https://<IP-ADDRESS>:8006
    
  2. صفحه ورود (Login) نمایش داده می‌شود. در اینجا باید اطلاعات زیر را وارد کنید:
    • Username: root
    • Password: رمز عبور مربوط به Proxmox که در زمان نصب وارد کرده‌اید.
  3. پس از وارد کردن نام کاربری و رمز عبور، بر روی دکمه “Login” کلیک کنید.

3. دستورات خط فرمان برای تنظیمات و پیکربندی اولیه

اگر شما نیاز دارید که برخی تنظیمات یا پیکربندی‌ها را از طریق خط فرمان (CLI) انجام دهید، می‌توانید از دستورات زیر استفاده کنید.

1. برای پیدا کردن آدرس IP سرور Proxmox :

در صورتی که آدرس IP سرور خود را نمی‌دانید، می‌توانید از دستور زیر در ترمینال سرور Proxmox برای مشاهده آدرس‌های IP استفاده کنید:

ip a

این دستور تمامی آدرس‌های IP در رابط‌های شبکه مختلف را نمایش می‌دهد. آدرس IP مورد نظر را برای دسترسی به Web UI پیدا کنید.

2. دسترسی به رابط وب با استفاده از SSH (در صورتی که سرور به صورت دسترسی از راه دور باشد)

اگر شما دسترسی SSH به سرور دارید، می‌توانید وارد سرور شوید و از طریق دستور زیر بررسی کنید که پورت 8006 در حال اجرا است یا خیر:

netstat -tuln | grep 8006

در صورتی که پورت 8006 باز باشد، می‌توانید از مرورگر وب برای دسترسی به Web UI استفاده کنید.


جمع‌بندی

دسترسی به رابط کاربری وب Proxmox VE از طریق مرورگر و با وارد کردن آدرس IP سرور در پورت 8006 انجام می‌شود. پس از ورود به رابط وب با استفاده از نام کاربری root و رمز عبور، شما می‌توانید به راحتی سیستم خود را مدیریت کنید. همچنین در صورت نیاز به انجام تنظیمات و پیکربندی‌ها از طریق خط فرمان، دستورات خاصی مانند ip a برای پیدا کردن آدرس IP سرور و netstat برای بررسی پورت‌های فعال، به شما کمک خواهند کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مرور کلی بر صفحه اصلی Proxmox VE” subtitle=”توضیحات کامل”]صفحه اصلی (Dashboard) در رابط کاربری وب Proxmox VE یک نمای کلی از وضعیت سیستم، ماشین‌های مجازی (VM) و کانتینرها (LXC)، هشدارها و رویدادها را فراهم می‌آورد. این صفحه، ابزاری است که به مدیران سیستم کمک می‌کند تا عملکرد و وضعیت کلی سرورهای مجازی و کانتینرها را در یک نگاه بررسی کنند. در ادامه به تفصیل این بخش‌ها را بررسی خواهیم کرد.


1. وضعیت سیستم (Node Status)

در بخش وضعیت سیستم (Node Status)، شما می‌توانید اطلاعاتی از وضعیت کلی سرور Proxmox خود، منابع سخت‌افزاری، و عملکرد سیستم دریافت کنید. این بخش شامل موارد زیر است:

  • بار پردازنده (CPU Load): میزان استفاده از پردازنده را نمایش می‌دهد.
  • حافظه (Memory Usage): میزان استفاده از حافظه RAM و فضای Swap.
  • فضای دیسک (Disk Usage): میزان استفاده از فضای ذخیره‌سازی سیستم.
  • زمان فعالیت (Uptime): مدت زمان از آخرین راه‌اندازی سیستم.

این اطلاعات در بالای صفحه Proxmox VE قرار دارند و به شما این امکان را می‌دهند که به سرعت وضعیت کلی سرور خود را مشاهده کنید. به عنوان مثال، اگر مشاهده کنید که حافظه یا پردازنده به طور غیرعادی استفاده می‌شود، می‌توانید برای بررسی دقیق‌تر اقدام کنید.

مثال:

برای مشاهده اطلاعات مربوط به وضعیت سیستم در CLI سرور، از دستورات زیر استفاده کنید:

  • برای مشاهده بار پردازنده:
    top
    
  • برای مشاهده وضعیت حافظه:
    free -h
    

2. وضعیت ماشین‌های مجازی و کانتینرها

در بخش وضعیت ماشین‌های مجازی و کانتینرها، شما می‌توانید تمامی ماشین‌های مجازی (VMs) و کانتینرهایی که روی سرور شما در حال اجرا هستند، بررسی کنید. این بخش به شما این امکان را می‌دهد که به راحتی وضعیت هر یک از ماشین‌های مجازی یا کانتینرها را مشاهده کرده و عملیات مدیریتی را بر روی آن‌ها انجام دهید.

  • لیست ماشین‌های مجازی (VMs): شامل لیستی از تمامی ماشین‌های مجازی که در حال اجرا هستند و وضعیت آن‌ها.
  • لیست کانتینرها (LXC): شامل لیستی از تمامی کانتینرهایی که در حال اجرا هستند.
  • وضعیت فعلی: برای هر ماشین مجازی یا کانتینر، وضعیت جاری شامل “در حال اجرا” (Running)، “متوقف” (Stopped)، یا “آفلاین” (Offline) نمایش داده می‌شود.
  • میزان مصرف منابع: برای هر ماشین مجازی و کانتینر میزان استفاده از پردازنده، حافظه و دیسک نمایش داده می‌شود.

در این بخش، شما می‌توانید اطلاعاتی مانند نام ماشین مجازی، آدرس IP، وضعیت شبکه و مصرف منابع را مشاهده کنید.

مثال:

برای مشاهده وضعیت ماشین‌های مجازی و کانتینرها از خط فرمان می‌توانید از دستور زیر استفاده کنید:

  • برای مشاهده وضعیت ماشین‌های مجازی:
    qm list
    
  • برای مشاهده وضعیت کانتینرها:
    pct list
    

این دستورات به شما کمک می‌کنند تا به راحتی از وضعیت جاری ماشین‌های مجازی و کانتینرها مطلع شوید و در صورت نیاز عملیات مدیریتی را انجام دهید.


3. هشدارها و رویدادها

در بخش هشدارها و رویدادها، تمامی رویدادهای سیستم، ماشین‌های مجازی و کانتینرها، همچنین هشدارهایی که در طول زمان ثبت شده‌اند، نمایش داده می‌شود. این بخش برای نظارت بر فعالیت‌ها و شناسایی مشکلات مهم است.

  • رویدادها: شامل اطلاعاتی از عملیات‌های انجام شده روی سیستم، مانند شروع یا توقف ماشین‌های مجازی، تغییرات در تنظیمات شبکه، تغییرات در وضعیت ذخیره‌سازی و…
  • هشدارها: شامل پیام‌های هشدار درباره وضعیت غیرعادی سیستم مانند کمبود منابع (حافظه، پردازنده، فضای دیسک)، خرابی دیسک، یا مشکلات در شبکه.
  • خطاها: شامل پیام‌های خطا که به دلیل مشکلات سیستم، ماشین مجازی یا کانتینر به وجود می‌آید. این پیام‌ها می‌توانند حاوی اطلاعات مهمی برای عیب‌یابی و رفع مشکل باشند.

اطلاعات رویدادها و هشدارها در بخش پایین‌تر از صفحه اصلی (Dashboard) نمایش داده می‌شوند. شما می‌توانید هر رویداد را بررسی کرده و در صورت لزوم به آن واکنش نشان دهید.

مثال:

برای مشاهده لاگ‌ها و رویدادها از طریق CLI، می‌توانید از دستورات زیر استفاده کنید:

  • برای مشاهده لاگ‌های کلی Proxmox:
    journalctl -u pvedaemon
    
  • برای مشاهده خطاها و هشدارها:
    tail -f /var/log/syslog
    

این دستورات به شما کمک می‌کنند تا رویدادها و هشدارها را در زمان واقعی مشاهده کرده و در صورت لزوم اقداماتی برای رفع مشکلات انجام دهید.


جمع‌بندی

صفحه اصلی Proxmox VE ابزاری قدرتمند برای نظارت بر وضعیت سیستم، ماشین‌های مجازی، کانتینرها و مشاهده هشدارها و رویدادها است. شما می‌توانید با استفاده از این ابزار، به راحتی وضعیت منابع سرور، ماشین‌های مجازی و کانتینرها را بررسی کرده و مشکلات سیستم را شناسایی و حل کنید. همچنین، با استفاده از دستورات خط فرمان برای مشاهده وضعیت ماشین‌های مجازی و کانتینرها، و بررسی لاگ‌ها و هشدارها، می‌توانید به طور دقیق‌تر سیستم خود را مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نمایش اطلاعات سیستم و منابع (CPU, RAM, Storage)” subtitle=”توضیحات کامل”]در Proxmox VE، یکی از مهمترین و پرکاربردترین قابلیت‌ها، نمایش و نظارت بر منابع سیستم مانند پردازنده (CPU)، حافظه (RAM) و فضای ذخیره‌سازی (Storage) است. این اطلاعات برای مدیران سیستم بسیار مفید است تا وضعیت عملکرد سیستم را بررسی کرده و مشکلات احتمالی را شناسایی کنند. در این بخش، به نحوه نمایش این اطلاعات در رابط کاربری وب Proxmox VE و همچنین استفاده از دستوراتی برای مشاهده اطلاعات در خط فرمان پرداخته خواهد شد.


1. نمایش اطلاعات CPU

اطلاعات مربوط به پردازنده (CPU) شامل تعداد هسته‌ها، بار پردازنده، و میزان استفاده از منابع پردازشی سیستم است. در Proxmox VE، این اطلاعات به صورت گرافیکی در داشبورد و همچنین به‌صورت دقیق‌تر از طریق دستورات CLI قابل مشاهده هستند.

مشاهده وضعیت CPU از طریق رابط وب:

در صفحه اصلی رابط کاربری وب Proxmox VE، اطلاعات مربوط به پردازنده در بالای صفحه در بخش Node Status نمایش داده می‌شود. این بخش به شما کمک می‌کند تا بار پردازنده (CPU load) را مشاهده کنید. شما می‌توانید اطلاعات زیر را مشاهده کنید:

  • بار پردازنده برای هسته‌های مختلف.
  • میزان استفاده از CPU به صورت درصد.
  • میانگین بار سیستم (Load average).
مشاهده وضعیت CPU از طریق خط فرمان:

برای مشاهده وضعیت CPU از طریق خط فرمان، از دستورات زیر می‌توانید استفاده کنید:

  • برای مشاهده استفاده از CPU در زمان واقعی:
    top
    
  • برای مشاهده جزئیات دقیق‌تر از استفاده CPU به همراه اطلاعات دمای پردازنده:
    mpstat -P ALL
    
  • برای مشاهده وضعیت میانگین بار سیستم:
    uptime
    

این دستورات به شما کمک می‌کنند تا اطلاعات دقیق‌تری درباره مصرف CPU و بار پردازنده در زمان واقعی مشاهده کنید.


2. نمایش اطلاعات RAM

حافظه (RAM) یکی از منابع حیاتی برای عملکرد سیستم و ماشین‌های مجازی است. Proxmox VE به شما این امکان را می‌دهد که میزان مصرف RAM سیستم و هر ماشین مجازی یا کانتینر را مشاهده کنید.

مشاهده وضعیت RAM از طریق رابط وب:

در داشبورد Proxmox VE، در قسمت Node Status، میزان استفاده از حافظه (RAM) در بالای صفحه به صورت گرافیکی نمایش داده می‌شود. این بخش شامل اطلاعات زیر است:

  • میزان کل حافظه سیستم.
  • میزان استفاده از حافظه.
  • میزان حافظه آزاد باقی‌مانده.

برای مشاهده جزئیات بیشتر، می‌توانید وارد بخش Memory شوید و از آنجا اطلاعات دقیق‌تری دریافت کنید.

مشاهده وضعیت RAM از طریق خط فرمان:

برای مشاهده وضعیت حافظه سیستم از طریق خط فرمان، می‌توانید از دستورات زیر استفاده کنید:

  • برای مشاهده میزان استفاده از حافظه:
    free -h
    
  • برای مشاهده جزئیات حافظه و استفاده از آن:
    vmstat -s
    
  • برای مشاهده استفاده از حافظه در زمان واقعی:
    top
    

این دستورات به شما کمک می‌کنند تا میزان حافظه مصرف‌شده، آزاد و استفاده‌شده را مشاهده کنید.


3. نمایش اطلاعات Storage

فضای ذخیره‌سازی (Storage) در Proxmox VE از اهمیت بالایی برخوردار است و شامل دیسک‌های محلی، دیسک‌های شبکه‌ای، و سیستم‌های ذخیره‌سازی مقیاس‌پذیر مانند Ceph یا ZFS است. این بخش برای نظارت بر میزان فضای استفاده شده و فضای آزاد ضروری است.

مشاهده وضعیت Storage از طریق رابط وب:

در داشبورد Proxmox VE، در قسمت Node Status، وضعیت فضای دیسک نمایش داده می‌شود. این بخش نشان‌دهنده میزان استفاده از دیسک‌های سیستم و ذخیره‌سازی‌های متصل است. همچنین، شما می‌توانید با کلیک بر روی Disks و مشاهده جزئیات بیشتر، اطلاعات دقیق‌تری از وضعیت ذخیره‌سازی سیستم دریافت کنید.

مشاهده وضعیت Storage از طریق خط فرمان:

برای مشاهده وضعیت فضای ذخیره‌سازی از طریق خط فرمان، دستورات زیر مفید هستند:

  • برای مشاهده وضعیت فضای دیسک:
    df -h
    
  • برای مشاهده استفاده از دیسک‌های خاص و اطلاعات بیشتر:
    lsblk
    
  • برای مشاهده وضعیت سیستم فایل:
    df -i
    
  • برای مشاهده میزان فضای استفاده‌شده و آزاد در دیسک‌های سیستم:
    du -sh /var/lib/vz
    

این دستورات به شما کمک می‌کنند تا فضای دیسک مصرف‌شده و آزاد را در سطح سیستم و حتی ماشین‌های مجازی مشاهده کنید.


جمع‌بندی

در این بخش، نحوه نمایش اطلاعات سیستم و منابع مختلف مانند CPU، RAM و Storage در Proxmox VE بررسی شد. اطلاعات پردازنده (CPU)، حافظه (RAM) و ذخیره‌سازی (Storage) از طریق رابط کاربری وب به صورت گرافیکی و در خط فرمان از طریق دستورات مختلف قابل مشاهده هستند. این ابزارها برای مدیران سیستم بسیار مفید هستند تا بتوانند وضعیت منابع سیستم را به دقت نظارت کرده و از مشکلات احتمالی جلوگیری کنند. با استفاده از دستورات خط فرمان و رابط گرافیکی، می‌توانید وضعیت منابع سرور را به‌طور مؤثری کنترل کرده و تصمیمات مدیریتی مناسب را اتخاذ کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 2. آشنایی با پنل مدیریتی Proxmox”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نمای کلی از نوار کناری و منوهای اصلی” subtitle=”توضیحات کامل”]Proxmox VE از یک رابط کاربری وب بسیار کاربرپسند برای مدیریت ماشین‌های مجازی، کانتینرها، و منابع مختلف سیستم استفاده می‌کند. این رابط کاربری به گونه‌ای طراحی شده است که کاربران بتوانند به راحتی سیستم را مدیریت کرده و منابع خود را نظارت کنند. در این بخش، ما به بررسی نوار کناری و منوهای اصلی Proxmox VE خواهیم پرداخت تا شما بتوانید به راحتی از امکانات مختلف این پلتفرم بهره‌برداری کنید.


1. نوار کناری (Sidebar)

نوار کناری در سمت چپ صفحه وب Proxmox VE قرار دارد و به شما امکان دسترسی سریع به بخش‌های مختلف پلتفرم را می‌دهد. این نوار شامل موارد زیر است:

Node:

در این قسمت، سرور فیزیکی یا Node که در حال مدیریت آن هستید، نمایش داده می‌شود. Proxmox VE از قابلیت مدیریت چندین سرور پشتیبانی می‌کند و می‌توانید به راحتی از این منو بین نودها جابجا شوید.

Datacenter:

این بخش، نمای کلی از تمام منابع زیرساختی دیتاسنتر شما را نشان می‌دهد. از اینجا می‌توانید به ماشین‌های مجازی، کانتینرها، ذخیره‌سازی‌ها، و شبکه‌های مختلف در دیتاسنتر دسترسی پیدا کنید.

Storage:

این بخش نمایی از تمام منابع ذخیره‌سازی مانند دیسک‌های فیزیکی، ذخیره‌سازی‌های شبکه‌ای، Ceph و ZFS را نمایش می‌دهد. از اینجا می‌توانید دسترسی به تنظیمات ذخیره‌سازی، فضای آزاد و مورد استفاده را مشاهده و مدیریت کنید.

Virtual Machines (VMs):

این منو لیستی از تمام ماشین‌های مجازی شما را در بر دارد. شما می‌توانید ماشین‌های مجازی جدید ایجاد کنید، ماشین‌های موجود را مدیریت کنید، یا آن‌ها را به‌روزرسانی و خاموش/روشن کنید.

Containers (LXC):

در این بخش، کانتینرهای LXC شما نمایش داده می‌شوند. مانند ماشین‌های مجازی، از اینجا می‌توانید کانتینرها را مدیریت کنید.

Network:

این منو مربوط به تنظیمات و نظارت بر شبکه‌های مختلف Proxmox VE است. از این قسمت می‌توانید به تنظیمات شبکه مانند VLAN‌ها، Bridges و Bonding دسترسی پیدا کنید.

Backup:

در این بخش، تنظیمات و اطلاعات مربوط به پشتیبان‌گیری از ماشین‌های مجازی و کانتینرها وجود دارد. شما می‌توانید پشتیبان‌گیری جدید ایجاد کرده، زمان‌بندی پشتیبان‌ها را تنظیم کنید یا پشتیبان‌ها را بازیابی کنید.

Logs:

این بخش شامل لاگ‌های مربوط به فعالیت‌های مختلف در سیستم مانند رویدادهای دسترسی، مشکلات سیستم، و فعالیت‌های ماشین‌های مجازی است.

User:

در این بخش، کاربران و نقش‌های مختلف دسترسی به سیستم نمایش داده می‌شود. از اینجا می‌توانید نقش‌ها را ایجاد کرده و به کاربران دسترسی‌های مختلف اعطا کنید.


2. منوهای اصلی (Main Menu)

در بالای صفحه وب Proxmox VE، یک منوی اصلی وجود دارد که امکان دسترسی سریع به بخش‌های مهم و تنظیمات پلتفرم را فراهم می‌آورد. این منو شامل بخش‌های زیر است:

Dashboard:

در این بخش، نمای کلی از وضعیت سیستم، ماشین‌های مجازی و کانتینرها، منابع استفاده شده (مانند CPU و RAM) و هشدارهای سیستم به نمایش درمی‌آید. این صفحه به شما کمک می‌کند که وضعیت کلی سیستم خود را در یک نگاه مشاهده کنید.

Create VM/Container:

از اینجا می‌توانید ماشین‌های مجازی جدید یا کانتینرهای LXC جدید ایجاد کنید. فرآیند ایجاد از طریق ویزاردی ساده صورت می‌گیرد که مراحل مختلف تنظیمات مانند انتخاب سیستم‌عامل، تخصیص منابع و تنظیمات ذخیره‌سازی را پوشش می‌دهد.

View:

این بخش به شما امکان می‌دهد تا به سرعت نمای دستگاه‌ها یا ماشین‌های مجازی خود را به‌طور کامل مشاهده کنید. از این قسمت می‌توانید تمام منابع پروکسموکس مانند ماشین‌های مجازی، کانتینرها، منابع شبکه‌ای و ذخیره‌سازی را مشاهده کنید.

Task:

در این منو، شما می‌توانید تمام فعالیت‌ها و وظایف در حال انجام یا قبلی سیستم را بررسی کنید. این قسمت به شما کمک می‌کند تا ببینید که چه عملیات‌هایی در حال اجرا هستند، از جمله خاموش یا راه‌اندازی ماشین‌های مجازی یا کانتینرها، و وضعیت پشتیبان‌گیری‌ها.

Support:

در صورت نیاز به کمک یا پشتیبانی، این بخش راه‌های ارتباطی با تیم پشتیبانی Proxmox VE را فراهم می‌کند و همچنین مستندات و منابع آموزشی در دسترس است.

Updates:

این منو به شما اجازه می‌دهد تا به‌روزرسانی‌های سیستم و پلتفرم Proxmox VE را بررسی کرده و نصب کنید. به‌روزرسانی‌ها می‌توانند شامل به‌روزرسانی‌های امنیتی، ویژگی‌های جدید یا رفع مشکلات باشند.

System:

در این بخش، شما می‌توانید تنظیمات سیستم Proxmox VE را پیکربندی کنید، از جمله تنظیمات شبکه، تنظیمات ذخیره‌سازی، پیکربندی ماشین‌های مجازی و کانتینرها و غیره.


3. نوار بالای صفحه (Top Bar)

در نوار بالای صفحه، علاوه بر دسترسی به منوهای مختلف، اطلاعات کلی سیستم مانند وضعیت اتصال به اینترنت، زمان سیستم، وضعیت پروکسموکس VE و همچنین دسترسی به پروفایل کاربری خود را مشاهده خواهید کرد.

  • Account/Profile: اطلاعات حساب کاربری شما در پروکسموکس.
  • Notifications: هشدارها و رویدادهای مهم سیستم.
  • Time/Date: زمان و تاریخ سیستم.

جمع‌بندی

در این بخش، به بررسی نوار کناری و منوهای اصلی در رابط کاربری وب Proxmox VE پرداختیم. نوار کناری شامل دسترسی سریع به بخش‌های مختلف سیستم مانند ماشین‌های مجازی، کانتینرها، شبکه و ذخیره‌سازی است. منوهای اصلی در بالای صفحه دسترسی به قابلیت‌های اصلی مانند ایجاد ماشین‌های مجازی، مدیریت پشتیبان‌گیری‌ها، نظارت بر وضعیت سیستم و انجام به‌روزرسانی‌ها را فراهم می‌آورد. این ساختار ساده و سازمان‌دهی‌شده به مدیران سیستم کمک می‌کند تا به راحتی Proxmox VE را مدیریت کرده و منابع مختلف را نظارت کنند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”بخش‌های مختلف پنل مدیریتی در Proxmox VE” subtitle=”توضیحات کامل”]پنل مدیریتی در Proxmox VE به گونه‌ای طراحی شده است که امکان مدیریت و نظارت بر تمامی منابع و تنظیمات سیستم از طریق یک رابط وب ساده و قابل دسترس را فراهم می‌آورد. این پنل به سه بخش اصلی تقسیم می‌شود که هر کدام وظایف خاص خود را دارند: Datacenter (دیتاسنتر)، Node (نود)، و VM/CT (ماشین‌های مجازی و کانتینرها). در این بخش، به توضیح و معرفی این سه بخش خواهیم پرداخت و نحوه پیکربندی و مدیریت آن‌ها را به طور کامل بررسی خواهیم کرد.

An interface of Proxmox VE's management panel showing different sections such as Datacenter, Node, VM/CT with clear visual separation of these sections. Display system resources like CPU, RAM, and Storage in a user-friendly layout. Show virtual machine and container management options with a clear sidebar and intuitive navigation. Illustrate the UI with a clean, modern design, highlighting its interactive nature and ease of use.


1. Datacenter: مدیریت محیط کلی و تنظیمات سطح Datacenter

بخش Datacenter در Proxmox VE نمای کلی از کل محیط مدیریت شما را فراهم می‌آورد. این قسمت برای مدیریت تنظیمات سطح بالا، مانند تنظیمات شبکه و ذخیره‌سازی که در سطح کل دیتاسنتر اعمال می‌شود، طراحی شده است.

ویژگی‌ها و تنظیمات اصلی Datacenter:

  • شبکه: شما می‌توانید تنظیمات شبکه برای تمام نودها را از طریق این بخش مدیریت کنید، مانند ایجاد و پیکربندی شبکه‌های مجازی، VLAN‌ها و Bridges.
  • ذخیره‌سازی: تنظیمات ذخیره‌سازی کل دیتاسنتر، شامل تعریف منابع ذخیره‌سازی (مثلاً NFS، iSCSI، Ceph و ZFS) برای ماشین‌های مجازی و کانتینرها.
  • کاربران و دسترسی‌ها: در این بخش می‌توانید دسترسی‌های کاربران مختلف به سیستم را مدیریت کنید. این کار به شما امکان می‌دهد که به هر کاربر یک نقش خاص اختصاص داده و مجوزهای مختلفی به آن‌ها بدهید.

مثال: پیکربندی یک ذخیره‌سازی NFS در Datacenter

برای پیکربندی یک ذخیره‌سازی NFS در سطح دیتاسنتر، مراحل زیر را طی کنید:

  1. از پنل سمت چپ به Datacenter بروید.
  2. گزینه Storage را انتخاب کرده و سپس Add را بزنید.
  3. از منوی کشویی، گزینه NFS را انتخاب کنید.
  4. در فرم بازشده، اطلاعات مربوط به آدرس IP سرور NFS، مسیر دایرکتوری و سایر تنظیمات را وارد کنید.
  5. بر روی Add کلیک کنید تا ذخیره‌سازی جدید به سیستم اضافه شود.

2. Node: مدیریت تنظیمات و منابع هر نود (سرور)

بخش Node در Proxmox VE برای مدیریت تنظیمات و منابع سرورهای فیزیکی (نودها) طراحی شده است. هر نود در Proxmox یک سرور فیزیکی است که منابع سخت‌افزاری مانند CPU، RAM و دیسک را برای ماشین‌های مجازی و کانتینرها فراهم می‌کند. این بخش به شما امکان می‌دهد که منابع نود را نظارت و تنظیم کنید.

ویژگی‌ها و تنظیمات اصلی Node:

  • تنظیمات سیستم: شما می‌توانید تنظیمات مربوط به نود را مانند زمان‌بندی، تنظیمات نواحی زمانی و تنظیمات سخت‌افزار مشاهده و پیکربندی کنید.
  • نظارت بر منابع: در این بخش، شما می‌توانید منابع سخت‌افزاری نود مانند استفاده از CPU، RAM، دیسک و شبکه را مشاهده کنید.
  • نصب و پیکربندی: تنظیمات و نصب نرم‌افزارهای اضافی بر روی نودها می‌تواند از طریق این بخش انجام شود.

مثال: پیکربندی یک شبکه در نود

برای پیکربندی یک شبکه جدید بر روی نود، مراحل زیر را انجام دهید:

  1. از پنل سمت چپ به Datacenter بروید و سپس نود خود را انتخاب کنید.
  2. وارد بخش Network شوید.
  3. گزینه Add را انتخاب کرده و نوع شبکه (مانند Bridge یا Bonding) را انتخاب کنید.
  4. تنظیمات مورد نظر را وارد کرده و بر روی Apply کلیک کنید.

برای پیکربندی شبکه از طریق خط فرمان نیز می‌توانید از دستورات زیر استفاده کنید:

nano /etc/network/interfaces

در این فایل، می‌توانید تنظیمات شبکه جدید خود را وارد کنید. برای مثال، پیکربندی یک bridge:

auto vmbr0
iface vmbr0 inet static
    address 192.168.100.10
    netmask 255.255.255.0
    gateway 192.168.100.1
    bridge_ports eth0

بعد از اعمال تغییرات، شبکه را با دستور زیر راه‌اندازی مجدد کنید:

systemctl restart networking

3. VM/CT: مدیریت ماشین‌های مجازی و کانتینرها

بخش VM/CT به شما این امکان را می‌دهد که ماشین‌های مجازی (VM) و کانتینرها (CT) را ایجاد، پیکربندی، مدیریت و نظارت کنید. در Proxmox VE، شما می‌توانید از KVM برای ماشین‌های مجازی و از LXC برای کانتینرها استفاده کنید.

ویژگی‌ها و تنظیمات اصلی VM/CT:

  • ایجاد ماشین‌های مجازی و کانتینرها: از این بخش می‌توانید ماشین‌های مجازی جدید یا کانتینرهای LXC جدید ایجاد کنید.
  • مدیریت منابع: تخصیص منابع مانند CPU، RAM و فضای ذخیره‌سازی به ماشین‌های مجازی و کانتینرها.
  • نظارت و مدیریت وضعیت: نظارت بر وضعیت ماشین‌های مجازی و کانتینرها، از جمله راه‌اندازی، توقف، و مشاهده لاگ‌ها و هشدارها.

مثال: ایجاد یک ماشین مجازی جدید

برای ایجاد یک ماشین مجازی جدید در Proxmox VE، مراحل زیر را انجام دهید:

  1. به بخش Datacenter بروید و سپس نود مورد نظر خود را انتخاب کنید.
  2. بر روی Create VM کلیک کنید.
  3. در مرحله اول، نام ماشین مجازی و نوع سیستم‌عامل را انتخاب کنید.
  4. در مرحله بعد، تخصیص منابع مانند تعداد هسته‌های CPU، حجم RAM و فضای دیسک را تنظیم کنید.
  5. پس از انجام تنظیمات، ماشین مجازی را ایجاد کرده و آن را روشن کنید.

مثال: ایجاد یک کانتینر LXC جدید

برای ایجاد یک کانتینر LXC جدید، مراحل زیر را انجام دهید:

  1. به بخش Datacenter بروید و نود مورد نظر را انتخاب کنید.
  2. بر روی Create CT کلیک کنید.
  3. در مرحله اول، نام کانتینر و الگوهای سیستم‌عامل را انتخاب کنید.
  4. منابع کانتینر (CPU، RAM و فضای دیسک) را تخصیص دهید.
  5. تنظیمات شبکه، مانند IP استاتیک یا DHCP را وارد کنید.
  6. کانتینر را ایجاد کرده و آن را راه‌اندازی کنید.

برای ایجاد یک کانتینر از طریق خط فرمان، می‌توانید از دستور زیر استفاده کنید:

pct create 100 /var/lib/vz/template/cache/ubuntu-20.04-standard_20.04-1_amd64.tar.gz

در این دستور، 100 شناسه کانتینر، و /var/lib/vz/template/cache/ubuntu-20.04-standard_20.04-1_amd64.tar.gz مسیر الگوی کانتینر است.


جمع‌بندی

در این بخش، به بررسی سه بخش اصلی پنل مدیریتی Proxmox VE پرداختیم: Datacenter، Node و VM/CT. بخش Datacenter مدیریت کلی سیستم و منابع سطح دیتاسنتر را فراهم می‌کند، Node برای مدیریت منابع و تنظیمات هر نود (سرور) استفاده می‌شود، و VM/CT به شما اجازه می‌دهد که ماشین‌های مجازی و کانتینرها را ایجاد، مدیریت و نظارت کنید. این سه بخش به‌صورت یکپارچه کار می‌کنند تا شما بتوانید تمامی منابع و تنظیمات سیستم را به راحتی مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تنظیمات نمایشی (Themes, Languages, User Preferences)” subtitle=”توضیحات کامل”]در این بخش، به بررسی نحوه تنظیمات نمایشی در Proxmox VE خواهیم پرداخت. این تنظیمات شامل تغییر تم‌ها (Themes)، زبان رابط کاربری (Languages) و تنظیمات پیشرفته‌تر مربوط به کاربران (User Preferences) است. هر یک از این تنظیمات، تجربه کاربری را بهبود می‌بخشد و به مدیر سیستم این امکان را می‌دهد که محیط را متناسب با نیاز خود شخصی‌سازی کند.


تغییر تم‌های گرافیکی (Themes) در Proxmox VE

Proxmox VE به شما این امکان را می‌دهد که تم گرافیکی رابط کاربری را تغییر دهید. این کار می‌تواند به ظاهر بهتر یا متناسب‌تر با نیاز شما کمک کند. در این بخش، نحوه تغییر تم گرافیکی به‌صورت گرافیکی و کامندی بررسی می‌شود.

روش گرافیکی:

  1. وارد رابط کاربری وب Proxmox VE شوید.
  2. در گوشه بالای صفحه، روی نام کاربری خود کلیک کنید.
  3. گزینه “User Preferences” را انتخاب کنید.
  4. در قسمت “Appearance”، گزینه “Theme” را مشاهده خواهید کرد. از منوی کشویی موجود، تم دلخواه خود را انتخاب کنید.
  5. تغییرات به‌صورت آنی اعمال خواهند شد.

روش کامندی:

برای تغییر تم‌ها از طریق خط فرمان، باید فایل پیکربندی مربوط به رابط کاربری Proxmox VE را ویرایش کنید. مسیر فایل تنظیمات تم در سیستم به‌صورت زیر است:

/etc/pve/user.cfg

برای تغییر تم، از دستور nano یا هر ویرایشگر متنی دیگری برای باز کردن فایل پیکربندی استفاده کنید:

nano /etc/pve/user.cfg

در داخل فایل، به دنبال خط مربوط به تم بگردید که ممکن است به‌صورت زیر باشد:

theme: pve

تم مورد نظر خود را به یکی از تم‌های موجود مانند pve (پیش‌فرض) یا dark تغییر دهید. پس از انجام تغییرات، فایل را ذخیره کرده و از آن خارج شوید.

theme: dark

تغییر زبان رابط کاربری (Languages)

برای افرادی که به زبان‌های مختلف نیاز دارند، Proxmox VE امکان تغییر زبان رابط کاربری را فراهم کرده است. این تنظیمات نیز به‌صورت گرافیکی و کامندی قابل انجام است.

روش گرافیکی:

  1. وارد رابط کاربری وب Proxmox VE شوید.
  2. در بالای صفحه، روی نام کاربری خود کلیک کنید.
  3. گزینه “User Preferences” را انتخاب کنید.
  4. در بخش “Language”، از منوی کشویی زبان مورد نظر خود را انتخاب کنید.
  5. تغییرات به‌صورت آنی اعمال خواهند شد.

روش کامندی:

برای تغییر زبان به‌صورت کامندی، باید از دستور pve-manager برای تنظیمات زبان استفاده کنید. ابتدا با استفاده از دستور dpkg-reconfigure locales زبان‌های مورد نظر را نصب کنید.

  1. زبان‌های موجود را مشاهده کنید:
dpkg-reconfigure locales
  1. زبان مورد نظر را انتخاب کنید و پس از آن تنظیمات زبان پیش‌فرض را با دستور زیر اعمال کنید:
update-locale LANG=fa_IR.UTF-8

در این مثال، زبان فارسی (fa_IR.UTF-8) به‌عنوان زبان پیش‌فرض برای رابط کاربری Proxmox VE تنظیم می‌شود.


تنظیمات پیشرفته کاربران (User Preferences)

در این قسمت، می‌توان تنظیمات خاصی برای کاربران ایجاد کرد که شامل مواردی نظیر تنظیمات پیش‌فرض هر کاربر، فیلترهای جستجو، و همچنین اولویت‌های نمایش است. تنظیمات این بخش به مدیر سیستم کمک می‌کند تا به‌طور مؤثرتر از امکانات Proxmox VE استفاده کند.

روش گرافیکی:

  1. وارد رابط کاربری وب Proxmox VE شوید.
  2. در قسمت بالای صفحه، روی نام کاربری خود کلیک کرده و گزینه “User Preferences” را انتخاب کنید.
  3. در این قسمت می‌توانید تنظیمات مختلفی مانند زبان، تم و تنظیمات صفحه‌بندی (pagination) را تنظیم کنید.

روش کامندی:

برای تنظیمات پیشرفته کاربر، فایل‌های پیکربندی مخصوص به هر کاربر در مسیر /etc/pve/user.cfg قرار دارند. به‌طور مثال، برای تغییر تنظیمات پیش‌فرض کاربر خاص، باید فایل پیکربندی آن کاربر را ویرایش کنید:

nano /etc/pve/user.cfg

در این فایل، می‌توانید پارامترهایی مانند language, theme و timezone را برای هر کاربر تنظیم کنید. به‌طور مثال، برای تنظیم زبان و تم خاص برای یک کاربر به‌شکل زیر عمل کنید:

user: user1
theme: dark
language: en_US.UTF-8
timezone: Asia/Tehran

پس از انجام تغییرات، فایل را ذخیره کرده و از آن خارج شوید.


جمع بندی

در این بخش، تنظیمات نمایشی، زبان و اولویت‌های کاربران در Proxmox VE را بررسی کردیم. تغییر تم‌ها، زبان‌ها و تنظیمات پیش‌فرض کاربران می‌تواند باعث بهبود تجربه کاربری و تطبیق بهتر رابط کاربری با نیازهای مختلف گردد. هر دو روش گرافیکی و کامندی برای انجام این تنظیمات ارائه شد تا هم کاربران مبتدی و هم کاربران حرفه‌ای بتوانند از این قابلیت‌ها استفاده کنند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مدیریت کاربر و دسترسی‌ها از طریق Web UI” subtitle=”توضیحات کامل”]در این قسمت، قصد داریم نحوه مدیریت کاربران و تنظیم دسترسی‌های مختلف در پلتفرم Proxmox VE را از طریق رابط کاربری وب (Web UI) آموزش دهیم. این فرآیند شامل افزودن کاربران جدید، تخصیص دسترسی‌ها، و مدیریت سطوح مختلف دسترسی به منابع مختلف در Proxmox VE است. همچنین، روش‌هایی برای اعمال محدودیت‌ها و تنظیمات امنیتی مربوط به کاربران توضیح داده می‌شود.


1. افزودن کاربران جدید در Proxmox VE

برای مدیریت کاربران در Proxmox VE از Web UI، ابتدا باید به رابط کاربری وب وارد شوید. بعد از ورود، از منوی “Datacenter” می‌توانید تنظیمات کاربران را انجام دهید.

مراحل افزودن کاربر جدید:

  1. وارد Web UI Proxmox VE شوید.
  2. از نوار کناری، بر روی Datacenter کلیک کنید.
  3. در تب Permissions، گزینه Users را انتخاب کنید.
  4. در صفحه‌ی باز شده، بر روی Add کلیک کنید.
  5. در پنجره باز شده، اطلاعات زیر را وارد کنید:
    • User name: نام کاربری جدید
    • Password: رمز عبور کاربر
    • Realm: نوع سیستم احراز هویت (که به طور معمول “PVE” است)
    • Email: ایمیل کاربر (اختیاری)
  6. پس از وارد کردن اطلاعات، بر روی Add کلیک کنید تا کاربر جدید ایجاد شود.

مثال:

برای اضافه کردن یک کاربر جدید به نام “user1” در سیستم، می‌توانید از دستور زیر در Web UI استفاده کنید.


2. تنظیم دسترسی‌ها برای کاربران در Proxmox VE

پس از ایجاد کاربر جدید، باید دسترسی‌های مناسب را به او تخصیص دهید. این تنظیمات را می‌توانید در همان بخش Permissions انجام دهید.

مراحل تخصیص دسترسی به کاربر:

  1. در همان صفحه Permissions و در تب Users، کاربری که ایجاد کرده‌اید را پیدا کنید.
  2. بر روی کاربر مورد نظر کلیک کرده و سپس گزینه Add در قسمت Roles را انتخاب کنید.
  3. از لیست کشویی، نقش یا Role مورد نظر را انتخاب کنید. برخی از نقش‌ها شامل:
    • PVEAdmin: دسترسی کامل به تمامی منابع.
    • PVEUser: دسترسی فقط برای مشاهده اطلاعات و منابع.
    • PVEAuditor: فقط دسترسی به مشاهده گزارش‌ها و لاگ‌ها.
  4. پس از انتخاب نقش، مقصد یا Path که می‌خواهید دسترسی به آن داده شود را تعیین کنید. این مسیر می‌تواند مربوط به کل سیستم یا بخشی خاص باشد (مثل یک ماشین مجازی خاص).
  5. بر روی Add کلیک کنید تا تغییرات اعمال شود.

دستور کامندی برای تخصیص دسترسی:

برای تخصیص دسترسی‌ها به یک کاربر از طریق کامندلاین، می‌توانید از دستور pveum استفاده کنید.

pveum acl add /vms/100 user1@pve PVEAdmin

این دستور به کاربر “user1” دسترسی PVEAdmin به ماشین مجازی با ID 100 را می‌دهد. شما می‌توانید مسیر و نقش را بسته به نیاز خود تغییر دهید.


3. مدیریت گروه‌ها و تخصیص دسترسی به گروه‌ها

یکی از ویژگی‌های مهم Proxmox VE، قابلیت ایجاد گروه‌های کاربری است که می‌توانید دسترسی‌ها را به گروه‌ها اختصاص دهید تا مدیریت آسان‌تری بر روی دسترسی‌ها داشته باشید. این کار می‌تواند به‌ویژه در محیط‌های بزرگ که تعداد کاربران زیادی دارند مفید باشد.

مراحل ایجاد گروه کاربری:

  1. به تب Groups در صفحه Permissions بروید.
  2. بر روی Add کلیک کنید و نام گروه را وارد کنید.
  3. گروه را اضافه کنید و سپس دسترسی‌های آن را مطابق با نیاز خود تنظیم کنید.

افزودن دسترسی به گروه:

برای دادن دسترسی به گروه‌ها، مراحل مشابه با تخصیص دسترسی به کاربران است. شما باید به جای انتخاب یک کاربر، گروه مورد نظر را انتخاب کنید.

دستور کامندی برای ایجاد گروه و تخصیص دسترسی:

  1. برای ایجاد یک گروه کاربری جدید به نام “admins”، دستور زیر را وارد کنید:
pveum group add admins
  1. حالا برای تخصیص دسترسی به این گروه، از دستور زیر استفاده کنید:
pveum acl add /vms/100 admins@pve PVEAdmin

این دستور به گروه “admins” دسترسی PVEAdmin به ماشین مجازی با ID 100 را می‌دهد.


4. مدیریت سطح دسترسی به منابع مختلف

در Proxmox VE، شما می‌توانید سطوح دسترسی مختلفی را برای کاربران و گروه‌ها تنظیم کنید. این سطوح به شما اجازه می‌دهند تا دقیقاً مشخص کنید که یک کاربر یا گروه چه عملیاتی می‌تواند بر روی منابع مختلف انجام دهد.

منابع قابل تخصیص دسترسی:

  • VMs: ماشین‌های مجازی
  • Storage: منابع ذخیره‌سازی
  • Datacenter: تنظیمات عمومی دیتاسنتر
  • Node: دسترسی به نودها

تنظیم دسترسی برای ماشین‌های مجازی:

فرض کنید می‌خواهید به کاربری فقط دسترسی به مشاهده ماشین‌های مجازی بدهید. شما می‌توانید دسترسی “PVEUser” را به مسیر /vms تخصیص دهید. به‌این‌ترتیب، کاربر می‌تواند ماشین‌های مجازی را مشاهده کند اما نمی‌تواند تغییرات اعمال کند.

دستور کامندی:

pveum acl add /vms user1@pve PVEUser

این دستور به کاربر “user1” دسترسی مشاهده‌ای به تمام ماشین‌های مجازی می‌دهد.


5. **مدیریت دسترسی‌های پیشرفته با استفاده از **API

Proxmox VE API به شما این امکان را می‌دهد که به‌طور برنامه‌نویسی کاربران و دسترسی‌ها را مدیریت کنید. این ویژگی به‌ویژه در محیط‌های بزرگ و پیچیده مفید است که نیاز به اتوماسیون و ایجاد اسکریپت‌های خودکار وجود دارد.

مثال استفاده از API برای مدیریت دسترسی:

برای اضافه کردن یک کاربر جدید از طریق API، می‌توانید از دستور زیر استفاده کنید (با استفاده از curl):

curl -k -X POST "https://your-proxmox-server:8006/api2/json/access/users" -d "userid=user2@pve&password=secretpassword&email=user2@example.com"

این دستور یک کاربر جدید به نام “user2” را با رمز عبور “secretpassword” از طریق API ایجاد می‌کند.


جمع بندی

در این بخش، به صورت جامع نحوه مدیریت کاربران و دسترسی‌ها در Proxmox VE از طریق رابط کاربری وب و همچنین دستورهای کامندی مربوطه را بررسی کردیم. تنظیم دسترسی‌ها به کاربران و گروه‌ها، تخصیص نقش‌های مختلف به منابع، و استفاده از API برای مدیریت خودکار دسترسی‌ها از مهم‌ترین قابلیت‌های این پلتفرم هستند. با استفاده از این روش‌ها، می‌توانید دسترسی‌های دقیق و متناسب با نیازهای سازمانی خود را برای کاربران تنظیم کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 3. مدیریت ماشین‌های مجازی و کانتینرها”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نحوه ایجاد، راه‌اندازی و خاموش کردن ماشین‌های مجازی از طریق Web UI” subtitle=”توضیحات کامل”]در این بخش، به نحوه ایجاد، راه‌اندازی و خاموش کردن ماشین‌های مجازی (VMs) در پلتفرم Proxmox VE از طریق رابط کاربری وب (Web UI) و همچنین از طریق دستورات کامندی پرداخته می‌شود. این کار به شما کمک می‌کند تا بتوانید ماشین‌های مجازی خود را به‌راحتی مدیریت کنید و از قابلیت‌های مختلف پلتفرم Proxmox VE بهره‌برداری کنید.


1. ایجاد ماشین مجازی جدید از طریق Web UI

ایجاد یک ماشین مجازی در Proxmox VE از طریق Web UI فرآیندی ساده است. در این بخش، نحوه ایجاد یک ماشین مجازی جدید با استفاده از رابط کاربری وب توضیح داده می‌شود.

مراحل ایجاد ماشین مجازی:

  1. وارد Web UI Proxmox VE شوید.
  2. در نوار کناری، بر روی Datacenter کلیک کنید.
  3. سپس، بر روی Node (نودی که می‌خواهید ماشین مجازی در آن ایجاد شود) کلیک کنید.
  4. در بالای صفحه، بر روی Create VM کلیک کنید.
  5. در پنجره‌ای که باز می‌شود، اطلاعات زیر را وارد کنید:
    • Node: انتخاب نود (اگر چندین نود دارید).
    • VM ID: شناسه ماشین مجازی (که به طور خودکار تولید می‌شود، اما می‌توانید آن را تغییر دهید).
    • Name: نام ماشین مجازی.
    • OS: انتخاب سیستم عامل (اگر قصد دارید از یک فایل ISO برای نصب استفاده کنید، آن را در این بخش انتخاب کنید).
    • Disk: نوع دیسک و ظرفیت آن را مشخص کنید.
    • CPU: تعداد هسته‌های پردازنده.
    • Memory: میزان حافظه (RAM) ماشین مجازی.
    • Network: تنظیمات شبکه، مانند نوع کارت شبکه (Bridged یا NAT).
  6. پس از وارد کردن اطلاعات، بر روی Finish کلیک کنید تا ماشین مجازی ایجاد شود.

دستور کامندی برای ایجاد ماشین مجازی:

برای ایجاد ماشین مجازی جدید از طریق دستور کامندی، می‌توانید از دستور qm استفاده کنید. در مثال زیر، یک ماشین مجازی با شناسه 101 ایجاد می‌شود:

qm create 101 --name vm1 --memory 2048 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu.iso --cores 2 --disk 10

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • --name vm1 نام ماشین مجازی است.
  • --memory 2048 میزان حافظه (RAM) ماشین مجازی را تعیین می‌کند.
  • --net0 virtio,bridge=vmbr0 شبکه را به صورت “Virtio” روی “Bridge” تنظیم می‌کند.
  • --cdrom مسیر فایل ISO که برای نصب سیستم عامل استفاده می‌شود.
  • --cores 2 تعداد هسته‌های CPU را مشخص می‌کند.
  • --disk 10 ظرفیت دیسک ماشین مجازی را به 10 گیگابایت تنظیم می‌کند.

2. راه‌اندازی ماشین مجازی از طریق Web UI

پس از ایجاد ماشین مجازی، باید آن را راه‌اندازی کنید تا سیستم عامل شروع به نصب یا اجرا کند.

مراحل راه‌اندازی ماشین مجازی:

  1. در Web UI Proxmox VE، به تب VMs رفته و ماشین مجازی که می‌خواهید راه‌اندازی کنید را انتخاب کنید.
  2. در بالای صفحه، گزینه Start را کلیک کنید.
  3. بعد از کلیک بر روی Start، ماشین مجازی راه‌اندازی می‌شود و می‌توانید از طریق کنسول Web UI، آن را مشاهده کنید.

دستور کامندی برای راه‌اندازی ماشین مجازی:

برای راه‌اندازی ماشین مجازی از طریق کامندلاین، از دستور qm start استفاده می‌شود. در مثال زیر، ماشین مجازی با شناسه 101 راه‌اندازی می‌شود:

qm start 101

این دستور ماشین مجازی با شناسه 101 را راه‌اندازی می‌کند.


3. خاموش کردن ماشین مجازی از طریق Web UI

زمانی که به هر دلیلی بخواهید ماشین مجازی خود را خاموش کنید، می‌توانید این کار را به راحتی از طریق Web UI انجام دهید.

مراحل خاموش کردن ماشین مجازی:

  1. وارد Web UI Proxmox VE شوید و به تب VMs بروید.
  2. ماشین مجازی که قصد خاموش کردن آن را دارید انتخاب کنید.
  3. در بالای صفحه، گزینه Shutdown را کلیک کنید.
  4. پروسه خاموش شدن ماشین مجازی شروع می‌شود. اگر ماشین مجازی به درستی خاموش نشد، می‌توانید از گزینه Stop برای خاموش کردن اجباری استفاده کنید.

دستور کامندی برای خاموش کردن ماشین مجازی:

برای خاموش کردن ماشین مجازی از طریق کامندلاین، از دستور qm shutdown استفاده کنید. در مثال زیر، ماشین مجازی با شناسه 101 خاموش می‌شود:

qm shutdown 101

در صورتی که ماشین مجازی نتواست به صورت نرمال خاموش شود، می‌توانید از دستور qm stop برای خاموش کردن اجباری استفاده کنید:

qm stop 101

این دستور ماشین مجازی با شناسه 101 را به طور اجباری خاموش می‌کند.


4. نظارت بر وضعیت ماشین مجازی و کنسول

یکی از ویژگی‌های مهم Proxmox VE، امکان مشاهده وضعیت و کنسول ماشین مجازی است. از این طریق می‌توانید نظارت دقیقی بر روی عملکرد ماشین مجازی خود داشته باشید.

مشاهده وضعیت ماشین مجازی:

  1. به تب VMs در Web UI بروید.
  2. ماشین مجازی مورد نظر خود را انتخاب کنید.
  3. در صفحه جزئیات، وضعیت ماشین مجازی از جمله Running (در حال اجرا) یا Stopped (خاموش) را مشاهده خواهید کرد.

دسترسی به کنسول ماشین مجازی:

برای دسترسی به کنسول ماشین مجازی، از گزینه Console در Web UI استفاده کنید. این گزینه به شما امکان می‌دهد که از طریق مرورگر وب به کنسول ماشین مجازی وصل شوید و عملیات نصب سیستم عامل یا مشاهده وضعیت سیستم را انجام دهید.


جمع بندی

در این بخش، نحوه ایجاد، راه‌اندازی و خاموش کردن ماشین‌های مجازی در Proxmox VE با استفاده از رابط کاربری وب (Web UI) و دستورات کامندی مربوطه را بررسی کردیم. این فرایندها از جمله مهم‌ترین عملیات‌هایی هستند که باید در مدیریت ماشین‌های مجازی انجام دهید. با استفاده از Web UI، می‌توانید این عملیات را به راحتی انجام دهید و با استفاده از دستورات کامندی، توانایی اتوماسیون و مدیریت از راه دور را خواهید داشت.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیکربندی منابع (CPU, RAM, Disk) برای ماشین‌های مجازی” subtitle=”توضیحات کامل”]در این بخش، به پیکربندی منابع ماشین‌های مجازی در Proxmox VE خواهیم پرداخت. منابعی که برای هر ماشین مجازی در نظر گرفته می‌شوند شامل CPU، RAM و Disk هستند که از مهم‌ترین فاکتورهای عملکرد ماشین مجازی به حساب می‌آیند. پیکربندی مناسب این منابع می‌تواند تأثیر زیادی بر کارایی سیستم و ماشین‌های مجازی شما داشته باشد. ما به صورت گرافیکی و همچنین از طریق دستورات کامندی به توضیح این پیکربندی‌ها خواهیم پرداخت.


1. پیکربندی CPU برای ماشین مجازی

تنظیمات CPU برای ماشین مجازی شامل انتخاب تعداد هسته‌های پردازنده، نوع پردازنده و نحوه تخصیص منابع پردازشی به ماشین مجازی می‌شود.

پیکربندی CPU از طریق Web UI:

  1. وارد Web UI Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را از لیست VMs انتخاب کنید.
  3. به تب Hardware بروید.
  4. بر روی CPU کلیک کنید.
  5. در پنجره باز شده می‌توانید موارد زیر را پیکربندی کنید:
    • Number of cores: تعداد هسته‌های CPU را مشخص کنید.
    • CPU socket: تعداد سوکت‌های پردازنده.
    • CPU type: انتخاب نوع پردازنده. می‌توانید از گزینه‌هایی مثل host برای استفاده از پردازنده واقعی سرور یا نوع‌های مختلف دیگر استفاده کنید.
    • CPU pinning: اختصاص هسته‌های مشخص به ماشین‌های مجازی.

پس از انجام تنظیمات، بر روی OK کلیک کنید تا تغییرات ذخیره شوند.

دستور کامندی برای پیکربندی CPU:

برای پیکربندی CPU از طریق خط فرمان، می‌توانید از دستور qm set استفاده کنید. در مثال زیر، ماشین مجازی با شناسه 101 به دو هسته پردازنده و یک سوکت پردازنده اختصاص می‌یابد:

qm set 101 --cores 2 --sockets 1 --cpu host

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • --cores 2 تعداد هسته‌های پردازنده.
  • --sockets 1 تعداد سوکت‌های پردازنده.
  • --cpu host انتخاب نوع پردازنده مشابه پردازنده واقعی سیستم.

2. پیکربندی RAM برای ماشین مجازی

حافظه (RAM) یکی از مهم‌ترین منابع ماشین مجازی است که باید به درستی تخصیص داده شود تا عملکرد سیستم بهینه شود.

پیکربندی RAM از طریق Web UI:

  1. وارد Web UI Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را از لیست VMs انتخاب کنید.
  3. به تب Hardware بروید.
  4. بر روی Memory کلیک کنید.
  5. در پنجره باز شده می‌توانید میزان RAM مورد نظر را وارد کنید. مثلاً می‌توانید 2 گیگابایت RAM برای ماشین مجازی اختصاص دهید.
  6. بعد از تنظیمات، بر روی OK کلیک کنید تا تغییرات ذخیره شوند.

دستور کامندی برای پیکربندی RAM:

برای پیکربندی RAM از طریق خط فرمان، از دستور qm set استفاده کنید. در مثال زیر، میزان RAM ماشین مجازی با شناسه 101 به 2048 مگابایت (2 گیگابایت) تغییر می‌کند:

qm set 101 --memory 2048

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • --memory 2048 میزان حافظه (RAM) که باید به ماشین مجازی اختصاص یابد.

3. پیکربندی Disk برای ماشین مجازی

دیسک ماشین مجازی، جایی است که داده‌ها، سیستم عامل و برنامه‌ها ذخیره می‌شوند. پیکربندی دیسک به شما این امکان را می‌دهد که ظرفیت مناسب را برای هر ماشین مجازی فراهم کنید.

پیکربندی Disk از طریق Web UI:

  1. وارد Web UI Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را از لیست VMs انتخاب کنید.
  3. به تب Hardware بروید.
  4. بر روی Add و سپس Hard Disk کلیک کنید.
  5. در پنجره باز شده، تنظیمات زیر را انجام دهید:
    • Bus/Device: نوع اتصال دیسک (IDE، SCSI، VirtIO).
    • Size: اندازه دیسک (بر حسب گیگابایت).
    • Storage: انتخاب فضای ذخیره‌سازی که ماشین مجازی استفاده خواهد کرد.
    • Format: انتخاب فرمت دیسک (مثل RAW یا QCOW2).
  6. پس از انجام تنظیمات، بر روی Add کلیک کنید تا دیسک به ماشین مجازی افزوده شود.

دستور کامندی برای پیکربندی Disk:

برای اضافه کردن یا تغییر اندازه دیسک ماشین مجازی از طریق کامندلاین، از دستور qm disk استفاده می‌شود. در مثال زیر، یک دیسک جدید به اندازه 20 گیگابایت به ماشین مجازی با شناسه 101 اضافه می‌شود:

qm disk add 101 scsi0 /dev/pve/vm-101-disk-0 20G

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • scsi0 نوع دیسک (اتصال SCSI).
  • /dev/pve/vm-101-disk-0 مسیر ذخیره‌سازی دیسک.
  • 20G اندازه دیسک به گیگابایت.

برای تغییر اندازه دیسک، از دستور زیر استفاده کنید:

qm resize 101 scsi0 +10G

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • scsi0 دیسکی که می‌خواهید اندازه آن را تغییر دهید.
  • +10G افزایش اندازه دیسک به میزان 10 گیگابایت.

جمع بندی

در این بخش، نحوه پیکربندی منابع ماشین‌های مجازی شامل CPU، RAM و Disk در Proxmox VE به طور کامل از طریق Web UI و دستورات کامندی توضیح داده شد. تنظیمات مناسب منابع برای ماشین‌های مجازی تأثیر زیادی بر عملکرد و بهینه‌سازی سیستم‌های مجازی شما دارد. با استفاده از این روش‌ها، شما می‌توانید منابع مورد نیاز هر ماشین مجازی را به راحتی تنظیم کرده و از قابلیت‌های Proxmox VE برای مدیریت ماشین‌های مجازی بهینه بهره‌برداری کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مشاهده وضعیت و گزارش‌های ماشین‌های مجازی” subtitle=”توضیحات کامل”]مشاهده وضعیت و گزارش‌های ماشین‌های مجازی یکی از وظایف حیاتی در مدیریت سرورهای مجازی است. این کار به شما کمک می‌کند تا از سلامت و عملکرد ماشین‌های مجازی خود مطمئن شوید، مشکلات موجود را شناسایی کنید و به طور کلی بر عملکرد سیستم نظارت داشته باشید. در این بخش، ما روش‌های مختلفی برای مشاهده وضعیت ماشین‌های مجازی و بررسی گزارش‌های آن‌ها ارائه می‌دهیم. این فرآیند می‌تواند هم از طریق Web UI و هم از طریق دستورات کامندی انجام شود.


1. مشاهده وضعیت ماشین‌های مجازی از طریق Web UI

برای مشاهده وضعیت ماشین‌های مجازی در Proxmox VE از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI Proxmox VE شوید.
  2. از لیست VMs ماشین مجازی مورد نظر خود را انتخاب کنید.
  3. در تب Summary، وضعیت کلی ماشین مجازی را مشاهده خواهید کرد.
    • Status: نشان‌دهنده وضعیت فعلی ماشین مجازی است. این وضعیت می‌تواند شامل Running (در حال اجرا)، Stopped (متوقف شده)، Paused (معلق) و Suspended (به حالت تعلیق درآمده) باشد.
    • CPU Usage: استفاده از منابع CPU برای ماشین مجازی را به صورت درصدی نشان می‌دهد.
    • Memory Usage: میزان حافظه استفاده شده توسط ماشین مجازی را نمایش می‌دهد.
    • Disk Usage: مقدار فضای دیسک استفاده‌شده توسط ماشین مجازی را نشان می‌دهد.
    • Network: اطلاعات مربوط به شبکه ماشین مجازی (ارسال و دریافت داده) را نمایش می‌دهد.
  4. در تب Console، می‌توانید به کنسول ماشین مجازی دسترسی پیدا کرده و وضعیت آن را به طور زنده بررسی کنید.

مشاهده لاگ‌ها و گزارش‌های ماشین مجازی از طریق Web UI:

برای مشاهده گزارش‌های دقیق‌تر و لاگ‌ها، مراحل زیر را دنبال کنید:

  1. وارد Web UI Proxmox VE شوید.
  2. از لیست VMs ماشین مجازی مورد نظر خود را انتخاب کنید.
  3. به تب Logs بروید.
  4. در این بخش می‌توانید گزارشات مختلف مربوط به ماشین مجازی، مانند فعالیت‌های راه‌اندازی، خاموش شدن، مشکلات نرم‌افزاری و غیره را مشاهده کنید.

2. مشاهده وضعیت ماشین‌های مجازی از طریق دستور کامندی

در خط فرمان نیز می‌توان وضعیت ماشین‌های مجازی و گزارش‌های مربوط به آن‌ها را مشاهده کرد. این کار با استفاده از دستور qm status برای بررسی وضعیت ماشین مجازی و دستور journalctl برای مشاهده گزارش‌ها انجام می‌شود.

مشاهده وضعیت ماشین مجازی با دستور qm status:

دستور qm status برای مشاهده وضعیت کلی ماشین مجازی‌ها استفاده می‌شود. برای مشاهده وضعیت ماشین مجازی با شناسه 101، از دستور زیر استفاده کنید:

qm status 101

این دستور یکی از وضعیت‌های زیر را به شما نمایش می‌دهد:

  • status: running: ماشین مجازی در حال اجرا است.
  • status: stopped: ماشین مجازی متوقف شده است.
  • status: paused: ماشین مجازی به حالت تعلیق درآمده است.

مشاهده گزارش‌های ماشین مجازی با دستور journalctl:

دستور journalctl برای مشاهده لاگ‌های سیستم و گزارشات دقیق‌تر ماشین مجازی‌ها استفاده می‌شود. برای مشاهده گزارش‌های ماشین مجازی با شناسه 101، می‌توانید از دستور زیر استفاده کنید:

journalctl -u pve-manager | grep "VM 101"

این دستور تمامی گزارش‌های مربوط به ماشین مجازی با شناسه 101 را از لاگ‌های سیستم جستجو می‌کند و نمایش می‌دهد.

مشاهده لاگ‌های خاص ماشین مجازی از طریق دستور qm:

برای مشاهده گزارش‌های خاص‌تر مربوط به یک ماشین مجازی، می‌توانید از دستور qm استفاده کنید. برای مثال، برای مشاهده لاگ‌های ماشین مجازی 101، می‌توانید از دستور زیر استفاده کنید:

qm monitor 101

این دستور به شما اجازه می‌دهد تا به صورت تعاملی با ماشین مجازی ارتباط برقرار کنید و گزارش‌های بیشتری را مشاهده کنید.


3. مشاهده آمار دقیق‌تر ماشین‌های مجازی

در صورت نیاز به مشاهده آمار دقیق‌تر و پیشرفته‌تر مانند میزان استفاده از CPU، RAM، و Network، می‌توانید از ابزارهایی مانند pveperf یا top در سیستم عامل لینوکس استفاده کنید.

مشاهده آمار عملکرد با دستور pveperf:

دستور pveperf برای بررسی عملکرد سیستم و ماشین‌های مجازی استفاده می‌شود. با اجرای دستور زیر، می‌توانید وضعیت کلی سیستم از جمله عملکرد پردازنده، حافظه و دیسک را مشاهده کنید:

pveperf

این دستور آمار عملکرد کلی سیستم را به شما نمایش می‌دهد و به شما کمک می‌کند تا بفهمید ماشین‌های مجازی به چه میزان از منابع سخت‌افزاری استفاده می‌کنند.

مشاهده استفاده از منابع با دستور top:

دستور top یکی دیگر از ابزارهای مفید برای مشاهده استفاده از منابع سیستم است. این دستور، نمایی زنده از پردازنده‌ها، حافظه، و پردازش‌های در حال اجرا را به شما نمایش می‌دهد.

برای استفاده از دستور top در سرور لینوکس، کافی است دستور زیر را اجرا کنید:

top

این دستور به شما لیستی از پردازش‌ها را همراه با میزان استفاده از منابع نمایش می‌دهد که می‌تواند شامل ماشین‌های مجازی و فرآیندهای مربوط به آن‌ها باشد.


جمع بندی

در این بخش، روش‌های مختلفی برای مشاهده وضعیت و گزارش‌های ماشین‌های مجازی در Proxmox VE بررسی شد. شما می‌توانید وضعیت ماشین‌های مجازی را به سادگی از طریق Web UI مشاهده کنید و گزارش‌های دقیق‌تری را با استفاده از دستورات کامندی مثل qm status، journalctl و qm monitor دریافت کنید. همچنین ابزارهای پیشرفته‌تری مانند pveperf و top به شما این امکان را می‌دهند که آمار دقیق‌تری از عملکرد ماشین‌های مجازی و منابع سیستم دریافت کنید. این ابزارها به شما کمک می‌کنند تا از وضعیت ماشین‌های مجازی خود باخبر شوید و در صورت بروز مشکلات، آن‌ها را شناسایی و رفع کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مدیریت کانتینرها (LXC)” subtitle=”توضیحات کامل”]در این بخش، به بررسی نحوه مدیریت کانتینرها (LXC) از طریق Web UI و خط فرمان پرداخته خواهد شد. کانتینرها یکی از ابزارهای مهم و سبک برای اجرای اپلیکیشن‌ها به صورت ایزوله شده هستند. ما مراحل ایجاد، راه‌اندازی، حذف، پیکربندی منابع و نظارت بر وضعیت کانتینرها را به‌طور کامل بررسی می‌کنیم.


ایجاد، راه‌اندازی و حذف کانتینرها

1. ایجاد کانتینر:

برای ایجاد کانتینر در پروژۀ LXC، شما می‌توانید از Web UI یا خط فرمان استفاده کنید. ابتدا به داشبورد پروژۀ LXC خود وارد شوید.

ایجاد کانتینر از طریق Web UI:
  1. وارد Web UI خود شوید و در نوار سمت چپ گزینه “LXC” را انتخاب کنید.
  2. بر روی دکمه Create CT یا ایجاد کانتینر کلیک کنید.
  3. در صفحه‌ای که باز می‌شود، تنظیمات اولیه کانتینر را وارد کنید:
    • نام کانتینر (Container Name)
    • نصب سیستم‌عامل (مثلاً Ubuntu، Debian، CentOS و…)
    • محدوده منابع (CPU، RAM، Disk)
  4. پس از تکمیل تنظیمات، دکمه Finish را برای ایجاد کانتینر فشار دهید.
ایجاد کانتینر از طریق خط فرمان:

برای ایجاد کانتینر در محیط LXC از دستور زیر استفاده می‌کنیم:

lxc launch ubuntu:20.04 my-container

در این دستور:

  • ubuntu:20.04 سیستم‌عاملی است که می‌خواهید برای کانتینر خود انتخاب کنید.
  • my-container نام کانتینر جدید است.
2. راه‌اندازی کانتینر:

بعد از ایجاد کانتینر، باید آن را راه‌اندازی کنید. می‌توانید این کار را از طریق Web UI یا خط فرمان انجام دهید.

راه‌اندازی کانتینر از طریق Web UI:
  1. در داشبورد “LXC”، کانتینر مورد نظر را انتخاب کنید.
  2. بر روی دکمه Start کلیک کنید تا کانتینر شروع به کار کند.
راه‌اندازی کانتینر از طریق خط فرمان:

برای راه‌اندازی کانتینر از دستور زیر استفاده کنید:

lxc start my-container
3. حذف کانتینر:

اگر کانتینری دیگر مورد استفاده قرار نگیرد و بخواهید آن را حذف کنید، می‌توانید این کار را از Web UI یا خط فرمان انجام دهید.

حذف کانتینر از طریق Web UI:
  1. در داشبورد “LXC”، کانتینر مورد نظر را انتخاب کنید.
  2. بر روی دکمه Delete کلیک کنید و تایید کنید.
حذف کانتینر از طریق خط فرمان:

برای حذف کانتینر از دستور زیر استفاده کنید:

lxc delete my-container

اگر کانتینر در حال اجرا باشد و بخواهید آن را حذف کنید، می‌توانید از دستور زیر استفاده کنید:

lxc stop my-container
lxc delete my-container

پیکربندی منابع و شبکه در کانتینرها

1. پیکربندی منابع (CPU، RAM، Disk):

پیکربندی منابع کانتینرها، شامل تخصیص CPU، RAM و فضای دیسک است. این کار می‌تواند از Web UI یا از طریق خط فرمان انجام شود.

پیکربندی منابع از طریق Web UI:
  1. وارد Web UI خود شوید و کانتینر مورد نظر را انتخاب کنید.
  2. به بخش Resources بروید.
  3. در این بخش، می‌توانید منابع مورد نیاز کانتینر را تنظیم کنید:
    • CPU: می‌توانید تعداد هسته‌های CPU را انتخاب کنید.
    • RAM: مقدار حافظه RAM که می‌خواهید به کانتینر اختصاص دهید.
    • Disk: مقدار فضای دیسک را تنظیم کنید.
پیکربندی منابع از طریق خط فرمان:

برای پیکربندی منابع از دستورات زیر استفاده می‌شود.

تخصیص CPU:

lxc config set my-container limits.cpu 2

این دستور به کانتینر my-container دو هسته CPU اختصاص می‌دهد.

تخصیص RAM:

lxc config set my-container limits.memory 2GB

این دستور به کانتینر my-container دو گیگابایت حافظه اختصاص می‌دهد.

تخصیص فضای دیسک:

lxc config set my-container limits.disk 20GB

این دستور به کانتینر my-container 20 گیگابایت فضای دیسک اختصاص می‌دهد.

2. پیکربندی شبکه در کانتینرها:

پیکربندی شبکه برای کانتینرها به‌طور معمول شامل تنظیمات IP و رابط‌های شبکه است. این کار می‌تواند از طریق Web UI یا خط فرمان انجام شود.

پیکربندی شبکه از طریق Web UI:
  1. وارد Web UI شوید و کانتینر مورد نظر را انتخاب کنید.
  2. به بخش Network بروید.
  3. شما می‌توانید در این بخش، شبکه مورد نظر را انتخاب کنید، به‌عنوان‌مثال NAT یا Bridge.
  4. همچنین می‌توانید آدرس IP استاتیک به کانتینر اختصاص دهید.
پیکربندی شبکه از طریق خط فرمان:

برای پیکربندی شبکه و تعیین آدرس IP استاتیک برای کانتینر می‌توانید از دستور زیر استفاده کنید:

lxc network attach lxdbr0 my-container eth0
lxc config device set my-container eth0 ipv4.address 10.0.3.5

در این دستور:

  • lxdbr0 شبکه‌ای است که کانتینر به آن متصل می‌شود.
  • eth0 رابط شبکه کانتینر است.
  • 10.0.3.5 آدرس IP استاتیک برای کانتینر است.

نظارت بر وضعیت و عملکرد کانتینرها

1. مشاهده وضعیت کانتینر:

برای مشاهده وضعیت کانتینرها، مانند اینکه آیا در حال اجرا هستند یا متوقف شده‌اند، می‌توانید از Web UI یا خط فرمان استفاده کنید.

مشاهده وضعیت از طریق Web UI:
  1. وارد Web UI شوید و به بخش “LXC” بروید.
  2. کانتینر مورد نظر را انتخاب کنید و وضعیت آن را مشاهده کنید (Running یا Stopped).
مشاهده وضعیت از طریق خط فرمان:

برای مشاهده وضعیت کانتینر می‌توانید از دستور زیر استفاده کنید:

lxc list

این دستور لیستی از تمامی کانتینرها را به همراه وضعیت فعلی آن‌ها نمایش می‌دهد.

2. نظارت بر عملکرد کانتینر:

برای نظارت دقیق‌تر بر عملکرد کانتینر، مانند مصرف منابع، می‌توانید از دستوراتی مانند lxc exec استفاده کنید تا دستورات سیستم‌عاملی را در داخل کانتینر اجرا کنید.

مشاهده مصرف منابع:

lxc exec my-container -- top

این دستور به شما امکان مشاهده وضعیت مصرف منابع مانند CPU و RAM را در کانتینر می‌دهد.

3. مشاهده گزارش‌های عملکرد:

برای دریافت گزارش‌های دقیق از عملکرد کانتینر می‌توانید از ابزارهای نظارتی مانند sysstat و iostat استفاده کنید. برای نصب و استفاده از این ابزارها داخل کانتینر، دستور زیر را اجرا کنید:

lxc exec my-container -- apt-get install sysstat
lxc exec my-container -- iostat

جمع‌بندی

در این بخش، نحوه ایجاد، راه‌اندازی و حذف کانتینرها در LXC، پیکربندی منابع (CPU، RAM، Disk) و شبکه برای کانتینرها، و همچنین نظارت بر وضعیت و عملکرد کانتینرها را بررسی کردیم. استفاده از این ابزارها و دستورات به شما کمک می‌کند تا به‌طور موثر منابع را مدیریت کرده و عملکرد کانتینرها را در پروژه‌های خود بهینه کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 4. مدیریت شبکه در Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”آشنایی با بخش شبکه در Web UI” subtitle=”توضیحات کامل”]در محیط‌های مجازی‌سازی و استفاده از کانتینرها، پیکربندی شبکه یکی از بخش‌های حیاتی به‌شمار می‌آید. به‌ویژه در LXC و سیستم‌های مشابه، تنظیمات شبکه به شما این امکان را می‌دهد که نحوه ارتباط کانتینرها با یکدیگر و با دنیای بیرون را کنترل کنید. در این بخش، به بررسی قابلیت‌ها و تنظیمات مختلف بخش شبکه در Web UI خواهیم پرداخت و چگونگی پیکربندی آن را توضیح خواهیم داد.


بررسی بخش شبکه در Web UI

برای دسترسی به بخش شبکه در Web UI و انجام تنظیمات مربوط به آن، باید ابتدا وارد Web UI سیستم خود شوید و سپس به بخش مربوطه بروید. در اینجا، تنظیمات مختلفی از جمله اتصال شبکه کانتینرها، تخصیص IP، و دیگر تنظیمات شبکه‌ای در اختیار شما قرار دارد.

1. دسترسی به بخش شبکه:
  1. ورود به Web UI: ابتدا باید وارد Web UI سیستم خود شوید. معمولاً آدرس این پنل به‌صورت http://<IP-ADDRESS>:8006 است (برای Proxmox VE). پس از ورود به این آدرس، نام کاربری و رمز عبور خود را وارد کنید.
  2. انتخاب LXC یا ماشین مجازی: پس از ورود به داشبورد، به بخش LXC بروید و کانتینری که می‌خواهید تنظیمات شبکه آن را تغییر دهید، انتخاب کنید.
  3. بخش Network: پس از انتخاب کانتینر یا ماشین مجازی، گزینه Network را در منوی سمت چپ مشاهده خواهید کرد. این بخش مربوط به تمامی تنظیمات شبکه‌ای دستگاه است.
2. تنظیمات و گزینه‌های شبکه در Web UI:

در این بخش، شما می‌توانید تنظیمات مختلفی را برای شبکه کانتینر خود انجام دهید، از جمله انتخاب نوع اتصال شبکه، پیکربندی آدرس IP، تنظیمات فایروال و غیره.

3. تنظیمات اتصالات شبکه:
نوع اتصال شبکه:

در بخش Network، شما می‌توانید نوع شبکه‌ای که به کانتینر اختصاص داده می‌شود را انتخاب کنید. معمولاً این دو گزینه رایج هستند:

  • Bridged Mode: در این حالت، کانتینر یا ماشین مجازی به شبکه فیزیکی سرور متصل می‌شود و به‌طور مستقیم آدرس IP از شبکه LAN دریافت می‌کند.
  • NAT Mode: در این حالت، کانتینر یا ماشین مجازی از طریق یک روتر مجازی که روی سرور اجرا می‌شود به شبکه خارجی دسترسی پیدا می‌کند. به‌عبارت‌دیگر، در این حالت، کانتینر یک IP خصوصی دریافت کرده و برای دسترسی به اینترنت از IP عمومی سرور استفاده می‌کند.
انتخاب نوع اتصال در Web UI:
  1. به بخش Network بروید.
  2. در گزینه Type، شما می‌توانید انتخاب کنید که از کدام نوع اتصال (Bridge یا NAT) استفاده کنید.
  3. برای Bridge، می‌توانید نام رابط شبکه فیزیکی (مثلاً eth0 یا vmbr0) را مشخص کنید.

Bridge Mode:

lxc network attach lxdbr0 my-container eth0

NAT Mode:

در حالت NAT، معمولاً نیازی به پیکربندی خاص در سطح Web UI نیست زیرا شبکه به‌صورت خودکار از طریق NAT کار می‌کند.

4. تخصیص IP به کانتینرها:

در Web UI، می‌توانید به کانتینرها آدرس‌های IP استاتیک تخصیص دهید یا اجازه دهید که IP به‌طور خودکار از DHCP دریافت شود.

  1. به بخش Network بروید.
  2. در قسمت IP address می‌توانید آدرس IP استاتیک برای کانتینر تعیین کنید.
  3. اگر می‌خواهید از DHCP استفاده کنید، می‌توانید گزینه مربوطه را انتخاب کرده تا کانتینر به‌طور خودکار IP دریافت کند.

تخصیص IP استاتیک از Web UI:

  • گزینه IP address را فعال کرده و آدرس IP مورد نظر را وارد کنید.

پیکربندی IP استاتیک از خط فرمان:

برای تخصیص IP استاتیک از طریق خط فرمان می‌توانید از دستور زیر استفاده کنید:

lxc config device set my-container eth0 ipv4.address 192.168.100.10

این دستور آدرس IP 192.168.100.10 را به کانتینر my-container تخصیص می‌دهد.

5. تنظیمات DNS:

در Web UI، همچنین می‌توانید DNS سرورها را برای کانتینر پیکربندی کنید. این تنظیمات به کانتینر کمک می‌کند تا از DNS خاصی برای حل نام‌ها استفاده کند.

  1. در بخش Network، به بخش DNS بروید.
  2. آدرس‌های DNS را وارد کنید (مانند 8.8.8.8 برای DNS گوگل).
  3. سپس تغییرات را ذخیره کنید.

پیکربندی DNS از خط فرمان:

برای تنظیم DNS می‌توانید فایل کانفیگ /etc/resolv.conf داخل کانتینر را ویرایش کنید:

lxc exec my-container -- bash
echo "nameserver 8.8.8.8" >> /etc/resolv.conf

این دستور DNS گوگل را به کانتینر my-container اختصاص می‌دهد.

6. تنظیمات فایروال و فیلترینگ:

در بخش Firewall، شما می‌توانید قوانین فایروال برای کانتینر یا شبکه تعریف کنید. این تنظیمات به شما این امکان را می‌دهد که ترافیک ورودی یا خروجی به کانتینر را محدود کنید.

برای افزودن قوانین فایروال از Web UI، کافی است به بخش Firewall رفته و قوانین مختلف را مطابق نیاز خود اضافه کنید.

تنظیمات فایروال از خط فرمان:

برای افزودن یک قانون فایروال به کانتینر می‌توانید از دستور زیر استفاده کنید:

lxc config device add my-container eth0 nic \
    nictype=bridged bridge=lxdbr0

در این دستور، nictype=bridged مشخص می‌کند که شبکه از نوع Bridge است و bridge=lxdbr0 به شبکه فیزیکی lxdbr0 متصل می‌شود.


جمع‌بندی

در این بخش، نحوه استفاده از بخش شبکه در Web UI برای پیکربندی و مدیریت اتصالات شبکه کانتینرها مورد بررسی قرار گرفت. ما نحوه انتخاب نوع اتصال شبکه، تخصیص IP استاتیک یا استفاده از DHCP، تنظیمات DNS و فایروال را پوشش دادیم. استفاده صحیح از این تنظیمات به شما این امکان را می‌دهد که شبکه کانتینرهای خود را به‌طور دقیق و مطابق با نیازهای پروژه مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تنظیمات و پیکربندی شبکه: Bridge Networking – ایجاد شبکه‌های مجازی” subtitle=”توضیحات کامل”]در مجازی‌سازی و به‌ویژه در محیط‌های LXC و مشابه، پیکربندی شبکه‌های مجازی با استفاده از Bridge Networking یکی از رایج‌ترین و پرکاربردترین روش‌ها است. این روش به شما اجازه می‌دهد تا شبکه‌های مجازی را برای ماشین‌های مجازی و کانتینرها ایجاد کرده و ارتباط آنها را به‌طور ساده و مؤثر با شبکه فیزیکی سرور برقرار کنید. در این بخش، به بررسی نحوه ایجاد و پیکربندی شبکه‌های مجازی به‌وسیله Bridge Networking خواهیم پرداخت.


مفهوم Bridge Networking

Bridge Networking در واقع یک رابط شبکه‌ای مجازی است که به‌طور کامل با شبکه فیزیکی سرور ارتباط برقرار می‌کند. زمانی که یک کانتینر یا ماشین مجازی به یک Bridge متصل می‌شود، به‌طور مشابه یک دستگاه واقعی در شبکه ظاهر می‌شود. این نوع اتصال معمولاً زمانی استفاده می‌شود که نیاز دارید ماشین‌های مجازی یا کانتینرها به‌طور مستقیم به شبکه فیزیکی متصل شوند و آدرس IP مستقل خود را دریافت کنند.

در این روش، سرور به‌عنوان یک “bridge” عمل می‌کند و شبکه‌های فیزیکی و مجازی را به هم متصل می‌کند.


1. ایجاد و پیکربندی شبکه Bridge

برای ایجاد یک شبکه Bridge و اتصال آن به ماشین‌های مجازی یا کانتینرها از طریق Web UI و دستورهای کامندی می‌توان اقدام کرد. در اینجا نحوه پیکربندی شبکه Bridge به‌صورت گرافیکی و از طریق خط فرمان توضیح داده خواهد شد.

1.1. ایجاد شبکه Bridge از طریق Web UI:
  1. ورود به Web UI: ابتدا باید وارد Web UI سیستم خود شوید. معمولاً آدرس این پنل به‌صورت http://<IP-ADDRESS>:8006 است. پس از ورود به این آدرس، نام کاربری و رمز عبور خود را وارد کنید.
  2. انتخاب بخش شبکه: پس از ورود، به قسمت Datacenter یا Node بروید. در منوی سمت چپ، گزینه Network را انتخاب کنید.
  3. ایجاد Bridge جدید: در این بخش، برای ایجاد یک Bridge جدید، گزینه Create را انتخاب کنید. سپس در پنجره‌ای که باز می‌شود، تنظیمات مختلف Bridge را پیکربندی کنید:
    • Bridge Name: نام شبکه Bridge خود را وارد کنید (مثلاً vmbr0).
    • Type: نوع اتصال را به‌عنوان Bridge انتخاب کنید.
    • Bridge Ports: در این قسمت می‌توانید پورت‌هایی که قرار است به Bridge متصل شوند را مشخص کنید (معمولاً eth0).
    • IP Configuration: در صورت نیاز به تخصیص آدرس IP به Bridge، این قسمت را پیکربندی کنید.
  4. ذخیره تنظیمات: پس از وارد کردن تمامی تنظیمات، بر روی Create کلیک کنید تا شبکه جدید ایجاد شود.
1.2. ایجاد شبکه Bridge از طریق خط فرمان:

برای ایجاد شبکه Bridge از طریق خط فرمان، ابتدا باید از ابزار ip یا brctl استفاده کنید. در اینجا نحوه ایجاد یک Bridge جدید را با استفاده از brctl توضیح می‌دهیم.

  1. نصب ابزار bridge-utils (در صورت عدم نصب):
sudo apt-get install bridge-utils
  1. ایجاد Bridge جدید:
sudo brctl addbr vmbr0
  1. اتصال پورت فیزیکی به Bridge (برای اتصال رابط شبکه فیزیکی به Bridge):
sudo brctl addif vmbr0 eth0

در اینجا، vmbr0 نام Bridge است و eth0 پورت فیزیکی است که می‌خواهید به Bridge متصل کنید.

  1. پیکربندی IP برای Bridge (اختیاری):

در صورت نیاز به اختصاص IP به Bridge، می‌توانید این کار را با استفاده از تنظیمات ifconfig یا ip انجام دهید.

sudo ip addr add 192.168.1.10/24 dev vmbr0
sudo ip link set dev vmbr0 up

این دستور به Bridge vmbr0 آدرس IP 192.168.1.10 را تخصیص می‌دهد و آن را فعال می‌کند.


2. اتصال ماشین مجازی یا کانتینر به شبکه Bridge

حالا که شبکه Bridge ساخته شده است، می‌توانید ماشین‌های مجازی یا کانتینرها را به این شبکه متصل کنید.

2.1. اتصال ماشین مجازی به شبکه Bridge از طریق Web UI:
  1. انتخاب ماشین مجازی: به داشبورد Web UI بروید و ماشین مجازی مورد نظر خود را انتخاب کنید.
  2. بخش Network: در صفحه تنظیمات ماشین مجازی، به بخش Network بروید.
  3. انتخاب شبکه Bridge: در قسمت Bridge، از منوی کشویی، vmbr0 را به‌عنوان شبکه Bridge انتخاب کنید.
  4. ذخیره تنظیمات: پس از انجام تنظیمات، بر روی Save کلیک کنید تا تغییرات ذخیره شوند.
  5. راه‌اندازی مجدد ماشین مجازی: برای اعمال تغییرات، ماشین مجازی را راه‌اندازی مجدد کنید.
2.2. اتصال کانتینر به شبکه Bridge از طریق Web UI:
  1. انتخاب کانتینر: در Web UI، به بخش LXC بروید و کانتینر مورد نظر را انتخاب کنید.
  2. بخش Network: در بخش Network، از گزینه Bridge برای اتصال به شبکه vmbr0 استفاده کنید.
  3. ذخیره تنظیمات: پس از تنظیم، بر روی Save کلیک کنید تا تغییرات ذخیره شوند.
2.3. اتصال کانتینر به شبکه Bridge از طریق خط فرمان:

برای اتصال کانتینر به شبکه Bridge از طریق خط فرمان، دستور زیر را استفاده کنید:

lxc network attach vmbr0 my-container eth0

در این دستور، vmbr0 نام Bridge است، my-container نام کانتینر است، و eth0 رابط شبکه کانتینر است.


3. نظارت و بررسی تنظیمات شبکه Bridge

پس از پیکربندی شبکه Bridge و اتصال ماشین‌های مجازی یا کانتینرها، ممکن است بخواهید وضعیت و ارتباط شبکه‌ای را بررسی کنید.

برای بررسی وضعیت Bridge و اتصال پورت‌ها می‌توانید از دستور brctl یا ip استفاده کنید:

brctl show

این دستور وضعیت فعلی شبکه‌های Bridge را نمایش می‌دهد.

برای مشاهده تنظیمات IP Bridge می‌توانید از دستور ip addr show استفاده کنید:

ip addr show vmbr0

جمع‌بندی

در این بخش، نحوه ایجاد و پیکربندی شبکه‌های Bridge برای ماشین‌های مجازی و کانتینرها از طریق Web UI و خط فرمان بررسی شد. استفاده از Bridge Networking برای اتصال دستگاه‌های مجازی به شبکه فیزیکی، امکان مدیریت آدرس‌های IP و کنترل ترافیک شبکه را به‌سادگی فراهم می‌کند. این پیکربندی‌ها به شما این امکان را می‌دهند که محیط مجازی خود را به‌طور مؤثر و انعطاف‌پذیر مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”VLAN: پیکربندی شبکه‌های مجازی و اختصاص VLAN به ماشین‌های مجازی” subtitle=”توضیحات کامل”]VLAN (Virtual Local Area Network) یکی از تکنولوژی‌های شبکه است که امکان تقسیم یک شبکه فیزیکی به چندین شبکه مجازی را فراهم می‌کند. این کار به‌ویژه در محیط‌های مجازی‌سازی و شبکه‌های پیچیده بسیار مهم است، زیرا به شما این امکان را می‌دهد که ترافیک شبکه را از هم جدا کرده و امنیت و مدیریت شبکه را بهتر انجام دهید. در این بخش، نحوه پیکربندی VLAN‌ها برای ماشین‌های مجازی را با استفاده از Web UI و دستورهای کامندی بررسی خواهیم کرد.


مفهوم VLAN

VLAN به شما این امکان را می‌دهد که یک شبکه فیزیکی را به بخش‌های مجازی تقسیم کنید. این بخش‌ها می‌توانند به‌طور مجزا ترافیک و منابع شبکه خود را داشته باشند، حتی اگر در همان شبکه فیزیکی قرار داشته باشند. به‌عنوان مثال، شما می‌توانید VLAN 10 را برای ماشین‌های مجازی مربوط به بخش فروش و VLAN 20 را برای بخش فنی اختصاص دهید. این تفکیک باعث افزایش امنیت و بهبود عملکرد شبکه می‌شود.


1. ایجاد و پیکربندی VLAN در شبکه Bridge

برای اینکه بتوانید از VLAN‌ها در محیط مجازی‌سازی خود استفاده کنید، ابتدا باید یک Bridge شبکه با پشتیبانی از VLAN ایجاد کنید و سپس VLAN‌های مختلف را به این Bridge اضافه کنید. در اینجا، نحوه پیکربندی VLAN از طریق Web UI و خط فرمان را بررسی خواهیم کرد.

1.1. ایجاد VLAN در Web UI
  1. ورود به Web UI: ابتدا وارد Web UI شوید. معمولاً آدرس این پنل به‌صورت http://<IP-ADDRESS>:8006 است.
  2. انتخاب بخش Network: به بخش Datacenter یا Node بروید. سپس از منوی سمت چپ گزینه Network را انتخاب کنید.
  3. ایجاد Bridge VLAN: برای ایجاد VLAN در شبکه Bridge، باید ابتدا یک Bridge جدید با قابلیت VLAN تنظیم کنید. برای این کار، مراحل زیر را دنبال کنید:
    • Create Bridge: گزینه Create را انتخاب کنید.
    • Bridge Name: نام شبکه Bridge خود را وارد کنید (مثلاً vmbr0).
    • VLAN Aware: تیک این گزینه را فعال کنید تا Bridge از VLAN‌ها پشتیبانی کند.
    • Bridge Ports: در این قسمت، رابط فیزیکی شبکه مانند eth0 را وارد کنید که به Bridge متصل می‌شود.
  4. ذخیره تنظیمات: پس از وارد کردن تنظیمات، بر روی Create کلیک کنید تا شبکه جدید ایجاد شود.
1.2. ایجاد VLAN در خط فرمان

برای ایجاد یک Bridge با پشتیبانی از VLAN از طریق خط فرمان، ابتدا باید ابزار bridge-utils را نصب کنید و سپس مراحل زیر را انجام دهید.

  1. نصب ابزار bridge-utils:
sudo apt-get install bridge-utils
  1. ایجاد Bridge جدید با پشتیبانی از VLAN:
sudo brctl addbr vmbr0
sudo ip link set dev vmbr0 up
  1. فعال‌سازی قابلیت VLAN برای Bridge:

برای فعال‌سازی قابلیت VLAN در Bridge، باید از دستور vconfig استفاده کنید:

sudo vconfig add eth0 10

در اینجا، eth0 رابط شبکه فیزیکی است و 10 شماره VLAN است که به آن اختصاص داده می‌شود.


2. اختصاص VLAN به ماشین‌های مجازی

حالا که شبکه Bridge با پشتیبانی از VLAN ایجاد شد، می‌توانید VLAN‌ها را به ماشین‌های مجازی خود اختصاص دهید.

2.1. اختصاص VLAN به ماشین مجازی از طریق Web UI
  1. انتخاب ماشین مجازی: به Web UI بروید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. بخش Network: در صفحه تنظیمات ماشین مجازی، به بخش Network بروید.
  3. انتخاب VLAN برای شبکه: در قسمت Bridge، شبکه vmbr0 را به‌عنوان شبکه Bridge انتخاب کنید. سپس در بخش VLAN Tag، شماره VLAN مورد نظر (مثلاً 10) را وارد کنید.
  4. ذخیره تنظیمات: پس از انجام تنظیمات، بر روی Save کلیک کنید تا تغییرات ذخیره شوند.
  5. راه‌اندازی مجدد ماشین مجازی: برای اعمال تغییرات، ماشین مجازی را راه‌اندازی مجدد کنید.
2.2. اختصاص VLAN به ماشین مجازی از طریق خط فرمان

برای اختصاص VLAN به ماشین مجازی از طریق خط فرمان، باید از ابزار virt-manager یا qm استفاده کنید. در اینجا نحوه انجام این کار با استفاده از qm توضیح داده می‌شود.

  1. پیکربندی VLAN برای ماشین مجازی:
qm set <VMID> -net0 virtio=<MAC_ADDRESS>,bridge=vmbr0,tag=10

در این دستور:

  • <VMID> شماره ماشین مجازی است.
  • <MAC_ADDRESS> آدرس MAC ماشین مجازی است.
  • tag=10 شماره VLAN مورد نظر است.
  1. راه‌اندازی مجدد ماشین مجازی:

برای اعمال تغییرات، باید ماشین مجازی را راه‌اندازی مجدد کنید:

qm restart <VMID>

3. نظارت و بررسی پیکربندی VLAN

پس از پیکربندی VLAN‌ها، می‌توانید از دستورهای مختلف برای نظارت و بررسی وضعیت شبکه‌های VLAN استفاده کنید.

  1. بررسی تنظیمات VLAN در Bridge:

برای بررسی اینکه Bridge به‌درستی تنظیم شده است و پشتیبانی از VLAN فعال است، از دستور زیر استفاده کنید:

brctl show

این دستور اطلاعات مربوط به Bridge‌ها را نمایش می‌دهد و می‌توانید وضعیت VLAN را بررسی کنید.

  1. بررسی پیکربندی VLAN:

برای مشاهده VLAN‌های پیکربندی‌شده در شبکه فیزیکی، از دستور vconfig استفاده کنید:

vconfig list

این دستور تمام VLAN‌های موجود را نمایش می‌دهد.

  1. بررسی وضعیت شبکه‌های VLAN با استفاده از ip:

برای مشاهده اطلاعات دقیق از پیکربندی‌های شبکه VLAN می‌توانید از دستور زیر استفاده کنید:

ip link show

این دستور وضعیت تمامی رابط‌های شبکه و VLAN‌ها را نمایش می‌دهد.


جمع‌بندی

در این بخش، نحوه پیکربندی و اختصاص VLAN به ماشین‌های مجازی از طریق Web UI و خط فرمان توضیح داده شد. استفاده از VLAN‌ها در شبکه‌های مجازی‌سازی به شما این امکان را می‌دهد که ترافیک شبکه را به‌طور مؤثر تفکیک کنید، امنیت شبکه را افزایش دهید و از مدیریت بهتری برخوردار شوید. همچنین، با استفاده از Web UI و دستورات خط فرمان، می‌توانید به‌سادگی VLAN‌ها را برای ماشین‌های مجازی خود پیکربندی کرده و شبکه خود را به‌طور حرفه‌ای مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”Bonding: اتصال چندین رابط شبکه برای افزونگی” subtitle=”توضیحات کامل”]Bonding یا Link Aggregation یکی از تکنیک‌های شبکه است که به شما این امکان را می‌دهد که چندین رابط شبکه را به‌طور همزمان و به‌صورت یکپارچه به هم متصل کنید. این کار به‌ویژه در محیط‌های نیازمند افزونگی بالا و عملکرد بهتر شبکه بسیار مفید است. با استفاده از Bonding، می‌توانید ترافیک شبکه را بین چندین کارت شبکه تقسیم کنید و از افزونگی (redundancy) برای افزایش قابلیت اطمینان و سرعت استفاده کنید.

در این بخش، نحوه پیکربندی Bonding برای اتصال چندین رابط شبکه با استفاده از Web UI و خط فرمان به‌طور کامل شرح داده می‌شود.


1. مفهوم Bonding

Bonding به شما این امکان را می‌دهد که چندین رابط شبکه فیزیکی (مثل eth0, eth1 و غیره) را به یک رابط منطقی واحد تبدیل کنید. این رابط منطقی می‌تواند داده‌ها را به‌صورت موازی یا افزایشی ارسال کند. این تکنیک اغلب در محیط‌های سازمانی و دیتاسنترها برای بهبود پهنای باند و افزونگی استفاده می‌شود.

موارد استفاده از Bonding شامل:

  • افزونگی شبکه: در صورت خرابی یک رابط شبکه، ترافیک به رابط دیگر منتقل می‌شود.
  • افزایش پهنای باند: با تقسیم بار ترافیک شبکه بین چندین رابط شبکه، می‌توانید سرعت انتقال داده‌ها را بهبود بخشید.

2. انواع روش‌های Bonding

برای پیکربندی Bonding، چندین روش یا مد مختلف وجود دارد که می‌توانید انتخاب کنید. این مدها عبارتند از:

  • mode 0 (balance-rr): تقسیم بار به‌صورت دوری (Round-robin) بین رابط‌ها.
  • mode 1 (active-backup): در این مد فقط یکی از رابط‌ها فعال است و دیگر رابط‌ها در حالت آماده‌به‌کار قرار دارند.
  • mode 2 (balance-xor): ارسال بسته‌ها بر اساس ترکیبی از آدرس MAC فرستنده و گیرنده.
  • mode 3 (broadcast): ارسال همه بسته‌ها به هر دو رابط.
  • mode 4 (802.3ad): استفاده از پروتکل LACP (Link Aggregation Control Protocol).
  • mode 5 (balance-tlb): تقسیم بار به‌طور هوشمند بر اساس ترافیک.
  • mode 6 (balance-alb): مانند mode 5 اما بدون نیاز به پیکربندی سویچ‌های شبکه.

3. پیکربندی Bonding در Web UI

برای پیکربندی Bonding در Web UI، شما باید یک Bridge ایجاد کنید که از پشتیبانی برای افزونگی و تقسیم بار برخوردار باشد. در اینجا، مراحل انجام این کار در Web UI آمده است.

3.1. ایجاد Bonding در Web UI
  1. ورود به Web UI: ابتدا وارد Web UI خود شوید. آدرس معمول این صفحه به‌صورت http://<IP-ADDRESS>:8006 است.
  2. انتخاب بخش Network: به بخش Datacenter یا Node بروید و سپس از منوی سمت چپ گزینه Network را انتخاب کنید.
  3. ایجاد شبکه Bonding: برای ایجاد شبکه Bonding، باید مراحل زیر را دنبال کنید:
    • Create Bond: روی گزینه Create کلیک کنید و سپس Bond را انتخاب کنید.
    • Bond Name: نام رابط Bond خود را وارد کنید (مثل bond0).
    • Mode: مد Bonding خود را انتخاب کنید (برای مثال، balance-rr یا active-backup).
    • Slaves: رابط‌های فیزیکی که می‌خواهید به Bonding اضافه کنید را انتخاب کنید. این رابط‌ها می‌توانند eth0, eth1, و غیره باشند.
    • MTU: اندازه MTU را به‌دلخواه تنظیم کنید.
  4. ذخیره تنظیمات: پس از تنظیم این گزینه‌ها، روی Create کلیک کنید تا تنظیمات شما ذخیره شود.
3.2. بررسی وضعیت و پیکربندی Bonding در Web UI

برای بررسی وضعیت شبکه Bonding، می‌توانید به بخش Network در Web UI مراجعه کنید و وضعیت رابط‌ها و اتصال‌های مختلف را مشاهده کنید. در این بخش، اطلاعاتی مانند وضعیت رابط‌ها، نوع مد Bonding و سرعت انتقال داده‌ها نمایش داده می‌شود.


4. پیکربندی Bonding در خط فرمان

برای پیکربندی Bonding از طریق خط فرمان، باید از ابزارهایی مانند ifenslave و ip استفاده کنید. در اینجا نحوه انجام این کار را با استفاده از دستورات خط فرمان توضیح می‌دهیم.

4.1. نصب ابزارهای مورد نیاز

برای استفاده از Bonding در لینوکس، باید اطمینان حاصل کنید که پکیج‌های مورد نیاز نصب شده‌اند. این پکیج‌ها معمولاً به‌طور پیش‌فرض نصب می‌شوند، اما در صورتی که نیاز به نصب آنها داشته باشید، از دستورات زیر استفاده کنید:

sudo apt-get install ifenslave
4.2. ایجاد رابط Bonding
  1. ایجاد رابط Bonding:

برای ایجاد یک رابط Bonding جدید، از دستور زیر استفاده کنید:

sudo ip link add bond0 type bond
  1. تنظیم مد Bonding:

پس از ایجاد رابط Bonding، باید مد آن را مشخص کنید. به‌عنوان‌مثال، اگر بخواهید از مد active-backup استفاده کنید، دستور زیر را وارد کنید:

sudo echo "mode=1" > /sys/class/net/bond0/bonding/mode
  1. اتصال رابط‌ها به Bonding:

پس از تنظیم مد، باید رابط‌های فیزیکی که می‌خواهید به این Bonding اضافه شوند را مشخص کنید. برای این کار از دستور ifenslave استفاده کنید:

sudo ifenslave bond0 eth0 eth1

در اینجا، eth0 و eth1 رابط‌های شبکه‌ای هستند که به رابط Bonding اضافه می‌شوند.

  1. راه‌اندازی مجدد رابط:

برای فعال‌سازی و اعمال تنظیمات جدید، رابط Bonding را به‌طور کامل راه‌اندازی مجدد کنید:

sudo ip link set dev bond0 up
4.3. بررسی وضعیت Bonding

برای بررسی وضعیت رابط Bonding و اطمینان از عملکرد صحیح آن، می‌توانید از دستور زیر استفاده کنید:

cat /proc/net/bonding/bond0

این دستور اطلاعات دقیقی در مورد وضعیت لینک‌های شبکه و نحوه تقسیم بار در Bonding به شما می‌دهد.


5. نظارت و عیب‌یابی

برای نظارت بر عملکرد Bonding و تشخیص مشکلات احتمالی، می‌توانید از دستورات مختلفی استفاده کنید که وضعیت شبکه و رابط‌ها را نشان می‌دهند.

  1. بررسی وضعیت رابط‌های شبکه:
ifconfig bond0

این دستور وضعیت رابط شبکه Bonding را نمایش می‌دهد.

  1. بررسی وضعیت پیوندهای فیزیکی:

برای بررسی اینکه کدام رابط‌ها به شبکه متصل هستند، می‌توانید از دستور زیر استفاده کنید:

cat /proc/net/bonding/bond0

این دستور اطلاعات دقیق‌تری درباره هر یک از رابط‌های فیزیکی و وضعیت آنها ارائه می‌دهد.


جمع‌بندی

در این بخش، پیکربندی و استفاده از Bonding برای اتصال چندین رابط شبکه به‌طور همزمان برای افزونگی و افزایش پهنای باند بررسی شد. با استفاده از Bonding، می‌توانید امنیت شبکه را افزایش داده و ترافیک را به‌صورت مؤثرتری مدیریت کنید. چه از طریق Web UI و چه از طریق خط فرمان، پیکربندی Bonding ساده است و می‌توانید با استفاده از آن از افزونگی شبکه بهره‌مند شوید و عملکرد بهتری در محیط‌های نیازمند ترافیک بالا بدست آورید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تنظیمات IP و DHCP از Web UI” subtitle=”توضیحات کامل”]در این بخش، نحوه پیکربندی تنظیمات IP و DHCP برای ماشین‌های مجازی و کانتینرها از طریق Web UI در محیط Proxmox بررسی می‌شود. این تنظیمات به شما کمک می‌کنند تا شبکه‌های مجازی را به‌طور مؤثر پیکربندی کرده و به دستگاه‌های خود آدرس‌های IP اختصاص دهید. علاوه بر این، تنظیمات DHCP به شما امکان می‌دهد که به‌طور خودکار به ماشین‌های مجازی و کانتینرها آدرس‌های IP تخصیص دهید.


1. مفهوم تنظیمات IP و DHCP

  • IP (Internet Protocol): آدرس IP یک شناسه منحصر به‌فرد است که برای شناسایی و ارتباط دستگاه‌ها در شبکه استفاده می‌شود. شما می‌توانید برای هر ماشین مجازی یا کانتینر، آدرس IP استاتیک یا دینامیک تنظیم کنید.
  • DHCP (Dynamic Host Configuration Protocol): پروتکلی است که به‌طور خودکار به دستگاه‌ها در شبکه آدرس IP اختصاص می‌دهد. با استفاده از DHCP، نیازی به پیکربندی دستی آدرس‌های IP نیست.

2. تنظیمات IP استاتیک از طریق Web UI

برای پیکربندی IP استاتیک در Web UI، مراحل زیر را دنبال کنید:

2.1. ورود به Web UI
  1. به Web UI پروکسموکس وارد شوید. آدرس معمول Web UI به‌صورت زیر است:
http://<IP-ADDRESS>:8006
  1. وارد پنل مدیریتی شوید و به بخش Datacenter یا Node که ماشین مجازی یا کانتینر شما در آن قرار دارد بروید.
2.2. پیکربندی IP استاتیک برای ماشین مجازی یا کانتینر
  1. ماشین مجازی یا کانتینری که می‌خواهید برای آن IP استاتیک تنظیم کنید را انتخاب کنید.
  2. از منوی سمت چپ گزینه Network را انتخاب کنید.
  3. در قسمت Network Device، رابط شبکه‌ای که می‌خواهید IP استاتیک برای آن تنظیم کنید را پیدا کنید.
  4. برای ویرایش تنظیمات شبکه، روی دکمه Edit در کنار رابط شبکه کلیک کنید.
  5. در کادر IPv4 یا IPv6، گزینه Static را انتخاب کنید.
  6. آدرس IP، Subnet Mask و Gateway خود را وارد کنید. به‌عنوان مثال:
    • IP Address: 192.168.1.10
    • Netmask: 255.255.255.0
    • Gateway: 192.168.1.1
  7. پس از وارد کردن اطلاعات، روی Save کلیک کنید تا تغییرات ذخیره شوند.
  8. برای اعمال تغییرات، ممکن است نیاز به راه‌اندازی مجدد ماشین مجازی یا کانتینر باشد.

3. تنظیمات DHCP از طریق Web UI

اگر می‌خواهید که ماشین‌های مجازی یا کانتینرها به‌طور خودکار از DHCP آدرس IP دریافت کنند، می‌توانید تنظیمات DHCP را در Web UI پیکربندی کنید.

3.1. پیکربندی DHCP برای ماشین مجازی یا کانتینر
  1. ماشین مجازی یا کانتینری که می‌خواهید از DHCP برای آن استفاده کنید را انتخاب کنید.
  2. به بخش Network بروید.
  3. رابط شبکه‌ای که قصد دارید از DHCP استفاده کنید را پیدا کنید.
  4. برای ویرایش تنظیمات، روی دکمه Edit کلیک کنید.
  5. در کادر IPv4 یا IPv6، گزینه DHCP را انتخاب کنید.
  6. با انتخاب DHCP، ماشین مجازی یا کانتینر به‌طور خودکار از سرور DHCP موجود در شبکه خود آدرس IP دریافت خواهد کرد.
  7. پس از ذخیره تغییرات، دوباره برای اعمال تنظیمات، ماشین مجازی یا کانتینر را راه‌اندازی کنید.
3.2. تنظیمات DHCP برای شبکه Bridge در Web UI

اگر می‌خواهید به‌طور کلی برای ماشین‌های مجازی یا کانتینرهای خود یک سرور DHCP تنظیم کنید، می‌توانید این تنظیمات را در شبکه Bridge اعمال کنید. برای این کار، مراحل زیر را دنبال کنید:

  1. در بخش Datacenter، گزینه Network را انتخاب کنید.
  2. در این بخش، شبکه‌های مختلف موجود برای ماشین‌های مجازی و کانتینرها را مشاهده خواهید کرد. برای ویرایش شبکه Bridge که ماشین‌ها به آن متصل هستند، روی آن کلیک کنید.
  3. در پنجره ویرایش شبکه، تنظیمات DHCP سرور را اعمال کنید.

4. پیکربندی IP و DHCP از طریق خط فرمان

اگر تمایل دارید که تنظیمات IP و DHCP را از طریق خط فرمان انجام دهید، می‌توانید از دستورات زیر استفاده کنید.

4.1. پیکربندی IP استاتیک

برای تنظیم آدرس IP استاتیک در ماشین مجازی یا کانتینر، باید فایل پیکربندی شبکه را ویرایش کنید. به‌عنوان‌مثال، برای پیکربندی IP استاتیک در یک ماشین مجازی با رابط eth0، دستورات زیر را وارد کنید:

  1. فایل پیکربندی شبکه را ویرایش کنید:
sudo nano /etc/network/interfaces
  1. برای تنظیم آدرس IP استاتیک، خطوط زیر را اضافه یا ویرایش کنید:
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
  1. پس از ذخیره تغییرات، برای اعمال تنظیمات، رابط شبکه را ریستارت کنید:
sudo systemctl restart networking
4.2. پیکربندی DHCP

برای پیکربندی DHCP به‌صورت خودکار، فایل پیکربندی شبکه را به‌صورت زیر ویرایش کنید:

  1. فایل پیکربندی شبکه را ویرایش کنید:
sudo nano /etc/network/interfaces
  1. برای استفاده از DHCP، تنظیمات زیر را وارد کنید:
auto eth0
iface eth0 inet dhcp
  1. سپس، برای اعمال تغییرات، رابط شبکه را ریستارت کنید:
sudo systemctl restart networking

5. نظارت و عیب‌یابی

برای نظارت بر تنظیمات IP و DHCP، می‌توانید از دستورات زیر استفاده کنید:

  1. بررسی وضعیت IP: با دستور زیر می‌توانید آدرس IP فعلی را مشاهده کنید:
ip addr show
  1. بررسی وضعیت DHCP: برای بررسی اینکه ماشین مجازی یا کانتینر شما آدرس IP خود را از سرور DHCP دریافت کرده است یا خیر، می‌توانید دستور زیر را استفاده کنید:
dhclient -v

این دستور فرآیند دریافت IP از DHCP سرور را نمایش می‌دهد.


جمع‌بندی

در این بخش، نحوه پیکربندی تنظیمات IP و DHCP برای ماشین‌های مجازی و کانتینرها در Web UI و از طریق خط فرمان توضیح داده شد. تنظیمات IP استاتیک برای تخصیص دستی آدرس‌ها و DHCP برای تخصیص خودکار آدرس‌ها به ماشین‌های مجازی و کانتینرها بسیار مهم است. این تنظیمات به‌ویژه در محیط‌های پیچیده شبکه‌ای به شما این امکان را می‌دهند که مدیریت و تخصیص آدرس‌های IP را به‌صورت بهینه انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مشاهده و مدیریت وضعیت شبکه‌های متصل به سیستم” subtitle=”توضیحات کامل”]در این بخش، روش‌های مختلف برای مشاهده و مدیریت وضعیت شبکه‌های متصل به سیستم از طریق Web UI در Proxmox و همچنین ابزارهای خط فرمان بررسی می‌شود. این کار به شما کمک می‌کند تا وضعیت شبکه‌ها، اتصال‌ها و عملکرد آنها را نظارت کرده و در صورت نیاز پیکربندی‌های لازم را انجام دهید.


1. مشاهده وضعیت شبکه از طریق Web UI

در Web UI پروکسموکس، شما می‌توانید وضعیت شبکه‌های متصل به سیستم را به‌راحتی مشاهده کرده و از اطلاعات مربوط به شبکه‌های مختلف استفاده کنید. برای این کار، مراحل زیر را دنبال کنید:

1.1. ورود به Web UI
  1. وارد Web UI پروکسموکس شوید:
    http://<IP-ADDRESS>:8006
    
  2. با استفاده از نام کاربری و رمز عبور خود وارد شوید.
1.2. مشاهده وضعیت شبکه در Datacenter یا Node
  1. در بخش Datacenter یا Node که ماشین‌های مجازی یا کانتینرهای شما قرار دارند، روی Network کلیک کنید.
  2. در این بخش، وضعیت شبکه‌های مختلف متصل به سیستم، مانند شبکه‌های Bridge یا Bond، نمایش داده می‌شود.
  3. برای مشاهده جزئیات بیشتر، می‌توانید روی هر شبکه کلیک کنید تا اطلاعات مربوط به آن مانند وضعیت ارتباطی، IPهای اختصاص داده شده، و تنظیمات DHCP را مشاهده کنید.
1.3. مشاهده جزئیات وضعیت رابط‌های شبکه

برای مشاهده وضعیت رابط‌های شبکه، مراحل زیر را دنبال کنید:

  1. وارد صفحه ماشین مجازی یا کانتینر موردنظر شوید.
  2. در منوی سمت چپ، گزینه Network را انتخاب کنید.
  3. در اینجا، شما می‌توانید وضعیت رابط‌های شبکه مختلف متصل به سیستم خود را مشاهده کنید.
    • اگر رابط شبکه به درستی متصل است، وضعیت آن به‌عنوان Up نمایش داده می‌شود.
    • در صورت قطع بودن اتصال، وضعیت آن به‌صورت Down نمایش داده می‌شود.
1.4. مشاهده وضعیت اتصال‌های شبکه

در بخش Network، اطلاعات بیشتری از اتصال‌های شبکه و فعالیت‌های آن‌ها نظیر پینگ‌ها، سرعت ارتباط، و خطاهای شبکه به‌صورت گرافیکی در دسترس قرار می‌گیرد.


2. مدیریت وضعیت شبکه از طریق Web UI

بعد از مشاهده وضعیت شبکه‌ها، شما ممکن است بخواهید تنظیماتی را تغییر دهید یا شبکه‌ای را مدیریت کنید. برای انجام این کار از Web UI مراحل زیر را دنبال کنید:

2.1. فعال یا غیرفعال کردن رابط شبکه

برای فعال یا غیرفعال کردن یک رابط شبکه، مراحل زیر را دنبال کنید:

  1. به بخش Network بروید.
  2. رابط شبکه‌ای که می‌خواهید آن را غیرفعال کنید را انتخاب کنید.
  3. در قسمت پایین پنجره، دکمه Down را برای غیرفعال کردن و دکمه Up را برای فعال کردن رابط شبکه انتخاب کنید.
  4. در صورت انجام تغییرات، ممکن است لازم باشد تا ماشین مجازی یا کانتینر را ریستارت کنید.
2.2. تغییر تنظیمات شبکه

اگر نیاز به تغییر تنظیمات شبکه مانند تغییر آدرس IP، تنظیمات DHCP یا تغییر تنظیمات Bridge دارید، می‌توانید به‌راحتی از طریق Web UI تنظیمات را به‌روزرسانی کنید:

  1. بر روی رابط شبکه موردنظر کلیک کنید.
  2. در پنجره Edit، تغییرات موردنظر مانند آدرس IP، Gateway یا تنظیمات DHCP را اعمال کنید.
  3. پس از اعمال تغییرات، روی Save کلیک کنید تا تغییرات ذخیره شوند.
2.3. حذف یک رابط شبکه

اگر نیاز به حذف یک رابط شبکه دارید، می‌توانید مراحل زیر را دنبال کنید:

  1. به بخش Network بروید.
  2. رابط شبکه‌ای که می‌خواهید حذف کنید را انتخاب کنید.
  3. بر روی Delete کلیک کنید و تایید کنید که می‌خواهید این رابط شبکه حذف شود.
  4. توجه داشته باشید که پس از حذف رابط شبکه، ممکن است ماشین مجازی یا کانتینر نیاز به تنظیم مجدد داشته باشد.

3. مشاهده و مدیریت وضعیت شبکه از طریق خط فرمان

علاوه بر Web UI، شما می‌توانید وضعیت شبکه‌ها را از طریق خط فرمان نیز مدیریت کنید. در این بخش، دستورات مختلفی برای مشاهده و مدیریت وضعیت شبکه در سیستم لینوکس مورد استفاده قرار می‌گیرد.

3.1. مشاهده وضعیت شبکه

برای مشاهده وضعیت شبکه و رابط‌های شبکه در سیستم، از دستور ip استفاده کنید. این دستور اطلاعات کاملی در مورد وضعیت رابط‌های شبکه، آدرس‌های IP و وضعیت آن‌ها فراهم می‌آورد.

دستور زیر را وارد کنید تا وضعیت تمامی رابط‌های شبکه را مشاهده کنید:

ip addr show

خروجی دستور شامل لیستی از رابط‌های شبکه است که وضعیت هر یک به‌صورت UP یا DOWN مشخص می‌شود.

برای مشاهده وضعیت دقیق‌تر رابط شبکه خاصی مانند eth0، دستور زیر را وارد کنید:

ip addr show eth0
3.2. بررسی وضعیت اتصال شبکه

برای بررسی وضعیت اتصال شبکه و پینگ به یک دستگاه یا آدرس خاص، از دستور ping استفاده کنید:

ping -c 4 8.8.8.8

این دستور پینگ به آدرس 8.8.8.8 (DNS گوگل) ارسال می‌کند و وضعیت اتصال به آن را بررسی می‌کند.

3.3. مشاهده تنظیمات شبکه در سیستم

برای مشاهده تنظیمات شبکه به‌طور کلی، مانند gateway، DNS و آدرس‌های IP، می‌توانید فایل پیکربندی شبکه را بررسی کنید. در بسیاری از سیستم‌ها، فایل پیکربندی در مسیر زیر قرار دارد:

cat /etc/network/interfaces

یا برای سیستم‌های جدیدتر که از netplan استفاده می‌کنند:

cat /etc/netplan/*.yaml

این فایل‌ها حاوی تنظیمات شبکه از جمله IP استاتیک، DHCP، و gateway هستند.

3.4. ریستارت کردن رابط شبکه

برای اعمال تغییرات جدید در تنظیمات شبکه یا بعد از غیرفعال کردن یک رابط، می‌توانید رابط شبکه را ریستارت کنید. دستور زیر را برای ریستارت رابط eth0 وارد کنید:

sudo systemctl restart networking

اگر از netplan استفاده می‌کنید، دستور زیر را وارد کنید:

sudo netplan apply

جمع‌بندی

در این بخش، روش‌های مشاهده و مدیریت وضعیت شبکه‌های متصل به سیستم از طریق Web UI و همچنین از طریق خط فرمان شرح داده شد. Web UI پروکسموکس ابزارهای گرافیکی مناسبی برای مشاهده وضعیت و مدیریت شبکه‌ها فراهم می‌آورد. همچنین با استفاده از دستورات خط فرمان مانند ip addr show و ping، می‌توانید اطلاعات دقیقی از وضعیت شبکه بدست آورید و مشکلات شبکه را شناسایی کنید. این ابزارها برای مدیران سیستم و شبکه بسیار مفید هستند و به شما این امکان را می‌دهند تا عملکرد شبکه‌های متصل به سیستم خود را به‌طور مؤثر مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 5. مدیریت ذخیره‌سازی در Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نمایش منابع ذخیره‌سازی موجود و استفاده از آن‌ها” subtitle=”توضیحات کامل”]در این بخش، به روش‌های مختلف نمایش منابع ذخیره‌سازی موجود در سیستم Proxmox از طریق Web UI و همچنین از طریق خط فرمان پرداخته می‌شود. همچنین توضیحاتی در مورد نحوه استفاده از این منابع ذخیره‌سازی برای ماشین‌های مجازی و کانتینرها ارائه خواهد شد.


1. نمایش منابع ذخیره‌سازی موجود از طریق Web UI

Proxmox به‌طور پیش‌فرض از انواع مختلف منابع ذخیره‌سازی پشتیبانی می‌کند، از جمله Local Storage (ذخیره‌سازی محلی)، NFS (شبکه‌ای)، iSCSI و ZFS. برای نمایش و مدیریت منابع ذخیره‌سازی موجود از طریق Web UI، مراحل زیر را دنبال کنید:

1.1. ورود به Web UI
  1. وارد Web UI پروکسموکس شوید:
    http://<IP-ADDRESS>:8006
    
  2. با استفاده از نام کاربری و رمز عبور خود وارد شوید.
1.2. مشاهده منابع ذخیره‌سازی
  1. در بخش Datacenter، روی Storage در منوی سمت چپ کلیک کنید.
  2. در اینجا، شما فهرستی از منابع ذخیره‌سازی مختلف موجود را مشاهده خواهید کرد. این منابع ممکن است شامل موارد زیر باشند:
    • Local: ذخیره‌سازی محلی بر روی سیستم میزبان.
    • NFS: منابع ذخیره‌سازی متصل به شبکه.
    • iSCSI: منابع ذخیره‌سازی از نوع iSCSI.
    • ZFS: منابع ذخیره‌سازی مبتنی بر ZFS.
  3. برای مشاهده جزئیات هر یک از منابع ذخیره‌سازی، می‌توانید روی آن کلیک کنید و اطلاعاتی مانند ظرفیت، فضای استفاده شده، و نوع دسترسی (Read/Write) را مشاهده کنید.
1.3. مشاهده فضای استفاده‌شده و فضای آزاد

در بخش Storage، در کنار نام هر ذخیره‌سازی، اطلاعاتی نظیر Used و Available نمایش داده می‌شود. این اطلاعات به شما کمک می‌کند تا فضای استفاده‌شده و فضای آزاد هر ذخیره‌سازی را مشاهده کنید.


2. نمایش منابع ذخیره‌سازی از طریق خط فرمان

علاوه بر Web UI، شما می‌توانید از طریق خط فرمان نیز منابع ذخیره‌سازی موجود در سیستم خود را مشاهده کنید. دستورات مختلفی برای بررسی وضعیت ذخیره‌سازی و ظرفیت آن‌ها وجود دارد. در اینجا، برخی از مهم‌ترین دستورات آورده شده است:

2.1. مشاهده اطلاعات ذخیره‌سازی با دستور df

برای مشاهده اطلاعات مربوط به سیستم‌های ذخیره‌سازی متصل و وضعیت فضای آن‌ها، از دستور df استفاده کنید:

df -h

این دستور فضای استفاده‌شده و فضای آزاد تمام پارتیشن‌ها و سیستم‌های ذخیره‌سازی را به‌صورت خوانا (با واحدهایی مانند MB و GB) نمایش می‌دهد.

2.2. مشاهده جزئیات دیسک‌ها با دستور lsblk

برای مشاهده جزئیات کامل دیسک‌ها و پارتیشن‌های موجود، دستور lsblk را وارد کنید:

lsblk

این دستور اطلاعاتی شامل نام دیسک‌ها، اندازه آن‌ها، و اینکه هر دیسک به چه پارتیشن‌هایی تقسیم شده است را نمایش می‌دهد.

2.3. مشاهده اطلاعات بیشتر با دستور fdisk

اگر می‌خواهید اطلاعات بیشتری در مورد پارتیشن‌های دیسک‌ها و نحوه تقسیم‌بندی آن‌ها به‌دست آورید، می‌توانید از دستور fdisk استفاده کنید:

sudo fdisk -l

این دستور لیستی از تمامی دیسک‌ها و پارتیشن‌های آن‌ها را به‌همراه جزئیات بیشتر مانند نوع پارتیشن، اندازه و فرمت نمایش می‌دهد.


3. استفاده از منابع ذخیره‌سازی برای ماشین‌های مجازی

پس از مشاهده منابع ذخیره‌سازی موجود، شما می‌توانید از این منابع برای ذخیره‌سازی داده‌ها و دیسک‌های ماشین‌های مجازی استفاده کنید. در اینجا، نحوه استفاده از منابع ذخیره‌سازی از طریق Web UI توضیح داده شده است.

3.1. اضافه کردن دیسک به ماشین مجازی
  1. در Web UI، وارد صفحه Datacenter شوید و سپس روی Node که ماشین مجازی موردنظر در آن قرار دارد، کلیک کنید.
  2. به تب Virtual Machines بروید و ماشین مجازی موردنظر خود را انتخاب کنید.
  3. روی Hardware کلیک کنید و سپس گزینه Add را انتخاب کنید.
  4. گزینه Hard Disk را انتخاب کنید تا دیسک جدیدی به ماشین مجازی اضافه شود.
  5. در پنجره بازشده، نوع ذخیره‌سازی (مثل Local، NFS یا iSCSI) را انتخاب کنید.
  6. ظرفیت دیسک جدید را وارد کنید و تنظیمات دیگر را به دلخواه تغییر دهید.
  7. پس از اعمال تنظیمات، روی Add کلیک کنید.
3.2. استفاده از منابع ذخیره‌سازی برای کانتینرها

برای اضافه کردن دیسک به یک کانتینر نیز مراحل مشابهی وجود دارد:

  1. به صفحه Datacenter بروید و سپس Node و کانتینر موردنظر خود را انتخاب کنید.
  2. وارد بخش Hardware شوید.
  3. روی Add کلیک کرده و Disk را انتخاب کنید.
  4. تنظیمات ذخیره‌سازی مانند نوع و ظرفیت دیسک را تعیین کنید.
  5. روی Add کلیک کنید تا دیسک به کانتینر اضافه شود.

4. حذف منابع ذخیره‌سازی

گاهی اوقات شما ممکن است بخواهید یک منبع ذخیره‌سازی را حذف کنید. این کار می‌تواند زمانی مفید باشد که دیگر به منابع ذخیره‌سازی خاصی نیازی ندارید.

4.1. حذف دیسک از ماشین مجازی یا کانتینر

برای حذف یک دیسک از ماشین مجازی یا کانتینر:

  1. وارد صفحه Datacenter شوید و ماشین مجازی یا کانتینر موردنظر را انتخاب کنید.
  2. به تب Hardware بروید.
  3. دیسک موردنظر را انتخاب کنید.
  4. روی Remove کلیک کنید تا دیسک حذف شود.
4.2. حذف منابع ذخیره‌سازی از Web UI

برای حذف یک منبع ذخیره‌سازی از طریق Web UI:

  1. وارد صفحه Datacenter شوید.
  2. به تب Storage بروید.
  3. منبع ذخیره‌سازی که می‌خواهید حذف کنید را انتخاب کنید.
  4. روی Delete کلیک کنید تا منبع ذخیره‌سازی حذف شود.

جمع‌بندی

در این بخش، روش‌های مختلفی برای نمایش منابع ذخیره‌سازی موجود در سیستم از طریق Web UI و خط فرمان بررسی شد. Web UI پروکسموکس ابزارهای گرافیکی مناسبی برای نمایش وضعیت ذخیره‌سازی‌ها فراهم می‌آورد و به شما این امکان را می‌دهد که منابع ذخیره‌سازی را به راحتی مشاهده کرده و از آن‌ها برای ماشین‌های مجازی و کانتینرها استفاده کنید. از طرفی، دستورات خط فرمان مانند df, lsblk, و fdisk نیز به‌عنوان ابزارهای مفید برای بررسی وضعیت ذخیره‌سازی در سیستم‌های لینوکس شناخته می‌شوند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیکربندی ذخیره‌سازی جدید از Web UI” subtitle=”توضیحات کامل”]در این بخش، نحوه افزودن انواع مختلف ذخیره‌سازی به سیستم Proxmox از طریق Web UI شرح داده می‌شود. سه نوع ذخیره‌سازی مهم که می‌توانیم به سیستم اضافه کنیم شامل ذخیره‌سازی محلی (Local Storage)، NFS (Network File System) و iSCSI هستند. هر کدام از این ذخیره‌سازی‌ها ویژگی‌ها و کاربرد خاص خود را دارند که بسته به نیاز می‌توانید از آن‌ها استفاده کنید.


1. افزودن ذخیره‌سازی محلی (Local Storage)

ذخیره‌سازی محلی به فضای دیسک سختی اشاره دارد که به طور فیزیکی در سرور Proxmox شما وجود دارد. این نوع ذخیره‌سازی معمولاً برای ذخیره‌سازی داده‌های ماشین‌های مجازی یا کانتینرها به کار می‌رود.

1.1. مراحل افزودن ذخیره‌سازی محلی
  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید و سپس بر روی Storage در منوی سمت چپ کلیک کنید.
  3. در صفحه Storage، بر روی Add در گوشه سمت راست بالا کلیک کنید.
  4. گزینه Directory را انتخاب کنید، چرا که برای ذخیره‌سازی محلی، معمولاً از دایرکتوری به عنوان محل ذخیره‌سازی استفاده می‌شود.
  5. در پنجره باز شده، تنظیمات ذخیره‌سازی محلی را وارد کنید:
    • ID: نام ذخیره‌سازی جدید (مثلاً local-storage).
    • Directory: مسیر دایرکتوری محلی که قرار است برای ذخیره‌سازی استفاده شود.
    • Content: انتخاب محتوایی که ذخیره‌سازی جدید برای آن استفاده خواهد شد (مانند VZDump backup files, Disk image, ISO image, و غیره).
    • Max Backups: تعداد پشتیبان‌هایی که ذخیره‌سازی می‌تواند نگه دارد.
  6. پس از تنظیمات، بر روی Add کلیک کنید.
1.2. دستور پیکربندی ذخیره‌سازی محلی از طریق خط فرمان

برای افزودن ذخیره‌سازی محلی از طریق خط فرمان، ابتدا باید مسیر دایرکتوری را ایجاد کرده و سپس تنظیمات ذخیره‌سازی را به فایل پیکربندی Proxmox اضافه کنید.

  1. ابتدا دایرکتوری محلی را بسازید:
mkdir /mnt/pve/local-storage
  1. سپس فایل پیکربندی ذخیره‌سازی را ویرایش کنید:
nano /etc/pve/storage.cfg
  1. در این فایل، تنظیمات ذخیره‌سازی را به شکل زیر اضافه کنید:
dir: local-storage
    path /mnt/pve/local-storage
    content iso, backup, vztmpl, rootdir
    maxfiles 5
  1. تغییرات را ذخیره کنید و فایل را ببندید.

2. افزودن ذخیره‌سازی NFS

NFS یک پروتکل شبکه‌ای است که به شما اجازه می‌دهد تا فضای ذخیره‌سازی را از یک سرور دیگر به سیستم Proxmox خود متصل کنید.

2.1. مراحل افزودن ذخیره‌سازی NFS
  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید و سپس بر روی Storage در منوی سمت چپ کلیک کنید.
  3. در صفحه Storage، بر روی Add کلیک کنید و گزینه NFS را انتخاب کنید.
  4. در پنجره باز شده، تنظیمات NFS را وارد کنید:
    • ID: نام ذخیره‌سازی NFS (مثلاً nfs-storage).
    • Server: آدرس IP یا نام سرور NFS که فضای ذخیره‌سازی را ارائه می‌دهد.
    • Export: مسیر Export شده از سرور NFS که قصد دارید آن را متصل کنید.
    • Content: انتخاب محتوای ذخیره‌سازی (ISO, Disk image, Backup, و غیره).
    • Max Backups: تعداد پشتیبان‌هایی که می‌توان در این ذخیره‌سازی ذخیره کرد.
  5. بر روی Add کلیک کنید تا ذخیره‌سازی NFS به سیستم Proxmox اضافه شود.
2.2. دستور پیکربندی ذخیره‌سازی NFS از طریق خط فرمان

برای اضافه کردن ذخیره‌سازی NFS از طریق خط فرمان، باید فایل پیکربندی /etc/pve/storage.cfg را ویرایش کنید.

  1. ویرایش فایل پیکربندی ذخیره‌سازی:
nano /etc/pve/storage.cfg
  1. تنظیمات NFS را به این فایل اضافه کنید:
nfs: nfs-storage
    server <NFS-SERVER-IP>
    export /mnt/nfs_share
    path /mnt/pve/nfs-storage
    content iso, backup, vztmpl, rootdir
    maxfiles 5
  1. تغییرات را ذخیره کنید و فایل را ببندید.

3. افزودن ذخیره‌سازی iSCSI

iSCSI یکی دیگر از پروتکل‌های شبکه‌ای است که به شما اجازه می‌دهد تا ذخیره‌سازی را از طریق شبکه به سرور Proxmox خود متصل کنید. این نوع ذخیره‌سازی به‌ویژه برای نیازهای بیشتر به فضای ذخیره‌سازی یا افزونگی استفاده می‌شود.

3.1. مراحل افزودن ذخیره‌سازی iSCSI
  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید و سپس بر روی Storage در منوی سمت چپ کلیک کنید.
  3. در صفحه Storage، بر روی Add کلیک کنید و گزینه iSCSI را انتخاب کنید.
  4. در پنجره باز شده، تنظیمات iSCSI را وارد کنید:
    • ID: نام ذخیره‌سازی iSCSI (مثلاً iscsi-storage).
    • Server: آدرس IP یا نام سرور iSCSI.
    • Target: نام یا آدرس هدف iSCSI.
    • Portal: پورت iSCSI (به‌طور معمول 3260).
    • LUN: شماره LUN (Logical Unit Number) که می‌خواهید به آن متصل شوید.
    • Content: نوع محتوای ذخیره‌سازی (مثل ISO, Disk Image, و غیره).
  5. بر روی Add کلیک کنید تا ذخیره‌سازی iSCSI به سیستم Proxmox اضافه شود.
3.2. دستور پیکربندی ذخیره‌سازی iSCSI از طریق خط فرمان

برای افزودن ذخیره‌سازی iSCSI از طریق خط فرمان، ابتدا باید اطلاعات مربوط به iSCSI را به فایل پیکربندی اضافه کنید.

  1. ویرایش فایل پیکربندی ذخیره‌سازی:
nano /etc/pve/storage.cfg
  1. تنظیمات iSCSI را به این فایل اضافه کنید:
iscsi: iscsi-storage
    portal <iSCSI-SERVER-IP>:3260
    target iqn.2025-04.com.example:storage.disk1
    content iso, backup, vztmpl, rootdir
    maxfiles 5
  1. تغییرات را ذخیره کنید و فایل را ببندید.

جمع‌بندی

در این بخش، نحوه افزودن سه نوع ذخیره‌سازی مختلف شامل ذخیره‌سازی محلی (Local Storage)، NFS و iSCSI از طریق Web UI و خط فرمان توضیح داده شد. Web UI پروکسموکس به شما امکان می‌دهد تا به راحتی این ذخیره‌سازی‌ها را پیکربندی کرده و از آن‌ها برای ذخیره‌سازی داده‌های ماشین‌های مجازی یا کانتینرها استفاده کنید. به علاوه، دستورات خط فرمان به شما این امکان را می‌دهند که پیکربندی‌های مشابه را به‌صورت مستقیم و بدون نیاز به واسطه گرافیکی انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیکربندی Ceph و ZFS در محیط Proxmox” subtitle=”توضیحات کامل”]در این بخش به پیکربندی Ceph و ZFS در محیط Proxmox خواهیم پرداخت. این دو تکنولوژی ذخیره‌سازی از جمله راهکارهای پیشرفته برای ایجاد سیستم‌های ذخیره‌سازی توزیع‌شده و با افزونگی بالا هستند که در محیط‌های مجازی‌سازی بسیار مورد استفاده قرار می‌گیرند. هر کدام از این سیستم‌ها دارای مزایا و ویژگی‌های خاص خود هستند که می‌توانند بر اساس نیاز، عملکرد بهتری ارائه دهند.


1. پیکربندی Ceph در Proxmox

Ceph یک سیستم ذخیره‌سازی توزیع‌شده است که می‌تواند برای ایجاد یک خوشه ذخیره‌سازی مقیاس‌پذیر و با افزونگی بالا استفاده شود. Proxmox از Ceph به عنوان یک راهکار ذخیره‌سازی برای ماشین‌های مجازی و کانتینرها پشتیبانی می‌کند.

1.1. مراحل نصب Ceph در Proxmox
  1. ابتدا باید Proxmox را به‌روز کنید تا آخرین نسخه از پکیج‌های Ceph در دسترس شما باشد:
apt update
apt upgrade
  1. پس از آن، پکیج‌های Ceph را نصب کنید:
apt install proxmox-ve ceph ceph-fuse ceph-mds ceph-mon ceph-osd ceph-common
  1. پس از نصب پکیج‌ها، باید یک Ceph Monitor راه‌اندازی کنید. برای انجام این کار، دستور زیر را وارد کنید:
ceph-deploy new <hostname-of-monitor-node>
  1. سپس باید Ceph OSD (Object Storage Daemon) ها را راه‌اندازی کنید. برای این کار باید دیسک‌هایی را به عنوان OSD ها مشخص کنید. دستور زیر برای افزودن یک دیسک به عنوان OSD استفاده می‌شود:
ceph-deploy osd create <hostname-of-node>:<disk>
  1. پس از نصب و پیکربندی Ceph، باید سرویس‌های مختلف Ceph را فعال کنید:
systemctl start ceph.target
systemctl enable ceph.target
1.2. پیکربندی Ceph از طریق Web UI
  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید و سپس به بخش Ceph دسترسی پیدا کنید.
  3. در اینجا، می‌توانید وضعیت خوشه Ceph خود را مشاهده کرده و تنظیمات مختلفی را پیکربندی کنید، مانند اضافه کردن Monitor و OSD، مدیریت Pools، و بررسی سلامت کلی خوشه.
  4. برای افزودن یک Ceph OSD جدید، کافی است به بخش Disks بروید، دیسک جدید را انتخاب کرده و گزینه Create: OSD را بزنید.
1.3. دستور پیکربندی Ceph از طریق خط فرمان

برای پیکربندی Ceph از طریق خط فرمان، تغییرات باید در فایل پیکربندی Ceph انجام شود:

nano /etc/ceph/ceph.conf

در این فایل، می‌توانید تنظیمات مربوط به Ceph Cluster، مانند آدرس‌های Monitorها، پارامترهای شبکه و غیره را وارد کنید.


2. پیکربندی ZFS در Proxmox

ZFS یک سیستم فایل و حجم‌دهی داده‌است که به‌ویژه برای ذخیره‌سازی داده‌ها در محیط‌های مجازی‌سازی مناسب است. ZFS در Proxmox برای مدیریت ذخیره‌سازی با امکاناتی مانند Snapshot، Replication، Compression و Deduplication به کار می‌رود.

2.1. نصب و پیکربندی ZFS در Proxmox

برای استفاده از ZFS در Proxmox، ابتدا باید پکیج‌های مورد نیاز را نصب کنید.

  1. نصب پکیج ZFS در Proxmox:
apt install zfsutils-linux
  1. پس از نصب پکیج‌ها، باید ZFS را راه‌اندازی کنید. برای این منظور از دستور زیر استفاده کنید:
modprobe zfs
  1. حالا می‌توانید یک ZFS Pool بسازید. برای این کار از دستور زیر استفاده می‌کنیم:
zpool create <pool-name> <disk1> <disk2>

به عنوان مثال، اگر می‌خواهید یک ZFS Pool به نام myzfs با دو دیسک /dev/sda و /dev/sdb ایجاد کنید:

zpool create myzfs /dev/sda /dev/sdb
2.2. پیکربندی ZFS از Web UI
  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید و سپس به بخش Storage دسترسی پیدا کنید.
  3. در اینجا، می‌توانید ZFS را به عنوان نوع ذخیره‌سازی انتخاب کنید.
  4. بر روی Add کلیک کنید و گزینه ZFS را انتخاب کنید.
  5. تنظیمات ZFS را وارد کنید:
    • ID: نام ذخیره‌سازی (برای مثال myzfs-storage).
    • Pool: انتخاب ZFS Pool ایجاد شده (مثلاً myzfs).
    • Content: تعیین محتواهایی که این ذخیره‌سازی می‌تواند داشته باشد، مانند Disk Image، ISO، و غیره.
  6. پس از وارد کردن تنظیمات، بر روی Add کلیک کنید تا ذخیره‌سازی ZFS به سیستم اضافه شود.
2.3. دستور پیکربندی ZFS از طریق خط فرمان

برای پیکربندی ZFS از طریق خط فرمان در فایل پیکربندی /etc/pve/storage.cfg، به‌صورت زیر عمل کنید:

  1. ویرایش فایل پیکربندی ذخیره‌سازی:
nano /etc/pve/storage.cfg
  1. افزودن تنظیمات ZFS به فایل:
zfs: myzfs-storage
    pool myzfs
    content iso, backup, disk
  1. تغییرات را ذخیره کرده و فایل را ببندید.

جمع‌بندی

در این بخش، نحوه پیکربندی Ceph و ZFS در محیط Proxmox را بررسی کردیم. Ceph به‌عنوان یک راهکار ذخیره‌سازی توزیع‌شده برای محیط‌های مقیاس‌پذیر مناسب است، در حالی که ZFS یک سیستم فایل با قابلیت‌های قدرتمند برای مدیریت داده‌ها در محیط‌های مجازی‌سازی است. شما می‌توانید با استفاده از Web UI یا خط فرمان این سیستم‌های ذخیره‌سازی را به راحتی پیکربندی کنید و به منابع ذخیره‌سازی جدید دسترسی پیدا کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مشاهده وضعیت فضای ذخیره‌سازی و تخصیص منابع به ماشین‌های مجازی و کانتینرها” subtitle=”توضیحات کامل”]در این بخش به بررسی نحوه مشاهده وضعیت فضای ذخیره‌سازی در Proxmox و نحوه تخصیص منابع به ماشین‌های مجازی و کانتینرها خواهیم پرداخت. این اطلاعات برای مدیریت منابع سیستم و بهینه‌سازی عملکرد محیط‌های مجازی‌سازی بسیار حیاتی است. همچنین، شما قادر خواهید بود که از طریق Web UI و خط فرمان این اطلاعات را مشاهده کنید.


1. مشاهده وضعیت فضای ذخیره‌سازی در Proxmox

در Proxmox می‌توانید وضعیت فضای ذخیره‌سازی موجود و میزان استفاده شده از آن را به راحتی از طریق Web UI یا خط فرمان مشاهده کنید.

1.1. مشاهده وضعیت فضای ذخیره‌سازی از طریق Web UI

برای مشاهده وضعیت فضای ذخیره‌سازی در Proxmox از Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکسموکس شوید.
  2. به بخش Datacenter بروید.
  3. سپس از منوی سمت چپ، گزینه Storage را انتخاب کنید.
  4. در اینجا، لیستی از انواع ذخیره‌سازی‌های موجود نمایش داده می‌شود. برای هر ذخیره‌سازی، میزان فضای استفاده‌شده و فضای آزاد نمایش داده خواهد شد.
  5. همچنین می‌توانید با کلیک بر روی هر ذخیره‌سازی، جزئیات بیشتری مانند پوشه‌های ذخیره‌سازی، پیکربندی ذخیره‌سازی و استفاده از منابع را مشاهده کنید.
1.2. مشاهده وضعیت فضای ذخیره‌سازی از طریق خط فرمان

برای مشاهده وضعیت فضای ذخیره‌سازی از طریق خط فرمان، دستورهای زیر را می‌توانید استفاده کنید:

  • برای مشاهده فضای کل و استفاده شده در سیستم فایل:
df -h

این دستور وضعیت فضای ذخیره‌سازی را به‌صورت خلاصه نمایش می‌دهد. مقادیر نشان‌دهنده فضای آزاد، فضای استفاده‌شده و فضای کل به‌صورت گیگابایت و ترابایت خواهند بود.

  • برای مشاهده وضعیت ذخیره‌سازی ZFS (اگر از ZFS استفاده می‌کنید):
zpool list

این دستور اطلاعات مربوط به فضای ذخیره‌سازی ZFS Pool را نمایش می‌دهد.

  • برای مشاهده وضعیت ذخیره‌سازی Ceph (اگر از Ceph استفاده می‌کنید):
ceph -s

این دستور وضعیت کلی خوشه Ceph، از جمله حجم فضای استفاده‌شده و فضای آزاد را نمایش می‌دهد.


2. مشاهده تخصیص منابع به ماشین‌های مجازی و کانتینرها

برای مشاهده تخصیص منابع مانند CPU، RAM و Disk به ماشین‌های مجازی و کانتینرها، می‌توان از Web UI یا خط فرمان استفاده کرد.

2.1. مشاهده تخصیص منابع از طریق Web UI

برای مشاهده تخصیص منابع به ماشین‌های مجازی و کانتینرها از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکسموکس شوید.
  2. از منوی سمت چپ، بخش Datacenter را انتخاب کنید.
  3. سپس بر روی Virtual Machine یا Container کلیک کنید تا لیست ماشین‌های مجازی یا کانتینرها نمایش داده شود.
  4. با انتخاب هر ماشین مجازی یا کانتینر، در پنل سمت راست، بخش‌هایی مانند Hardware و Resources را مشاهده خواهید کرد.
    • CPU: تعداد هسته‌ها و تخصیص درصد از منابع CPU.
    • RAM: میزان حافظه تخصیص داده شده.
    • Disk: فضای دیسک تخصیص داده شده به ماشین مجازی یا کانتینر.
2.2. مشاهده تخصیص منابع از طریق خط فرمان

برای مشاهده تخصیص منابع به ماشین‌های مجازی و کانتینرها از طریق خط فرمان، می‌توانید از دستورهای زیر استفاده کنید:

  • مشاهده تخصیص CPU و RAM به ماشین‌های مجازی:
pveam available

این دستور لیست ماشین‌های مجازی و کانتینرها را با جزئیات منابع تخصیص داده شده به آنها نمایش می‌دهد.

  • مشاهده وضعیت ماشین‌های مجازی و تخصیص منابع آنها:
qm config <VMID>

این دستور اطلاعاتی در مورد ماشین مجازی با شناسه <VMID> نمایش می‌دهد، از جمله تخصیصات RAM، CPU و Disk.

  • مشاهده وضعیت کانتینرها:
pct config <CTID>

این دستور اطلاعات کانتینر با شناسه <CTID> را نمایش می‌دهد، شامل تخصیصات CPU، RAM و Disk.


جمع‌بندی

در این بخش، نحوه مشاهده وضعیت فضای ذخیره‌سازی و تخصیص منابع به ماشین‌های مجازی و کانتینرها را بررسی کردیم. استفاده از Web UI برای مشاهده وضعیت منابع بسیار ساده و کاربردی است، اما در برخی موارد برای مدیریت دقیق‌تر، دستورات خط فرمان نیز ابزار مفیدی خواهند بود. این اطلاعات به مدیران سیستم کمک می‌کند تا عملکرد سیستم مجازی‌سازی را بهینه کرده و در صورت لزوم منابع را بازبینی و تغییر دهند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پشتیبانی از افزونگی و بکاپ‌گیری از داده‌ها از طریق Web UI” subtitle=”توضیحات کامل”]در این بخش، به نحوه پشتیبانی از افزونگی و بکاپ‌گیری از داده‌ها در Proxmox از طریق Web UI خواهیم پرداخت. افزونگی و بکاپ‌گیری از داده‌ها از موارد حیاتی در مدیریت سیستم‌های مجازی است تا از از دست رفتن داده‌ها در صورت بروز مشکلات جلوگیری شود. با استفاده از Web UI، مدیریت بکاپ‌ها و تنظیمات افزونگی به راحتی قابل انجام است.


1. پشتیبانی از افزونگی در Proxmox

افزونگی در Proxmox می‌تواند در سطوح مختلفی پیاده‌سازی شود. یکی از روش‌های رایج برای پیاده‌سازی افزونگی، استفاده از Ceph برای ذخیره‌سازی توزیع‌شده است. با استفاده از Ceph، داده‌ها در چندین گره توزیع می‌شوند تا در صورت بروز مشکل در یک گره، داده‌ها در گره‌های دیگر قابل دسترسی باشند.

1.1. افزونگی ذخیره‌سازی با استفاده از Ceph

برای استفاده از افزونگی با Ceph در Proxmox، ابتدا باید خوشه Ceph را راه‌اندازی کرده و آن را به سیستم Proxmox متصل کنید. سپس می‌توانید از ذخیره‌سازی توزیع‌شده Ceph استفاده کنید تا افزونگی داده‌ها را در سراسر خوشه پیاده‌سازی کنید.

برای راه‌اندازی Ceph از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI شوید و به بخش Datacenter بروید.
  2. از منوی سمت چپ، گزینه Ceph را انتخاب کنید.
  3. در اینجا می‌توانید خوشه Ceph را ایجاد کرده و گره‌ها را به آن اضافه کنید.
  4. پس از افزودن گره‌ها، Ceph Monitor و Ceph OSD را پیکربندی کرده و داده‌ها را در خوشه توزیع کنید.

2. بکاپ‌گیری از داده‌ها در Proxmox

بکاپ‌گیری منظم از ماشین‌های مجازی و کانتینرها یکی از اقدامات مهم برای حفظ اطلاعات است. Proxmox امکانات قدرتمندی برای بکاپ‌گیری و بازیابی داده‌ها ارائه می‌دهد که می‌توانید از آن‌ها از طریق Web UI استفاده کنید.

2.1. پیکربندی بکاپ‌گیری از طریق Web UI

برای انجام بکاپ‌گیری از ماشین‌های مجازی و کانتینرها، مراحل زیر را دنبال کنید:

  1. وارد Web UI شوید و به بخش Datacenter بروید.
  2. از منوی سمت چپ، گزینه Backup را انتخاب کنید.
  3. در این صفحه، روی گزینه Add کلیک کنید تا یک Backup Job جدید ایجاد کنید.
  4. در اینجا، می‌توانید تنظیمات زیر را پیکربندی کنید:
    • Backup Mode: انتخاب حالت بکاپ (کامل یا افزایشی).
    • Storage: انتخاب ذخیره‌سازی مورد نظر برای ذخیره بکاپ‌ها.
    • Schedule: زمان‌بندی انجام بکاپ (روزانه، هفتگی، ماهانه).
    • Select VMs/CTs: انتخاب ماشین‌های مجازی یا کانتینرهایی که می‌خواهید از آنها بکاپ بگیرید.
  5. پس از پیکربندی، بر روی Create کلیک کنید تا بکاپ‌گیری انجام شود.
2.2. بکاپ‌گیری دستی از ماشین‌های مجازی یا کانتینرها

برای بکاپ‌گیری دستی از یک ماشین مجازی یا کانتینر، مراحل زیر را دنبال کنید:

  1. وارد Web UI شوید.
  2. ماشین مجازی یا کانتینر مورد نظر را انتخاب کنید.
  3. در پنل سمت راست، گزینه Backup را انتخاب کنید.
  4. سپس، گزینه Backup Now را بزنید تا بکاپ‌گیری شروع شود.
  5. پس از اتمام بکاپ، می‌توانید فایل بکاپ را در بخش Storage مشاهده کنید.
2.3. بکاپ‌گیری از طریق خط فرمان

اگر بخواهید بکاپ را از طریق خط فرمان انجام دهید، از دستور زیر استفاده کنید:

برای بکاپ‌گیری از یک ماشین مجازی با شناسه <VMID>:

vzdump <VMID> --storage <StorageName> --mode snapshot

برای بکاپ‌گیری از یک کانتینر با شناسه <CTID>:

vzdump <CTID> --storage <StorageName> --mode snapshot

در این دستورات:

  • شناسه ماشین مجازی.
  • شناسه کانتینر.
  • نام ذخیره‌سازی که بکاپ در آن ذخیره می‌شود.
  • –mode snapshot به معنای بکاپ‌گیری از ماشین مجازی یا کانتینر با استفاده از حالت Snapshot است.

3. بازیابی از بکاپ

برای بازیابی از بکاپ‌ها نیز، می‌توانید از طریق Web UI یا خط فرمان اقدام کنید.

3.1. بازیابی از بکاپ از طریق Web UI

برای بازیابی از بکاپ از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI شوید و به بخش Storage بروید.
  2. روی ذخیره‌سازی‌ای که بکاپ‌ها در آن ذخیره شده‌اند کلیک کنید.
  3. در پنل سمت راست، گزینه Backup را انتخاب کنید.
  4. لیستی از بکاپ‌های موجود را مشاهده خواهید کرد. روی بکاپ مورد نظر کلیک کنید.
  5. سپس، گزینه Restore را انتخاب کنید تا بازیابی ماشین مجازی یا کانتینر از بکاپ انجام شود.
3.2. بازیابی از بکاپ از طریق خط فرمان

برای بازیابی از بکاپ از طریق خط فرمان، دستور زیر را استفاده کنید:

برای بازیابی یک ماشین مجازی با شناسه <VMID> از بکاپ:

vzrestore <BackupFile> <VMID>

برای بازیابی یک کانتینر با شناسه <CTID> از بکاپ:

vzrestore <BackupFile> <CTID>

در این دستورات:

  • فایل بکاپی که می‌خواهید بازیابی کنید.
  • یا شناسه ماشین مجازی یا کانتینر.

جمع‌بندی

در این بخش، نحوه پشتیبانی از افزونگی و بکاپ‌گیری از داده‌ها در Proxmox از طریق Web UI و خط فرمان مورد بررسی قرار گرفت. افزونگی داده‌ها با استفاده از Ceph و سایر روش‌ها امکان‌پذیر است تا از دست دادن داده‌ها جلوگیری شود. همچنین، بکاپ‌گیری به راحتی از طریق Web UI یا دستورهای خط فرمان قابل انجام است و به شما این امکان را می‌دهد که از داده‌های خود محافظت کنید. بازیابی از بکاپ‌ها نیز به سادگی قابل انجام است، بنابراین در صورت بروز هرگونه مشکل، امکان بازگشت به وضعیت قبلی وجود دارد.[/cdb_course_lesson][cdb_course_lesson title=”فصل 6. مدیریت Datacenter و Clustering در Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت Datacenter در Web UI” subtitle=”توضیحات کامل”]در Proxmox, بخش Datacenter یکی از بخش‌های اساسی است که برای مدیریت منابع، پیکربندی‌های مختلف، و نظارت بر وضعیت کلی سیستم استفاده می‌شود. در این بخش، شما می‌توانید ماشین‌های مجازی، ذخیره‌سازی، شبکه، کاربران و بسیاری از اجزای دیگر را مدیریت کنید. Web UI این امکان را به شما می‌دهد که به راحتی از طریق رابط گرافیکی تمامی این منابع را پیکربندی و نظارت کنید.

در این بخش، ما به بررسی نحوه مدیریت Datacenter از طریق Web UI و دستورات خط فرمان خواهیم پرداخت.


1. دسترسی به بخش Datacenter

برای دسترسی به بخش Datacenter در Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI Proxmox شوید.
  2. در منوی سمت چپ، روی گزینه Datacenter کلیک کنید.
  3. در این بخش، شما می‌توانید منابع مختلفی مانند ماشین‌های مجازی، ذخیره‌سازی‌ها، شبکه‌ها و کاربران را مشاهده و مدیریت کنید.

2. مدیریت منابع در Datacenter

در این بخش، شما می‌توانید به تنظیمات مختلف Datacenter از جمله منابع پردازشی، ذخیره‌سازی، شبکه‌ها و دسترسی‌ها پرداخته و آن‌ها را مدیریت کنید.

2.1. مدیریت ماشین‌های مجازی

برای مدیریت ماشین‌های مجازی در Datacenter:

  1. از منوی سمت چپ، گزینه VMs را انتخاب کنید.
  2. ماشین‌های مجازی ایجاد شده را مشاهده خواهید کرد.
  3. شما می‌توانید ماشین‌های مجازی را با استفاده از گزینه‌های Create VM (برای ایجاد ماشین مجازی جدید) و گزینه‌های موجود برای هر VM، مدیریت کنید.

دستورات خط فرمان برای ایجاد VM:

برای ایجاد یک ماشین مجازی جدید از خط فرمان، از دستور زیر استفاده کنید:

qm create <VMID> --name <VMName> --memory <RAMSize> --net0 virtio,bridge=vmbr0 --disk <DiskSize>,format=qcow2

در این دستور:

  • شناسه ماشین مجازی.
  • نام ماشین مجازی.
  • اندازه RAM به مگابایت.
  • اندازه دیسک به گیگابایت.
2.2. مدیریت ذخیره‌سازی

برای مدیریت ذخیره‌سازی در Datacenter، گزینه Storage را انتخاب کنید.

  1. برای افزودن ذخیره‌سازی جدید، روی Add کلیک کنید و گزینه مناسب مانند Directory, LVM, NFS, یا Ceph را انتخاب کنید.
  2. ذخیره‌سازی‌های موجود را می‌توانید از این بخش مشاهده کنید و آن‌ها را تنظیم و مدیریت کنید.

دستورات خط فرمان برای افزودن ذخیره‌سازی جدید:

برای افزودن ذخیره‌سازی به صورت Directory از خط فرمان، دستور زیر را استفاده کنید:

pveam update

برای افزودن ذخیره‌سازی از نوع NFS:

pvesm add nfs <StorageName> --server <ServerAddress> --export <ExportPath> --content iso,backup

در این دستور:

  • نام ذخیره‌سازی.
  • آدرس سرور NFS.
  • مسیر پوشه‌ای که ذخیره‌سازی NFS بر روی آن قرار دارد.
2.3. مدیریت شبکه

برای مدیریت شبکه در Datacenter:

  1. از منوی سمت چپ، گزینه Network را انتخاب کنید.
  2. در این بخش، شما می‌توانید تنظیمات شبکه‌ای مختلف از جمله Bridge، VLAN و Bonding را انجام دهید.

دستورات خط فرمان برای پیکربندی شبکه:

برای ایجاد یک bridge network جدید:

nano /etc/network/interfaces

سپس در فایل پیکربندی، موارد زیر را اضافه کنید:

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

برای اضافه کردن یک VLAN:

auto vlan10
iface vlan10 inet static
    address 192.168.10.1
    netmask 255.255.255.0
    vlan_raw_device eth0
2.4. مدیریت کاربران و دسترسی‌ها

برای مدیریت کاربران و دسترسی‌ها در Datacenter:

  1. به بخش Datacenter بروید.
  2. از منوی سمت چپ، گزینه Users را انتخاب کنید.
  3. در این بخش، می‌توانید کاربران جدید را ایجاد کرده و سطوح دسترسی آن‌ها را تنظیم کنید.

برای افزودن یک کاربر جدید از Web UI:

  1. روی گزینه Add در بخش Users کلیک کنید.
  2. اطلاعات مورد نیاز کاربر جدید را وارد کنید و سطح دسترسی مناسب را برای او تعیین کنید.

دستورات خط فرمان برای افزودن کاربر جدید:

برای افزودن یک کاربر جدید از خط فرمان:

pveum user add <username>@<realm> --password <password>

برای تعیین دسترسی‌ها به یک کاربر:

pveum aclmod /vms/<VMID> --user <username>@<realm> --role <role>

در این دستورات:

  • نام کاربر.
  • نام realm (مثل pam یا pve).
  • رمز عبور.
  • شناسه ماشین مجازی.
  • نقش (مثل Administrator یا User).

3. نظارت بر وضعیت Datacenter

در بخش Datacenter, شما می‌توانید اطلاعات مربوط به وضعیت سیستم، استفاده از منابع، و وضعیت شبکه و ذخیره‌سازی را مشاهده کنید.

3.1. بررسی وضعیت منابع

برای بررسی وضعیت منابع از جمله CPU، RAM و Disk در Datacenter:

  1. به بخش Dashboard در Datacenter بروید.
  2. در این بخش، وضعیت کلی سیستم از جمله استفاده از منابع، تعداد ماشین‌های مجازی و کانتینرها و وضعیت شبکه نمایش داده می‌شود.
3.2. نظارت بر وضعیت ذخیره‌سازی و شبکه

برای نظارت بر وضعیت ذخیره‌سازی و شبکه:

  1. به بخش Storage و Network در Datacenter بروید.
  2. در اینجا، وضعیت شبکه، فضای ذخیره‌سازی و دستگاه‌های متصل به سیستم نمایش داده می‌شود.

جمع‌بندی

در این بخش، نحوه مدیریت Datacenter در Proxmox از طریق Web UI مورد بررسی قرار گرفت. شما می‌توانید منابع مختلف مانند ماشین‌های مجازی، ذخیره‌سازی، شبکه‌ها، و کاربران را مدیریت کرده و پیکربندی‌های مختلف را به راحتی انجام دهید. افزون بر این، دستورات خط فرمان نیز به شما این امکان را می‌دهند که تنظیمات مورد نظر را از طریق ترمینال انجام دهید. نظارت بر وضعیت سیستم نیز از طریق داشبوردها و بخش‌های مختلف امکان‌پذیر است تا همیشه از وضعیت کلی سیستم آگاه باشید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد و مدیریت Clusters در Proxmox VE از طریق Web UI” subtitle=”توضیحات کامل”]در Proxmox VE، مفهوم Cluster به مجموعه‌ای از نودهای فیزیکی اشاره دارد که با یکدیگر همکاری کرده و به صورت مشترک منابع را مدیریت می‌کنند. در این بخش، نحوه ایجاد و مدیریت Cluster در Proxmox VE از طریق Web UI و همچنین استفاده از دستورات خط فرمان را بررسی خواهیم کرد.


1. آشنایی با مفاهیم Cluster در Proxmox VE

یک Cluster در Proxmox VE به شما این امکان را می‌دهد که چندین Nod (ماشین فیزیکی) را با یکدیگر ترکیب کنید تا منابع به صورت بهینه توزیع شده و مدیریت شوند. در این محیط، شما می‌توانید به راحتی ماشین‌های مجازی (VM) و کانتینرها را در Nodes مختلف توزیع کنید و به راحتی وضعیت و منابع آن‌ها را مدیریت نمایید.

مزایای استفاده از Cluster:

  • توزیع بار بین چندین Node.
  • امکان مدیریت متمرکز ماشین‌های مجازی و کانتینرها.
  • فراهم آوردن افزونگی و پایداری بیشتر از طریق High Availability (HA).

2. ایجاد Cluster در Proxmox VE

برای ایجاد یک Cluster در Proxmox VE از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI Proxmox شوید.
  2. از منوی سمت چپ، به Datacenter بروید.
  3. در منوی بالایی، گزینه Cluster را انتخاب کنید.
  4. روی گزینه Create Cluster کلیک کنید.
  5. در فرم نمایش داده شده، نام Cluster خود را وارد کرده و تنظیمات اولیه را مشخص کنید:
    • Cluster Name: نام خوشه‌ای که می‌خواهید ایجاد کنید.
    • Network: آدرس شبکه‌ای که برای ارتباط بین نودها استفاده می‌شود.
    • Cluster Network: تعیین شبکه اختصاصی برای ارتباطات خوشه‌ای.
  6. پس از پر کردن فرم، روی Create کلیک کنید تا Cluster ساخته شود.

3. افزودن Nodes به Cluster

پس از ایجاد Cluster، می‌توانید Nodes مختلف را به آن اضافه کنید. برای افزودن یک Node به Cluster از Web UI، مراحل زیر را دنبال کنید:

  1. در صفحه Cluster، روی گزینه Join Cluster کلیک کنید.
  2. در این فرم:
    • Cluster Name: نام Cluster که از قبل ایجاد کرده‌اید.
    • IP Address: آدرس IP نود Cluster که می‌خواهید به آن بپیوندید.
    • Root Password: رمز عبور ریشه برای نود.
  3. پس از وارد کردن اطلاعات، روی Join کلیک کنید.

دستورات خط فرمان برای اضافه کردن Node به Cluster:

برای پیوستن به یک Cluster از خط فرمان، از دستور زیر استفاده کنید:

pvecm add <IP_of_Cluster_Master> -rootpassword <root_password>

در این دستور:

  • <IP_of_Cluster_Master> آدرس IP نود اصلی Cluster.
  • <root_password> رمز عبور ریشه برای دسترسی به نود.

4. مدیریت Cluster از طریق Web UI

پس از ایجاد و افزودن Nodes به Cluster، شما می‌توانید از Web UI برای مدیریت منابع و وضعیت کلی Cluster استفاده کنید.

4.1. مشاهده وضعیت Cluster

برای مشاهده وضعیت کلی Cluster و نودهای متصل:

  1. به بخش Datacenter بروید.
  2. در منوی سمت چپ، گزینه Cluster را انتخاب کنید.
  3. در اینجا، شما می‌توانید اطلاعات مربوط به تعداد Nodes، وضعیت هر Node، و وضعیت Cluster به صورت کلی مشاهده کنید.
4.2. مدیریت منابع و پیکربندی‌های Cluster

در Web UI، شما می‌توانید تنظیمات مختلف مربوط به منابع مانند ذخیره‌سازی، شبکه، و ماشین‌های مجازی را در سطح Cluster مدیریت کنید. به عنوان مثال:

  1. در بخش Datacenter، به زیرمنوی Storage بروید.
  2. از اینجا می‌توانید ذخیره‌سازی را به صورت اشتراکی برای Cluster ایجاد کرده و به نودهای مختلف اختصاص دهید.
  3. همچنین در بخش Network، می‌توانید تنظیمات شبکه‌ای را به گونه‌ای تنظیم کنید که تمام نودها از یک شبکه مجازی مشترک استفاده کنند.

5. پشتیبانی از High Availability (HA) در Cluster

یکی از ویژگی‌های مهم در مدیریت Cluster، امکان فعال‌سازی High Availability است که به کمک آن می‌توانید اطمینان حاصل کنید که ماشین‌های مجازی همیشه در دسترس خواهند بود، حتی در صورت بروز مشکلات در یک نود.

5.1. فعال‌سازی High Availability

برای فعال‌سازی HA در Cluster از Web UI:

  1. در بخش Datacenter، گزینه HA را انتخاب کنید.
  2. روی Enable HA کلیک کنید و گزینه‌های مورد نیاز مانند HA Groups و Priority را تنظیم کنید.
  3. سپس ماشین‌های مجازی که باید به HA اضافه شوند را انتخاب کنید.

دستورات خط فرمان برای فعال‌سازی HA:

برای فعال‌سازی High Availability از خط فرمان، از دستور زیر استفاده کنید:

ha-manager add <VMID>

در این دستور:

  • شناسه ماشین مجازی که باید به HA افزوده شود.

6. مدیریت Cluster از طریق دستورات خط فرمان

علاوه بر Web UI، می‌توانید برای مدیریت Cluster از دستورات خط فرمان نیز استفاده کنید. در اینجا به برخی از دستورات مهم اشاره خواهیم کرد:

6.1. مشاهده وضعیت Cluster

برای مشاهده وضعیت Cluster از خط فرمان:

pvecm status

این دستور اطلاعاتی از جمله وضعیت Nodes و Cluster را نمایش می‌دهد.

6.2. مشاهده وضعیت Node در Cluster

برای مشاهده وضعیت هر Node:

pvecm nodes

این دستور لیستی از نودهای متصل به Cluster و وضعیت هر یک را نمایش می‌دهد.

6.3. حذف Node از Cluster

برای حذف یک Node از Cluster:

pvecm delnode <NodeName>

در این دستور:

  • نام Node که می‌خواهید از Cluster حذف کنید.

جمع‌بندی

در این بخش، نحوه ایجاد و مدیریت Clusters در Proxmox VE از طریق Web UI و دستورات خط فرمان بررسی شد. ایجاد Cluster به شما این امکان را می‌دهد که چندین Node را با هم ترکیب کرده و منابع را به صورت بهینه مدیریت کنید. علاوه بر این، High Availability نیز به شما این امکان را می‌دهد که ماشین‌های مجازی خود را از نظر پایداری و در دسترس بودن مدیریت کنید. Web UI ابزار بسیار قدرتمندی برای مشاهده وضعیت Cluster، مدیریت منابع و تنظیمات در سطح Cluster فراهم می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده وضعیت Nodes مختلف در Cluster” subtitle=”توضیحات کامل”]در یک Cluster پروکسیموکس، چندین Node (نود) وجود دارد که هر کدام منابع خاص خود را دارند و نقش مختلفی در مدیریت ماشین‌های مجازی و کانتینرها ایفا می‌کنند. برای نظارت و بررسی وضعیت Nodes در Cluster، شما می‌توانید از Web UI یا دستورات خط فرمان استفاده کنید. در این بخش، به توضیح روش‌های مختلف برای مشاهده وضعیت نودها در Cluster خواهیم پرداخت.


1. مشاهده وضعیت Nodes در Web UI

برای مشاهده وضعیت Node های مختلف در Cluster از طریق Web UI، مراحل زیر را دنبال کنید:

  1. ورود به Web UI:
    • وارد Web UI پروکسیموکس شوید.
  2. انتخاب Datacenter:
    • از منوی سمت چپ، به بخش Datacenter بروید.
  3. انتخاب بخش Cluster:
    • در بخش Datacenter، گزینه Cluster را انتخاب کنید.
  4. مشاهده وضعیت نودها:
    • در پنجره Cluster، می‌توانید لیست تمامی Nodes متصل به Cluster را مشاهده کنید.
    • در اینجا وضعیت هر Node از جمله CPU Usage، Memory Usage، Storage Usage، Uptime و Status هر یک از Node ها نمایش داده می‌شود.
  5. جزئیات بیشتر در مورد هر نود:
    • برای مشاهده اطلاعات بیشتر درباره هر Node، کافی است روی نام Node مورد نظر کلیک کنید. در این قسمت، می‌توانید اطلاعات دقیق‌تری از وضعیت منابع و عملکرد آن نود مشاهده کنید.

2. مشاهده وضعیت Nodes از طریق خط فرمان

اگر ترجیح می‌دهید از خط فرمان برای مشاهده وضعیت Nodes استفاده کنید، دستورات زیر به شما کمک خواهد کرد:

2.1. مشاهده وضعیت کلی Cluster و نودها

برای مشاهده وضعیت کلی Cluster و نودهای آن، از دستور زیر استفاده کنید:

pvecm status

این دستور وضعیت کلی Cluster را نمایش می‌دهد و شما می‌توانید از اطلاعات مربوط به هر نود مانند وضعیت online یا offline بودن، نسخه نرم‌افزار و وضعیت شبکه مطلع شوید.

2.2. مشاهده وضعیت تمامی Nodes در Cluster

برای مشاهده وضعیت تمام نودهای متصل به Cluster از دستور زیر استفاده کنید:

pvecm nodes

این دستور لیستی از تمام نودهای موجود در Cluster را نشان می‌دهد و اطلاعاتی مانند شناسه نود (Node ID)، نام نود، وضعیت نود (مثل online یا offline) و زمان بالا بودن سیستم (uptime) را در اختیار شما قرار می‌دهد.

مثال خروجی دستور pvecm nodes:

Node  Sts   Name          Votes   Quorum   IP Address
1     M     node1         1       1        192.168.1.1
2     M     node2         1       1        192.168.1.2
3     M     node3         1       1        192.168.1.3

در این خروجی:

  • Sts وضعیت نود را نشان می‌دهد. M به معنای Master بودن نود است.
  • Votes تعداد آراء نود در Cluster را نشان می‌دهد.
  • Quorum تعیین می‌کند که آیا Cluster به حداقل تعداد نودهای آنلاین برای تصمیم‌گیری رسیده است یا نه.
  • IP Address آدرس IP نودها را نمایش می‌دهد.
2.3. مشاهده وضعیت دقیق یک Node

برای مشاهده وضعیت دقیق‌تر یک نود خاص، از دستور زیر استفاده کنید:

pvecm status <NodeName>

در این دستور:

  • نام نودی است که می‌خواهید وضعیت آن را بررسی کنید.

این دستور اطلاعاتی از جمله وضعیت online یا offline بودن نود را نمایش می‌دهد و جزئیات بیشتری را برای آن نود فراهم می‌کند.


3. مشاهده وضعیت Node از طریق Proxmox VE Logs

برای بررسی دقیق‌تر وضعیت و مشکلات احتمالی در هر Node، شما می‌توانید از Logs استفاده کنید. این روش بیشتر برای تحلیل مشکلات و ارورهای موجود در نودهای Cluster کاربرد دارد.

  1. از منوی سمت چپ، به بخش Datacenter بروید.
  2. در زیر Datacenter، گزینه Logs را انتخاب کنید.
  3. از این بخش، شما می‌توانید Logs مربوط به هر Node و وضعیت اجرای آن را مشاهده کنید.

4. ابزارهای نظارتی اضافی برای Cluster و Nodes

برای نظارت دقیق‌تر و پیشرفته‌تر بر وضعیت Cluster و Nodes، می‌توانید از ابزارهای اضافی استفاده کنید که به شما امکان می‌دهند گزارش‌های جامع و تجزیه و تحلیل‌های عمیق‌تری ارائه دهند. از جمله این ابزارها می‌توان به Zabbix و Grafana اشاره کرد که می‌توانند به صورت یکپارچه با Proxmox VE کار کنند و اطلاعات دقیق‌تری از وضعیت عملکرد Cluster و Nodes ارائه دهند.


جمع‌بندی

در این بخش، نحوه مشاهده وضعیت Nodes مختلف در Cluster Proxmox VE با استفاده از Web UI و دستورات خط فرمان توضیح داده شد. با استفاده از این روش‌ها می‌توانید به راحتی وضعیت منابع و عملکرد نودهای مختلف را بررسی کرده و در صورت بروز مشکلات، اقدامات لازم را انجام دهید. Proxmox VE ابزارهای متنوعی را برای نظارت و مدیریت Cluster ارائه می‌دهد که باعث تسهیل در کار با Nodes و ماشین‌های مجازی در محیط‌های بزرگ می‌شود.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انجام تنظیمات HA (High Availability) برای ماشین‌های مجازی در Datacenter” subtitle=”توضیحات کامل”]در Proxmox VE، تنظیمات HA (High Availability) به شما این امکان را می‌دهد که از ماشین‌های مجازی (VMs) خود در برابر خرابی‌ها و مشکلات سخت‌افزاری حفاظت کنید. این ویژگی به طور خودکار ماشین‌های مجازی را به نود دیگری منتقل می‌کند اگر یکی از نودها در Cluster به هر دلیلی از دسترس خارج شود. تنظیمات HA در Proxmox VE به منظور افزایش قابلیت اطمینان و تضمین دسترس‌پذیری سیستم‌ها به کار می‌روند.

در این بخش، نحوه تنظیم HA برای ماشین‌های مجازی در یک Datacenter در Proxmox VE با استفاده از Web UI و دستورهای خط فرمان توضیح داده می‌شود.


1. پیش‌نیازهای HA در Proxmox VE

برای پیکربندی HA، باید مطمئن شوید که موارد زیر رعایت شده‌اند:

  • یک Cluster فعال با حداقل دو Node (نود).
  • فعال بودن Corosync برای همگام‌سازی وضعیت نودها و اطلاعات Cluster.
  • Storage مشترک که به تمامی Nodes در Cluster دسترسی دارد.
  • فعال بودن ویژگی HA در Datacenter.

2. فعال‌سازی HA در Datacenter از طریق Web UI

برای فعال کردن High Availability و پیکربندی آن در Proxmox VE، مراحل زیر را دنبال کنید:

  1. ورود به Web UI:
    • وارد Web UI پروکسیموکس شوید.
  2. انتخاب Datacenter:
    • از منوی سمت چپ، بخش Datacenter را انتخاب کنید.
  3. فعال‌سازی HA:
    • در بخش Datacenter، به تب HA بروید.
    • اگر HA فعال نیست، روی دکمه Enable HA کلیک کنید تا High Availability فعال شود.
  4. اضافه کردن ماشین‌های مجازی به HA:
    • برای افزودن یک ماشین مجازی به HA، باید آن را به عنوان یک HA resource ثبت کنید.
    • به بخش VMs در Datacenter بروید.
    • ماشین مجازی مورد نظر را انتخاب کرده و وارد تنظیمات آن شوید.
    • در تب Options، گزینه High Availability را پیدا کنید و آن را فعال کنید.
  5. تنظیم اولویت (Priority):
    • بعد از فعال‌سازی HA، می‌توانید Priority ماشین مجازی را تنظیم کنید.
    • Priority تعیین می‌کند که در صورت خرابی یک نود، کدام ماشین‌های مجازی ابتدا به نود جدید منتقل شوند.
    • برای این کار، از دکمه Edit در تب HA استفاده کنید و اولویت مورد نظر را تنظیم کنید.
  6. ذخیره و اعمال تنظیمات:
    • بعد از اعمال تنظیمات، تغییرات را ذخیره کنید و Datacenter را بروزرسانی کنید.

3. پیکربندی HA از طریق خط فرمان

برای پیکربندی HA از طریق خط فرمان، می‌توانید از دستورهای زیر استفاده کنید:

3.1. فعال‌سازی HA در Datacenter

برای فعال کردن HA در Datacenter از دستور زیر استفاده کنید:

pve-ha-manager enable

این دستور HA را برای Datacenter فعال می‌کند.

3.2. افزودن یک ماشین مجازی به HA

برای اضافه کردن یک ماشین مجازی به HA، ابتدا باید شناسه VM را بدانید. سپس از دستور زیر استفاده کنید:

pve-ha-manager add <VMID>

در این دستور:

  • شناسه ماشین مجازی (VM) است که می‌خواهید آن را به HA اضافه کنید.
3.3. تنظیم اولویت برای ماشین‌های مجازی در HA

برای تنظیم اولویت یک ماشین مجازی در HA، از دستور زیر استفاده کنید:

pve-ha-manager set <VMID> --priority <priority_value>

در این دستور:

  • شناسه ماشین مجازی است.
  • <priority_value> اولویت ماشین مجازی است (عدد بین 0 تا 1000).

ماشین‌های مجازی با اولویت بالاتر در اولویت انتقال به نود جدید قرار می‌گیرند.

3.4. مشاهده وضعیت HA در Cluster

برای مشاهده وضعیت HA در Cluster از دستور زیر استفاده کنید:

pve-ha-manager status

این دستور وضعیت تمامی منابع HA (ماشین‌های مجازی) و نودها را نمایش می‌دهد.


4. مدیریت و نظارت بر وضعیت HA

  • Web UI: برای نظارت بر وضعیت HA، به بخش Datacenter > HA در Web UI بروید. در اینجا می‌توانید وضعیت تمام ماشین‌های مجازی را مشاهده کنید و اطلاعاتی مانند اینکه کدام ماشین مجازی در حالت running است یا در failed قرار دارد، بررسی کنید.
  • خط فرمان: برای مشاهده وضعیت HA و منابع آن، از دستور زیر استفاده کنید:
pve-ha-manager status

این دستور اطلاعات مربوط به وضعیت منابع HA در Cluster را نمایش می‌دهد.


5. نکات مهم در پیکربندی HA

  • برای اجرای High Availability به ذخیره‌سازی مشترک (مانند NFS یا iSCSI) نیاز است تا ماشین‌های مجازی در نودهای مختلف Cluster قابل دسترسی باشند.
  • Corosync باید به درستی پیکربندی شده باشد تا نودها وضعیت یکدیگر را شناسایی کنند.
  • در صورت خرابی یک نود، ماشین‌های مجازی با اولویت بالاتر به نودهای دیگر منتقل می‌شوند. بنابراین، ترتیب اولویت را بر اساس نیاز خود تنظیم کنید.

جمع‌بندی

در این بخش، نحوه پیکربندی HA (High Availability) برای ماشین‌های مجازی در Datacenter Proxmox VE بررسی شد. از طریق Web UI و دستورات خط فرمان، می‌توان ماشین‌های مجازی را به HA اضافه کرده و وضعیت Cluster را مدیریت کرد. استفاده از HA باعث افزایش قابلیت اطمینان و دسترس‌پذیری ماشین‌های مجازی در برابر خرابی‌ها می‌شود. تنظیمات Priority و نظارت بر وضعیت HA از طریق Web UI و دستورات خط فرمان امکان‌پذیر است و به شما کمک می‌کند که عملکرد Cluster را بهینه کرده و در صورت نیاز به انتقال ماشین‌های مجازی از نود به نود دیگر اقدام کنید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نظارت و مدیریت وضعیت Cluster” subtitle=”توضیحات کامل”]در Proxmox VE، نظارت و مدیریت وضعیت Cluster یک بخش حیاتی است که به شما این امکان را می‌دهد تا عملکرد Cluster خود را به دقت بررسی کرده و اطمینان حاصل کنید که تمام نودها و ماشین‌های مجازی به درستی در حال اجرا هستند. این کار باعث می‌شود تا مشکلات بالقوه قبل از بروز مشکلات جدی شناسایی و رفع شوند. در این بخش، روش‌های مختلف نظارت و مدیریت وضعیت Cluster از طریق Web UI و دستورات خط فرمان به طور کامل توضیح داده می‌شود.


1. نظارت بر وضعیت Cluster از طریق Web UI

برای نظارت بر وضعیت Cluster در Proxmox VE از Web UI، مراحل زیر را دنبال کنید:

  1. ورود به Web UI:
    • ابتدا وارد Web UI Proxmox VE شوید.
  2. انتخاب Datacenter:
    • از منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  3. **نمایش وضعیت Cluster:
    • پس از انتخاب Datacenter، در منوی Cluster می‌توانید وضعیت نودهای مختلف در Cluster را مشاهده کنید.
    • وضعیت هر نود به صورت رنگی نمایش داده می‌شود:
      • سبز: نود سالم است.
      • زرد: هشدار وجود دارد.
      • قرمز: نود از دسترس خارج است.
  4. جزئیات وضعیت نودها:
    • با انتخاب هر نود، می‌توانید وضعیت دقیق آن نود را مشاهده کنید.
    • برای مشاهده وضعیت Corosync (سیستم همگام‌سازی وضعیت نودها)، به تب Status بروید.
    • همچنین می‌توانید اطلاعات مربوط به Storage، Network، و Resources را برای هر نود مشاهده کنید.
  5. نظارت بر ماشین‌های مجازی و کانتینرها:
    • در بخش VMs و Containers در Web UI می‌توانید وضعیت ماشین‌های مجازی و کانتینرهای موجود در هر نود را بررسی کنید. اگر یک ماشین مجازی یا کانتینر در حال اجرا است یا متوقف شده است، به راحتی قابل مشاهده است.
  6. نمایش لاگ‌ها:
    • در تب Logs برای هر نود، می‌توانید لاگ‌های سیستم و وضعیت آن را مشاهده کنید. این اطلاعات می‌توانند به شما کمک کنند تا هر گونه خطا یا مشکلی که ممکن است در Cluster رخ دهد، شناسایی کنید.

2. مدیریت وضعیت Cluster از طریق Web UI

برای مدیریت وضعیت Cluster، می‌توانید اقدامات زیر را انجام دهید:

  1. تنظیم مجدد وضعیت نود:
    • اگر نودی در وضعیت offline یا down قرار دارد، می‌توانید آن را دوباره راه‌اندازی کنید. برای این کار، روی نود مورد نظر کلیک کرده و از منوی Node گزینه Reboot را انتخاب کنید.
  2. **اضافه یا حذف نودها از Cluster:
    • برای اضافه کردن یک نود جدید به Cluster، به بخش Datacenter بروید و گزینه Join Cluster را انتخاب کنید.
    • برای حذف نود از Cluster، روی نود کلیک کرده و گزینه Remove from Cluster را انتخاب کنید.
  3. **نظارت بر سلامت Cluster:
    • در تب Health، می‌توانید وضعیت کلی Cluster از لحاظ سلامت سیستم را مشاهده کنید. این بخش اطلاعاتی در مورد سلامت نودها، ماشین‌های مجازی، و منابع دیگر ارائه می‌دهد.
  4. **مدیریت منابع Cluster:
    • برای مشاهده میزان استفاده از منابع (مانند CPU، RAM و Disk) در Cluster، به تب Resources بروید. این بخش نمایش‌دهنده وضعیت منابع Cluster است و می‌تواند به شما در مدیریت بهتر منابع کمک کند.

3. نظارت و مدیریت Cluster از طریق خط فرمان

برای نظارت و مدیریت وضعیت Cluster از طریق خط فرمان، می‌توانید از دستورات زیر استفاده کنید:

3.1. بررسی وضعیت کلی Cluster:

برای مشاهده وضعیت کلی Cluster و تمامی نودها، از دستور زیر استفاده کنید:

pvecm status

این دستور اطلاعاتی درباره وضعیت Cluster، تعداد نودها، و وضعیت Corosync ارائه می‌دهد.

3.2. مشاهده وضعیت نودها در Cluster:

برای مشاهده وضعیت نودهای مختلف در Cluster، از دستور زیر استفاده کنید:

pvecm nodes

این دستور لیستی از تمام نودهای موجود در Cluster را نمایش می‌دهد، همراه با وضعیت هر نود (آیا آنلاین است یا خیر).

3.3. مشاهده وضعیت Corosync:

برای بررسی وضعیت Corosync (سیستم همگام‌سازی وضعیت نودها) از دستور زیر استفاده کنید:

corosync-cfgtool -s

این دستور اطلاعاتی درباره وضعیت همگام‌سازی نودها و وضعیت Corosync در Cluster نمایش می‌دهد.

3.4. بررسی وضعیت منابع در Cluster:

برای مشاهده وضعیت استفاده از منابع در Cluster، از دستور زیر استفاده کنید:

pveperf

این دستور به شما اطلاعاتی در مورد عملکرد سیستم و منابع مختلف مانند CPU، RAM و Disk در Cluster ارائه می‌دهد.

3.5. مشاهده لاگ‌های Cluster:

برای مشاهده لاگ‌های سیستم و مشکلات ممکن در Cluster، می‌توانید از دستور زیر استفاده کنید:

journalctl -u pvedaemon

این دستور به شما اجازه می‌دهد تا لاگ‌های مربوط به pvedaemon، که مسئول مدیریت نودهای Proxmox VE است، را مشاهده کنید.


4. نکات مهم در نظارت و مدیریت Cluster

  • نظارت بر وضعیت شبکه: مشکلات شبکه ممکن است باعث از کار افتادن برخی از نودها یا ماشین‌های مجازی شود. مطمئن شوید که اتصال شبکه در Cluster پایدار است.
  • پیکربندی مناسب ذخیره‌سازی: به دلیل استفاده از Storage مشترک در Cluster، اطمینان حاصل کنید که Storage به درستی پیکربندی شده و به تمام نودها دسترسی دارد.
  • دسترسی به منابع کافی: مطمئن شوید که منابع کافی (CPU، RAM و Disk) در تمام نودها برای اجرای ماشین‌های مجازی و کانتینرها موجود است.

جمع‌بندی

در این بخش، نحوه نظارت و مدیریت وضعیت Cluster در Proxmox VE از طریق Web UI و دستورات خط فرمان بررسی شد. این ابزارها به شما این امکان را می‌دهند که عملکرد نودها، ماشین‌های مجازی، کانتینرها و منابع دیگر در Cluster را تحت نظر داشته باشید. با استفاده از Web UI و دستورات خط فرمان می‌توانید وضعیت Cluster را بررسی کرده، مشکلات بالقوه را شناسایی کرده و اقدام به مدیریت منابع کنید. این نظارت به شما کمک می‌کند تا از عملکرد بهینه Cluster اطمینان حاصل کرده و از بروز مشکلات جدی جلوگیری کنید.

[/cdb_course_lesson][cdb_course_lesson title=”فصل 7. گزارش‌ها و هشدارها در Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده رویدادها و گزارش‌های سیستم” subtitle=”توضیحات کامل”]در Proxmox VE، نظارت و تجزیه و تحلیل رویدادها و گزارش‌های سیستم بخش مهمی از مدیریت Cluster است. این کار به شما کمک می‌کند تا مشکلات عملکردی را شناسایی کنید و اقدامات پیشگیرانه برای حفظ سلامت سیستم انجام دهید. در این بخش، روش‌های مختلف برای مشاهده و بررسی رویدادها و گزارش‌های سیستم به صورت گرافیکی از طریق Web UI و همچنین استفاده از دستورهای خط فرمان برای دسترسی به گزارش‌ها شرح داده می‌شود.


1. مشاهده رویدادها و گزارش‌های سیستم از طریق Web UI

برای مشاهده رویدادها و گزارش‌های سیستم در Proxmox VE از طریق Web UI، مراحل زیر را دنبال کنید:

  1. ورود به Web UI:
    • ابتدا وارد Web UI Proxmox VE شوید.
  2. **دسترسی به بخش Logs:
    • در Web UI، پس از ورود، به قسمت Datacenter یا نود خاصی که می‌خواهید رویدادها و گزارش‌های آن را مشاهده کنید، بروید.
    • از منوی سمت چپ، روی Logs کلیک کنید. در این بخش، شما می‌توانید رویدادها و گزارش‌های مربوط به سیستم، نود، ماشین‌های مجازی، کانتینرها و سایر فعالیت‌های Proxmox را مشاهده کنید.
  3. مرور گزارش‌ها:
    • در این بخش، می‌توانید گزارش‌ها و رویدادهای مختلفی مانند:
      • مشکلات اتصال شبکه
      • وضعیت دیسک‌ها
      • مشکلات ماشین‌های مجازی
      • رویدادهای مرتبط با ذخیره‌سازی
    • برای هر نود، می‌توانید تاریخچه‌ای از رویدادها را مشاهده کرده و هر کدام را به تفصیل بررسی کنید.
  4. جستجوی گزارش‌ها:
    • شما می‌توانید گزارش‌ها را براساس تاریخ، نوع رویداد یا کلمات کلیدی جستجو کنید. برای این کار از گزینه Search استفاده کنید.
    • همچنین، می‌توانید گزارش‌ها را بر اساس نوع فیلتر کرده و تنها رویدادهای خاصی را نمایش دهید.
  5. نمایش لاگ‌های سیستم:
    • در این بخش، علاوه بر مشاهده رویدادها، می‌توانید لاگ‌های سیستم مانند syslog، dmesg و journal را نیز مشاهده کنید. این اطلاعات می‌توانند در شناسایی مشکلات احتمالی سیستم بسیار مفید باشند.
  6. مشاهده وضعیت فعالیت‌ها:
    • در قسمت Activity در Web UI، می‌توانید فعالیت‌های اخیر در سیستم را مشاهده کنید. این بخش شامل اطلاعات مربوط به تغییرات پیکربندی، ماشین‌های مجازی در حال اجرا و عملیات مختلف است که بر روی سیستم انجام شده است.

2. مشاهده رویدادها و گزارش‌های سیستم از طریق خط فرمان

برای مشاهده رویدادها و گزارش‌های سیستم از طریق خط فرمان، می‌توانید از دستورات زیر استفاده کنید:

2.1. مشاهده گزارش‌های کلی سیستم با journalctl:

journalctl یک ابزار مفید برای مشاهده لاگ‌ها و گزارش‌های سیستم است که از systemd استفاده می‌کند. این ابزار به شما این امکان را می‌دهد که تمامی گزارش‌ها و رویدادهای سیستم را به راحتی مشاهده کنید.

برای مشاهده تمام گزارش‌ها و رویدادهای سیستم در Proxmox VE، از دستور زیر استفاده کنید:

journalctl

برای فیلتر کردن و مشاهده گزارش‌ها در تاریخ و زمان خاص، می‌توانید از گزینه‌های مختلف این دستور استفاده کنید. به عنوان مثال، برای مشاهده گزارش‌های اخیر، از دستور زیر استفاده کنید:

journalctl -xe

این دستور گزارش‌های جدید و خطاهای سیستم را نمایش می‌دهد.

2.2. مشاهده گزارش‌های syslog:

برای مشاهده گزارش‌های syslog که معمولاً شامل اطلاعات عمومی در مورد سیستم است، از دستور زیر استفاده کنید:

cat /var/log/syslog

این گزارش‌ها اطلاعات مربوط به فعالیت‌های سیستم، از جمله فرآیندها، تغییرات پیکربندی و هشدارها را شامل می‌شود.

2.3. بررسی خطاها و رویدادهای سیستم با dmesg:

برای بررسی اطلاعات مربوط به سخت‌افزار و دستگاه‌ها (مانند دیسک‌ها و حافظه) و مشاهده خطاهای سطح پایین‌تر، از دستور زیر استفاده کنید:

dmesg

این دستور به شما گزارش‌هایی در مورد شروع سیستم، دستگاه‌ها و همچنین خطاهای احتمالی در ارتباط با سخت‌افزار نمایش می‌دهد.

2.4. مشاهده لاگ‌های مربوط به PVE:

برای مشاهده لاگ‌های مربوط به Proxmox VE و فعالیت‌های این سیستم، می‌توانید از دستورات زیر استفاده کنید:

cat /var/log/pveproxy/access.log
cat /var/log/pveproxy/error.log

این دستورات به شما لاگ‌های مربوط به فعالیت‌های PVE، مانند دسترسی‌ها، خطاها و تغییرات پیکربندی سیستم را نشان می‌دهند.

2.5. مشاهده لاگ‌های مربوط به Corosync:

برای نظارت بر وضعیت Cluster و بررسی رویدادهای مربوط به همگام‌سازی نودها، از دستور زیر استفاده کنید:

cat /var/log/cluster/corosync.log

این لاگ‌ها شامل اطلاعات مربوط به ارتباطات بین نودها و مشکلات احتمالی در شبکه یا همگام‌سازی سیستم هستند.


3. تنظیمات گزارش‌ها و رویدادها

در Proxmox VE، می‌توانید تنظیمات مربوط به ثبت و ذخیره‌سازی گزارش‌ها و رویدادها را پیکربندی کنید تا اطلاعات بیشتری از وضعیت سیستم به دست آورید. برای این کار، تنظیمات syslog یا ابزارهای مشابه را می‌توان پیکربندی کرد.

برای پیکربندی syslog، می‌توانید فایل پیکربندی آن را ویرایش کنید:

nano /etc/rsyslog.conf

در این فایل، می‌توانید مسیر ذخیره‌سازی لاگ‌ها، نوع لاگ‌ها و سطح گزارش‌ها را تنظیم کنید.

همچنین، می‌توانید ابزارهای اضافی مانند logrotate را برای مدیریت و چرخش گزارش‌ها در نظر بگیرید. برای پیکربندی آن، فایل تنظیمات آن را ویرایش کنید:

nano /etc/logrotate.conf

در این فایل، می‌توانید نحوه مدیریت گزارش‌ها، مدت زمان نگهداری آنها و نحوه چرخش گزارش‌ها را مشخص کنید.


4. نکات مهم در نظارت بر رویدادها و گزارش‌ها

  • مدیریت حجم گزارش‌ها: اگر سیستم شما به طور مداوم گزارش‌های زیادی تولید می‌کند، ممکن است حجم گزارش‌ها افزایش یابد و فضای ذخیره‌سازی را پر کند. از ابزارهایی مانند logrotate برای مدیریت این گزارش‌ها استفاده کنید.
  • فیلتر کردن رویدادها: هنگام بررسی گزارش‌ها، از فیلترها و جستجوهای دقیق استفاده کنید تا بتوانید به سرعت مشکلات خاص را شناسایی کنید.
  • نظارت مداوم: برای نظارت مداوم و دریافت هشدارها در مورد مشکلات احتمالی، از ابزارهایی مانند Nagios یا Zabbix استفاده کنید.

جمع‌بندی

در این بخش، نحوه مشاهده و مدیریت رویدادها و گزارش‌های سیستم در Proxmox VE از طریق Web UI و دستورات خط فرمان بررسی شد. با استفاده از این ابزارها می‌توانید به راحتی عملکرد سیستم را تحت نظر داشته باشید، مشکلات را شناسایی کنید و اقدام به رفع آنها کنید. Web UI امکان مشاهده گزارش‌ها به صورت گرافیکی را فراهم می‌کند، در حالی که دستورات خط فرمان برای دسترسی به جزئیات دقیق‌تر و گزارش‌های سیستم مناسب هستند. تنظیمات گزارش‌ها نیز به شما کمک می‌کند تا لاگ‌ها را به طور مؤثر مدیریت و از فضای ذخیره‌سازی بهینه استفاده کنید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیم هشدارها برای نظارت بر منابع و مشکلات سیستم” subtitle=”توضیحات کامل”]نظارت بر منابع سیستم و دریافت هشدارها در صورت بروز مشکلات به شما کمک می‌کند تا بتوانید به موقع اقدام کنید و از بروز مشکلات جدی جلوگیری نمایید. در Proxmox VE، می‌توانید هشدارهایی برای وضعیت منابع مختلف سیستم مانند CPU، RAM، Disk و مشکلات مرتبط با نودهای Cluster یا ماشین‌های مجازی تنظیم کنید. این بخش شامل نحوه پیکربندی هشدارها به صورت گرافیکی از طریق Web UI و تنظیمات خط فرمان می‌باشد.


1. تنظیم هشدارها از طریق Web UI

در Proxmox VE، برای نظارت بر منابع و تنظیم هشدارها، می‌توانید از Datacenter یا Node برای تنظیم آستانه‌های هشدار استفاده کنید. این هشدارها به شما اطلاع می‌دهند زمانی که منابع سیستم به حد بحرانی نزدیک می‌شود یا مشکلاتی در ماشین‌های مجازی یا نودها رخ می‌دهد.

1.1. تنظیم هشدار برای CPU، RAM و Disk
  1. ورود به Web UI:
    • وارد Web UI Proxmox VE شوید.
  2. **دسترسی به بخش Datacenter یا Node:
    • از منوی سمت چپ، روی Datacenter کلیک کرده یا نود خاصی که می‌خواهید هشدارها را برای آن تنظیم کنید، انتخاب کنید.
  3. تنظیمات منابع:
    • به بخش Resources بروید. در این بخش می‌توانید منابع مختلفی مانند CPU، RAM و Disk را برای هر نود و ماشین مجازی مدیریت کنید.
    • در اینجا، Proxmox VE به شما امکان می‌دهد تا آستانه‌های هشدار را برای منابع مختلف تعیین کنید.
  4. تنظیم هشدار:
    • برای CPU، RAM و Disk، می‌توانید یک آستانه برای استفاده از منابع تعیین کنید. به طور مثال:
      • CPU: اگر استفاده از CPU بیش از 90% شد، هشدار دریافت کنید.
      • RAM: اگر استفاده از RAM بیش از 85% شد، هشدار دریافت کنید.
      • Disk: اگر فضای دیسک کمتر از 10% باقی‌مانده باشد، هشدار دریافت کنید.
  5. تنظیم آستانه‌ها و اعمال تنظیمات:
    • پس از وارد کردن مقادیر آستانه، روی Apply کلیک کنید تا تنظیمات اعمال شوند.
1.2. تنظیم هشدار برای Cluster و نودها
  1. **دسترسی به Cluster یا Node:
    • در Web UI، به بخش Cluster یا نود خاص خود بروید.
  2. تنظیم هشدار برای وضعیت نود:
    • در این بخش، می‌توانید وضعیت نودها را مشاهده کرده و هشدارهایی برای مشکلات اتصال، همگام‌سازی، و وضعیت عمومی هر نود تنظیم کنید.
    • مثلا اگر یکی از نودهای Cluster به هر دلیلی از دست رفت یا مشکلی در ارتباط با آن ایجاد شد، هشدار دریافت کنید.
  3. تنظیمات خاص هشدارها:
    • هشدارها می‌توانند شامل خطاهای شبکه، مشکلات در همگام‌سازی Cluster و یا مشکلات مربوط به وضعیت نودها باشند. این تنظیمات در بخش Cluster در Web UI قابل انجام است.

2. تنظیم هشدارها از طریق خط فرمان

در Proxmox VE، همچنین می‌توانید از دستورات خط فرمان برای تنظیم هشدارها استفاده کنید. این دستورات به شما این امکان را می‌دهند که به صورت خودکار هشدارهایی از طریق ایمیل یا دیگر سیستم‌ها دریافت کنید.

2.1. استفاده از Proxmox API برای تنظیم هشدار

Proxmox VE از REST API برای نظارت بر وضعیت سیستم و ارسال هشدارها به دیگر سیستم‌ها پشتیبانی می‌کند. برای تنظیم هشدارها از طریق API، باید از درخواست‌های خاص Proxmox API استفاده کنید.

برای ایجاد هشدار از طریق Proxmox API، از درخواست‌های HTTP مانند زیر استفاده می‌کنید:

curl -k -X POST https://your-proxmox-server/api2/json/nodes/your-node-name/status --data "cpu=90&ram=85"

در این درخواست، مقدار استفاده از CPU به 90% و استفاده از RAM به 85% تنظیم شده است. زمانی که این مقادیر بیشتر از آستانه تعیین‌شده شود، هشدار ارسال خواهد شد.

2.2. پیکربندی email alerts برای منابع

برای ارسال هشدارهای email در Proxmox VE، ابتدا باید Postfix یا هر سرویس ایمیل دیگر را بر روی سیستم پیکربندی کنید. سپس با استفاده از اسکریپت‌های خودکار می‌توانید هشدارها را از طریق ایمیل ارسال کنید.

برای تنظیم ایمیل هشدارها، مراحل زیر را دنبال کنید:

  1. پیکربندی سرویس ایمیل:
    • ابتدا Postfix را نصب کنید:
    apt-get install postfix
    

    سپس تنظیمات را انجام دهید و مطمئن شوید که ایمیل‌ها به درستی ارسال می‌شوند.

  2. **تنظیم هشدار ایمیل برای Proxmox VE:برای ارسال هشدار از طریق ایمیل، از فایل پیکربندی Proxmox VE به نام /etc/pmg/pmg.conf استفاده کنید. در این فایل، می‌توانید تنظیمات ارسال ایمیل را مشخص کنید:
    nano /etc/pmg/pmg.conf
    

    در این فایل، بخش‌های مربوط به آدرس ایمیل و تنظیمات SMTP را وارد کنید.

  3. ایجاد اسکریپت برای ارسال هشدار: با استفاده از اسکریپت‌های ساده bash می‌توانید برای هر رویداد سیستم یا آستانه منابع، ایمیل هشدار ارسال کنید.برای مثال، برای ارسال هشدار ایمیل در صورت استفاده بیش از 90% از CPU، از اسکریپت زیر استفاده کنید:
    #!/bin/bash
    CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
    THRESHOLD=90
    if (( $(echo "$CPU_USAGE > $THRESHOLD" |bc -l) )); then
      echo "CPU usage is high: $CPU_USAGE%" | mail -s "Proxmox CPU Alert" user@example.com
    fi
    

    این اسکریپت به طور خودکار هر 5 دقیقه وضعیت CPU را بررسی می‌کند و اگر مصرف بیش از 90% باشد، ایمیل هشدار ارسال می‌کند.

2.3. استفاده از cron job برای تنظیم هشدارها

برای اجرای خودکار اسکریپت‌ها و بررسی وضعیت سیستم در فواصل زمانی خاص، از cron job استفاده کنید. برای مثال، برای اجرای اسکریپت هشدار هر 5 دقیقه:

  1. ویرایش crontab:
    crontab -e
    
  2. افزودن خط زیر برای اجرای اسکریپت هر 5 دقیقه:
    */5 * * * * /path/to/your/script.sh
    

این خط باعث می‌شود اسکریپت هر 5 دقیقه یکبار اجرا شده و هشدارهای مربوط به منابع ارسال شود.


جمع‌بندی

در این بخش نحوه تنظیم هشدارها برای نظارت بر منابع و مشکلات سیستم در Proxmox VE توضیح داده شد. با استفاده از Web UI می‌توانید به راحتی هشدارهایی برای منابع مختلف مانند CPU، RAM و Disk تنظیم کنید. همچنین، برای استفاده پیشرفته‌تر می‌توانید از Proxmox API و email alerts با تنظیمات Postfix استفاده کنید. در نهایت، با استفاده از cron job می‌توانید اسکریپت‌های خودکار برای ارسال هشدار در فواصل زمانی خاص ایجاد کنید. این تنظیمات به شما کمک می‌کند تا به موقع از مشکلات منابع یا سیستم مطلع شوید و اقدامات پیشگیرانه را انجام دهید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی و دریافت ایمیل‌های هشدار در صورت بروز مشکلات” subtitle=”توضیحات کامل”]در Proxmox VE، یکی از روش‌های مهم برای نظارت بر سیستم و ماشین‌های مجازی، پیکربندی هشدارهای ایمیلی است. این هشدارها می‌توانند در موارد مختلف مانند بالا رفتن مصرف CPU، RAM، مشکلات شبکه یا مشکلات در نودهای Cluster ارسال شوند. برای این منظور، شما نیاز به تنظیمات دقیق در Proxmox VE دارید تا از مشکلات سیستم به موقع مطلع شوید و اقدام لازم را انجام دهید.

در این بخش به طور کامل به نحوه پیکربندی دریافت ایمیل‌های هشدار در Proxmox VE پرداخته می‌شود. هم چنین نحوه پیکربندی سرویس‌های مورد نیاز برای ارسال ایمیل‌ها و تنظیمات مربوطه بیان خواهد شد.


1. پیکربندی سرویس ارسال ایمیل (Postfix)

قبل از هر چیز، برای ارسال ایمیل‌های هشدار در Proxmox VE، باید یک سرویس Postfix (یا دیگر سرویس‌های SMTP) برای ارسال ایمیل‌ها نصب و پیکربندی کنید. در اینجا، روش تنظیم Postfix را برای ارسال ایمیل‌ها توضیح می‌دهیم.

1.1. نصب و پیکربندی Postfix
  1. نصب Postfix: ابتدا برای نصب Postfix، دستور زیر را در ترمینال وارد کنید:
    apt-get update
    apt-get install postfix
    
  2. پیکربندی Postfix: هنگام نصب، از شما خواسته می‌شود تا نوع پیکربندی Postfix را انتخاب کنید. اگر گزینه‌ای مانند Internet Site مشاهده کردید، آن را انتخاب کنید و برای نام دامنه (domain name) نیز، نام مناسب را وارد کنید.
  3. پیکربندی SMTP: پس از نصب، فایل پیکربندی Postfix را باز کنید تا تنظیمات SMTP و پیکربندی‌های دیگر را وارد کنید. برای این کار از ویرایشگر متنی nano استفاده کنید:
    nano /etc/postfix/main.cf
    

    در این فایل، مطمئن شوید که خط‌های زیر به درستی تنظیم شده‌اند:

    myhostname = your-proxmox-server.example.com
    mydomain = example.com
    myorigin = /etc/mailname
    inet_interfaces = all
    inet_protocols = all
    relayhost = [smtp.example.com]:587
    

    همچنین مطمئن شوید که اطلاعات مربوط به SMTP سرور خود مانند relayhost (سرور ارسال ایمیل) و پورت مناسب را به درستی وارد کرده‌اید.

  4. راه‌اندازی مجدد سرویس Postfix: پس از ویرایش فایل پیکربندی، سرویس Postfix را ریستارت کنید تا تنظیمات اعمال شوند:
    systemctl restart postfix
    
  5. تست ارسال ایمیل: برای اطمینان از کارکرد صحیح Postfix، می‌توانید یک ایمیل تستی ارسال کنید:
    echo "Test email from Proxmox" | mail -s "Proxmox Test Email" user@example.com
    

2. پیکربندی ایمیل‌های هشدار در Proxmox VE

پس از نصب و پیکربندی Postfix یا هر سرویس SMTP دیگری، می‌توانید Proxmox VE را برای ارسال ایمیل‌های هشدار پیکربندی کنید.

2.1. پیکربندی هشدارها از طریق Web UI

برای دریافت ایمیل‌های هشدار در Proxmox VE، باید تنظیمات هشدار و اطلاع‌رسانی را از طریق Web UI انجام دهید. این تنظیمات به شما این امکان را می‌دهند که هشدارها را برای وضعیت ماشین‌های مجازی، منابع سیستم یا وضعیت نودهای Cluster تنظیم کنید.

  1. ورود به Web UI: وارد Web UI Proxmox VE شوید.
  2. **دسترسی به بخش Datacenter: در منوی سمت چپ، بر روی Datacenter کلیک کنید تا به تنظیمات عمومی دسترسی پیدا کنید.
  3. تنظیمات Email برای هشدارها: در Datacenter, به تب Options بروید و گزینه Email notification را پیدا کنید. در اینجا می‌توانید آدرس ایمیل خود را برای دریافت هشدار وارد کنید.
    • وارد کردن آدرس ایمیل مدیر سیستم در فیلد مربوطه:
      • Email Address: وارد کردن آدرس ایمیل مورد نظر برای دریافت هشدارها مانند admin@example.com.
  4. پیکربندی آستانه‌ها و وضعیت منابع: در این بخش، می‌توانید آستانه‌های هشدار را برای CPU، RAM، Disk و وضعیت نودهای Cluster تنظیم کنید.
    • برای مثال، برای CPU، مقدار آستانه را به 90% تنظیم کنید تا در صورت استفاده بیشتر از 90% از CPU، هشدار ایمیل ارسال شود.
    • همین کار را برای RAM و Disk نیز انجام دهید.
  5. اعمال تنظیمات: پس از وارد کردن ایمیل و تنظیمات آستانه‌ها، تنظیمات را ذخیره کرده و اعمال کنید.

3. استفاده از cron job برای ارسال هشدار خودکار

برای اینکه ایمیل‌های هشدار به صورت خودکار و دوره‌ای ارسال شوند، می‌توانید از cron job استفاده کنید. این روش به شما کمک می‌کند تا اسکریپت‌هایی ایجاد کنید که وضعیت منابع سیستم را به طور دوره‌ای بررسی کرده و در صورت نیاز ایمیل هشدار ارسال کنند.

3.1. ایجاد اسکریپت برای ارسال ایمیل هشدار

ابتدا یک اسکریپت bash برای بررسی وضعیت سیستم و ارسال ایمیل هشدار در صورت نیاز ایجاد کنید. به عنوان مثال، برای ارسال ایمیل هشدار در صورت مصرف بیش از 90% از CPU:

  1. ایجاد اسکریپت هشدار:با استفاده از ویرایشگر متن nano، یک اسکریپت جدید بسازید:
    nano /root/check_cpu.sh
    

    سپس کد زیر را در آن قرار دهید:

    #!/bin/bash
    CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
    THRESHOLD=90
    if (( $(echo "$CPU_USAGE > $THRESHOLD" |bc -l) )); then
      echo "CPU usage is high: $CPU_USAGE%" | mail -s "Proxmox CPU Alert" admin@example.com
    fi
    

    این اسکریپت وضعیت CPU را بررسی کرده و اگر مصرف از 90% بیشتر باشد، یک ایمیل هشدار ارسال می‌کند.

  2. اعطای دسترسی اجرایی به اسکریپت:برای اینکه اسکریپت قابل اجرا باشد، باید به آن دسترسی اجرایی بدهید:
    chmod +x /root/check_cpu.sh
    
  3. تنظیم cron job برای اجرای اسکریپت:برای اجرای این اسکریپت به طور خودکار هر 5 دقیقه، آن را به cron اضافه کنید:
    crontab -e
    

    سپس خط زیر را به فایل crontab اضافه کنید:

    */5 * * * * /root/check_cpu.sh
    

    این خط باعث می‌شود که اسکریپت هر 5 دقیقه یکبار اجرا شود و در صورت نیاز ایمیل هشدار ارسال گردد.


جمع‌بندی

در این بخش، نحوه پیکربندی ارسال ایمیل‌های هشدار در Proxmox VE برای نظارت بر منابع و مشکلات سیستم توضیح داده شد. ابتدا با نصب و پیکربندی سرویس Postfix، امکان ارسال ایمیل‌ها فراهم می‌شود. سپس با استفاده از Web UI، آدرس ایمیل مدیر سیستم و آستانه‌های هشدار برای منابع مختلف تنظیم می‌شود. همچنین با استفاده از اسکریپت‌های خودکار و cron job می‌توانید ایمیل‌های هشدار را به صورت دوره‌ای ارسال کنید. این تنظیمات به شما این امکان را می‌دهند که به محض بروز مشکلات سیستم، به سرعت اقدام کنید و از بروز بحران‌های احتمالی جلوگیری نمایید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از Logs برای عیب‌یابی و تجزیه‌و‌تحلیل مشکلات” subtitle=”توضیحات کامل”]در هر سیستم مجازی‌سازی، استفاده از Logs (گزارش‌های سیستم) برای عیب‌یابی و تجزیه و تحلیل مشکلات حیاتی است. Proxmox VE از مجموعه‌ای از فایل‌های log برای ثبت وقایع، وضعیت سیستم و خطاها استفاده می‌کند. این فایل‌ها می‌توانند به شناسایی و حل مشکلات سیستم، ماشین‌های مجازی، کانتینرها و شبکه‌ها کمک کنند. در این بخش، نحوه استفاده از Logs برای عیب‌یابی و تجزیه و تحلیل مشکلات در Proxmox VE به صورت گرافیکی و کامندی توضیح داده خواهد شد.


1. مکان‌های ذخیره‌سازی و فایل‌های Log در Proxmox VE

برای شروع، باید با مکان‌ها و فایل‌های مختلف log در Proxmox VE آشنا شوید. این فایل‌ها معمولاً در دایرکتوری /var/log/ ذخیره می‌شوند. مهم‌ترین فایل‌های log که در Proxmox VE برای عیب‌یابی استفاده می‌شوند عبارتند از:

  1. /var/log/syslog: این فایل شامل گزارش‌های عمومی سیستم است. برای بررسی مشکلات مربوط به سخت‌افزار، سیستم‌عامل و سایر خطاهای عمومی می‌توانید به این فایل مراجعه کنید.
  2. /var/log/pve/tasks/index: این فایل شامل اطلاعات مربوط به وظایف (tasks) انجام شده در Proxmox، مانند ایجاد و راه‌اندازی ماشین‌های مجازی و عملیات شبکه است.
  3. /var/log/pve/cluster.log: این فایل شامل اطلاعات مربوط به خوشه (Cluster) است و به شناسایی مشکلات در ارتباطات خوشه‌ای و وضعیت نودهای خوشه کمک می‌کند.
  4. /var/log/pve/daemon.log: این فایل شامل گزارش‌های سرویس‌های مختلف Proxmox VE است و به عیب‌یابی مشکلات مربوط به سرویس‌ها و فرآیندهای در حال اجرا کمک می‌کند.
  5. /var/log/qemu-server/*.log: این فایل‌ها شامل گزارش‌های مربوط به ماشین‌های مجازی هستند. در صورتی که مشکلی در یک ماشین مجازی خاص رخ دهد، این فایل‌ها می‌توانند اطلاعات مفیدی در اختیار شما قرار دهند.

2. مشاهده و تجزیه و تحلیل Logs از طریق Web UI

در Proxmox VE، می‌توانید گزارش‌ها و Logs سیستم را از طریق Web UI نیز مشاهده کنید. این رابط کاربری برای تجزیه و تحلیل مشکلات و نظارت بر وضعیت سیستم بسیار کارآمد است.

2.1. مشاهده Logs ماشین‌های مجازی

برای مشاهده گزارش‌های Logs مرتبط با ماشین‌های مجازی در Web UI:

  1. وارد Proxmox Web UI شوید.
  2. در منوی سمت چپ، ماشین مجازی مورد نظر را انتخاب کنید.
  3. بر روی تب Logs کلیک کنید. در این بخش، شما می‌توانید گزارش‌هایی از عملکرد ماشین مجازی، عملیات‌های انجام شده، و خطاهایی که ممکن است رخ داده باشد، مشاهده کنید.
2.2. مشاهده Logs مربوط به سیستم

برای مشاهده گزارش‌های کلی سیستم و خوشه‌ها:

  1. وارد Datacenter شوید.
  2. در قسمت Logs، به گزارش‌های مرتبط با وضعیت کلی سیستم، خوشه، نودها، و سرویس‌ها دسترسی خواهید داشت.

در اینجا، شما می‌توانید به راحتی خطاها و هشدارهای سیستم را مرور کنید و از اطلاعات مربوط به منابع و خطاهای نودها استفاده کنید.


3. مشاهده و تحلیل Logs به‌صورت کامندی

گاهی اوقات لازم است از خط فرمان برای تجزیه و تحلیل Logs استفاده کنید. در اینجا به روش‌های مختلف برای مشاهده و تجزیه و تحلیل فایل‌های log به صورت کامندی پرداخته می‌شود.

3.1. استفاده از دستور cat و less برای مشاهده Logs
  1. مشاهده محتوای یک فایل log با استفاده از دستور cat:برای مشاهده محتوای فایل‌های log به صورت سریع، از دستور cat استفاده کنید:
    cat /var/log/syslog
    

    این دستور محتویات کامل فایل syslog را نمایش می‌دهد.

  2. مشاهده محتوای فایل log با استفاده از دستور less:برای مشاهده فایل‌های طولانی به صورت صفحه‌به‌صفحه و امکان جستجو در محتویات آن، از دستور less استفاده کنید:
    less /var/log/syslog
    

    پس از وارد کردن این دستور، می‌توانید با استفاده از کلیدهای جهتی یا جستجو در میان گزارش‌ها، به راحتی به خطای مورد نظر دسترسی پیدا کنید.

3.2. فیلتر کردن اطلاعات با استفاده از grep

برای جستجوی خاص در Logs و فیلتر کردن گزارش‌ها، می‌توانید از دستور grep استفاده کنید. به عنوان مثال:

  1. جستجو برای خطاها (Error):برای یافتن گزارش‌های خطا در فایل syslog، دستور زیر را وارد کنید:
    grep -i "error" /var/log/syslog
    

    این دستور تمامی خطاهای موجود در فایل syslog را نمایش می‌دهد.

  2. جستجو برای هشدارها (Warning):برای یافتن هشدارها، می‌توانید از دستور مشابه استفاده کنید:
    grep -i "warning" /var/log/syslog
    
3.3. استفاده از دستور tail برای مشاهده گزارش‌های جدید

برای مشاهده گزارش‌های جدید در فایل‌های log به صورت لحظه‌ای، از دستور tail استفاده کنید:

tail -f /var/log/syslog

با این دستور، هر زمان که گزارش جدیدی به فایل اضافه شود، آن گزارش به طور زنده در ترمینال نمایش داده می‌شود.

3.4. استفاده از دستور dmesg برای مشاهده گزارش‌های کرنل

برای مشاهده گزارش‌های مربوط به کرنل و مشکلات سیستم‌عامل، از دستور dmesg استفاده کنید:

dmesg | less

این دستور تمامی گزارش‌های مربوط به کرنل سیستم را نمایش می‌دهد.


4. استفاده از Proxmox Logs برای عیب‌یابی ماشین‌های مجازی و کانتینرها

در Proxmox VE، فایل‌های log مربوط به ماشین‌های مجازی و کانتینرها در مسیرهای خاصی قرار دارند که می‌توانید با استفاده از آن‌ها مشکلات و خطاهای خاص را شناسایی کنید.

4.1. مشاهده گزارش‌های مربوط به ماشین‌های مجازی

برای مشاهده گزارش‌های مربوط به یک ماشین مجازی خاص، به دایرکتوری /var/log/qemu-server/ بروید. در اینجا، فایل‌های log مربوط به هر ماشین مجازی به نام .log قرار دارند. برای مشاهده گزارش‌های ماشین مجازی، دستور زیر را وارد کنید:

cat /var/log/qemu-server/100.log

در اینجا، 100 شناسه ماشین مجازی است که می‌خواهید گزارش‌های آن را مشاهده کنید.

4.2. مشاهده گزارش‌های مربوط به کانتینرها

برای کانتینرها نیز فایل‌های log در مسیر /var/log/lxc/ ذخیره می‌شوند. برای مشاهده گزارش‌های یک کانتینر خاص، دستور زیر را وارد کنید:

cat /var/log/lxc/100.log

که در آن 100 شناسه کانتینر است.


جمع‌بندی

در این بخش، نحوه استفاده از Logs برای عیب‌یابی و تجزیه و تحلیل مشکلات در Proxmox VE توضیح داده شد. Proxmox VE با ذخیره‌سازی گزارش‌ها در فایل‌های log مختلف مانند syslog، pve/tasks/index، و qemu-server/*.log اطلاعات دقیقی از وضعیت سیستم، ماشین‌های مجازی، کانتینرها و خوشه‌ها ارائه می‌دهد. استفاده از دستورات کامندی مانند cat، less، grep و tail برای مشاهده و فیلتر کردن گزارش‌ها به شما کمک می‌کند تا مشکلات سیستم را شناسایی کرده و برای رفع آن‌ها اقدام کنید. این ابزارها برای مدیران سیستم بسیار مفید هستند و امکان نظارت دقیق بر سیستم را فراهم می‌آورند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 8. تنظیمات امنیتی و کاربران در Web UI”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت دسترسی‌ها و مجوزها از طریق Web UI” subtitle=”توضیحات کامل”]در Proxmox VE، مدیریت دسترسی‌ها و مجوزها از طریق رابط کاربری وب (Web UI) یکی از اجزای کلیدی برای کنترل امنیت و مدیریت منابع در سیستم است. این امکان به مدیران این امکان را می‌دهد که سطح دسترسی مختلفی برای کاربران و گروه‌های مختلف تعیین کنند. این پیکربندی‌ها به صورت گرافیکی و کامندی در اختیار مدیران قرار دارد.

در این بخش، نحوه مدیریت دسترسی‌ها و مجوزها به وسیله Web UI به صورت جامع و کاربردی توضیح داده می‌شود. همچنین نحوه تنظیمات و پیکربندی‌های مربوط به کاربران و گروه‌ها با جزئیات بیشتر آورده خواهد شد.


1. معرفی سطوح دسترسی و مجوزها

Proxmox VE از یک سیستم مبتنی بر Role-Based Access Control (RBAC) برای مدیریت دسترسی‌ها استفاده می‌کند. با این روش، می‌توان مجوزهای مختلفی را به کاربران تخصیص داد که شامل موارد زیر می‌شود:

  1. Root Access: دسترسی کامل به تمام منابع و تنظیمات سیستم.
  2. Admin Access: دسترسی به تمامی منابع و امکانات، اما بدون دسترسی به تنظیمات سرور.
  3. User Access: دسترسی محدودتر به منابع، مانند مشاهده ماشین‌های مجازی خاص یا انجام فعالیت‌های محدود.
  4. Read-Only Access: فقط دسترسی به مشاهده اطلاعات بدون امکان تغییر یا انجام عملیات.

2. ایجاد و مدیریت کاربران از طریق Web UI

برای مدیریت کاربران و تخصیص سطوح دسترسی مختلف به آن‌ها، ابتدا باید وارد Web UI شوید و سپس مراحل زیر را دنبال کنید:

2.1. ایجاد یک کاربر جدید
  1. وارد Proxmox Web UI شوید.
  2. از منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  3. در پنجره Datacenter, از منوی بالایی، بر روی Permissions کلیک کنید.
  4. در قسمت Users, بر روی دکمه Add کلیک کنید.
  5. در پنجره Add User اطلاعات کاربر جدید را وارد کنید:
    • Username: نام کاربری برای دسترسی.
    • Password: پسورد برای کاربر.
    • Realm: انتخاب PVE به عنوان مرجع احراز هویت.
  6. بر روی دکمه Add کلیک کنید.
2.2. ویرایش کاربر

برای ویرایش یک کاربر، مراحل زیر را دنبال کنید:

  1. در پنجره Users, کاربری که می‌خواهید ویرایش کنید را انتخاب کنید.
  2. بر روی Edit کلیک کنید.
  3. تغییرات مورد نظر را اعمال کرده و سپس بر روی OK کلیک کنید.

3. ایجاد و مدیریت گروه‌ها و تخصیص دسترسی

برای مدیریت گروه‌ها و تخصیص دسترسی به گروه‌ها، می‌توانید از طریق Web UI کارهای زیر را انجام دهید:

3.1. ایجاد یک گروه جدید
  1. وارد Datacenter شوید.
  2. از منوی بالایی، گزینه Permissions را انتخاب کنید.
  3. در قسمت Groups, بر روی دکمه Add کلیک کنید.
  4. در پنجره Add Group, نام گروه را وارد کرده و دکمه Add را فشار دهید.
3.2. تخصیص کاربر به گروه
  1. در قسمت Users, کاربری که می‌خواهید به گروه اضافه کنید را انتخاب کنید.
  2. بر روی Edit کلیک کرده و در بخش Group، گروه مورد نظر را انتخاب کنید.
  3. سپس دکمه OK را فشار دهید.
3.3. تخصیص مجوزها به گروه

برای تخصیص مجوزهای مختلف به گروه‌ها، از طریق Web UI مراحل زیر را دنبال کنید:

  1. وارد Datacenter شوید.
  2. از منوی بالایی، گزینه Permissions را انتخاب کنید.
  3. در قسمت Roles, بر روی دکمه Add کلیک کنید.
  4. در پنجره Add Role, یک نام برای نقش (Role) جدید وارد کرده و مجوزهای مورد نظر را انتخاب کنید.
    • انتخاب مجوزها به صورت چک‌باکس است و می‌توانید مواردی مانند مشاهده، ایجاد، ویرایش، حذف و غیره را تعیین کنید.
  5. پس از تنظیمات، بر روی دکمه Add کلیک کنید.

4. مدیریت و تخصیص دسترسی‌ها به ماشین‌های مجازی و کانتینرها

بعد از ایجاد کاربران و گروه‌ها، باید مجوزهایی برای دسترسی به ماشین‌های مجازی (VMs) و کانتینرها (LXC) تخصیص دهید. این تنظیمات امکان دسترسی به منابع خاص را برای هر کاربر یا گروه مشخص می‌کند.

4.1. تخصیص دسترسی به ماشین‌های مجازی

برای تخصیص دسترسی به ماشین‌های مجازی برای یک کاربر یا گروه:

  1. وارد Datacenter شوید.
  2. از منوی سمت چپ، ماشین مجازی مورد نظر را انتخاب کنید.
  3. بر روی Permissions کلیک کنید.
  4. در پنجره باز شده، بر روی دکمه Add کلیک کنید.
  5. در پنجره Add Permission, نام کاربری یا گروه را انتخاب کنید و نقش (Role) مورد نظر را از فهرست انتخاب کنید.
  6. بر روی Add کلیک کنید.
4.2. تخصیص دسترسی به کانتینرها

برای تخصیص دسترسی به کانتینرها، مراحل مشابه با ماشین‌های مجازی است. تنها کافی است در منوی سمت چپ Datacenter، کانتینر مورد نظر را انتخاب کرده و سپس دسترسی‌ها را تخصیص دهید.


5. مدیریت دسترسی‌های شبکه‌ای و امنیت

برای کنترل دسترسی‌های شبکه‌ای، Proxmox VE اجازه می‌دهد که محدودیت‌هایی برای Firewall اعمال کنید که به صورت جداگانه برای هر ماشین مجازی و کانتینر تعریف می‌شود.

5.1. تنظیم دسترسی‌های شبکه‌ای

برای تنظیم دسترسی‌های شبکه‌ای و تعریف فایروال، به این روش‌ها می‌توانید عمل کنید:

  1. وارد Datacenter شوید.
  2. از منوی سمت چپ، Firewall را انتخاب کنید.
  3. برای هر ماشین مجازی یا کانتینر، تنظیمات فایروال خاص خود را انجام دهید.

6. مشاهده و گزارش دسترسی‌ها

برای مشاهده دسترسی‌ها و تنظیمات امنیتی:

  1. وارد Datacenter شوید.
  2. از منوی سمت چپ، گزینه Permissions را انتخاب کنید.
  3. در این قسمت می‌توانید تمام دسترسی‌های تخصیص داده شده به کاربران و گروه‌ها را مشاهده کنید.

7. استفاده از Command Line برای مدیریت دسترسی‌ها و مجوزها

برای تنظیمات دسترسی و مجوزها به صورت کامندی در Proxmox VE، از ابزار pveum (Proxmox User Management) استفاده می‌شود. برخی از دستورات رایج برای مدیریت کاربران و دسترسی‌ها عبارتند از:

7.1. ایجاد یک کاربر جدید از طریق کامند
pveum user add username@pve --password yourpassword
7.2. ایجاد گروه جدید از طریق کامند
pveum group add mygroup
7.3. تخصیص دسترسی به کاربر یا گروه
pveum acl add /vms/100 user username@pve --role Admin

در این دستور، به کاربر username دسترسی با نقش Admin به ماشین مجازی با شناسه 100 داده می‌شود.

7.4. حذف دسترسی از کاربر یا گروه
pveum acl del /vms/100 user username@pve

این دستور دسترسی کاربر username به ماشین مجازی 100 را حذف می‌کند.


جمع‌بندی

در این بخش، نحوه مدیریت دسترسی‌ها و مجوزها در Proxmox VE از طریق Web UI و خط فرمان توضیح داده شد. با استفاده از Role-Based Access Control (RBAC)، می‌توان دسترسی‌ها و مجوزها را برای کاربران و گروه‌ها به صورت دقیق و امن تنظیم کرد. استفاده از ابزارهای گرافیکی مانند Permissions و Users در Web UI و دستورات کامندی pveum به شما این امکان را می‌دهد که دسترسی‌ها و امنیت سیستم را به شکلی مؤثر مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد و مدیریت کاربران مختلف و تعیین سطح دسترسی” subtitle=”توضیحات کامل”]مدیریت کاربران و تخصیص سطح دسترسی یکی از مهم‌ترین بخش‌های هر سیستم مجازی‌سازی است، به‌ویژه در Proxmox VE. این سیستم به شما اجازه می‌دهد که کاربران مختلف را ایجاد کرده و سطوح دسترسی متناسب با نیازهای خود برای هر کدام از آن‌ها تعریف کنید. در این بخش، نحوه ایجاد و مدیریت کاربران، تعیین سطح دسترسی، و تخصیص مجوزها به صورت گرافیکی و کامندی شرح داده خواهد شد.


1. مفاهیم کلیدی

قبل از اینکه وارد فرآیند ایجاد کاربران و تعیین سطح دسترسی شویم، لازم است برخی مفاهیم کلیدی را بشناسیم:

  • User: کاربری که به سیستم دسترسی دارد.
  • Group: گروهی از کاربران که می‌توانند به منابع خاصی دسترسی داشته باشند.
  • Role: نقش‌هایی که برای کاربران یا گروه‌ها تعیین می‌شود و مشخص می‌کند که چه سطحی از دسترسی به منابع مختلف دارند.
  • Permission: مجوزهایی که برای دسترسی به منابع مختلف تعیین می‌شوند.

2. ایجاد یک کاربر جدید در Web UI

برای اضافه کردن یک کاربر جدید در Proxmox VE، مراحل زیر را طی کنید:

2.1. ورود به Web UI
  1. ابتدا وارد Proxmox VE Web UI شوید.
  2. از منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  3. سپس از منوی بالایی، بر روی Permissions کلیک کنید.
2.2. افزودن کاربر جدید
  1. در بخش Users, بر روی دکمه Add کلیک کنید.
  2. در پنجره Add User, اطلاعات کاربر جدید را وارد کنید:
    • Username: نام کاربری برای دسترسی.
    • Password: پسورد برای کاربر.
    • Realm: به طور پیش‌فرض باید PVE انتخاب شود.
  3. پس از وارد کردن اطلاعات، بر روی Add کلیک کنید.

اکنون کاربر جدید ایجاد شده است، اما هنوز دسترسی‌ها و سطح مجوزهای آن تنظیم نشده‌اند.


3. تعیین سطح دسترسی برای کاربران

برای تعیین سطح دسترسی برای هر کاربر، باید مجوزهای مختلف را برای آن‌ها تنظیم کنید. این سطوح دسترسی شامل مشاهده، ویرایش، ایجاد یا حذف ماشین‌های مجازی، کانتینرها و سایر منابع است.

3.1. تخصیص مجوزها به یک کاربر
  1. از منوی Datacenter، ماشین مجازی یا کانتینر مورد نظر خود را انتخاب کنید.
  2. بر روی Permissions کلیک کنید.
  3. سپس بر روی Add کلیک کنید.
  4. در پنجره Add Permission, اطلاعات زیر را وارد کنید:
    • User: نام کاربری که می‌خواهید مجوز را به آن اختصاص دهید.
    • Role: نقش مورد نظر برای این کاربر.
    • Path: مسیر دسترسی به منابع مختلف.
  5. پس از تکمیل، بر روی Add کلیک کنید.

نقش‌ها (Roles) که می‌توان به یک کاربر اختصاص داد به شرح زیر هستند:

  • Administrator: دسترسی کامل به همه منابع.
  • User: دسترسی محدود به مشاهده منابع.
  • NoAccess: هیچ‌گونه دسترسی به منابع.
  • VM Admin: دسترسی به مدیریت ماشین‌های مجازی.

4. ایجاد و مدیریت گروه‌ها

در Proxmox VE، شما می‌توانید گروه‌هایی از کاربران ایجاد کنید و به این گروه‌ها سطوح دسترسی اختصاص دهید. این امکان به مدیران این اجازه را می‌دهد که سطح دسترسی مشابهی را برای چندین کاربر به‌طور همزمان تنظیم کنند.

4.1. افزودن یک گروه جدید

برای اضافه کردن گروه جدید:

  1. در بخش Datacenter، از منوی بالایی گزینه Permissions را انتخاب کنید.
  2. در قسمت Groups, بر روی Add کلیک کنید.
  3. در پنجره باز شده، نام گروه مورد نظر را وارد کنید.
  4. سپس بر روی Add کلیک کنید.
4.2. تخصیص کاربران به گروه‌ها

برای افزودن کاربران به گروه‌ها:

  1. از بخش Users, کاربر مورد نظر را انتخاب کنید.
  2. بر روی Edit کلیک کنید.
  3. در قسمت Group, گروه مورد نظر را انتخاب کنید.
  4. بر روی OK کلیک کنید.
4.3. تخصیص مجوز به گروه‌ها

برای تخصیص مجوز به یک گروه:

  1. از بخش Permissions, بر روی Add کلیک کنید.
  2. در پنجره Add Permission, در قسمت Group, گروه مورد نظر را انتخاب کنید.
  3. سپس نقش (Role) و مسیر (Path) مورد نظر را تنظیم کرده و بر روی Add کلیک کنید.

5. مدیریت سطوح دسترسی از طریق Command Line

برای انجام تغییرات مربوط به کاربران و دسترسی‌ها از طریق خط فرمان، ابزار pveum (Proxmox User Management) استفاده می‌شود. با این ابزار می‌توانید کاربران را ایجاد کرده و دسترسی‌های مختلف را برای آن‌ها تنظیم کنید.

5.1. ایجاد یک کاربر جدید از طریق کامند
pveum user add username@pve --password yourpassword

در این دستور، username نام کاربری و yourpassword پسورد کاربر جدید است.

5.2. ایجاد یک گروه جدید از طریق کامند
pveum group add mygroup

این دستور یک گروه جدید به نام mygroup ایجاد می‌کند.

5.3. تخصیص دسترسی به کاربر از طریق کامند
pveum acl add /vms/100 user username@pve --role Admin

این دستور به کاربر username دسترسی با نقش Admin به ماشین مجازی با شناسه 100 می‌دهد.

5.4. حذف دسترسی از کاربر
pveum acl del /vms/100 user username@pve

این دستور دسترسی کاربر username به ماشین مجازی 100 را حذف می‌کند.


6. نظارت بر دسترسی‌ها

برای نظارت بر دسترسی‌های کاربران و گزارش‌ها، می‌توانید از بخش Permissions در Web UI استفاده کنید:

  1. وارد Datacenter شوید.
  2. از منوی سمت چپ، گزینه Permissions را انتخاب کنید.
  3. در این قسمت می‌توانید دسترسی‌های تخصیص داده شده به کاربران و گروه‌ها را مشاهده کنید.

جمع‌بندی

در این بخش، نحوه ایجاد و مدیریت کاربران در Proxmox VE و همچنین تخصیص سطوح دسترسی مختلف به آن‌ها از طریق Web UI و Command Line توضیح داده شد. Proxmox VE به مدیران این امکان را می‌دهد که برای هر کاربر یا گروه، دسترسی‌های دقیق و مناسبی تعیین کنند. با استفاده از Role-Based Access Control (RBAC)، می‌توانید دسترسی‌های مختلف را به ماشین‌های مجازی، کانتینرها و سایر منابع تخصیص دهید. همچنین با استفاده از ابزار خط فرمان pveum می‌توانید این تنظیمات را به صورت مؤثر انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”فعال‌سازی احراز هویت دو مرحله‌ای (2FA) برای امنیت بیشتر” subtitle=”توضیحات کامل”]احراز هویت دو مرحله‌ای (2FA) یکی از روش‌های محبوب و موثر برای افزایش امنیت سیستم‌ها است. با فعال‌سازی 2FA در Proxmox VE، می‌توان لایه‌ی امنیتی دیگری به فرایند ورود به سیستم اضافه کرد که علاوه بر استفاده از رمز عبور، نیاز به تأیید هویت از طریق یک دستگاه دیگر نیز دارد. این اقدام به‌ویژه در محیط‌های حساس و تولیدی برای جلوگیری از دسترسی غیرمجاز به سیستم‌ها بسیار مهم است.

در این بخش، نحوه فعال‌سازی 2FA برای Proxmox VE را هم از طریق Web UI و هم از طریق Command Line بررسی خواهیم کرد.


1. مفاهیم احراز هویت دو مرحله‌ای (2FA)

قبل از شروع، لازم است با مفهوم 2FA آشنا شوید:

  • مرحله اول: وارد کردن رمز عبور.
  • مرحله دوم: تأیید هویت از طریق یک کد یکبار مصرف (OTP) که به یک دستگاه دیگر (معمولاً یک گوشی هوشمند) ارسال می‌شود. این کد می‌تواند از طریق اپلیکیشن‌های مختلف مانند Google Authenticator یا Authy تولید شود.

2. فعال‌سازی 2FA در Proxmox VE از طریق Web UI

برای فعال‌سازی 2FA در Proxmox VE از طریق Web UI، مراحل زیر را دنبال کنید:

2.1. ورود به Web UI
  1. وارد Proxmox VE Web UI شوید.
  2. در نوار بالای صفحه، بر روی Datacenter کلیک کنید.
  3. سپس از منوی سمت چپ، گزینه Users را انتخاب کنید.
2.2. فعال‌سازی 2FA برای یک کاربر
  1. در لیست کاربران، نام کاربری مورد نظر را انتخاب کنید.
  2. پس از انتخاب کاربر، بر روی Edit کلیک کنید.
  3. در پنجره باز شده، به بخش Authentication بروید.
  4. گزینه Enable Two-Factor Authentication (2FA) را فعال کنید.
  5. بعد از فعال کردن 2FA، باید برنامه‌ای مانند Google Authenticator یا Authy را در گوشی خود نصب کنید. برای این کار:
    • QR کدی در صفحه ظاهر خواهد شد.
    • این QR کد را با استفاده از اپلیکیشن Google Authenticator یا Authy اسکن کنید.
    • اپلیکیشن یک کد 6 رقمی تولید خواهد کرد.
2.3. وارد کردن کد 2FA
  1. پس از اسکن کد QR، برنامه 2FA در گوشی شما کد 6 رقمی را تولید می‌کند.
  2. این کد را وارد کرده و بر روی Save کلیک کنید.

پس از این مراحل، احراز هویت دو مرحله‌ای برای کاربر فعال شده است. از این پس، هر بار که کاربر بخواهد وارد سیستم شود، علاوه بر وارد کردن رمز عبور، باید کد 6 رقمی که توسط اپلیکیشن 2FA تولید می‌شود را نیز وارد کند.


3. فعال‌سازی 2FA در Proxmox VE از طریق Command Line

برای فعال‌سازی 2FA از طریق خط فرمان در Proxmox VE، می‌توانید از ابزار pveum استفاده کنید. در این روش، نیاز به نصب و تنظیم یک اپلیکیشن تولید کد یکبار مصرف (مانند Google Authenticator) در دستگاه کاربر دارید.

3.1. نصب بسته‌های لازم

برای فعال‌سازی 2FA از طریق CLI، ابتدا باید بسته‌های مورد نیاز را نصب کنید. از آن‌جایی که Proxmox VE مبتنی بر Debian است، برای نصب بسته‌ها از دستور زیر استفاده می‌کنید:

apt update
apt install libpam-google-authenticator
3.2. پیکربندی 2FA برای یک کاربر
  1. ابتدا وارد سیستم شوید.
  2. دستور زیر را اجرا کنید تا ابزار Google Authenticator پیکربندی شود:
google-authenticator
  1. این دستور به شما چندین سوال می‌دهد:
    • آیا می‌خواهید که یک کد QR برای اپلیکیشن 2FA تولید شود؟
    • آیا می‌خواهید که در هر ورود به سیستم از کد 2FA استفاده شود؟

    به سوالات با انتخاب yes پاسخ دهید.

  2. پس از پیکربندی، یک کد QR تولید می‌شود که باید آن را با اپلیکیشن Google Authenticator یا Authy در گوشی خود اسکن کنید. این اپلیکیشن سپس یک کد 6 رقمی برای ورود به سیستم ایجاد خواهد کرد.
3.3. فعال‌سازی 2FA برای کاربر

برای فعال‌سازی 2FA برای کاربر در Proxmox VE از طریق pveum، دستور زیر را اجرا کنید:

pveum user modify username@pve --enable-2fa

این دستور، 2FA را برای کاربر مشخص شده فعال می‌کند.


4. تست 2FA

برای تست فعال‌سازی 2FA:

  1. از Proxmox VE Web UI خارج شوید.
  2. دوباره وارد شوید.
  3. پس از وارد کردن رمز عبور، از شما خواسته می‌شود که کد 6 رقمی را وارد کنید که توسط اپلیکیشن 2FA تولید شده است.

در صورت وارد کردن کد صحیح، شما به سیستم وارد خواهید شد.


5. مدیریت تنظیمات 2FA

اگر بخواهید 2FA را برای یک کاربر غیرفعال کنید، می‌توانید از طریق Web UI یا CLI اقدام کنید:

5.1. غیرفعال کردن 2FA از طریق Web UI
  1. وارد صفحه Users شوید.
  2. کاربر مورد نظر را انتخاب کرده و روی Edit کلیک کنید.
  3. در بخش Authentication، گزینه Disable Two-Factor Authentication (2FA) را انتخاب کرده و بر روی Save کلیک کنید.
5.2. غیرفعال کردن 2FA از طریق CLI

برای غیرفعال کردن 2FA از طریق خط فرمان، دستور زیر را اجرا کنید:

pveum user modify username@pve --disable-2fa

این دستور، 2FA را برای کاربر مورد نظر غیرفعال می‌کند.


جمع‌بندی

در این بخش، نحوه فعال‌سازی و مدیریت احراز هویت دو مرحله‌ای (2FA) در Proxmox VE به‌طور کامل توضیح داده شد. این روش امنیتی افزوده به شما کمک می‌کند که به طور مؤثری از سیستم خود در برابر دسترسی‌های غیرمجاز محافظت کنید. با استفاده از 2FA، حتی در صورتی که رمز عبور کاربر فاش شود، امکان دسترسی بدون تایید کد یکبار مصرف وجود ندارد. همچنین، تنظیمات 2FA به راحتی از طریق Web UI یا Command Line قابل پیاده‌سازی و مدیریت است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات امنیتی برای حفاظت از Web UI” subtitle=”توضیحات کامل”]Web UI در Proxmox VE ابزار اصلی برای مدیریت و نظارت بر ماشین‌های مجازی، کانتینرها و منابع است. از آنجا که این رابط وب به عنوان نقطه ورودی اصلی برای مدیریت سیستم عمل می‌کند، حفاظت از آن بسیار حیاتی است. تنظیمات امنیتی مناسب می‌تواند از دسترسی‌های غیرمجاز، حملات احتمالی و تهدیدات امنیتی جلوگیری کند.

در این بخش، روش‌های مختلف برای تقویت امنیت Web UI در Proxmox VE به صورت جامع و عملی توضیح داده خواهد شد. این تنظیمات شامل مواردی چون تغییر پورت پیش‌فرض، تنظیم فایروال، فعال‌سازی SSL، فعال‌سازی احراز هویت دو مرحله‌ای (2FA) و دیگر تنظیمات امنیتی است.


1. تغییر پورت پیش‌فرض Web UI

برای جلوگیری از حملات ربات‌ها یا اسکن‌های خودکار که به دنبال پورت‌های پیش‌فرض هستند، می‌توانید پورت Web UI را تغییر دهید.

1.1. تغییر پورت پیش‌فرض در Proxmox VE از طریق CLI
  1. ابتدا فایل تنظیمات Proxmox VE برای Web UI را باز کنید:
nano /etc/pve/pve-http.conf
  1. در این فایل، پورت پیش‌فرض که معمولاً 8006 است را پیدا کنید. به عنوان مثال:
listen 0.0.0.0:8006;
  1. عدد 8006 را به پورت دلخواه خود تغییر دهید. مثلاً برای تغییر به 8080:
listen 0.0.0.0:8080;
  1. پس از ذخیره تغییرات، باید سرویس pveproxy را ری‌استارت کنید تا تغییرات اعمال شود:
systemctl restart pveproxy

حال Web UI به پورت جدید منتقل شده و به این آدرس قابل دسترسی خواهد بود: https://your-ip:8080.


2. استفاده از SSL برای رمزنگاری ارتباطات

برای جلوگیری از حملات Man-in-the-Middle و تأمین امنیت در ارتباطات میان مرورگر و سرور، بهتر است از SSL/TLS برای رمزنگاری ترافیک Web UI استفاده کنید.

2.1. نصب گواهینامه SSL

در اینجا به نحوه فعال‌سازی SSL برای Proxmox VE پرداخته می‌شود. در ابتدا، باید گواهینامه SSL را نصب کنید.

  1. ابتدا فایل گواهینامه‌های SSL و کلید خصوصی خود را در مسیر /etc/ssl/ کپی کنید.
  2. فایل گواهینامه SSL خود را در پوشه مناسب (معمولاً /etc/pve/ یا /etc/ssl/) قرار دهید:
cp your-certificate.crt /etc/pve/
cp your-private-key.key /etc/pve/
  1. سپس تنظیمات Proxmox VE را برای استفاده از SSL به‌روزرسانی کنید:
nano /etc/pve/pve-http.conf
  1. در این فایل، مطمئن شوید که تنظیمات مربوط به SSL به شکل زیر باشد:
ssl /etc/pve/your-certificate.crt;
sslkey /etc/pve/your-private-key.key;
  1. بعد از ذخیره کردن فایل، سرویس pveproxy را ری‌استارت کنید:
systemctl restart pveproxy

پس از این کار، Web UI از طریق HTTPS و گواهینامه SSL به‌طور ایمن در دسترس خواهد بود.


3. فعال‌سازی فایروال (Firewall)

برای محدود کردن دسترسی به Web UI و جلوگیری از دسترسی‌های غیرمجاز، بهتر است از فایروال برای محدود کردن IP‌های مجاز استفاده کنید.

3.1. پیکربندی فایروال از طریق Web UI
  1. وارد Proxmox VE Web UI شوید.
  2. در منوی سمت چپ، بر روی Datacenter کلیک کرده و سپس به تب Firewall بروید.
  3. در این بخش، می‌توانید فایروال را برای Datacenter یا نودهای خاص فعال کنید.
  4. برای اضافه کردن قوانین فایروال جدید، بر روی Add کلیک کرده و قوانین مورد نظر برای محدود کردن دسترسی به پورت Web UI (پورت 8006 یا پورت جدید انتخابی) را تعریف کنید.
3.2. پیکربندی فایروال از طریق CLI
  1. برای فعال‌سازی فایروال در سطح Datacenter از دستور زیر استفاده کنید:
pve-firewall enable
  1. سپس می‌توانید دسترسی به پورت Web UI را تنها از IP‌های خاص محدود کنید. به عنوان مثال، برای محدود کردن دسترسی به Web UI تنها به IP مشخص، از دستور زیر استفاده کنید:
pve-firewall add rule allow tcp from 192.168.1.100 to any port 8006

این دستور، دسترسی به پورت 8006 را تنها برای IP 192.168.1.100 مجاز می‌کند.


4. فعال‌سازی احراز هویت دو مرحله‌ای (2FA)

برای تقویت امنیت ورود به Web UI، فعال‌سازی 2FA (احراز هویت دو مرحله‌ای) یکی از بهترین راهکارها است. پیش‌تر در بخش‌های قبلی، نحوه فعال‌سازی 2FA به‌طور کامل توضیح داده شد.


5. محدود کردن دسترسی با تنظیمات IP Whitelisting

برای محدود کردن دسترسی به Web UI از IP‌های خاص، می‌توانید از قابلیت IP Whitelisting استفاده کنید.

5.1. تنظیم IP Whitelisting در Proxmox VE
  1. فایل تنظیمات pveproxy را باز کنید:
nano /etc/pve/pveproxy.conf
  1. تنظیمات دسترسی برای IP Whitelisting را اعمال کنید. برای محدود کردن دسترسی به Web UI تنها به IP‌های خاص، از خطوط زیر استفاده کنید:
# Only allow access from specific IP addresses
allowed_ips: 192.168.1.100, 192.168.1.101

این تنظیمات باعث می‌شود تنها IP‌های 192.168.1.100 و 192.168.1.101 بتوانند به Web UI دسترسی داشته باشند.

  1. پس از اعمال تغییرات، سرویس pveproxy را ری‌استارت کنید:
systemctl restart pveproxy

6. استفاده از VPN برای دسترسی به Web UI

استفاده از VPN به عنوان یک لایه امنیتی اضافی نیز می‌تواند به محدود کردن دسترسی به Web UI کمک کند. برای دسترسی به Proxmox VE Web UI، تنها کاربرانی که از طریق VPN به شبکه داخلی متصل هستند، مجاز خواهند بود.

6.1. پیکربندی VPN
  1. یک سرور VPN (مثلاً OpenVPN) را در شبکه خود پیکربندی کنید.
  2. پس از راه‌اندازی سرور VPN، کاربران باید به شبکه داخلی متصل شوند تا از Web UI استفاده کنند.
  3. برای تنظیم این دسترسی، آدرس Web UI را به‌صورت داخلی و در شبکه خصوصی (IP‌های داخلی) قرار دهید.

جمع‌بندی

در این بخش، به بررسی روش‌های مختلف برای تقویت امنیت Web UI در Proxmox VE پرداختیم. از جمله مهم‌ترین اقدامات می‌توان به تغییر پورت پیش‌فرض Web UI، استفاده از SSL برای رمزنگاری ارتباطات، فعال‌سازی 2FA برای حفاظت بیشتر از حساب‌های کاربری، استفاده از Firewall و IP Whitelisting و همچنین پیکربندی VPN برای محدود کردن دسترسی به Web UI اشاره کرد. با انجام این تنظیمات، می‌توانید امنیت محیط مدیریت خود را افزایش داده و از حملات احتمالی و دسترسی‌های غیرمجاز جلوگیری کنید.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”بخش 3. ایجاد و مدیریت ماشین‌های مجازی (VMs)”][cdb_course_lesson title=”فصل 1. مفاهیم پایه‌ای ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”معرفی ماشین‌های مجازی (VMs) و نحوه عملکرد آن‌ها” subtitle=”توضیحات کامل”]ماشین مجازی (Virtual Machine یا VM) یک محیط شبیه‌سازی‌شده از یک سیستم کامپیوتری است که روی یک سخت‌افزار فیزیکی اجرا می‌شود. این محیط مستقل، قابلیت اجرای سیستم‌عامل‌ها و نرم‌افزارها را بدون نیاز به سخت‌افزار جداگانه دارد.

ماشین‌های مجازی با استفاده از نرم‌افزارهایی به نام Hypervisor مدیریت می‌شوند. Hypervisor سخت‌افزار فیزیکی را تقسیم‌بندی کرده و امکان اجرای چندین سیستم‌عامل به‌صورت همزمان را فراهم می‌کند.


انواع ماشین‌های مجازی

ماشین‌های مجازی به دو دسته اصلی تقسیم می‌شوند:

  • ماشین‌های مجازی نوع اول (Bare-Metal Hypervisor): این نوع مستقیماً روی سخت‌افزار اجرا می‌شود و نیازی به سیستم‌عامل میزبان ندارد. مثال‌ها: VMware ESXi، Microsoft Hyper-V، Proxmox VE
  • ماشین‌های مجازی نوع دوم (Hosted Hypervisor): این نوع روی یک سیستم‌عامل میزبان اجرا می‌شود و منابع سخت‌افزاری را از طریق آن دریافت می‌کند. مثال‌ها: VirtualBox، VMware Workstation

نحوه عملکرد ماشین‌های مجازی

ماشین‌های مجازی از طریق Hypervisor منابع سخت‌افزاری مانند CPU، RAM، دیسک و کارت شبکه را دریافت کرده و به‌صورت ایزوله اجرا می‌شوند.

مراحل اجرای یک ماشین مجازی به‌صورت خلاصه:

  1. اختصاص منابع: Hypervisor مقدار مشخصی از CPU، RAM و دیسک را به ماشین مجازی اختصاص می‌دهد.
  2. بوت شدن سیستم‌عامل: VM یک فایل ایمیج (ISO) یا دیسک مجازی را برای بوت شدن سیستم‌عامل استفاده می‌کند.
  3. اجرای پردازش‌ها: برنامه‌ها و سرویس‌ها روی VM اجرا شده و از منابع اختصاص‌یافته استفاده می‌کنند.
  4. مدیریت و نظارت: از طریق Web UI یا خط فرمان، وضعیت VM بررسی و مدیریت می‌شود.

ایجاد یک ماشین مجازی در Proxmox

ایجاد VM از طریق Web UI
  1. وارد Web UI شوید و روی Create VM کلیک کنید.
  2. Node موردنظر را انتخاب کنید.
  3. در تب General، یک ID و نام برای ماشین مجازی مشخص کنید.
  4. در تب OS، فایل ISO سیستم‌عامل را انتخاب کنید.
  5. در تب System، نوع BIOS و سایر تنظیمات را پیکربندی کنید.
  6. در تب Disks، CPU، Memory و Network منابع را مشخص کنید.
  7. روی Finish کلیک کنید تا VM ایجاد شود.
ایجاد VM از طریق خط فرمان
qm create 100 --name ubuntu-vm --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --ide2 local:iso/ubuntu.iso,media=cdrom --boot order=ide2

توضیح دستورات:

  • 100 : شناسه ماشین مجازی
  • --name : نام VM
  • --memory : میزان RAM (برحسب مگابایت)
  • --cores : تعداد هسته‌های CPU
  • --net0 : تنظیمات کارت شبکه
  • --ide2 : تعیین فایل ISO برای نصب سیستم‌عامل
  • --boot order=ide2 : تنظیم ترتیب بوت

راه‌اندازی و خاموش کردن ماشین مجازی

از طریق Web UI
  • برای روشن کردن VM: از پنل مدیریتی، VM را انتخاب کنید و روی Start کلیک کنید.
  • برای خاموش کردن VM: گزینه Shutdown یا Stop را انتخاب کنید.
از طریق خط فرمان
  • روشن کردن ماشین مجازی:
qm start 100
  • خاموش کردن ماشین مجازی:
qm shutdown 100
  • توقف اجباری (Force Stop):
qm stop 100

جمع‌بندی

ماشین‌های مجازی یکی از مهم‌ترین روش‌های مجازی‌سازی هستند که امکان اجرای چندین سیستم‌عامل را روی یک سرور فیزیکی فراهم می‌کنند. آن‌ها با استفاده از Hypervisor، منابع سخت‌افزاری را مدیریت کرده و به‌صورت ایزوله اجرا می‌شوند.

در Proxmox، می‌توان از طریق Web UI یا خط فرمان (CLI) به ایجاد، راه‌اندازی و مدیریت VM‌ها پرداخت. روش کامندی به کاربران پیشرفته امکان اسکریپت‌نویسی و مدیریت خودکار VMها را می‌دهد.

استفاده از VMs نه‌تنها باعث کاهش هزینه‌های سخت‌افزاری می‌شود، بلکه انعطاف‌پذیری بالایی در مدیریت منابع و سرویس‌ها ایجاد می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تفاوت‌های بین ماشین‌های مجازی و کانتینرها” subtitle=”توضیحات کامل”]در دنیای مجازی‌سازی، ماشین‌های مجازی (VMs) و کانتینرها (Containers) دو روش محبوب برای اجرای برنامه‌ها در محیط‌های ایزوله هستند. هر دو فناوری به بهینه‌سازی استفاده از منابع سخت‌افزاری کمک می‌کنند، اما تفاوت‌های کلیدی در نحوه عملکرد، مصرف منابع، و موارد استفاده دارند.


معماری و نحوه اجرا

ماشین‌های مجازی (VMs)
  • هر VM شامل یک سیستم‌عامل کامل (Guest OS) است که روی یک Hypervisor اجرا می‌شود.
  • منابع سخت‌افزاری مانند CPU، RAM، دیسک و کارت شبکه به هر VM اختصاص داده می‌شود.
  • می‌توان چندین VM را روی یک سرور فیزیکی اجرا کرد که هرکدام دارای سیستم‌عامل مستقل هستند.

مزایا:
✔️ ایزوله‌سازی کامل هر ماشین مجازی
✔️ قابلیت اجرای سیستم‌عامل‌های مختلف روی یک سرور
✔️ مناسب برای اجرای اپلیکیشن‌های بزرگ و پیچیده

معایب:
❌ مصرف بالای منابع به دلیل اجرای چندین سیستم‌عامل
❌ زمان بوت طولانی و مدیریت پیچیده

کانتینرها (Containers)
  • کانتینرها بر اساس مجازی‌سازی سطح سیستم‌عامل (OS-Level Virtualization) کار می‌کنند.
  • تمامی کانتینرها از یک کرنل مشترک استفاده می‌کنند و نیازی به سیستم‌عامل مستقل ندارند.
  • فناوری‌هایی مانند Docker، LXC، و Kubernetes برای مدیریت کانتینرها استفاده می‌شوند.

مزایا:
✔️ سبک‌تر از ماشین‌های مجازی (عدم نیاز به OS جداگانه)
✔️ سرعت اجرا و مقیاس‌پذیری بالا
✔️ مناسب برای میکروسرویس‌ها و DevOps

معایب:
❌ وابسته به سیستم‌عامل میزبان (در برخی موارد)
❌ امنیت پایین‌تر نسبت به VMها


مقایسه مصرف منابع

ویژگی ماشین مجازی (VM) کانتینر (Container)
سیستم‌عامل مستقل دارد (هر VM یک OS جداگانه دارد) ندارد (همه کانتینرها از OS میزبان استفاده می‌کنند)
مصرف RAM و CPU زیاد کم
زمان بوت کند (چند دقیقه) سریع (چند ثانیه)
انعطاف‌پذیری بالا (اجرای هر OS روی هر سرور) وابسته به OS میزبان
امنیت ایزوله‌شده و امن‌تر وابسته به کرنل مشترک

کاربردهای ماشین‌های مجازی و کانتینرها

چه زمانی از ماشین‌های مجازی استفاده کنیم؟

🔹 برای اجرای چندین سیستم‌عامل روی یک سرور
🔹 هنگام نیاز به ایزوله‌سازی کامل
🔹 اجرای نرم‌افزارهای قدیمی یا وابسته به OS خاص
🔹 در محیط‌های سازمانی با امنیت بالا

چه زمانی از کانتینرها استفاده کنیم؟

🔹 برای توسعه و اجرای برنامه‌های مدرن و میکروسرویس‌ها
🔹 هنگام نیاز به راه‌اندازی سریع و مقیاس‌پذیری بالا
🔹 برای DevOps و CI/CD
🔹 در سرویس‌های ابری که نیاز به چندین نمونه از یک برنامه دارند


اجرای یک ماشین مجازی و کانتینر در Proxmox

ایجاد یک ماشین مجازی در Proxmox (CLI)
qm create 101 --name ubuntu-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --ide2 local:iso/ubuntu.iso,media=cdrom --boot order=ide2
qm start 101

توضیح:

  • VM با شناسه 101 و 2 گیگابایت RAM ایجاد می‌شود.
  • فایل ISO اوبونتو به آن متصل شده و راه‌اندازی می‌شود.
ایجاد یک کانتینر LXC در Proxmox (CLI)
pct create 102 local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz --hostname ubuntu-lxc --memory 1024 --cores 2 --net0 name=eth0,bridge=vmbr0,ip=dhcp
pct start 102

توضیح:

  • کانتینر با شناسه 102 و 1 گیگابایت RAM ایجاد می‌شود.
  • از قالب (template) اوبونتو 20.04 استفاده شده است.
  • کارت شبکه کانتینر روی DHCP تنظیم شده است.

جمع‌بندی

ماشین‌های مجازی و کانتینرها هر دو برای مجازی‌سازی و بهینه‌سازی منابع استفاده می‌شوند، اما معماری و موارد استفاده آن‌ها متفاوت است.

  • VMها سیستم‌عامل مستقل دارند، منابع بیشتری مصرف می‌کنند اما ایزوله‌سازی قوی‌تری دارند.
  • کانتینرها سبک‌تر هستند، سریع‌تر اجرا می‌شوند اما امنیت و ایزوله‌سازی ضعیف‌تری نسبت به VM دارند.

در Proxmox، هم می‌توان از VMs برای اجرای سیستم‌عامل‌های کامل و هم از LXC Containers برای اجرای سرویس‌های سبک‌تر استفاده کرد. انتخاب بین این دو بستگی به نیازهای عملکردی، امنیتی و مقیاس‌پذیری دارد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”اجزای کلیدی یک ماشین مجازی: CPU، RAM، Disk، Network” subtitle=”توضیحات کامل”]ماشین‌های مجازی (VMs) به‌عنوان یکی از اصلی‌ترین ابزارهای مجازی‌سازی در سیستم‌های سرور و مراکز داده، از اجزای مختلفی تشکیل شده‌اند که هر کدام نقش ویژه‌ای در عملکرد و بهینه‌سازی منابع دارند. این اجزا عبارتند از CPU، RAM، Disk و Network. درک و مدیریت صحیح این اجزا می‌تواند تأثیر زیادی در کارایی و بهینه‌سازی استفاده از منابع در سیستم‌های مجازی‌سازی داشته باشد.

در این بخش، به‌طور جامع و کاربردی، به هر یک از این اجزا پرداخته می‌شود، نحوه پیکربندی و تنظیمات آن‌ها در محیط Proxmox VE بررسی می‌شود، و در نهایت دستورالعمل‌های لازم به‌صورت کامندی نیز آورده خواهد شد.


1. CPU (پردازنده)

CPU یکی از اصلی‌ترین اجزای هر ماشین مجازی است که عملکرد کلی سیستم را تعیین می‌کند. در یک ماشین مجازی، شما معمولاً تعداد هسته‌های پردازشی و مقدار قدرت پردازشی را که باید به آن اختصاص داده شود، مشخص می‌کنید. در محیط‌های مجازی‌سازی مانند Proxmox، از CPUهای مجازی استفاده می‌شود که توسط هایپروایزر (Hypervisor) به پردازنده فیزیکی اختصاص می‌یابند.

تنظیمات CPU در Proxmox:

برای تنظیم تعداد هسته‌های پردازشی برای یک ماشین مجازی در Proxmox، از دستورات زیر استفاده می‌شود:

  • ایجاد یک ماشین مجازی با 4 هسته پردازشی:
qm create 101 --name ubuntu-vm --memory 2048 --cores 4 --net0 virtio,bridge=vmbr0 --boot order=ide2

در این دستور:

  • --cores 4 به ماشین مجازی اجازه می‌دهد تا از 4 هسته پردازشی استفاده کند.
پیکربندی CPU در Web UI:
  1. به صفحه اصلی Proxmox بروید.
  2. روی ماشین مجازی کلیک کنید.
  3. وارد تب Hardware شوید.
  4. گزینه CPU را انتخاب کنید.
  5. تعداد هسته‌ها و تنظیمات مختلف دیگر مانند نوع CPU را مشخص کنید.

2. RAM (حافظه)

حافظه RAM در یک ماشین مجازی برای اجرای سیستم‌عامل و اپلیکیشن‌ها به‌طور مستقیم استفاده می‌شود. میزان RAM اختصاصی به ماشین‌های مجازی باید به گونه‌ای تنظیم شود که هم سیستم مجازی کارایی داشته باشد و هم منابع سیستم فیزیکی به‌طور بهینه استفاده شوند.

تنظیمات RAM در Proxmox:

برای تنظیم میزان RAM به ماشین مجازی در Proxmox، از دستور زیر استفاده می‌شود:

  • ایجاد یک ماشین مجازی با 4 گیگابایت حافظه RAM:
qm create 101 --name ubuntu-vm --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --boot order=ide2

در این دستور:

  • --memory 4096 به ماشین مجازی 4 گیگابایت RAM اختصاص می‌دهد.
پیکربندی RAM در Web UI:
  1. به صفحه اصلی Proxmox بروید.
  2. روی ماشین مجازی کلیک کنید.
  3. وارد تب Hardware شوید.
  4. گزینه Memory را انتخاب کنید.
  5. مقدار RAM را به دلخواه تنظیم کنید.

3. Disk (دیسک)

دیسک سخت‌افزاری محل ذخیره‌سازی اطلاعات سیستم‌عامل، فایل‌ها و اپلیکیشن‌ها است. در یک ماشین مجازی، دیسک می‌تواند به‌صورت مجازی و با استفاده از فناوری‌های مختلف مانند LVM، ZFS یا Ceph ایجاد شود. اندازه و نوع دیسک تأثیر زیادی در عملکرد سیستم دارد.

تنظیمات Disk در Proxmox:

برای اضافه کردن دیسک به یک ماشین مجازی در Proxmox، از دستور زیر استفاده می‌شود:

  • اضافه کردن یک دیسک 50 گیگابایتی به ماشین مجازی:
qm set 101 --virtio0 local-lvm:50

در این دستور:

  • local-lvm:50 دیسک 50 گیگابایتی را به ماشین مجازی اختصاص می‌دهد.
پیکربندی Disk در Web UI:
  1. به صفحه اصلی Proxmox بروید.
  2. روی ماشین مجازی کلیک کنید.
  3. وارد تب Hardware شوید.
  4. گزینه Add را انتخاب کرده و گزینه Hard Disk را بزنید.
  5. دیسک موردنظر را با حجم و نوع مناسب تنظیم کنید.

4. Network (شبکه)

شبکه در ماشین‌های مجازی برای برقراری ارتباط با سایر ماشین‌ها، سرورها و اینترنت ضروری است. در Proxmox، شما می‌توانید شبکه‌ها را به ماشین‌های مجازی اختصاص دهید و آن‌ها را برای Bridge networking یا NAT تنظیم کنید.

تنظیمات شبکه در Proxmox:

برای تنظیم شبکه و اتصال ماشین مجازی به یک شبکه مجازی در Proxmox، از دستور زیر استفاده می‌شود:

  • تنظیم شبکه برای ماشین مجازی:
qm set 101 --net0 virtio,bridge=vmbr0

در این دستور:

  • --net0 virtio,bridge=vmbr0 به ماشین مجازی یک رابط شبکه (virtio) اختصاص می‌دهد که به شبکه مجازی vmbr0 متصل است.
پیکربندی Network در Web UI:
  1. به صفحه اصلی Proxmox بروید.
  2. روی ماشین مجازی کلیک کنید.
  3. وارد تب Hardware شوید.
  4. گزینه Network Device را انتخاب کنید.
  5. نوع رابط شبکه و شبکه موردنظر را تنظیم کنید.

جمع‌بندی

ماشین‌های مجازی (VMs) به مجموعه‌ای از منابع سخت‌افزاری مانند CPU، RAM، Disk و Network نیاز دارند تا به‌درستی کار کنند. مدیریت و پیکربندی صحیح این منابع می‌تواند تأثیر زیادی در عملکرد و بهینه‌سازی سیستم‌های مجازی‌سازی داشته باشد.

  • CPU مسئول پردازش اطلاعات است و تعیین‌کننده سرعت اجرای اپلیکیشن‌ها است.
  • RAM برای ذخیره موقت اطلاعات و تسریع عملکرد سیستم حیاتی است.
  • Disk برای ذخیره‌سازی داده‌ها و سیستم‌عامل مورد استفاده قرار می‌گیرد.
  • Network امکان ارتباط بین ماشین‌های مجازی و دیگر دستگاه‌ها را فراهم می‌کند.

با استفاده از دستورالعمل‌های بالا و پیکربندی‌های مناسب، می‌توان این اجزا را در محیط Proxmox به‌طور بهینه پیکربندی کرده و از منابع به بهترین نحو استفاده کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ساختار و اجزای ماشین مجازی در Proxmox VE” subtitle=”توضیحات کامل”]Proxmox Virtual Environment (Proxmox VE) یک پلتفرم قوی و متن‌باز برای مجازی‌سازی است که از KVM برای مجازی‌سازی ماشین‌های مجازی (VMs) و LXC برای کانتینرها استفاده می‌کند. در این پلتفرم، ماشین‌های مجازی از اجزای مختلفی تشکیل شده‌اند که هرکدام نقش حیاتی در عملکرد و بهره‌وری ماشین‌های مجازی دارند.

در این بخش، ساختار و اجزای یک ماشین مجازی در Proxmox VE را بررسی می‌کنیم و نحوه پیکربندی آن‌ها به‌صورت گرافیکی و دستوری را توضیح خواهیم داد.


1. CPU (پردازنده)

پردازنده (CPU) یکی از اجزای اساسی در هر ماشین مجازی است که وظیفه پردازش اطلاعات و اجرای دستورات سیستم‌عامل و برنامه‌ها را بر عهده دارد. در Proxmox VE، CPUهای مجازی به ماشین‌های مجازی اختصاص داده می‌شوند.

پیکربندی CPU در Proxmox VE:

در Proxmox VE می‌توان تعداد هسته‌های پردازشی را به ماشین مجازی اختصاص داد. این کار می‌تواند به‌صورت گرافیکی و کامندی انجام شود.

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه CPU را انتخاب کنید و تعداد هسته‌ها و تنظیمات مختلف را تنظیم کنید.

روش کامندی:

برای اختصاص تعداد هسته‌های پردازشی به ماشین مجازی می‌توانید از دستور زیر استفاده کنید:

qm set 101 --cores 4

در این دستور، --cores 4 چهار هسته پردازشی را به ماشین مجازی اختصاص می‌دهد.


2. RAM (حافظه)

حافظه RAM به ماشین‌های مجازی اختصاص داده می‌شود تا برای پردازش داده‌ها و اجرای برنامه‌ها استفاده شود. میزان RAM باید متناسب با نیازهای ماشین مجازی تنظیم شود.

پیکربندی RAM در Proxmox VE:

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه Memory را انتخاب کنید.
  4. مقدار RAM را تنظیم کنید.

روش کامندی:

برای تخصیص حافظه RAM به ماشین مجازی از دستور زیر استفاده کنید:

qm set 101 --memory 4096

در این دستور، --memory 4096 به ماشین مجازی 4 گیگابایت حافظه RAM اختصاص می‌دهد.


3. Disk (دیسک سخت‌افزاری)

دیسک در ماشین مجازی برای ذخیره‌سازی داده‌ها، سیستم‌عامل و فایل‌ها استفاده می‌شود. در Proxmox VE، شما می‌توانید انواع مختلف دیسک‌ها از جمله دیسک‌های محلی، NFS و iSCSI را به ماشین‌های مجازی اختصاص دهید.

پیکربندی Disk در Proxmox VE:

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه Hard Disk را انتخاب کنید.
  4. نوع و اندازه دیسک را انتخاب کرده و آن را به ماشین مجازی اضافه کنید.

روش کامندی:

برای اضافه کردن دیسک به ماشین مجازی از دستور زیر استفاده کنید:

qm set 101 --virtio0 local-lvm:50

در این دستور، local-lvm:50 یک دیسک 50 گیگابایتی را به ماشین مجازی اضافه می‌کند.


4. Network (شبکه)

شبکه به ماشین‌های مجازی امکان برقراری ارتباط با سایر ماشین‌ها، سرورها و اینترنت را می‌دهد. در Proxmox VE، شما می‌توانید تنظیمات شبکه را به‌صورت پیشرفته برای هر ماشین مجازی پیکربندی کنید.

پیکربندی Network در Proxmox VE:

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه Network Device را انتخاب کنید.
  4. نوع شبکه (Bridge یا NAT) و تنظیمات دیگر را تنظیم کنید.

روش کامندی:

برای تنظیم یک رابط شبکه برای ماشین مجازی، از دستور زیر استفاده کنید:

qm set 101 --net0 virtio,bridge=vmbr0

در این دستور:

  • --net0 virtio نوع رابط شبکه را تعیین می‌کند.
  • bridge=vmbr0 ماشین مجازی را به شبکه مجازی vmbr0 متصل می‌کند.

5. CD/DVD Drive (درایو CD/DVD)

درایوهای CD/DVD برای بوت کردن سیستم‌عامل‌ها و نصب نرم‌افزارها استفاده می‌شوند. Proxmox VE این امکان را فراهم می‌کند که یک فایل ISO را به ماشین مجازی متصل کنید.

پیکربندی CD/DVD Drive در Proxmox VE:

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه CD/DVD Drive را انتخاب کنید و فایل ISO را به ماشین مجازی متصل کنید.

روش کامندی:

برای اضافه کردن یک درایو CD/DVD به ماشین مجازی و اتصال فایل ISO به آن از دستور زیر استفاده کنید:

qm set 101 --ide2 local:iso/ubuntu.iso,media=cdrom

در این دستور:

  • local:iso/ubuntu.iso مسیر فایل ISO است که می‌خواهید به درایو CD/DVD اضافه کنید.

6. USB Device (دستگاه USB)

Proxmox VE به شما این امکان را می‌دهد که دستگاه‌های USB را به ماشین‌های مجازی متصل کنید. این کار به‌ویژه برای استفاده از دستگاه‌های خاص مانند چاپگرها، اسکنرها یا USB stick‌ها مفید است.

پیکربندی USB Device در Proxmox VE:

روش گرافیکی:

  1. وارد صفحه VM در Proxmox شوید.
  2. روی ماشین مجازی کلیک کرده و وارد تب Hardware شوید.
  3. گزینه USB Device را انتخاب کرده و دستگاه USB خود را متصل کنید.

روش کامندی:

برای اضافه کردن یک دستگاه USB به ماشین مجازی از دستور زیر استفاده کنید:

qm set 101 --usb0 host=1234:5678

در این دستور:

  • host=1234:5678 شناسه دستگاه USB است که باید به ماشین مجازی متصل شود.

جمع‌بندی

ماشین‌های مجازی در Proxmox VE از اجزای مختلفی تشکیل شده‌اند که هرکدام نقش ویژه‌ای در کارکرد و عملکرد کلی سیستم دارند. این اجزا شامل CPU، RAM، Disk، Network، CD/DVD Drive و USB Device هستند. با پیکربندی مناسب هر یک از این اجزا، می‌توان ماشین‌های مجازی را به‌طور بهینه مدیریت کرد و منابع سیستم را به بهترین نحو استفاده کرد.

استفاده از دستورالعمل‌های گرافیکی و کامندی برای پیکربندی این اجزا در Proxmox VE امکان‌پذیر است که بستگی به نیاز و شرایط هر محیط، می‌توان از هر کدام استفاده کرد.[/cdb_course_lesson][cdb_course_lesson title=”فصل 2. ایجاد ماشین‌های مجازی جدید”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نحوه ایجاد ماشین مجازی از طریق Web UI” subtitle=”توضیحات کامل”]Proxmox VE یک پلتفرم قدرتمند برای مجازی‌سازی است که برای مدیریت ماشین‌های مجازی (VMs) و کانتینرها (LXC) از یک رابط کاربری وب (Web UI) بسیار کاربرپسند بهره می‌برد. در این بخش، نحوه ایجاد ماشین مجازی از طریق Web UI را به‌طور کامل و گام‌به‌گام توضیح خواهیم داد و تنظیمات و پیکربندی‌های مختلف را به‌صورت عملی بیان خواهیم کرد.


1. وارد شدن به Web UI

اولین قدم برای ایجاد یک ماشین مجازی در Proxmox VE، وارد شدن به رابط کاربری وب است:

  1. در مرورگر خود، آدرس IP سرور Proxmox خود را وارد کنید (به‌طور پیش‌فرض 8006 پورت است).
    https://<Your-Server-IP>:8006
    

    به‌عنوان مثال:

    https://192.168.1.100:8006
    
  2. وارد کردن نام کاربری و رمز عبور مدیر (root) برای دسترسی به پنل مدیریتی Proxmox.

2. ایجاد ماشین مجازی جدید

برای ایجاد یک ماشین مجازی جدید، مراحل زیر را دنبال کنید:

  1. انتخاب Datacenter: بعد از ورود به Web UI، از منوی سمت چپ، گزینه Datacenter را انتخاب کنید. سپس روی سروری که قصد ایجاد ماشین مجازی روی آن را دارید، کلیک کنید.
  2. انتخاب Create VM: در نوار بالای صفحه، بر روی Create VM کلیک کنید. این گزینه برای شروع فرآیند ایجاد ماشین مجازی است.

3. پیکربندی عمومی ماشین مجازی

پس از کلیک بر روی Create VM، یک پنجره جدید باز می‌شود که شما باید اطلاعات مربوط به ماشین مجازی خود را وارد کنید. این بخش شامل چندین تب مختلف است که به شرح زیر است:

  1. Tab: General
    در این بخش، شما اطلاعات پایه ماشین مجازی خود را وارد می‌کنید.

    • Node: نام سروری که ماشین مجازی روی آن ایجاد خواهد شد. به‌طور پیش‌فرض، این مقدار همان سروری است که شما انتخاب کرده‌اید.
    • VM ID: یک شناسه منحصر به فرد برای ماشین مجازی. این شناسه به‌طور خودکار تولید می‌شود، اما می‌توانید آن را تغییر دهید.
    • Name: نام ماشین مجازی که می‌توانید به دلخواه وارد کنید.
    • OS Type: نوع سیستم‌عامل مورد نظر. در این بخش باید نوع سیستم‌عاملی که می‌خواهید روی ماشین مجازی نصب کنید را انتخاب کنید.
      • برای مثال، اگر قصد نصب Ubuntu دارید، گزینه Linux را انتخاب کرده و سپس نسخه Ubuntu را انتخاب کنید.
      • اگر از یک فایل ISO برای نصب استفاده می‌کنید، در ادامه بخش انتخاب فایل ISO به آن خواهیم پرداخت.

4. انتخاب فایل ISO برای نصب سیستم‌عامل

در این مرحله، شما باید یک فایل ISO سیستم‌عامل انتخاب کنید تا بر اساس آن نصب انجام شود.

  1. Tab: OS
    • CD/DVD: در این قسمت، می‌توانید فایل ISO سیستم‌عامل را برای نصب بر روی ماشین مجازی انتخاب کنید. اگر فایل ISO بر روی سرور موجود نیست، باید آن را از Web UI بارگذاری کنید.
      • برای بارگذاری فایل ISO از طریق Web UI، در نوار کناری سمت چپ، گزینه Storage را انتخاب کنید.
      • سپس بر روی ISO Image کلیک کرده و فایل ISO مورد نظر را آپلود کنید.
    • Guest Operating System: انتخاب سیستم‌عامل مورد نظر برای نصب. این قسمت به‌طور خودکار انتخاب می‌شود، اما اگر به‌طور خاص از یک نسخه خاص استفاده می‌کنید، آن را از اینجا می‌توانید تنظیم کنید.

5. پیکربندی منابع (CPU, RAM, Disk)

در این بخش شما منابع سخت‌افزاری ماشین مجازی مانند پردازنده (CPU)، حافظه (RAM) و فضای ذخیره‌سازی (Disk) را تنظیم خواهید کرد.

  1. Tab: System
    • CPU: در این قسمت تعداد هسته‌های پردازشی را برای ماشین مجازی خود انتخاب می‌کنید.
      • می‌توانید تعداد هسته‌ها را با استفاده از گزینه‌های گرافیکی تنظیم کنید.
      • به‌طور پیش‌فرض، مقدار CPU به‌صورت 1 هسته است. اگر نیاز به هسته‌های بیشتری دارید، این مقدار را افزایش دهید.
  2. Tab: Memory
    • RAM: مقدار حافظه RAM برای ماشین مجازی را تنظیم کنید. برای مثال، اگر می‌خواهید 4 گیگابایت RAM اختصاص دهید، مقدار 4096 را وارد کنید.
  3. Tab: Hard Disk
    • Disk Size: اندازه دیسک مجازی را وارد کنید. به‌عنوان مثال، اگر می‌خواهید 50 گیگابایت فضای دیسک برای ماشین مجازی اختصاص دهید، این مقدار را وارد کنید.
    • Bus/Device: نوع اتصال دیسک را انتخاب کنید (IDE, SCSI, VirtIO).
    • Storage: می‌توانید نوع ذخیره‌سازی برای دیسک را انتخاب کنید. به‌عنوان مثال، از local برای ذخیره‌سازی محلی یا از local-lvm برای ذخیره‌سازی LVM استفاده کنید.

6. پیکربندی شبکه

در این بخش، تنظیمات شبکه ماشین مجازی تنظیم می‌شود.

  1. Tab: Network
    • Bridge: شبکه‌ای که ماشین مجازی باید به آن متصل شود را انتخاب کنید. برای اتصال به شبکه داخلی، از vmbr0 استفاده کنید.
    • Model: مدل کارت شبکه را انتخاب کنید. برای اتصال بهتر و کارایی بیشتر، معمولاً از virtio استفاده می‌شود.

7. بررسی و ایجاد ماشین مجازی

پس از پیکربندی منابع مختلف ماشین مجازی، آخرین مرحله بررسی تنظیمات است.

  1. Tab: Confirmation
    در این قسمت، همه تنظیمات انتخاب‌شده به‌صورت خلاصه نمایش داده می‌شود. شما می‌توانید تمام پیکربندی‌های انجام‌شده را مرور کنید.
  2. Create: پس از تایید تنظیمات، بر روی دکمه Finish یا Create کلیک کنید تا ماشین مجازی ایجاد شود.

8. دستور کامندی برای ایجاد ماشین مجازی

برای ایجاد ماشین مجازی از طریق ترمینال، می‌توانید از دستور qm استفاده کنید. به‌عنوان مثال، دستور زیر یک ماشین مجازی جدید با ID 101 ایجاد می‌کند:

qm create 101 --name MyVM --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu.iso --disk 50

در این دستور:

  • 101: ID ماشین مجازی
  • --name MyVM: نام ماشین مجازی
  • --memory 4096: اختصاص 4 گیگابایت حافظه
  • --cores 2: تخصیص 2 هسته CPU
  • --net0 virtio,bridge=vmbr0: تنظیمات شبکه (استفاده از bridge به نام vmbr0)
  • --cdrom /var/lib/vz/template/iso/ubuntu.iso: انتخاب فایل ISO برای نصب
  • --disk 50: تخصیص 50 گیگابایت فضای دیسک

جمع‌بندی

ایجاد ماشین مجازی در Proxmox VE از طریق Web UI بسیار ساده است و با استفاده از رابط گرافیکی، می‌توان تنظیمات مختلف مانند منابع سخت‌افزاری، سیستم‌عامل، شبکه و دیسک را به‌راحتی پیکربندی کرد. علاوه بر استفاده از Web UI، دستوراتی مانند qm create در محیط ترمینال نیز به شما امکان می‌دهند تا ماشین‌های مجازی را به‌صورت خودکار و با دقت بیشتری ایجاد کنید. با پیروی از این مراحل، شما می‌توانید ماشین‌های مجازی خود را در محیط Proxmox VE با موفقیت ایجاد کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات اولیه هنگام ایجاد VM” subtitle=”توضیحات کامل”]هنگام ایجاد یک ماشین مجازی (VM) در Proxmox VE، نیاز به پیکربندی چندین پارامتر اساسی و حیاتی داریم. این تنظیمات به شما کمک می‌کند تا ماشین مجازی خود را به‌طور مؤثر و مطابق نیازهای خاص خود پیکربندی کنید. تنظیمات اولیه به چهار بخش اصلی تقسیم می‌شود: انتخاب سیستم‌عامل (OS)، تخصیص منابع (CPU، RAM، Disk)، انتخاب نوع کارت شبکه و انتخاب نوع دیسک.

در ادامه به تفصیل این مراحل را همراه با دستورات کامندی بررسی خواهیم کرد.


1. انتخاب سیستم‌عامل (OS)

انتخاب سیستم‌عامل برای ماشین مجازی یک مرحله بسیار مهم است که در ابتدا باید به آن پرداخته شود. برای این کار، ابتدا باید فایل ISO سیستم‌عامل مورد نظر را بارگذاری و آماده کنید.

  1. بارگذاری فایل ISO از طریق Web UI:
    • ابتدا به Web UI وارد شوید و از بخش Datacenter، گزینه Storage را انتخاب کنید.
    • روی گزینه ISO Images کلیک کرده و سپس گزینه Upload را انتخاب کنید.
    • فایل ISO سیستم‌عامل خود را آپلود کنید.
  2. انتخاب سیستم‌عامل هنگام ایجاد VM: در هنگام ایجاد ماشین مجازی، در تب OS شما می‌توانید فایل ISO مورد نظر خود را از قسمت CD/DVD انتخاب کنید.
    • برای انتخاب سیستم‌عامل خاص، فایل ISO سیستم‌عامل را از طریق دکمه Browse انتخاب کنید.
    • Guest Operating System: سیستم‌عاملی که قصد نصب آن را دارید، انتخاب کنید. این می‌تواند سیستم‌عامل‌های لینوکسی یا ویندوزی باشد.

    دستور کامندی: برای انتخاب سیستم‌عامل در هنگام ایجاد VM به‌صورت کامندی می‌توانید از دستور زیر استفاده کنید:

    qm create 101 --name MyVM --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu.iso --disk 50
    

    در این دستور:

    • --cdrom /var/lib/vz/template/iso/ubuntu.iso: مسیر فایل ISO سیستم‌عامل Ubuntu است.

2. تخصیص منابع (CPU, RAM, Disk)

در این بخش باید منابع سخت‌افزاری ماشین مجازی خود را تعیین کنید، از جمله CPU، RAM و Disk.

  1. تخصیص CPU:
    • Cores: تعداد هسته‌های پردازنده‌ای که ماشین مجازی استفاده خواهد کرد. این مقدار باید با توجه به منابع موجود روی سرور و نیازهای نرم‌افزاری تنظیم شود.
    • CPU Type: شما می‌توانید نوع پردازنده را انتخاب کنید (مثلاً اگر از پردازنده‌های Intel یا AMD استفاده می‌کنید، این گزینه را می‌توانید تنظیم کنید).
  2. تخصیص RAM:
    • در این بخش شما می‌توانید مقدار حافظه RAM که ماشین مجازی به آن نیاز دارد را تنظیم کنید. مقدار حافظه باید مطابق با نیازهای سیستم‌عامل و برنامه‌های مورد استفاده تنظیم شود.
    • به‌طور مثال، برای یک سرور لینوکسی ممکن است 2 تا 4 گیگابایت کافی باشد، در حالی که برای سیستم‌های ویندوزی ممکن است به 8 گیگابایت یا بیشتر نیاز داشته باشید.
  3. تخصیص دیسک (Storage):
    • در این مرحله، شما باید اندازه دیسک سخت ماشین مجازی را مشخص کنید. به‌طور معمول، برای نصب سیستم‌عامل حداقل 20 گیگابایت فضای دیسک پیشنهاد می‌شود.
    • Bus/Device: انتخاب نوع اتصال دیسک. معمولاً از SCSI، IDE یا VirtIO برای اتصال دیسک‌ها استفاده می‌شود.

    دستور کامندی: برای تخصیص منابع در هنگام ایجاد VM از دستور زیر استفاده کنید:

    qm create 101 --name MyVM --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu.iso --disk 50
    
    • در این دستور:
      • --memory 4096: تخصیص 4 گیگابایت حافظه RAM
      • --cores 2: تخصیص 2 هسته CPU
      • --disk 50: تخصیص 50 گیگابایت فضای دیسک

3. انتخاب نوع کارت شبکه

انتخاب نوع کارت شبکه برای ماشین مجازی به این بستگی دارد که شما از چه نوع شبکه‌ای برای اتصال استفاده می‌کنید. انتخاب درست کارت شبکه می‌تواند تأثیر زیادی در کارایی و عملکرد شبکه داشته باشد.

  1. Bridge Network: استفاده از شبکه Bridge به شما این امکان را می‌دهد که ماشین مجازی به طور مستقیم به شبکه فیزیکی سرور متصل شود.
    • برای ایجاد شبکه Bridge معمولاً از vmbr0 استفاده می‌شود.
  2. نوع کارت شبکه (NIC): برای نوع کارت شبکه، شما می‌توانید یکی از گزینه‌های زیر را انتخاب کنید:
    • VirtIO: به‌طور معمول برای عملکرد بهتر و سرعت بیشتر استفاده می‌شود.
    • E1000: برای سازگاری بیشتر با سیستم‌عامل‌های قدیمی و برخی برنامه‌ها.
    • RTL8139: یکی دیگر از انتخاب‌ها برای کارت شبکه است.

دستور کامندی: برای انتخاب کارت شبکه به‌صورت کامندی، از دستور زیر استفاده کنید:

qm set 101 --net0 virtio,bridge=vmbr0

در این دستور:

  • --net0 virtio,bridge=vmbr0: انتخاب کارت شبکه با استفاده از VirtIO و اتصال آن به شبکه vmbr0.

4. انتخاب نوع دیسک (SCSI, IDE, VirtIO)

در این بخش شما می‌توانید انتخاب کنید که دیسک ماشین مجازی به چه صورت به سیستم متصل شود. گزینه‌های مختلفی برای نوع دیسک وجود دارد که باید با توجه به نیازهای شما انتخاب شوند.

  1. IDE: این گزینه برای سیستم‌های قدیمی‌تر استفاده می‌شود. اگر قصد دارید از یک ماشین مجازی با سیستم‌عامل قدیمی استفاده کنید، این گزینه مناسب است.
  2. SCSI: این گزینه سرعت و کارایی بهتری نسبت به IDE دارد و به‌طور معمول برای ماشین‌های مجازی مدرن توصیه می‌شود.
  3. VirtIO: بهترین عملکرد را برای ماشین‌های مجازی مدرن دارد و برای سیستم‌عامل‌هایی که از این پروتکل پشتیبانی می‌کنند، مناسب است. این گزینه سرعت بالاتری را در انتقال داده فراهم می‌آورد.

دستور کامندی: برای انتخاب نوع دیسک و پیکربندی آن به‌صورت کامندی، از دستور زیر استفاده کنید:

qm set 101 --ide0 local:50

در این دستور:

  • --ide0 local:50: تخصیص یک دیسک از نوع IDE با اندازه 50 گیگابایت به ماشین مجازی.

اگر قصد استفاده از SCSI یا VirtIO را دارید، می‌توانید دستورات زیر را استفاده کنید:

برای SCSI:

qm set 101 --scsihw virtio-scsi-pci --scsi0 local-lvm:50

برای VirtIO:

qm set 101 --virtio0 local-lvm:50

جمع‌بندی

در این بخش، تنظیمات اولیه هنگام ایجاد ماشین مجازی در Proxmox VE را مورد بررسی قرار دادیم. این تنظیمات شامل انتخاب سیستم‌عامل، تخصیص منابع سخت‌افزاری مانند CPU، RAM و Disk، انتخاب نوع کارت شبکه و انتخاب نوع دیسک (IDE، SCSI، VirtIO) بود. تنظیمات دقیق و انتخاب‌های درست این پارامترها می‌توانند تأثیر زیادی بر عملکرد ماشین مجازی داشته باشند. به‌علاوه، دستوراتی که برای ایجاد ماشین مجازی به‌صورت کامندی ذکر شد، به شما امکان می‌دهند تا پیکربندی‌های خود را به‌صورت دقیق و سریع انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتخاب و پیکربندی Media (CD/DVD) برای نصب سیستم‌عامل” subtitle=”توضیحات کامل”]یکی از مراحل حیاتی در ایجاد ماشین مجازی (VM) نصب سیستم‌عامل است. برای نصب سیستم‌عامل بر روی ماشین مجازی در Proxmox VE، شما باید ابتدا رسانه‌ای برای بوت ماشین مجازی (مثل CD/DVD) انتخاب کنید که معمولاً شامل فایل ISO سیستم‌عامل می‌شود. این فایل‌ها معمولاً از منابعی مانند سایت‌های رسمی توزیع‌های لینوکس یا ویندوز دانلود می‌شوند. در این بخش، نحوه انتخاب و پیکربندی رسانه برای نصب سیستم‌عامل در ماشین مجازی را به تفصیل توضیح می‌دهیم.


1. بارگذاری فایل ISO به محیط Proxmox VE

اولین قدم برای استفاده از فایل ISO به عنوان رسانه نصب سیستم‌عامل، بارگذاری آن در سیستم ذخیره‌سازی Proxmox است.

  1. وارد Web UI شوید و به بخش Datacenter بروید.
  2. از سمت چپ، روی Storage کلیک کنید و سپس ISO Images را انتخاب کنید.
  3. دکمه Upload را بزنید و فایل ISO مربوط به سیستم‌عامل مورد نظر خود را انتخاب کرده و آپلود کنید.
    • به‌طور معمول، فایل‌های ISO سیستم‌عامل‌ها در مسیر /var/lib/vz/template/iso/ ذخیره می‌شوند.

پس از بارگذاری فایل ISO، شما آماده هستید که آن را به ماشین مجازی خود متصل کنید.


2. انتخاب و پیکربندی Media (CD/DVD) برای نصب سیستم‌عامل

برای استفاده از فایل ISO به‌عنوان رسانه نصب سیستم‌عامل، شما باید فایل ISO بارگذاری شده را به دستگاه CD/DVD ماشین مجازی متصل کنید. این کار به دو روش قابل انجام است: از طریق Web UI یا دستور کامندی.

1. Web UI:

در هنگام ایجاد ماشین مجازی یا بعد از ایجاد آن، شما می‌توانید فایل ISO را به عنوان رسانه نصب به ماشین مجازی متصل کنید.

  1. وارد Web UI شوید و ماشین مجازی مورد نظر خود را انتخاب کنید.
  2. به تب Hardware بروید.
  3. در قسمت Hardware، گزینه CD/DVD Drive را انتخاب کنید و روی Edit کلیک کنید.
  4. در پنجره باز شده، از قسمت Media گزینه ISO Image را انتخاب کرده و سپس از لیست کشویی، فایل ISO که قبلاً آپلود کرده‌اید را انتخاب کنید.
  5. در انتها، برای ذخیره تغییرات، دکمه OK را بزنید.

با این کار، شما فایل ISO را به عنوان منبع نصب سیستم‌عامل به ماشین مجازی متصل کرده‌اید.

2. دستور کامندی:

برای انتخاب و پیکربندی Media از طریق دستورات خط فرمان، می‌توانید از دستور زیر استفاده کنید:

qm set 101 --cdrom /var/lib/vz/template/iso/ubuntu.iso

در این دستور:

  • 101: شناسه (ID) ماشین مجازی است که می‌خواهید رسانه را به آن متصل کنید.
  • /var/lib/vz/template/iso/ubuntu.iso: مسیر فایل ISO سیستم‌عامل که قبلاً بارگذاری کرده‌اید.

اگر می‌خواهید سیستم‌عامل نصب شده از طریق CD/DVD بوت شود، می‌توانید گزینه boot order را تنظیم کنید تا ابتدا از CD/DVD بوت شود.

برای این کار از دستور زیر استفاده کنید:

qm set 101 --boot order=cd

این دستور باعث می‌شود که ماشین مجازی هنگام راه‌اندازی ابتدا از CD/DVD و سپس از دیسک‌های دیگر بوت شود.


3. تنظیمات اضافی برای Boot از CD/DVD

برای اطمینان از اینکه ماشین مجازی به درستی از CD/DVD بوت می‌شود، تنظیمات مربوط به اولویت بوت (Boot Order) باید به‌طور دقیق تنظیم شود. این تنظیمات می‌توانند به دو صورت Web UI یا دستوری انجام شوند.

1. Web UI:
  • وارد تب Options ماشین مجازی شوید.
  • گزینه Boot Order را پیدا کرده و آن را انتخاب کنید.
  • ترتیب بوت را تغییر دهید و CD/DVD را در ابتدا قرار دهید.
2. دستور کامندی:

برای تنظیم ترتیب بوت به‌طور کامندی می‌توانید از دستور زیر استفاده کنید:

qm set 101 --boot order=cd,ide0

در این دستور:

  • --boot order=cd,ide0: ترتیب بوت به گونه‌ای تنظیم می‌شود که ابتدا از CD/DVD و سپس از دیسک اولیه (IDE0) بوت شود.

4. راه‌اندازی ماشین مجازی برای نصب سیستم‌عامل

پس از تنظیم CD/DVD به‌عنوان رسانه نصب، شما باید ماشین مجازی را راه‌اندازی کنید تا فرآیند نصب سیستم‌عامل آغاز شود.

  1. به تب Console در Web UI بروید.
  2. ماشین مجازی را روشن کنید.
  3. حالا شما می‌توانید پروسه نصب سیستم‌عامل را مشاهده و پیگیری کنید.

در صورتی که از دستور کامندی استفاده کنید، می‌توانید ماشین مجازی را با دستور زیر روشن کنید:

qm start 101

این دستور باعث شروع ماشین مجازی شماره 101 می‌شود و فرآیند نصب سیستم‌عامل از فایل ISO آغاز خواهد شد.


جمع‌بندی

در این بخش، نحوه انتخاب و پیکربندی رسانه (CD/DVD) برای نصب سیستم‌عامل در ماشین‌های مجازی Proxmox VE مورد بررسی قرار گرفت. ابتدا فایل ISO سیستم‌عامل بارگذاری شد و سپس آن را به عنوان رسانه نصب به ماشین مجازی متصل کردیم. علاوه بر استفاده از Web UI برای این پیکربندی‌ها، دستورات کامندی نیز برای تسهیل فرایند تنظیمات ارائه شد. با این تنظیمات، شما می‌توانید سیستم‌عامل مورد نظر را به راحتی نصب کرده و ماشین مجازی خود را راه‌اندازی کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی ماشین مجازی در حالت UEFI یا BIOS” subtitle=”توضیحات کامل”]در سیستم‌های Proxmox VE، شما می‌توانید ماشین‌های مجازی را در حالت UEFI یا BIOS پیکربندی کنید. این دو گزینه مربوط به نحوه بوت شدن ماشین‌های مجازی هستند و تأثیرات قابل توجهی در فرآیند راه‌اندازی سیستم عامل و ویژگی‌های سیستم‌عامل‌های نصب‌شده خواهند داشت.

  • BIOS (Basic Input/Output System): حالت قدیمی‌تر بوت است که در آن سیستم‌عامل‌ها به صورت سنتی از طریق بوت سکتور شروع می‌شوند.
  • UEFI (Unified Extensible Firmware Interface): حالت جدیدتر است که جایگزین BIOS شده و امکانات پیشرفته‌تری مانند بوت از حجم‌های بزرگ‌تر (بیش از ۲ ترابایت) و امنیت بالاتر (Secure Boot) را ارائه می‌دهد.

در این بخش، به‌طور جامع نحوه پیکربندی ماشین‌های مجازی در هر دو حالت BIOS و UEFI، تفاوت‌های آن‌ها، و نحوه انجام این تنظیمات از طریق Web UI و دستورات خط فرمان توضیح داده خواهد شد.


1. انتخاب نوع بوت: UEFI یا BIOS

در هنگام ایجاد ماشین مجازی یا بعد از ایجاد آن، شما می‌توانید انتخاب کنید که ماشین مجازی در کدام حالت بوت شود: UEFI یا BIOS. این تنظیمات به‌طور پیش‌فرض برای ماشین‌های مجازی جدید بر روی BIOS تنظیم شده‌اند، اما می‌توان آن را به UEFI تغییر داد تا از قابلیت‌های جدیدتر مانند Secure Boot بهره‌مند شوید.

از طریق Web UI:
  1. وارد Web UI Proxmox شوید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. به تب Options بروید.
  3. در قسمت Boot Order، گزینه EFI را از لیست UEFI/BIOS انتخاب کنید.
  4. اگر انتخاب شما UEFI باشد، گزینه Enable Secure Boot نیز در دسترس قرار خواهد گرفت که می‌توانید آن را فعال کنید (این ویژگی به‌ویژه برای سیستم‌عامل‌هایی مانند Windows و توزیع‌های خاص لینوکس که نیاز به Secure Boot دارند، مفید است).
از طریق دستور کامندی:

برای تنظیم حالت بوت به UEFI یا BIOS از طریق دستورات خط فرمان، از دستور زیر استفاده می‌شود:

  • برای تنظیم UEFI:
    qm set 101 --bios ovmf
    

    در این دستور:

    • 101: شناسه ماشین مجازی شما است.
    • --bios ovmf: انتخاب OVMF (Open Virtual Machine Firmware) برای پیکربندی UEFI.
  • برای تنظیم BIOS:
    qm set 101 --bios seabios
    

    در این دستور:

    • 101: شناسه ماشین مجازی شما است.
    • --bios seabios: انتخاب SeaBIOS برای پیکربندی BIOS.

2. تنظیمات Secure Boot در UEFI

اگر شما قصد دارید ماشین مجازی خود را در حالت UEFI راه‌اندازی کنید، می‌توانید قابلیت Secure Boot را فعال کنید. Secure Boot به شما این امکان را می‌دهد که تنها سیستم‌عامل‌هایی که از این ویژگی پشتیبانی می‌کنند را بوت کنید، که این امر می‌تواند امنیت سیستم‌عامل‌های نصب‌شده را افزایش دهد.

از طریق Web UI:
  1. وارد Web UI شوید و ماشین مجازی خود را انتخاب کنید.
  2. به تب Options بروید.
  3. در قسمت EFI Settings، گزینه Enable Secure Boot را فعال کنید.
  4. تنظیمات را ذخیره کرده و ماشین مجازی خود را راه‌اندازی کنید.
از طریق دستور کامندی:

برای فعال‌سازی Secure Boot در UEFI از دستور زیر استفاده می‌شود:

qm set 101 --efidisk0 /var/lib/vz/images/101/efidisk0

در این دستور:

  • 101: شناسه ماشین مجازی.
  • --efidisk0: ایجاد یک دیسک EFI برای ذخیره داده‌های بوت UEFI.

توجه داشته باشید که Secure Boot معمولاً برای توزیع‌های خاص سیستم‌عامل لینوکس یا ویندوز کاربرد دارد و برخی از توزیع‌های لینوکس ممکن است نیاز به تنظیمات خاص برای پشتیبانی از آن داشته باشند.


3. پیکربندی دیسک‌ها و ترتیب بوت

زمانی که شما حالت UEFI را انتخاب می‌کنید، ممکن است نیاز باشد که دیسک‌ها و ترتیب بوت ماشین مجازی را به‌طور دقیق تنظیم کنید.

از طریق Web UI:
  1. وارد بخش Hardware ماشین مجازی شوید.
  2. بر روی Boot Order کلیک کنید.
  3. ترتیب بوت را طوری تنظیم کنید که ابتدا از دیسک EFI و سپس از دیسک‌های دیگر بوت شود.
  4. پس از اتمام تنظیمات، Save کنید.
از طریق دستور کامندی:

برای تنظیم ترتیب بوت ماشین مجازی به‌طور کامندی، از دستور زیر استفاده می‌شود:

qm set 101 --boot order=efi

این دستور باعث می‌شود که ماشین مجازی از دیسک EFI بوت شود.


4. نحوه تغییر حالت بوت بعد از ایجاد ماشین مجازی

اگر شما یک ماشین مجازی را ایجاد کرده‌اید و قصد دارید حالت بوت آن را تغییر دهید (از BIOS به UEFI یا بالعکس)، می‌توانید از دستور زیر استفاده کنید:

qm set 101 --bios ovmf

در این دستور:

  • 101: شناسه ماشین مجازی.
  • --bios ovmf: تغییر تنظیمات به حالت UEFI.

پس از تغییر تنظیمات BIOS یا UEFI، لازم است ماشین مجازی را مجدداً راه‌اندازی کنید تا تغییرات اعمال شوند.


جمع‌بندی

در این بخش، نحوه پیکربندی ماشین‌های مجازی در حالت‌های BIOS و UEFI در Proxmox VE مورد بررسی قرار گرفت. به‌طور کلی، انتخاب UEFI می‌تواند امکانات پیشرفته‌تری از جمله بوت امن (Secure Boot) را برای ماشین‌های مجازی فراهم آورد. در این مقاله، نحوه تنظیمات UEFI و BIOS از طریق Web UI و دستورات کامندی به‌طور کامل توضیح داده شد. همچنین به فعال‌سازی Secure Boot و تغییر ترتیب بوت پرداخته شد. به‌طور کلی، این تنظیمات به شما امکان می‌دهند که ماشین‌های مجازی خود را به شکلی پیکربندی کنید که با نیازهای سیستم‌عامل و امنیت شما هماهنگ باشد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتخاب تنظیمات اضافی مانند پشتیبانی از KVM و Nested Virtualization” subtitle=”توضیحات کامل”]در هنگام پیکربندی ماشین‌های مجازی در Proxmox VE، علاوه بر تنظیمات اصلی مانند انتخاب سیستم‌عامل، تخصیص منابع و تنظیمات شبکه، دو تنظیم اضافی مهم وجود دارند که می‌توانند بر عملکرد و قابلیت‌های ماشین مجازی شما تأثیرگذار باشند: پشتیبانی از KVM و Nested Virtualization.

این تنظیمات به شما کمک می‌کنند تا ماشین‌های مجازی با کارایی بالا و قابلیت‌های بیشتر داشته باشید. در این بخش، به توضیح کامل و جزئیات این دو تنظیمات و نحوه فعال‌سازی آن‌ها خواهیم پرداخت. علاوه بر توضیحات گرافیکی، دستورات خط فرمان برای انجام این تنظیمات نیز در ادامه آورده شده است.


1. پشتیبانی از KVM (Kernel-based Virtual Machine)

KVM (Kernel-based Virtual Machine) یک تکنولوژی مجازی‌سازی است که از قابلیت‌های هسته لینوکس برای اجرای ماشین‌های مجازی بهره می‌برد. این تکنولوژی به ماشین‌های مجازی اجازه می‌دهد که با استفاده از قدرت پردازشی پردازنده‌ها و منابع سرور به‌طور مؤثرتر اجرا شوند. به‌طور پیش‌فرض، KVM در اکثر پردازنده‌های جدید پشتیبانی می‌شود و به شما این امکان را می‌دهد که از ماشین‌های مجازی با کارایی بالا بهره‌مند شوید.

فعال‌سازی KVM در Web UI:
  1. وارد Web UI Proxmox شوید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. به تب Options بروید.
  3. در قسمت CPU, گزینه KVM hardware virtualization را فعال کنید.
  4. پس از فعال‌سازی این گزینه، تنظیمات را ذخیره کرده و ماشین مجازی خود را راه‌اندازی کنید.
فعال‌سازی KVM از طریق دستور کامندی:

برای فعال‌سازی KVM در یک ماشین مجازی به‌طور کامندی از دستور زیر استفاده می‌شود:

qm set 101 --cpu host

در این دستور:

  • 101: شناسه ماشین مجازی شما است.
  • --cpu host: انتخاب نوع CPU برای استفاده از ویژگی‌های مجازی‌سازی سخت‌افزاری پردازنده.

این دستور به ماشین مجازی شما این امکان را می‌دهد که از قابلیت‌های سخت‌افزاری پردازنده شما برای عملکرد بهتر بهره‌برداری کند.


2. Nested Virtualization (مجازی‌سازی تو در تو)

Nested Virtualization به شما این امکان را می‌دهد که در داخل یک ماشین مجازی، ماشین‌های مجازی دیگری راه‌اندازی کنید. این قابلیت به‌ویژه برای آزمایش، آموزش و انجام تست‌های پیچیده در محیط‌های مجازی بسیار مفید است. برای مثال، شما می‌توانید در داخل یک ماشین مجازی Proxmox یک سرور دیگر با Proxmox نصب کنید و این سیستم‌ها را به‌طور مجازی مدیریت کنید.

در واقع، Nested Virtualization به ماشین مجازی اجازه می‌دهد تا از قابلیت‌های مجازی‌سازی پردازنده‌های خود استفاده کند.

فعال‌سازی Nested Virtualization در Web UI:
  1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. به تب Options بروید.
  3. در قسمت CPU, گزینه Enable Nested Virtualization را فعال کنید.
  4. تنظیمات را ذخیره کرده و ماشین مجازی خود را راه‌اندازی کنید.
فعال‌سازی Nested Virtualization از طریق دستور کامندی:

برای فعال‌سازی Nested Virtualization برای یک ماشین مجازی از دستور زیر استفاده می‌شود:

qm set 101 --cpu host --features +vmx

در این دستور:

  • 101: شناسه ماشین مجازی.
  • --cpu host: انتخاب نوع CPU برای استفاده از ویژگی‌های سخت‌افزاری.
  • --features +vmx: فعال‌سازی ویژگی VMX که مربوط به مجازی‌سازی پردازنده است (ویژگی مورد نیاز برای Nested Virtualization).

توجه داشته باشید که این ویژگی باید در BIOS/UEFI سرور شما فعال باشد (ویژگی VT-x برای اینتل و AMD-V برای پردازنده‌های AMD).


3. پیکربندی ویژگی‌های اضافی دیگر در ماشین مجازی

علاوه بر فعال‌سازی KVM و Nested Virtualization، Proxmox VE امکان پیکربندی ویژگی‌های اضافی دیگر را برای ماشین‌های مجازی فراهم می‌کند که می‌توانند به بهبود عملکرد و تطابق ماشین مجازی با نیازهای خاص کمک کنند. از جمله این ویژگی‌ها می‌توان به Hotplug CPU و Hotplug Memory اشاره کرد که به شما امکان اضافه یا حذف کردن منابع (مانند CPU و RAM) در زمان اجرای ماشین مجازی را می‌دهند.

فعال‌سازی Hotplug CPU و Memory در Web UI:
  1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. به تب Options بروید.
  3. گزینه‌های Hotplug CPU و Hotplug Memory را فعال کنید.
  4. تنظیمات را ذخیره کرده و ماشین مجازی را راه‌اندازی کنید.
فعال‌سازی Hotplug از طریق دستور کامندی:

برای فعال‌سازی Hotplug CPU و Memory از دستور زیر استفاده می‌شود:

qm set 101 --hotplug cpu,memory

این دستور به شما اجازه می‌دهد تا CPU و RAM را به‌صورت داینامیک به ماشین مجازی اضافه کنید یا از آن‌ها حذف کنید بدون اینکه نیاز به خاموش کردن ماشین مجازی باشد.


جمع‌بندی

در این بخش، به بررسی تنظیمات اضافی برای ماشین‌های مجازی در Proxmox VE پرداختیم که شامل پشتیبانی از KVM و Nested Virtualization هستند. KVM به ماشین‌های مجازی این امکان را می‌دهد که از ویژگی‌های سخت‌افزاری پردازنده برای کارایی بهتر استفاده کنند، در حالی که Nested Virtualization به شما اجازه می‌دهد تا ماشین‌های مجازی را در داخل ماشین‌های مجازی دیگر اجرا کنید. همچنین، نحوه فعال‌سازی این ویژگی‌ها از طریق Web UI و دستور کامندی بررسی شد. این تنظیمات به شما کمک می‌کنند که از امکانات پیشرفته‌تری برای مدیریت ماشین‌های مجازی خود استفاده کنید و کارایی سیستم را به حداکثر برسانید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 3. نصب سیستم‌عامل در ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نصب سیستم‌عامل‌های مختلف (Linux, Windows) در ماشین مجازی” subtitle=”توضیحات کامل”]نصب سیستم‌عامل‌های مختلف مانند Linux و Windows در ماشین‌های مجازی، یکی از مهم‌ترین مراحل در فرآیند پیکربندی و مدیریت ماشین‌های مجازی است. این فرآیند بسته به نوع سیستم‌عامل و پیکربندی ماشین مجازی می‌تواند متفاوت باشد. در این بخش، به طور جامع و با جزئیات کامل به نصب سیستم‌عامل‌های Linux و Windows در ماشین‌های مجازی پرداخته خواهد شد. همچنین روش‌های گرافیکی و دستورات کامندی برای انجام این کار به صورت عملی بیان خواهند شد.


1. نصب سیستم‌عامل Linux در ماشین مجازی

برای نصب یک سیستم‌عامل Linux در یک ماشین مجازی، ابتدا باید ISO مربوط به سیستم‌عامل را در دسترس داشته باشیم. به عنوان مثال، ما از Ubuntu یا CentOS به عنوان سیستم‌عامل‌های محبوب Linux برای این منظور استفاده می‌کنیم.

مراحل نصب سیستم‌عامل Linux (مثلاً Ubuntu) در ماشین مجازی:
  1. انتخاب ماشین مجازی:
    • وارد Web UI Proxmox شوید.
    • به ماشین مجازی‌ای که می‌خواهید سیستم‌عامل را نصب کنید، بروید.
    • اگر ماشین مجازی جدیدی نیاز دارید، آن را ایجاد کنید و مطابق با تنظیمات معمولی ماشین‌های مجازی ادامه دهید.
  2. بارگذاری فایل ISO:
    • به تب Hardware بروید.
    • روی CD/DVD Drive کلیک کرده و فایل ISO مربوط به سیستم‌عامل Linux (مثل Ubuntu یا CentOS) را بارگذاری کنید.
    • این فایل معمولاً از سایت رسمی توزیع لینوکس مورد نظر قابل دانلود است.
  3. پیکربندی ماشین مجازی:
    • در تب Options، نوع سیستم‌عامل را مشخص کنید (مثلاً Ubuntu 64-bit).
    • اطمینان حاصل کنید که منابع کافی (مثل CPU، RAM، و Disk) برای نصب سیستم‌عامل اختصاص داده شده است.
  4. راه‌اندازی ماشین مجازی:
    • ماشین مجازی را روشن کنید.
    • پس از شروع به کار ماشین مجازی، شما وارد مرحله نصب سیستم‌عامل خواهید شد.
    • مراحل نصب را دنبال کنید، که شامل انتخاب زبان، تقسیم‌بندی دیسک، و نصب نرم‌افزارهای اصلی است.
نصب سیستم‌عامل Linux از طریق دستور کامندی:

اگر بخواهید این مراحل را از طریق خط فرمان انجام دهید، می‌توانید از دستور زیر استفاده کنید:

qm create 101 --name ubuntu-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --ide2 local:iso/ubuntu-20.04.iso,media=cdrom --boot order=cd

در این دستور:

  • 101: شناسه ماشین مجازی جدید.
  • --name ubuntu-vm: نام ماشین مجازی.
  • --memory 2048: تخصیص 2GB RAM.
  • --cores 2: تخصیص 2 هسته CPU.
  • --net0 virtio,bridge=vmbr0: تنظیم شبکه برای ماشین مجازی (در اینجا از شبکه virtio استفاده شده است).
  • --ide2 local:iso/ubuntu-20.04.iso,media=cdrom: استفاده از فایل ISO برای نصب سیستم‌عامل.
  • --boot order=cd: ترتیب بوت از روی CD.

با اجرای این دستور، ماشین مجازی ساخته شده و سیستم‌عامل مورد نظر نصب می‌شود.


2. نصب سیستم‌عامل Windows در ماشین مجازی

برای نصب سیستم‌عامل Windows، فرایند مشابه نصب Linux است، اما مراحل نصب ویندوز نیاز به انجام چند تنظیم اضافی دارد.

مراحل نصب سیستم‌عامل Windows (مثلاً Windows 10) در ماشین مجازی:
  1. انتخاب ماشین مجازی:
    • وارد Web UI Proxmox شوید.
    • یک ماشین مجازی جدید ایجاد کنید یا ماشین مجازی مورد نظر را انتخاب کنید.
  2. بارگذاری فایل ISO ویندوز:
    • به تب Hardware بروید.
    • روی CD/DVD Drive کلیک کرده و فایل ISO سیستم‌عامل Windows را بارگذاری کنید.
    • فایل ISO ویندوز (مثل Windows 10) از سایت رسمی مایکروسافت قابل دانلود است.
  3. پیکربندی ماشین مجازی:
    • به تب Options بروید.
    • سیستم‌عامل را به Windows 10 64-bit تنظیم کنید.
    • منابع ماشین مجازی (CPU، RAM، Disk) را به اندازه مناسب تخصیص دهید.
  4. راه‌اندازی ماشین مجازی:
    • ماشین مجازی را راه‌اندازی کنید.
    • پس از شروع به کار ماشین مجازی، نصب سیستم‌عامل Windows آغاز خواهد شد.
    • مراحل نصب را دنبال کنید که شامل انتخاب زبان، وارد کردن کلید محصول (Product Key)، و پارتیشن‌بندی دیسک می‌شود.
نصب سیستم‌عامل Windows از طریق دستور کامندی:

برای نصب ویندوز از طریق خط فرمان، دستور زیر قابل استفاده است:

qm create 102 --name windows10-vm --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0 --ide2 local:iso/windows10.iso,media=cdrom --boot order=cd

در این دستور:

  • 102: شناسه ماشین مجازی جدید.
  • --name windows10-vm: نام ماشین مجازی.
  • --memory 4096: تخصیص 4GB RAM.
  • --cores 2: تخصیص 2 هسته CPU.
  • --net0 virtio,bridge=vmbr0: تنظیم شبکه برای ماشین مجازی (در اینجا از شبکه virtio استفاده شده است).
  • --ide2 local:iso/windows10.iso,media=cdrom: استفاده از فایل ISO ویندوز برای نصب.
  • --boot order=cd: ترتیب بوت از روی CD.

این دستور ماشین مجازی جدید را ایجاد کرده و نصب ویندوز را آغاز می‌کند.


جمع‌بندی

در این بخش، مراحل نصب سیستم‌عامل‌های مختلف (Linux و Windows) در ماشین‌های مجازی با استفاده از Web UI و دستورات کامندی شرح داده شد. نصب سیستم‌عامل‌ها در ماشین‌های مجازی نه‌تنها امکان اجرای محیط‌های مختلف را فراهم می‌کند بلکه به شما این امکان را می‌دهد که از ویژگی‌های مجازی‌سازی و منابع سخت‌افزاری به‌طور بهینه استفاده کنید. با استفاده از مراحل گرافیکی و دستورات کامندی که در اینجا ارائه شد، شما می‌توانید به راحتی و به‌صورت عملی ماشین‌های مجازی جدید با سیستم‌عامل‌های مختلف ایجاد کنید و به مدیریت آن‌ها بپردازید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”روش‌های مختلف نصب سیستم‌عامل‌ها” subtitle=”توضیحات کامل”]در این بخش به بررسی روش‌های مختلف نصب سیستم‌عامل‌ها در ماشین‌های مجازی خواهیم پرداخت. این روش‌ها شامل نصب از طریق فایل ISO، نصب از طریق شبکه (PXE Boot)، و استفاده از Templateها برای نصب سریع و کارآمد سیستم‌عامل‌ها می‌باشند. هر کدام از این روش‌ها دارای ویژگی‌ها و کاربردهای خاص خود هستند که بسته به نیاز و شرایط مختلف، می‌توانند مورد استفاده قرار گیرند. در ادامه، به صورت گام به گام و با جزئیات بیشتر به توضیح این روش‌ها و نحوه پیکربندی و استفاده از آن‌ها خواهیم پرداخت.


1. نصب سیستم‌عامل از طریق فایل ISO

نصب سیستم‌عامل از طریق فایل ISO یکی از رایج‌ترین و ساده‌ترین روش‌های نصب است. با استفاده از این روش، شما می‌توانید سیستم‌عامل مورد نظر خود را از فایل ISO که معمولاً یک فایل نصب سیستم‌عامل است، نصب کنید.

مراحل نصب سیستم‌عامل از فایل ISO در Proxmox VE:
  1. بارگذاری فایل ISO:
    • ابتدا باید فایل ISO سیستم‌عامل مورد نظر خود را در ذخیره‌سازی محلی یا از طریق NFS به سرور Proxmox انتقال دهید.
    • این فایل معمولاً از سایت رسمی توزیع سیستم‌عامل (مثل Ubuntu یا CentOS) قابل دانلود است.
  2. ایجاد ماشین مجازی جدید:
    • وارد Web UI Proxmox شوید.
    • از منوی اصلی گزینه “Create VM” را انتخاب کنید.
    • در پنجره‌ای که باز می‌شود، تنظیمات اولیه ماشین مجازی مانند نام، تخصیص منابع (CPU، RAM، Disk)، و نوع سیستم‌عامل را مشخص کنید.
  3. انتخاب فایل ISO:
    • به تب Hardware بروید.
    • بر روی CD/DVD Drive کلیک کرده و فایل ISO مربوط به سیستم‌عامل (مثلاً Ubuntu یا CentOS) را انتخاب کنید.
  4. تنظیمات Boot:
    • به تب Options بروید.
    • ترتیب بوت را طوری تنظیم کنید که ابتدا از CD/DVD (فایل ISO) بوت شود.
  5. راه‌اندازی و نصب سیستم‌عامل:
    • ماشین مجازی را روشن کنید.
    • پس از راه‌اندازی، سیستم‌عامل از روی فایل ISO نصب خواهد شد.
    • مراحل نصب سیستم‌عامل را دنبال کنید، که شامل انتخاب زبان، پارتیشن‌بندی دیسک و انتخاب نرم‌افزارها می‌شود.
نصب از فایل ISO با دستور کامندی:

برای نصب سیستم‌عامل از فایل ISO از طریق دستور کامندی، می‌توانید از دستور زیر استفاده کنید:

qm create 101 --name ubuntu-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --ide2 local:iso/ubuntu-20.04.iso,media=cdrom --boot order=cd

در این دستور:

  • 101: شناسه ماشین مجازی جدید.
  • --name ubuntu-vm: نام ماشین مجازی.
  • --memory 2048: تخصیص 2GB RAM.
  • --cores 2: تخصیص 2 هسته CPU.
  • --net0 virtio,bridge=vmbr0: تنظیمات شبکه برای ماشین مجازی.
  • --ide2 local:iso/ubuntu-20.04.iso,media=cdrom: انتخاب فایل ISO برای نصب.
  • --boot order=cd: تنظیم ترتیب بوت از روی CD (فایل ISO).

2. نصب سیستم‌عامل از طریق شبکه (PXE Boot)

روش PXE Boot به شما این امکان را می‌دهد که سیستم‌عامل را به‌صورت از راه دور از طریق شبکه نصب کنید. در این روش، سیستم‌عامل از یک سرور PXE بر روی شبکه بارگیری می‌شود، بنابراین نیازی به استفاده از رسانه‌های فیزیکی مثل CD یا USB نیست.

مراحل نصب سیستم‌عامل از طریق PXE Boot:
  1. راه‌اندازی سرور PXE:
    • ابتدا باید یک سرور PXE راه‌اندازی کنید. این سرور می‌تواند یک سرور DHCP و TFTP باشد که سیستم‌عامل را از طریق شبکه ارسال می‌کند.
  2. پیکربندی ماشین مجازی برای استفاده از PXE:
    • وارد Web UI Proxmox شوید و یک ماشین مجازی جدید ایجاد کنید.
    • در هنگام تنظیمات ماشین مجازی، کارت شبکه را به حالت Bridge Mode تنظیم کنید تا ماشین مجازی به شبکه متصل شود.
    • در تب Boot ماشین مجازی، ترتیب بوت را طوری تنظیم کنید که ابتدا از شبکه (PXE) بوت شود.
  3. راه‌اندازی ماشین مجازی:
    • ماشین مجازی را روشن کنید.
    • وقتی ماشین مجازی از طریق شبکه بوت می‌شود، به سرور PXE متصل شده و سیستم‌عامل را از روی آن بارگیری می‌کند.
  4. ادامه نصب سیستم‌عامل:
    • پس از بارگیری سیستم‌عامل از سرور PXE، فرآیند نصب مشابه نصب از روی فایل ISO خواهد بود و شما باید مراحل نصب را ادامه دهید.
نصب از PXE Boot با دستور کامندی:

برای راه‌اندازی PXE Boot از طریق دستور کامندی، ابتدا باید مطمئن شوید که سرور PXE شما راه‌اندازی شده است و سپس دستور زیر را برای ماشین مجازی خود استفاده کنید:

qm create 102 --name pxe-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0,mac=00:11:22:33:44:55 --boot order=net

در این دستور:

  • 102: شناسه ماشین مجازی.
  • --name pxe-vm: نام ماشین مجازی.
  • --memory 2048: تخصیص 2GB RAM.
  • --cores 2: تخصیص 2 هسته CPU.
  • --net0 virtio,bridge=vmbr0: تنظیمات شبکه برای ماشین مجازی.
  • --boot order=net: تنظیم ترتیب بوت از شبکه.

3. استفاده از Templateها برای نصب سریع سیستم‌عامل‌ها

Templateها در Proxmox VE به شما این امکان را می‌دهند که سیستم‌عامل‌ها را سریعاً و به‌صورت یکسان بر روی چندین ماشین مجازی نصب کنید. به جای نصب یک سیستم‌عامل جدید از ابتدا برای هر ماشین مجازی، می‌توانید از یک Template آماده استفاده کنید که تمامی تنظیمات و نرم‌افزارهای مورد نیاز از پیش بر روی آن نصب شده است.

مراحل استفاده از Template برای نصب سریع:
  1. ایجاد Template از ماشین مجازی:
    • ابتدا یک ماشین مجازی را با سیستم‌عامل مورد نظر نصب کنید.
    • پس از اتمام نصب سیستم‌عامل، ماشین مجازی را خاموش کنید.
    • سپس از ماشین مجازی یک Template بسازید:
    qm template 103 --name ubuntu-template
    
  2. استفاده از Template برای ایجاد ماشین مجازی جدید:
    • برای ایجاد یک ماشین مجازی جدید از Template، می‌توانید دستور زیر را استفاده کنید:
    qm clone 103 104 --name ubuntu-vm --full
    

    در این دستور:

    • 103: شناسه Template.
    • 104: شناسه ماشین مجازی جدید.
    • --name ubuntu-vm: نام ماشین مجازی جدید.
    • --full: استفاده از نسخه کامل Template.
  3. راه‌اندازی ماشین مجازی:
    • ماشین مجازی جدید با سیستم‌عاملی که از Template بارگیری شده است، راه‌اندازی می‌شود و به همین راحتی سیستم‌عامل نصب می‌شود.

جمع‌بندی

در این بخش، روش‌های مختلف نصب سیستم‌عامل‌ها در ماشین‌های مجازی Proxmox VE شامل نصب از فایل ISO، نصب از طریق شبکه با PXE Boot، و استفاده از Templateها برای نصب سریع سیستم‌عامل‌ها شرح داده شد. هر یک از این روش‌ها مزایای خاص خود را دارند و بسته به نیاز شما می‌توانند مورد استفاده قرار گیرند. نصب از فایل ISO برای اکثر موارد کافی است، در حالی که PXE Boot و Templateها برای سازمان‌ها و محیط‌های بزرگ‌تر که نیاز به نصب سریع و مقیاس‌پذیر دارند، بسیار مفید هستند. استفاده از دستورات کامندی نیز فرآیند نصب را برای کاربران حرفه‌ای ساده‌تر و سریع‌تر می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی شبکه و اتصال به اینترنت در حین نصب” subtitle=”توضیحات کامل”]در زمان نصب ماشین مجازی (VM) در Proxmox VE، پیکربندی صحیح شبکه و اتصال به اینترنت برای برقراری ارتباط با سایر دستگاه‌ها و منابع از اهمیت بالایی برخوردار است. از آنجایی که بیشتر عملیات نصب سیستم‌عامل نیاز به دسترسی به اینترنت دارد (برای دانلود بسته‌ها، به‌روزرسانی‌ها، و نصب نرم‌افزارها)، تنظیمات شبکه باید به درستی انجام شوند.

در این بخش به نحوه پیکربندی شبکه در حین نصب ماشین مجازی از طریق Web UI و دستور کامندی در Proxmox VE خواهیم پرداخت. همچنین نحوه اتصال ماشین مجازی به اینترنت و تنظیمات مختلف شبکه نیز توضیح داده می‌شود.


1. پیکربندی شبکه در حین نصب از طریق Web UI

در Proxmox VE، می‌توان تنظیمات شبکه ماشین‌های مجازی را به راحتی از طریق Web UI انجام داد. برای اتصال به اینترنت و پیکربندی شبکه ماشین مجازی، مراحل زیر را دنبال کنید:

  1. ایجاد ماشین مجازی جدید:
    • ابتدا وارد Web UI Proxmox شوید.
    • از منوی بالا گزینه “Create VM” را انتخاب کنید تا ماشین مجازی جدید ایجاد شود.
  2. تنظیمات اولیه ماشین مجازی:
    • در صفحه “Create VM”، اطلاعاتی مانند نام ماشین مجازی، تخصیص منابع (CPU، RAM، Disk) و انتخاب سیستم‌عامل (OS) را وارد کنید.
  3. پیکربندی شبکه:
    • در صفحه تنظیمات ماشین مجازی، به تب Hardware بروید.
    • در بخش Network Device، گزینه “Add” را انتخاب کنید.
  4. انتخاب نوع کارت شبکه:
    • در بخش “Model”، نوع کارت شبکه را انتخاب کنید. معمولاً کارت شبکه مدل VirtIO سریع‌ترین عملکرد را ارائه می‌دهد.
  5. انتخاب پل شبکه (Bridge):
    • در بخش Bridge, باید یک پل شبکه (مثل vmbr0) انتخاب کنید که ماشین مجازی به آن متصل شود. در صورتی که می‌خواهید ماشین مجازی به اینترنت دسترسی پیدا کند، باید این گزینه را به پل شبکه‌ای که به شبکه اصلی سرور متصل است، متصل کنید.
    • برای مثال، اگر شبکه اصلی شما vmbr0 است، باید این پل را در این بخش انتخاب کنید.
  6. اتصال به اینترنت:
    • اگر شبکه شما به‌طور صحیح پیکربندی شده باشد، پس از راه‌اندازی ماشین مجازی، این ماشین مجازی قادر به دریافت آدرس IP از DHCP سرور و اتصال به اینترنت خواهد بود.
  7. تنظیمات پیکربندی کارت شبکه در سیستم‌عامل ماشین مجازی:
    • در هنگام نصب سیستم‌عامل (مثلاً Ubuntu یا CentOS)، معمولاً تنظیمات کارت شبکه به‌طور خودکار انجام می‌شود. با این حال، اگر نیاز به تنظیم دستی دارید، می‌توانید به فایل پیکربندی شبکه در سیستم‌عامل (برای لینوکس‌ها معمولاً /etc/network/interfaces یا /etc/netplan/*.yaml) دسترسی پیدا کرده و تغییرات لازم را اعمال کنید.

2. اتصال ماشین مجازی به اینترنت و پیکربندی شبکه با دستور کامندی

برای کاربران حرفه‌ای که به استفاده از دستورات کامندی علاقه دارند، می‌توانند ماشین‌های مجازی را با استفاده از دستور qm در Proxmox VE ایجاد و پیکربندی کنند.

مراحل پیکربندی شبکه ماشین مجازی با دستور کامندی:
  1. ایجاد ماشین مجازی و تخصیص منابع: برای ایجاد یک ماشین مجازی جدید و تخصیص منابع اولیه مانند RAM، CPU، و دیسک، دستور زیر را وارد کنید:
    qm create 105 --name my-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu-20.04.iso --boot order=cd
    

    در این دستور:

    • 105: شناسه ماشین مجازی جدید.
    • --name my-vm: نام ماشین مجازی.
    • --memory 2048: تخصیص 2GB RAM.
    • --cores 2: تخصیص 2 هسته CPU.
    • --net0 virtio,bridge=vmbr0: تنظیم کارت شبکه برای ماشین مجازی با مدل VirtIO و اتصال به پل شبکه vmbr0.
    • --cdrom /var/lib/vz/template/iso/ubuntu-20.04.iso: مشخص کردن فایل ISO برای نصب سیستم‌عامل.
    • --boot order=cd: ترتیب بوت از CD (فایل ISO).
  2. پیکربندی شبکه در سیستم‌عامل ماشین مجازی: پس از نصب سیستم‌عامل، برای پیکربندی شبکه در سیستم‌عامل‌های مختلف می‌توانید از دستورات زیر استفاده کنید:
    • برای لینوکس‌ها (Ubuntu یا CentOS):
      • برای استفاده از DHCP و دریافت IP به صورت خودکار، فایل پیکربندی شبکه را در مسیر /etc/netplan/*.yaml یا /etc/network/interfaces باز کنید و اطمینان حاصل کنید که تنظیمات مشابه زیر موجود باشد:
      network:
        version: 2
        renderer: networkd
        ethernets:
          ens18:
            dhcp4: true
      
      • برای تعیین IP استاتیک، از تنظیمات مشابه زیر استفاده کنید:
      network:
        version: 2
        renderer: networkd
        ethernets:
          ens18:
            dhcp4: false
            addresses:
              - 192.168.1.100/24
            gateway4: 192.168.1.1
            nameservers:
              addresses:
                - 8.8.8.8
                - 8.8.4.4
      
    • پس از اعمال تغییرات در فایل، برای اعمال تنظیمات جدید، دستور زیر را اجرا کنید:
      sudo netplan apply
      
  3. تست اتصال به اینترنت: پس از راه‌اندازی ماشین مجازی و تنظیمات شبکه، می‌توانید از دستور زیر برای بررسی اتصال به اینترنت استفاده کنید:
    ping -c 4 8.8.8.8
    

    اگر اتصال به اینترنت برقرار باشد، پینگ به درستی پاسخ می‌دهد. در غیر این صورت، ممکن است مشکلی در تنظیمات شبکه یا DHCP باشد.


3. مشکلات رایج در اتصال به اینترنت و نحوه رفع آن

در صورتی که ماشین مجازی شما به اینترنت متصل نمی‌شود، مشکلات زیر ممکن است وجود داشته باشد:

  1. مشکل در پیکربندی Bridge:
    • اطمینان حاصل کنید که پل شبکه (Bridge) درست پیکربندی شده باشد و به شبکه اصلی سرور متصل باشد.
    • دستور brctl show را برای نمایش وضعیت پل‌های شبکه و بررسی پیکربندی آن‌ها اجرا کنید.
  2. عدم دریافت IP از DHCP:
    • اگر ماشین مجازی IP دریافت نمی‌کند، مطمئن شوید که DHCP در شبکه فعال است و ماشین مجازی به درستی به شبکه متصل است.
  3. مشکل در پیکربندی کارت شبکه در سیستم‌عامل:
    • بررسی کنید که فایل پیکربندی شبکه در سیستم‌عامل ماشین مجازی به‌درستی تنظیم شده باشد (مثل تنظیم DHCP یا IP استاتیک).

جمع‌بندی

پیکربندی صحیح شبکه و اتصال به اینترنت در هنگام نصب ماشین‌های مجازی در Proxmox VE اهمیت زیادی دارد. این تنظیمات شامل انتخاب صحیح کارت شبکه، تنظیمات شبکه در Web UI، و اعمال تنظیمات در سیستم‌عامل ماشین مجازی می‌باشد. از آنجا که بیشتر فرآیندهای نصب سیستم‌عامل نیاز به اتصال به اینترنت دارند، اطمینان از پیکربندی صحیح شبکه، بخش اساسی فرآیند نصب ماشین مجازی است. همچنین، برای کاربران حرفه‌ای، استفاده از دستورات کامندی نیز یک روش کارآمد برای مدیریت این تنظیمات است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات لازم برای نصب در حالت Headless (بدون رابط گرافیکی)” subtitle=”توضیحات کامل”]حالت Headless به معنای اجرای سیستم بدون نیاز به نمایشگر، کیبورد و ماوس است. در این حالت، ماشین‌های مجازی (VM) به طور کامل از طریق دستورات خط فرمان و دسترسی‌های شبکه مدیریت می‌شوند. این ویژگی معمولاً در سرورها و زیرساخت‌های تولیدی مورد استفاده قرار می‌گیرد زیرا از مصرف منابع سیستم (پردازنده، حافظه و پهنای باند) جلوگیری کرده و به‌طور معمول از طریق SSH یا سایر روش‌های مدیریت از راه دور کنترل می‌شود.

در این بخش به تنظیمات لازم برای نصب یک ماشین مجازی در حالت Headless در Proxmox VE خواهیم پرداخت و نحوه نصب سیستم‌عامل را بدون استفاده از رابط گرافیکی توضیح خواهیم داد.


1. ساخت ماشین مجازی بدون نیاز به رابط گرافیکی

برای نصب سیستم‌عامل در حالت Headless، باید در هنگام ایجاد ماشین مجازی در Proxmox VE، تنظیمات به‌گونه‌ای انجام شوند که نیازی به اتصال مانیتور یا کیبورد نباشد. این کار از طریق دستور qm در محیط خط فرمان قابل انجام است.

  1. ایجاد ماشین مجازی در حالت Headless: برای ایجاد یک ماشین مجازی بدون رابط گرافیکی، شما باید از دستور qm create استفاده کنید و گزینه‌های مربوط به اتصال گرافیکی (مثل VNC یا SPICE) را نادیده بگیرید.دستور برای ایجاد ماشین مجازی به‌صورت Headless به شکل زیر است:
    qm create 100 --name my-headless-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /var/lib/vz/template/iso/ubuntu-20.04.iso --boot order=cd --vga serial0
    

    توضیح پارامترها:

    • 100: شناسه ماشین مجازی (VM ID).
    • --name my-headless-vm: نام ماشین مجازی.
    • --memory 2048: تخصیص 2GB RAM.
    • --cores 2: تخصیص 2 هسته CPU.
    • --net0 virtio,bridge=vmbr0: تنظیم کارت شبکه برای ماشین مجازی با مدل VirtIO و اتصال به پل شبکه vmbr0.
    • --cdrom /var/lib/vz/template/iso/ubuntu-20.04.iso: تعیین فایل ISO برای نصب سیستم‌عامل.
    • --boot order=cd: ترتیب بوت ماشین از CD (فایل ISO).
    • --vga serial0: غیرفعال کردن رابط گرافیکی VNC و استفاده از پورت سریال به‌جای آن (حالت Headless).

    با استفاده از این دستور، ماشین مجازی شما بدون نیاز به رابط گرافیکی راه‌اندازی می‌شود و از پورت سریال برای تعامل با سیستم‌عامل در طول فرآیند نصب استفاده خواهد شد.


2. نصب سیستم‌عامل در حالت Headless

برای نصب سیستم‌عامل در حالت Headless، شما می‌توانید از کنسول سریال ماشین مجازی استفاده کنید. در حالت معمول، در هنگام نصب سیستم‌عامل، ماشین مجازی به پورت گرافیکی متصل می‌شود، اما برای حالت Headless باید از پورت سریال استفاده کنید. این پورت در دسترس خواهد بود و به شما این امکان را می‌دهد که فرآیند نصب را بدون نیاز به نمایشگر گرافیکی مشاهده کنید.

برای اتصال به کنسول سریال، از دستور زیر استفاده کنید:

qm terminal 100

در اینجا:

  • 100: شناسه ماشین مجازی شما است.
  • با استفاده از دستور qm terminal، شما به کنسول سریال ماشین مجازی دسترسی خواهید داشت و تمام مراحل نصب از طریق خط فرمان قابل مشاهده است.

3. پیکربندی شبکه و دسترسی به اینترنت

در حالت Headless، ماشین مجازی به‌طور معمول از DHCP برای دریافت IP به صورت خودکار استفاده می‌کند. برای پیکربندی شبکه و دسترسی به اینترنت در طول نصب، مراحل زیر را طی کنید:

  1. تنظیمات شبکه در سیستم‌عامل نصب شده: اگر سیستم‌عامل ماشین مجازی به درستی از DHCP استفاده می‌کند، پس از نصب به‌صورت خودکار IP دریافت می‌شود. برای سیستم‌های مبتنی بر لینوکس، پیکربندی شبکه به‌طور خودکار از طریق فایل‌های پیکربندی مانند /etc/netplan/*.yaml (برای نسخه‌های جدیدتر Ubuntu) یا /etc/network/interfaces (برای نسخه‌های قدیمی‌تر) انجام می‌شود.
  2. تنظیم شبکه دستی در صورت نیاز: اگر نیاز به تنظیم دستی شبکه داشتید، می‌توانید فایل‌های پیکربندی را ویرایش کنید. به عنوان مثال، برای سیستم‌عامل‌های مبتنی بر Ubuntu، دستور زیر برای تنظیم IP استاتیک قابل استفاده است:
    • ویرایش فایل پیکربندی /etc/netplan/01-netcfg.yaml:
      sudo nano /etc/netplan/01-netcfg.yaml
      

      و تنظیمات شبکه را به شکل زیر اعمال کنید:

      network:
        version: 2
        renderer: networkd
        ethernets:
          ens18:
            dhcp4: false
            addresses:
              - 192.168.1.100/24
            gateway4: 192.168.1.1
            nameservers:
              addresses:
                - 8.8.8.8
                - 8.8.4.4
      
    • سپس، برای اعمال تغییرات، دستور زیر را اجرا کنید:
      sudo netplan apply
      
  3. پیکربندی شبکه در صورت استفاده از IP استاتیک: پس از نصب سیستم‌عامل در حالت Headless، می‌توانید IP استاتیک را تنظیم کنید تا ماشین مجازی به صورت دائم به همان آدرس IP متصل شود. این کار می‌تواند از طریق فایل‌های پیکربندی شبکه انجام شود.

4. دسترسی به ماشین مجازی از راه دور

پس از نصب سیستم‌عامل در حالت Headless، برای دسترسی به ماشین مجازی از طریق SSH و مدیریت آن، لازم است که SSH را روی ماشین مجازی نصب کنید.

  1. نصب SSH بر روی سیستم‌عامل:
    • پس از نصب سیستم‌عامل، می‌توانید SSH را از طریق دستور زیر نصب کنید (در صورت استفاده از سیستم‌عامل‌های مبتنی بر لینوکس):
      sudo apt update
      sudo apt install openssh-server
      
  2. راه‌اندازی SSH و دسترسی از راه دور:
    • پس از نصب SSH، سرویس را با دستور زیر راه‌اندازی کنید:
      sudo systemctl enable ssh
      sudo systemctl start ssh
      
  3. اتصال از طریق SSH:
    • از ماشین‌های دیگر می‌توانید با استفاده از دستور SSH به ماشین مجازی متصل شوید:
      ssh username@192.168.1.100
      

    در اینجا:

    • username: نام کاربری که در سیستم‌عامل ماشین مجازی تنظیم شده است.
    • 192.168.1.100: آدرس IP ماشین مجازی که از DHCP دریافت کرده یا به‌طور دستی تنظیم کرده‌اید.

جمع‌بندی

در این بخش به نحوه نصب و پیکربندی ماشین مجازی در حالت Headless در Proxmox VE پرداخته شد. استفاده از حالت Headless برای مدیریت ماشین‌های مجازی بدون نیاز به رابط گرافیکی می‌تواند در محیط‌های سرور و تولیدی بسیار مفید باشد. این روش منابع سیستم را کاهش می‌دهد و دسترسی از راه دور را از طریق SSH یا پورت‌های سریال امکان‌پذیر می‌کند. برای نصب سیستم‌عامل و پیکربندی شبکه در این حالت، از دستورات خط فرمان و پیکربندی فایل‌های شبکه استفاده می‌شود.[/cdb_course_lesson][cdb_course_lesson title=”فصل 4. پیکربندی منابع ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تخصیص منابع به ماشین‌های مجازی ” subtitle=”توضیحات کامل”]در محیط‌های مجازی‌سازی، تخصیص منابع یکی از مهم‌ترین و حیاتی‌ترین بخش‌ها است. مدیریت منابع می‌تواند تأثیر زیادی بر کارایی و پایداری ماشین‌های مجازی (VM) و در نهایت کل سیستم‌عامل‌ها و برنامه‌ها داشته باشد. در Proxmox VE، منابع مختلفی مانند CPU، RAM، Disk و Network برای ماشین‌های مجازی قابل تخصیص هستند که هرکدام به‌طور مستقیم بر عملکرد و قابلیت‌های VM تأثیر می‌گذارند.

در این بخش، به طور مفصل به نحوه تخصیص منابع به ماشین‌های مجازی در Proxmox VE خواهیم پرداخت و تنظیمات و دستورات لازم برای پیکربندی هرکدام از این منابع را شرح خواهیم داد.


تخصیص منابع به ماشین‌های مجازی: CPU

برای تخصیص منابع CPU به ماشین مجازی، شما می‌توانید تعداد هسته‌ها و ویژگی‌های مختلف مانند نوع پردازنده و اشتراک‌گذاری منابع را تنظیم کنید.

1. انتخاب تعداد هسته‌ها و تخصیص CPU

در Proxmox VE، برای تخصیص CPU به ماشین مجازی، ابتدا باید تعداد هسته‌های پردازنده‌ای که می‌خواهید به VM اختصاص دهید را انتخاب کنید. علاوه بر این، می‌توانید سایر تنظیمات پیشرفته مانند نوع پردازنده و استفاده از تکنولوژی‌هایی مثل NUMA یا CPU pinning را تنظیم کنید.

برای تخصیص تعداد هسته‌های پردازنده به یک ماشین مجازی، از Web UI یا دستورات خط فرمان استفاده می‌شود.

  1. از طریق Web UI:
    • وارد محیط Proxmox شوید.
    • روی ماشین مجازی خود کلیک کنید.
    • به تب Hardware بروید.
    • گزینه Processor را انتخاب کنید.
    • در این بخش، می‌توانید تعداد هسته‌ها را از طریق فیلد Cores مشخص کنید.
  2. از طریق دستور خط فرمان: اگر بخواهید منابع CPU را از طریق خط فرمان پیکربندی کنید، از دستور qm set استفاده می‌کنید. به‌طور مثال، برای تخصیص 4 هسته به ماشین مجازی با ID 100:
    qm set 100 --cores 4
    
2. تنظیمات پیشرفته CPU

در صورتی که نیاز به استفاده از ویژگی‌های پیشرفته CPU مانند NUMA (Non-Uniform Memory Access) یا CPU pinning دارید، می‌توانید این تنظیمات را از طریق دستور خط فرمان انجام دهید.

  • NUMA: این ویژگی برای بهبود عملکرد در ماشین‌های مجازی با حافظه زیاد و نیاز به دسترسی سریع به منابع پردازنده استفاده می‌شود.
  • CPU Pinning: این ویژگی برای اتصال مستقیم هسته‌های پردازنده فیزیکی به ماشین مجازی استفاده می‌شود.

برای فعال‌سازی NUMA در ماشین مجازی، می‌توانید از دستور زیر استفاده کنید:

qm set 100 --numactrls 0-1

در اینجا:

  • 100: ID ماشین مجازی.
  • --numactrls 0-1: تعیین استفاده از هسته‌های پردازنده 0 و 1.

برای تنظیم CPU pinning به‌صورت دستی، باید فایل پیکربندی ماشین مجازی را ویرایش کرده و هسته‌های پردازنده را به ماشین اختصاص دهید. فایل پیکربندی معمولاً در مسیر /etc/pve/qemu-server/ قرار دارد.

nano /etc/pve/qemu-server/100.conf

در این فایل، خطوط زیر را اضافه کنید تا CPU pinning را برای VM اعمال کنید:

cpu: host,cores=4
cpus: 0-3

تخصیص منابع به ماشین‌های مجازی: RAM

در Proxmox VE، شما می‌توانید مقدار RAM مورد نیاز برای یک ماشین مجازی را به‌طور دقیق تنظیم کنید. همچنین تنظیمات پیشرفته مانند Memory Hotplug (افزودن RAM به‌صورت داینامیک) و تنظیمات ballooning (تخصیص دینامیک RAM) نیز موجود هستند.

1. تخصیص RAM به ماشین مجازی

برای تخصیص حافظه به یک ماشین مجازی، شما می‌توانید از Web UI یا دستور خط فرمان استفاده کنید.

  1. از طریق Web UI:
    • به تب Hardware در محیط Web UI بروید.
    • گزینه Memory را انتخاب کنید.
    • در اینجا، می‌توانید مقدار RAM را با وارد کردن مقدار مورد نظر در فیلد Memory (MB) تغییر دهید.
  2. از طریق دستور خط فرمان: برای تخصیص 8 گیگابایت RAM به ماشین مجازی با ID 100، از دستور زیر استفاده کنید:
    qm set 100 --memory 8192
    
2. تنظیمات پیشرفته RAM
  • Memory Hotplug: این ویژگی به شما این امکان را می‌دهد که به‌طور داینامیک RAM را به ماشین مجازی اضافه یا از آن کم کنید. برای فعال‌سازی این ویژگی، کافی است فایل پیکربندی ماشین مجازی را ویرایش کنید.برای فعال‌سازی Memory Hotplug:
    qm set 100 --hotplug memory
    
  • Ballooning: تکنولوژی ballooning به ماشین مجازی اجازه می‌دهد تا حافظه را به‌طور داینامیک از سیستم اختصاصی درخواست کند یا پس بگیرد. برای فعال‌سازی این ویژگی، کافی است تنظیمات زیر را اعمال کنید:
    qm set 100 --balloon 4096
    

این دستور به ماشین مجازی با ID 100 اجازه می‌دهد تا از 4 گیگابایت RAM استفاده کند و در صورت نیاز، این مقدار تغییر کند.


تخصیص منابع به ماشین‌های مجازی: Disk

در Proxmox VE، انتخاب نوع دیسک (HDD یا SSD) و تنظیمات I/O تأثیر زیادی بر عملکرد ماشین مجازی دارد. شما می‌توانید دیسک‌ها را به‌صورت IDE، SCSI، یا VirtIO تنظیم کنید که هرکدام ویژگی‌ها و عملکرد متفاوتی دارند.

1. انتخاب نوع دیسک

برای تخصیص دیسک به ماشین مجازی، باید ابتدا نوع دیسک (HDD یا SSD) را انتخاب کنید. Proxmox VE از چندین گزینه برای دیسک‌ها پشتیبانی می‌کند که رایج‌ترین آن‌ها VirtIO، IDE، و SCSI هستند. معمولاً برای عملکرد بهتر، VirtIO توصیه می‌شود، زیرا سریع‌تر از IDE است و به‌طور مستقیم به سیستم عامل میهمان متصل می‌شود.

  1. از طریق Web UI:
    • به تب Hardware بروید.
    • گزینه Hard Disk را انتخاب کنید.
    • در اینجا می‌توانید نوع دیسک (IDE، SCSI، VirtIO) و اندازه دیسک را تنظیم کنید.
  2. از طریق دستور خط فرمان: برای تخصیص یک دیسک به ماشین مجازی و انتخاب نوع دیسک (مثلاً VirtIO):
    qm set 100 --scsi0 local:100/vm-100-disk-1.qcow2,format=qcow2,size=10G
    

در اینجا:

  • --scsi0: انتخاب نوع دیسک (در اینجا SCSI).
  • local: ذخیره‌سازی محلی.
  • 10G: اندازه دیسک.
2. تنظیمات I/O دیسک

برای پیکربندی عملکرد I/O دیسک، شما می‌توانید از گزینه‌هایی مثل cache، IO thread و discard استفاده کنید.

  • Cache: به شما امکان می‌دهد نوع کش دیسک (مثل none، writeback، writethrough) را انتخاب کنید.
  • IO thread: این گزینه برای افزایش عملکرد I/O از چندین نخ پردازشی استفاده می‌کند.

برای مثال، برای تنظیم دیسک با کش writeback و استفاده از IO thread:

qm set 100 --scsi0 local:100/vm-100-disk-1.qcow2,format=qcow2,size=10G,cache=writeback,io_threads=4

تخصیص منابع به ماشین‌های مجازی: Network

پیکربندی شبکه در ماشین‌های مجازی از اهمیت ویژه‌ای برخوردار است، زیرا باید ارتباط با سایر ماشین‌ها و دستگاه‌ها برقرار شود. در Proxmox VE، شما می‌توانید از کارت‌های شبکه مختلف با تنظیمات متفاوت استفاده کنید.

1. پیکربندی کارت شبکه

برای تخصیص کارت شبکه به یک ماشین مجازی، شما می‌توانید از Web UI یا دستورات خط فرمان استفاده کنید.

  1. از طریق Web UI:
    • به تب Hardware بروید.
    • گزینه Network Device را انتخاب کنید.
    • در اینجا می‌توانید نوع کارت شبکه (مثل VirtIO، e1000) و پل شبکه (مثل vmbr0) را تنظیم کنید.
  2. از طریق دستور خط فرمان: برای تخصیص کارت شبکه به ماشین مجازی با ID 100 و استفاده از VirtIO به پل شبکه `vmbr0`:
qm set 100 --net0 virtio,bridge=vmbr0
2. پیکربندی شبکه اضافی

در صورت نیاز به اتصال به شبکه‌های مختلف، می‌توانید از گزینه‌های بیشتری برای تخصیص کارت‌های شبکه به ماشین مجازی استفاده کنید. برای اضافه کردن یک کارت شبکه دوم به ماشین مجازی:

qm set 100 --net1 virtio,bridge=vmbr1

جمع‌بندی

در این بخش، به تخصیص منابع مختلف به ماشین‌های مجازی در Proxmox VE پرداختیم. تخصیص صحیح CPU، RAM، دیسک و شبکه تأثیر زیادی بر عملکرد و کارایی ماشین‌های مجازی خواهد داشت. از دستورات خط فرمان یا Web UI برای پیکربندی این منابع استفاده کردیم و نحوه تنظیمات پیشرفته برای بهبود عملکرد سیستم را بررسی کردیم.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از VirtIO برای بهبود عملکرد ماشین‌های مجازی ” subtitle=”توضیحات کامل”]VirtIO یک فناوری مجازی‌سازی است که به‌طور خاص برای افزایش عملکرد ورودی/خروجی (I/O) در محیط‌های مجازی‌سازی توسعه یافته است. در محیط‌هایی مانند Proxmox VE، از VirtIO می‌توان برای بهبود عملکرد دیسک و شبکه ماشین‌های مجازی (VMs) استفاده کرد. به‌طور معمول، از این فناوری در اتصال دیسک‌های مجازی و کارت‌های شبکه استفاده می‌شود و در مقایسه با دیگر گزینه‌های قدیمی‌تر (مانند IDE و E1000) عملکرد به‌مراتب بهتری دارد.

در این بخش، نحوه استفاده از VirtIO برای افزایش عملکرد ماشین‌های مجازی در Proxmox VE و پیکربندی آن به‌صورت گرافیکی و دستوری را بررسی می‌کنیم.


استفاده از VirtIO برای دیسک‌های ماشین مجازی

VirtIO در مورد دیسک‌ها باعث افزایش سرعت انتقال داده‌ها می‌شود. در حالت معمول، ماشین‌های مجازی از دیسک‌های IDE یا SCSI استفاده می‌کنند، اما این گزینه‌ها در مقایسه با VirtIO نسبت به عملکرد I/O کندتر هستند. به همین دلیل، استفاده از VirtIO به‌ویژه در سیستم‌های پرسرعت و با حجم بالای داده توصیه می‌شود.

1. انتخاب VirtIO برای دیسک‌ها

در هنگام ساخت یا ویرایش ماشین مجازی، می‌توانید دیسک‌ها را به‌صورت VirtIO تنظیم کنید. این انتخاب عملکرد بسیار بهتری از نظر I/O در مقایسه با دیگر گزینه‌ها ارائه می‌دهد.

  1. از طریق Web UI:
    • به پنل ماشین مجازی بروید.
    • در بخش Hardware گزینه Add را انتخاب کنید و سپس Hard Disk را بزنید.
    • در فیلد Bus/Device گزینه VirtIO را انتخاب کنید.
    • انتخاب گزینه local (برای ذخیره‌سازی محلی) و تعیین سایز دیسک را انجام دهید.
  2. از طریق دستور خط فرمان: برای اضافه کردن یک دیسک VirtIO به ماشین مجازی با ID 100، از دستور زیر استفاده می‌شود:
    qm set 100 --scsi0 local:100/vm-100-disk-1.qcow2,format=qcow2,size=10G,cache=writeback
    

    در اینجا:

    • --scsi0: برای استفاده از دیسک با اتصال SCSI.
    • local: ذخیره‌سازی محلی.
    • 10G: اندازه دیسک.
    • cache=writeback: تنظیم کش دیسک برای عملکرد بهتر.
2. مزایای استفاده از VirtIO برای دیسک‌ها
  • عملکرد بالا: VirtIO در انتقال داده‌ها بسیار سریع‌تر از IDE یا SCSI است.
  • کاهش Overhead: کاهش بار پردازشی در مقایسه با اتصالات دیگر مانند IDE.
  • پشتیبانی از کش writeback: کش writeback می‌تواند سرعت خواندن و نوشتن داده‌ها را افزایش دهد.

استفاده از VirtIO برای کارت شبکه

VirtIO نه‌تنها در دیسک‌ها بلکه در کارت‌های شبکه ماشین‌های مجازی نیز استفاده می‌شود تا سرعت انتقال داده‌ها و عملکرد شبکه افزایش یابد. کارت شبکه‌های مبتنی بر VirtIO، در مقایسه با کارت‌های شبکه‌های دیگر مانند e1000، عملکرد به‌مراتب بهتری دارند و تا حد زیادی از لود اضافی پردازنده جلوگیری می‌کنند.

1. انتخاب VirtIO برای کارت شبکه

برای استفاده از VirtIO در کارت شبکه، شما می‌توانید کارت شبکه ماشین مجازی را به نوع virtio تغییر دهید.

  1. از طریق Web UI:
    • وارد صفحه تنظیمات ماشین مجازی شوید.
    • به تب Hardware بروید و گزینه Network Device را انتخاب کنید.
    • در بخش Model گزینه virtio را از لیست کشویی انتخاب کنید.
    • سپس می‌توانید پل شبکه (مثل vmbr0) را برای اتصال به شبکه انتخاب کنید.
  2. از طریق دستور خط فرمان: برای تنظیم کارت شبکه از نوع VirtIO در ماشین مجازی با ID 100 و اتصال آن به پل شبکه vmbr0، از دستور زیر استفاده می‌شود:
    qm set 100 --net0 virtio,bridge=vmbr0
    

    در اینجا:

    • --net0: انتخاب اولین کارت شبکه.
    • virtio: استفاده از کارت شبکه VirtIO.
    • bridge=vmbr0: اتصال کارت شبکه به پل شبکه vmbr0.
2. مزایای استفاده از VirtIO برای کارت شبکه
  • عملکرد بهبود یافته: کارت‌های شبکه VirtIO دارای تأخیر کمتر و پهنای باند بالاتر در مقایسه با گزینه‌هایی چون e1000 هستند.
  • کاهش مصرف CPU: VirtIO باعث می‌شود که ماشین مجازی بتواند بسته‌های شبکه را با استفاده از کمترین منابع پردازشی ارسال و دریافت کند.
  • کمترین Overhead: برای ماشین‌های مجازی در شرایط استفاده سنگین از شبکه، VirtIO سرعت انتقال داده را افزایش می‌دهد و فشار را از روی پردازنده برمی‌دارد.

پیکربندی VirtIO برای استفاده در حالت Headless

در حالت headless (بدون رابط گرافیکی)، که معمولاً برای سرورهای تولید یا محیط‌های آزمایشی استفاده می‌شود، تنظیم VirtIO برای دیسک‌ها و شبکه به‌طور خاص مزایای زیادی دارد.

  1. تنظیم VirtIO برای دیسک‌ها در حالت Headless: می‌توانید به‌راحتی از خط فرمان برای تخصیص دیسک VirtIO استفاده کنید. برای مثال، برای اضافه کردن دیسک VirtIO به ماشین مجازی:
    qm set 100 --scsi0 local:100/vm-100-disk-1.qcow2,format=qcow2,size=20G
    
  2. تنظیم VirtIO برای شبکه در حالت Headless: به‌طور مشابه، می‌توانید کارت شبکه VirtIO را بدون نیاز به Web UI از طریق خط فرمان تنظیم کنید. برای اتصال کارت شبکه VirtIO به پل vmbr0:
    qm set 100 --net0 virtio,bridge=vmbr0
    

جمع‌بندی

استفاده از VirtIO در Proxmox VE برای بهبود عملکرد ماشین‌های مجازی، یک راهکار موثر برای بهینه‌سازی ورودی/خروجی (I/O) است. با استفاده از VirtIO برای دیسک‌ها و کارت‌های شبکه، ماشین‌های مجازی به عملکرد بسیار بهتری دست می‌یابند و می‌توانند به‌طور کارآمدتر و سریع‌تر با منابع سیستم تعامل داشته باشند. این تنظیمات به‌ویژه در محیط‌هایی با نیازهای بالا به I/O، مانند پایگاه‌های داده و اپلیکیشن‌های پرمصرف، اهمیت زیادی دارند.

برای پیکربندی VirtIO در دیسک‌ها و شبکه، هم از Web UI و هم از دستورات خط فرمان می‌توان استفاده کرد که به شما این امکان را می‌دهد تا به‌راحتی ماشین‌های مجازی خود را برای بهترین عملکرد تنظیم کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات Advanced در VM” subtitle=”توضیحات کامل”]در Proxmox VE، علاوه بر تنظیمات پایه‌ای که برای ایجاد ماشین‌های مجازی اعمال می‌کنید، تنظیمات پیشرفته‌ای نیز وجود دارد که می‌توانید از آن‌ها برای بهبود عملکرد، مدیریت دستگاه‌ها، یا تخصیص منابع بیشتر استفاده کنید. این تنظیمات شامل دستگاه‌های اضافی مانند USB و PCI و همچنین تنظیمات Boot Order برای ترتیب بوت ماشین مجازی است. در این بخش، به بررسی این تنظیمات پیشرفته و نحوه پیکربندی آن‌ها خواهیم پرداخت.


دستگاه‌های اضافی (USB, PCI)

یکی از ویژگی‌های پیشرفته در ماشین‌های مجازی، قابلیت اتصال دستگاه‌های خارجی مانند USB و PCI است. این دستگاه‌ها معمولاً برای توسعه و آزمایش نرم‌افزار، پیاده‌سازی سخت‌افزار خاص، یا اتصال دستگاه‌های ذخیره‌سازی اضافی استفاده می‌شوند.

1. اتصال دستگاه USB به ماشین مجازی

در Proxmox VE می‌توان به‌راحتی دستگاه‌های USB را به ماشین‌های مجازی متصل کرد. این تنظیمات می‌تواند برای شبیه‌سازی دستگاه‌های USB واقعی مانند چاپگرها، کلیدهای USB یا حتی تجهیزات ذخیره‌سازی مفید باشد.

  1. از طریق Web UI:
    • وارد صفحه تنظیمات ماشین مجازی شوید.
    • به تب Hardware بروید.
    • بر روی دکمه Add کلیک کرده و گزینه USB Device را انتخاب کنید.
    • در این بخش، دستگاه‌های USB متصل به سرور قابل مشاهده خواهند بود. یکی را انتخاب کرده و به ماشین مجازی اضافه کنید.
  2. از طریق دستور خط فرمان: برای اضافه کردن دستگاه USB به ماشین مجازی با ID 100 از دستور زیر استفاده می‌شود:
    qm set 100 --usb0 host=vendorID:productID
    

    در اینجا:

    • --usb0: برای اضافه کردن اولین دستگاه USB به ماشین مجازی.
    • host=vendorID:productID: شناسه تولیدکننده و شناسه محصول دستگاه USB که می‌خواهید به ماشین مجازی متصل کنید.
2. اتصال دستگاه PCI به ماشین مجازی

در مواردی که نیاز به تخصیص مستقیم دستگاه‌های PCI به ماشین‌های مجازی داریم (مثل کارت گرافیک یا کارت شبکه)، می‌توان از قابلیت PCI Passthrough استفاده کرد. این تنظیم امکان می‌دهد تا ماشین مجازی به‌طور مستقیم از دستگاه PCI متصل به سرور فیزیکی استفاده کند.

  1. از طریق Web UI:
    • وارد صفحه تنظیمات ماشین مجازی شوید.
    • به تب Hardware بروید و بر روی دکمه Add کلیک کرده و گزینه PCI Device را انتخاب کنید.
    • سپس دستگاه‌های PCI موجود قابل مشاهده خواهند بود و می‌توانید دستگاه مورد نظر را انتخاب کرده و آن را به ماشین مجازی اختصاص دهید.
  2. از طریق دستور خط فرمان: برای اتصال یک دستگاه PCI (مثلاً کارت گرافیک) به ماشین مجازی با ID 100، از دستور زیر استفاده می‌شود:
    qm set 100 --hostpci0 0000:00:1f.2
    

    در اینجا:

    • --hostpci0: برای اتصال اولین دستگاه PCI به ماشین مجازی.
    • 0000:00:1f.2: شناسه دستگاه PCI که می‌خواهید به ماشین مجازی متصل کنید.

    برای پیدا کردن شناسه دقیق دستگاه PCI، از دستور lspci در سیستم میزبان استفاده کنید.


تنظیمات Boot Order

Boot Order به ترتیب بوت دستگاه‌های مختلف اشاره دارد که ماشین مجازی از آن‌ها برای بارگذاری سیستم‌عامل استفاده می‌کند. این تنظیمات معمولاً برای نصب سیستم‌عامل از طریق CD/DVD، شبکه (PXE)، یا دیسک سخت (HDD) کاربرد دارد. با تنظیم Boot Order به‌طور دقیق، می‌توان فرآیند بوت ماشین مجازی را مدیریت کرد.

1. تنظیم ترتیب بوت (Boot Order) از طریق Web UI
  1. وارد صفحه تنظیمات ماشین مجازی شوید.
  2. به تب Options بروید.
  3. در بخش Boot Order، ترتیب دستگاه‌ها را مشاهده خواهید کرد.
  4. با استفاده از دکمه‌های Up و Down می‌توانید ترتیب بوت دستگاه‌ها را تغییر دهید.

در این بخش، شما می‌توانید ترتیب دستگاه‌هایی مانند CD/DVD, Hard Disk, Network, و Floppy را تنظیم کنید تا ماشین مجازی ابتدا از یک دستگاه خاص بوت شود.

2. تنظیم ترتیب بوت از طریق دستور خط فرمان

برای تنظیم ترتیب بوت دستگاه‌ها از طریق دستور خط فرمان، از دستور زیر استفاده می‌شود:

qm set 100 --boot order=cdn

در اینجا:

  • --boot order=cdn: ترتیب بوت به‌صورت CD, Disk, و سپس Network تنظیم شده است.
  • این دستور باعث می‌شود که ماشین مجازی ابتدا از سی‌دی/دی‌وی‌دی (برای نصب سیستم‌عامل)، سپس از دیسک سخت و در نهایت از شبکه بوت شود.
3. تنظیمات پیشرفته بوت در حالت UEFI

اگر ماشین مجازی شما از UEFI (Unified Extensible Firmware Interface) به‌جای BIOS استفاده می‌کند، ترتیب بوت کمی متفاوت خواهد بود. برای پیکربندی Boot Order در حالت UEFI، از تنظیمات مشابه استفاده می‌شود، اما با توجه به تفاوت‌های سیستم UEFI و BIOS ممکن است گزینه‌ها و ترتیب‌ها تغییر کنند.


جمع‌بندی

در این بخش، به بررسی تنظیمات پیشرفته در ماشین‌های مجازی Proxmox VE پرداختیم که شامل اتصال دستگاه‌های اضافی (USB, PCI) و تنظیم ترتیب بوت (Boot Order) بود. با استفاده از این تنظیمات، می‌توانید ماشین‌های مجازی خود را با تجهیزات سخت‌افزاری خاص یا ترتیب بوت دلخواه پیکربندی کنید.

  1. اتصال دستگاه‌های USB و PCI: این تنظیمات به شما این امکان را می‌دهند که دستگاه‌های خارجی را به ماشین‌های مجازی متصل کنید یا از PCI Passthrough برای تخصیص مستقیم دستگاه‌ها به ماشین مجازی استفاده کنید.
  2. تنظیم ترتیب بوت: با استفاده از Boot Order می‌توانید ترتیب بوت دستگاه‌های مختلف مانند CD/DVD، دیسک سخت، یا شبکه را مدیریت کنید.

با استفاده از دستورات خط فرمان و Web UI می‌توانید این تنظیمات را به‌راحتی در محیط Proxmox VE اعمال کرده و عملکرد و مدیریت ماشین‌های مجازی خود را بهبود بخشید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 5. مدیریت و نظارت بر ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده وضعیت ماشین‌های مجازی از Web UI” subtitle=”توضیحات کامل”]در Proxmox VE، مشاهده وضعیت ماشین‌های مجازی یکی از بخش‌های کلیدی در مدیریت و نظارت بر عملکرد و سلامت سیستم‌های مجازی است. از طریق Web UI (رابط کاربری وب)، می‌توان به‌راحتی وضعیت فعلی ماشین‌های مجازی، منابع مصرفی، و عملکرد کلی آن‌ها را بررسی کرد. این ابزار برای مدیریت و نظارت بر تعداد زیادی ماشین مجازی در یک محیط مجازی‌سازی بسیار مفید است.

در این بخش، روش‌های مختلف برای مشاهده وضعیت ماشین‌های مجازی از طریق Web UI و همچنین روش‌های جزیی‌تر برای بررسی منابع و عملکرد آن‌ها توضیح داده می‌شود.


1. مشاهده وضعیت کلی ماشین‌های مجازی از Web UI

برای مشاهده وضعیت کلی ماشین‌های مجازی، ابتدا باید وارد Web UI Proxmox VE شوید. سپس می‌توانید وضعیت هر ماشین مجازی را از بخش Datacenter یا Node مشاهده کنید. برای این کار مراحل زیر را دنبال کنید:

  1. ورود به Web UI:
    • با استفاده از مرورگر خود به آدرس IP یا دامنه سرور Proxmox خود بروید.
    • وارد حساب کاربری خود شوید.
  2. انتخاب Datacenter یا Node:
    • در صفحه اصلی Web UI، بر روی Datacenter یا یکی از Nodes که در آن ماشین‌های مجازی قرار دارند، کلیک کنید.
    • این شما را به صفحه مدیریت خوشه یا نود هدایت می‌کند که در آن ماشین‌های مجازی در حال اجرا هستند.
  3. مشاهده وضعیت ماشین مجازی:
    • در زیر قسمت Datacenter یا Node، فهرستی از تمام ماشین‌های مجازی (VM) نمایش داده می‌شود.
    • برای هر ماشین مجازی، وضعیت‌های مختلفی مانند در حال اجرا (runningخاموش (stoppedمعیوب (error)، و غیره نمایش داده می‌شود.
    • برای مشاهده جزئیات بیشتر از وضعیت هر ماشین مجازی، روی نام آن کلیک کنید.
  4. اطلاعات نمایشی:
    • در بخش اطلاعات ماشین مجازی، مواردی مانند IP Address، تخصیص منابع (CPU, RAM)، و زمان اجرا نمایش داده می‌شود.
    • به‌طور پیش‌فرض، در بخش Summary ماشین مجازی، شما می‌توانید وضعیت فعلی ماشین، پیکربندی منابع، وضعیت شبکه، و همچنین خطاها و هشدارها را مشاهده کنید.

2. مشاهده منابع مصرفی ماشین‌های مجازی

یکی از جنبه‌های کلیدی در مشاهده وضعیت ماشین‌های مجازی، بررسی منابع مصرفی مثل CPU، RAM، و Disk است. این کار به شما کمک می‌کند تا در صورت نیاز به بهینه‌سازی منابع، بتوانید تغییرات لازم را اعمال کنید.

برای مشاهده منابع مصرفی ماشین‌های مجازی از Web UI:

  1. مشاهده منابع در Summary:
    • در صفحه Summary هر ماشین مجازی، مقادیری نظیر مصرف CPU، RAM، و Disk به‌صورت گرافیکی و عددی نمایش داده می‌شود.
    • این بخش به شما کمک می‌کند تا ببینید که چه مقدار از منابع سیستم در حال حاضر توسط ماشین مجازی مصرف می‌شود.
  2. گراف‌های مصرف منابع:
    • در این بخش، علاوه بر اعداد، گراف‌های زمانی نیز برای منابع مختلف ماشین مجازی مانند CPU و RAM وجود دارد که روند تغییرات مصرف را در طول زمان نشان می‌دهند.
    • این گراف‌ها برای شناسایی مشکلات بالقوه مانند استفاده بیش از حد از منابع، نقاط اوج مصرف، و سایر مشکلات مربوط به منابع مفید هستند.
  3. مشاهده دقیق منابع در تب Resources:
    • برای مشاهده دقیق‌تر منابع مصرفی و عملکرد ماشین‌های مجازی، به تب Resources بروید.
    • در این تب، شما می‌توانید وضعیت مصرف CPU، RAM، و I/O را به‌صورت دقیق و به‌صورت زمان‌بندی مشاهده کنید.

3. مشاهده لاگ‌ها و رویدادهای ماشین‌های مجازی

یکی دیگر از جنبه‌های مهم در نظارت بر وضعیت ماشین‌های مجازی، بررسی لاگ‌ها و رویدادها است. این اطلاعات به شما کمک می‌کند تا مشکلات موجود را شناسایی و رفع کنید.

برای مشاهده لاگ‌ها و رویدادهای ماشین مجازی:

  1. مشاهده لاگ‌ها در Logs:
    • برای دسترسی به لاگ‌های هر ماشین مجازی، وارد بخش Logs شوید.
    • در این قسمت، می‌توانید به‌طور دقیق‌تر رویدادهای مربوط به ماشین مجازی را مشاهده کنید.
    • این لاگ‌ها شامل اطلاعات مفیدی درباره خاموش شدن، راه‌اندازی مجدد، یا خطاهای مختلف در ماشین مجازی هستند.
  2. نمایش تاریخچه فعالیت‌ها:
    • بخش History برای مشاهده تمام عملیات انجام شده بر روی ماشین مجازی از جمله راه‌اندازی، خاموش شدن، تغییرات تنظیمات، و غیره استفاده می‌شود.
    • این تاریخچه به شما کمک می‌کند تا تغییرات انجام شده را ردیابی کرده و مشکلات احتمالی را شناسایی کنید.

4. مشاهده وضعیت شبکه و اتصال به اینترنت

ماشین‌های مجازی معمولاً به شبکه‌های مختلف متصل می‌شوند. برای نظارت بر وضعیت شبکه هر ماشین مجازی، می‌توانید از Web UI استفاده کنید.

  1. مشاهده وضعیت کارت شبکه:
    • در بخش Summary ماشین مجازی، وضعیت کارت شبکه (NIC) نمایش داده می‌شود.
    • این بخش شامل آدرس IP ماشین مجازی، وضعیت اتصال (اتصال به شبکه) و همچنین میزان مصرف پهنای باند شبکه است.
  2. مشاهده وضعیت اتصال به اینترنت:
    • برای بررسی اتصال ماشین مجازی به اینترنت، می‌توانید از بخش Console استفاده کنید.
    • از طریق ترمینال ماشین مجازی، می‌توانید دستوراتی مانند ping را برای آزمایش اتصال شبکه اجرا کنید.

    برای مثال، برای آزمایش اتصال به اینترنت از داخل ماشین مجازی می‌توانید دستور زیر را وارد کنید:

    ping google.com
    

5. استفاده از کماندهای خط فرمان برای نظارت

علاوه بر استفاده از Web UI، می‌توانید از کماندهای خط فرمان برای مشاهده وضعیت ماشین‌های مجازی استفاده کنید. برخی از دستورات مفید عبارتند از:

  1. نمایش وضعیت ماشین‌های مجازی: برای مشاهده وضعیت کلی تمام ماشین‌های مجازی، از دستور زیر استفاده کنید:
    pvevm status
    
  2. مشاهده مصرف منابع ماشین مجازی: برای مشاهده مصرف منابع ماشین مجازی خاصی، دستور زیر را اجرا کنید:
    qm list
    

جمع‌بندی

در این بخش، نحوه مشاهده وضعیت ماشین‌های مجازی از طریق Web UI در Proxmox VE بررسی شد. برای مدیریت موثر ماشین‌های مجازی، باید به وضعیت منابع، لاگ‌ها، اتصال شبکه، و تاریخچه فعالیت‌ها توجه ویژه‌ای داشته باشید. با استفاده از Web UI و دستورات خط فرمان می‌توانید به‌راحتی این اطلاعات را بدست آورده و مشکلات را شناسایی کنید. این امکانات به مدیران سیستم کمک می‌کند تا عملکرد ماشین‌های مجازی خود را به‌طور دقیق نظارت کرده و در صورت نیاز اقدامات اصلاحی انجام دهند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بررسی اطلاعات عملکرد (CPU, RAM, Disk I/O)” subtitle=”توضیحات کامل”]در سیستم‌های مجازی‌سازی مانند Proxmox VE، نظارت بر عملکرد ماشین‌های مجازی بسیار حیاتی است. این اطلاعات به مدیران سیستم کمک می‌کند تا عملکرد ماشین‌ها را ارزیابی کرده و در صورت نیاز بهینه‌سازی انجام دهند. در این بخش، به بررسی نحوه مشاهده و تحلیل اطلاعات عملکرد ماشین‌های مجازی شامل مصرف CPU، RAM، و Disk I/O می‌پردازیم. همچنین، این موضوع به‌طور جامع پوشش داده خواهد شد که شامل نحوه مشاهده این اطلاعات از طریق Web UI و نیز دستورات خط فرمان می‌شود.


1. مشاهده اطلاعات عملکرد CPU

CPU یکی از اجزای حیاتی ماشین‌های مجازی است که به‌طور مستقیم بر عملکرد سیستم تاثیر می‌گذارد. مشاهده مصرف CPU به شما کمک می‌کند تا از بروز مشکلات احتمالی مانند استفاده بیش از حد از CPU جلوگیری کنید.

مشاهده مصرف CPU از طریق Web UI

برای مشاهده مصرف CPU ماشین‌های مجازی از Web UI:

  1. ورود به Web UI:
    • وارد Web UI سرور Proxmox شوید.
  2. انتخاب ماشین مجازی:
    • در بخش Datacenter یا Node، ماشین مجازی مورد نظر خود را انتخاب کنید.
  3. مشاهده وضعیت در Summary:
    • در تب Summary، اطلاعات مربوط به CPU نمایش داده می‌شود. این اطلاعات شامل درصد مصرف CPU توسط ماشین مجازی در زمان واقعی است.
    • در این بخش می‌توانید گراف‌هایی را مشاهده کنید که میزان استفاده از CPU را به‌صورت درصدی نمایش می‌دهند.
مشاهده مصرف CPU با استفاده از دستورات خط فرمان

برای مشاهده مصرف CPU ماشین‌های مجازی از طریق خط فرمان:

  1. دستور top: دستور top برای مشاهده منابع مصرفی سیستم از جمله CPU در ماشین مجازی استفاده می‌شود. این دستور اطلاعات کاملی از مصرف منابع را به‌صورت زنده نمایش می‌دهد.
    top
    
  2. دستور htop: دستور htop مشابه دستور top است، اما با رابط گرافیکی و اطلاعات بیشتری به شما نمایش می‌دهد. برای نصب آن می‌توانید از دستور زیر استفاده کنید:
    apt-get install htop
    htop
    
  3. مشاهده مصرف CPU برای ماشین مجازی خاص: اگر می‌خواهید وضعیت CPU را فقط برای یک ماشین مجازی خاص مشاهده کنید، می‌توانید از دستور زیر استفاده کنید:
    qm status <VMID>
    

2. مشاهده اطلاعات عملکرد RAM

RAM یکی دیگر از منابع حیاتی ماشین‌های مجازی است. مصرف بیش از حد RAM می‌تواند باعث کند شدن یا حتی سقوط ماشین مجازی شود. نظارت بر مصرف حافظه RAM کمک می‌کند تا از بروز چنین مشکلاتی جلوگیری کنید.

مشاهده مصرف RAM از طریق Web UI

برای مشاهده مصرف RAM از Web UI:

  1. ورود به Web UI و انتخاب ماشین مجازی:
    • مانند روش قبلی، وارد Web UI و ماشین مجازی مورد نظر را انتخاب کنید.
  2. مشاهده در تب Summary:
    • در بخش Summary، مقدار مصرف حافظه RAM به‌صورت گرافیکی و عددی نمایش داده می‌شود.
    • همچنین در این قسمت می‌توانید میزان مصرف RAM نسبت به کل تخصیص داده‌شده را مشاهده کنید.
مشاهده مصرف RAM با استفاده از دستورات خط فرمان
  1. دستور free: برای مشاهده مصرف حافظه RAM در سیستم، از دستور free استفاده کنید:
    free -h
    
  2. دستور vmstat: دستور vmstat اطلاعات دقیق‌تری از وضعیت حافظه، CPU، و سایر منابع سیستم ارائه می‌دهد. برای مشاهده وضعیت RAM به همراه سایر اطلاعات، از دستور زیر استفاده کنید:
    vmstat
    
  3. دستور pveperf: دستور pveperf اطلاعاتی را در مورد وضعیت کلی عملکرد سرور و مصرف منابع، از جمله RAM، نمایش می‌دهد:
    pveperf
    

3. مشاهده اطلاعات عملکرد Disk I/O

Disk I/O به فعالیت‌های ورودی و خروجی سیستم ذخیره‌سازی اشاره دارد. نظارت بر این بخش به‌ویژه برای سیستم‌های دارای حجم زیادی از داده‌های خواندن و نوشتن حیاتی است. استفاده بی‌رویه از I/O می‌تواند باعث کاهش عملکرد سیستم شود.

مشاهده Disk I/O از طریق Web UI

برای مشاهده وضعیت I/O دیسک در Web UI:

  1. انتخاب ماشین مجازی و ورود به تب Summary:
    • مانند سایر منابع، وارد صفحه ماشین مجازی و تب Summary شوید.
  2. مشاهده مصرف I/O در بخش Disk:
    • در این بخش، مصرف Disk I/O به‌صورت گرافیکی و عددی نمایش داده می‌شود. این اطلاعات شامل میزان نوشتن (Write) و خواندن (Read) داده‌ها است.
  3. گراف‌های Disk I/O:
    • در Web UI، گراف‌های مختلفی برای مشاهده فعالیت‌های I/O نمایش داده می‌شود که می‌توانید با مشاهده آن‌ها عملکرد دیسک را بررسی کنید.
مشاهده Disk I/O با استفاده از دستورات خط فرمان

برای مشاهده اطلاعات مربوط به Disk I/O در سطح سیستم، می‌توان از دستورات زیر استفاده کرد:

  1. دستور iostat: دستور iostat برای نمایش اطلاعات عملکرد I/O دیسک به‌صورت دقیق استفاده می‌شود:
    iostat -x 1
    
    • پارامتر -x جزئیات کامل از I/O را نمایش می‌دهد.
    • پارامتر 1 نیز مشخص می‌کند که این اطلاعات هر 1 ثانیه به‌روزرسانی شود.
  2. دستور iotop: دستور iotop اطلاعات مربوط به I/O در زمان واقعی را برای فرآیندهای مختلف سیستم نشان می‌دهد:
    iotop
    
  3. دستور pveperf: مشابه با مصرف RAM و CPU، دستور pveperf همچنین عملکرد دیسک را نیز بررسی می‌کند:
    pveperf
    

جمع‌بندی

در این بخش، نحوه بررسی اطلاعات عملکرد ماشین‌های مجازی از جمله مصرف CPU، RAM، و Disk I/O را از طریق Web UI و دستورات خط فرمان بررسی کردیم. نظارت بر این منابع برای حفظ عملکرد بهینه ماشین‌های مجازی و جلوگیری از مشکلات بالقوه بسیار مهم است. همچنین با استفاده از ابزارهای گرافیکی و دستورات خط فرمان می‌توانید به‌راحتی وضعیت منابع را بررسی کرده و مشکلات را شناسایی کنید. استفاده از این ابزارها و دستورات به شما کمک می‌کند تا با دقت بالا منابع سیستم خود را مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انجام عملیات بر روی ماشین‌های مجازی” subtitle=”توضیحات کامل”]در محیط‌های مجازی‌سازی مانند Proxmox VE، مدیریت ماشین‌های مجازی به‌طور مداوم و کارآمد نیازمند انجام عملیات مختلف مانند شروع، توقف، راه‌اندازی مجدد، و توقف کامل است. همچنین قابلیت‌های پیشرفته‌تری همچون Suspend، Resume و Snapshot برای مدیریت بهتر وضعیت ماشین‌های مجازی فراهم شده‌اند. در این بخش، ما به‌طور جامع این عملیات را از طریق Web UI و دستورات خط فرمان مورد بررسی قرار خواهیم داد.


1. Start، Stop، Reboot، Shutdown

این عملیات پایه‌ای‌ترین و ضروری‌ترین وظایف مدیریتی هستند که بر روی ماشین‌های مجازی انجام می‌دهیم. در ادامه، نحوه اجرای هرکدام از این عملیات‌ها را بررسی می‌کنیم.

Start (شروع ماشین مجازی)

برای شروع یک ماشین مجازی که قبلاً متوقف شده است:

  • از Web UI:
    1. وارد Web UI سرور Proxmox شوید.
    2. به بخش Datacenter بروید و سپس ماشین مجازی مورد نظر را انتخاب کنید.
    3. در تب Summary بر روی دکمه Start کلیک کنید.
  • دستور خط فرمان: برای شروع ماشین مجازی با استفاده از دستور خط فرمان، دستور زیر را وارد کنید:
    qm start <VMID>
    

    که در آن <VMID> شناسه ماشین مجازی مورد نظر است.

Stop (متوقف کردن ماشین مجازی)

برای متوقف کردن ماشین مجازی:

  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی را انتخاب کنید.
    2. بر روی دکمه Stop در تب Summary کلیک کنید.
  • دستور خط فرمان: برای توقف ماشین مجازی از دستور زیر استفاده کنید:
    qm stop <VMID>
    

    این دستور ماشین مجازی را به‌صورت نرم یا سخت متوقف می‌کند.

Reboot (راه‌اندازی مجدد ماشین مجازی)

برای راه‌اندازی مجدد یک ماشین مجازی:

  • از Web UI:
    1. در Web UI، ماشین مجازی مورد نظر را انتخاب کنید.
    2. در تب Summary، بر روی دکمه Reboot کلیک کنید.
  • دستور خط فرمان: برای انجام راه‌اندازی مجدد، دستور زیر را وارد کنید:
    qm reboot <VMID>
    

    این دستور ماشین مجازی را مجدداً راه‌اندازی می‌کند.

Shutdown (خاموش کردن ماشین مجازی)

برای خاموش کردن ماشین مجازی به‌طور نرم یا صحیح:

  • از Web UI:
    1. ماشین مجازی را انتخاب کنید.
    2. در تب Summary، بر روی دکمه Shutdown کلیک کنید.
  • دستور خط فرمان: برای خاموش کردن ماشین مجازی، از دستور زیر استفاده کنید:
    qm shutdown <VMID>
    

این دستور به ماشین مجازی سیگنال ارسال می‌کند تا مانند یک سیستم عادی خاموش شود.


2. Suspend و Resume

عملیات Suspend به معنای به حالت تعلیق درآوردن ماشین مجازی و ذخیره وضعیت آن است تا در صورت نیاز بتوانید آن را از همان وضعیت قبلی از سر بگیرید. Resume به این معناست که ماشین مجازی از حالت تعلیق خارج شود و کار خود را ادامه دهد.

Suspend (تعلیق ماشین مجازی)

برای به حالت تعلیق درآوردن ماشین مجازی:

  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی را انتخاب کنید.
    2. در تب Summary، بر روی دکمه Suspend کلیک کنید.
  • دستور خط فرمان: برای به حالت تعلیق درآوردن ماشین مجازی با استفاده از دستور زیر:
    qm suspend <VMID>
    

این دستور وضعیت ماشین مجازی را ذخیره کرده و آن را به حالت تعلیق در می‌آورد.

Resume (ادامه کار ماشین مجازی بعد از تعلیق)

برای ادامه کار از حالت تعلیق:

  • از Web UI:
    1. ماشین مجازی که در حالت تعلیق است را انتخاب کنید.
    2. بر روی دکمه Resume در تب Summary کلیک کنید.
  • دستور خط فرمان: برای بازگرداندن ماشین مجازی از حالت تعلیق، از دستور زیر استفاده کنید:
    qm resume <VMID>
    

این دستور ماشین مجازی را از وضعیت تعلیق خارج کرده و آن را دوباره به حالت عادی می‌آورد.


3. Snapshot گرفتن از وضعیت سیستم

عملیات Snapshot گرفتن یکی از قابلیت‌های مفید برای ایجاد نسخه پشتیبان از وضعیت فعلی ماشین مجازی است. Snapshot به شما این امکان را می‌دهد تا بعداً به‌راحتی به وضعیت قبلی ماشین مجازی بازگردید.

Snapshot گرفتن از ماشین مجازی

برای گرفتن Snapshot از یک ماشین مجازی:

  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
    2. به تب Snapshots بروید.
    3. بر روی دکمه Take Snapshot کلیک کنید.
    4. یک نام برای Snapshot وارد کنید و گزینه‌های مورد نظر مانند Include memory را انتخاب کنید (این گزینه وضعیت RAM را نیز ذخیره می‌کند).
  • دستور خط فرمان: برای گرفتن Snapshot از ماشین مجازی از دستور زیر استفاده کنید:
    qm snapshot <VMID> <SnapshotName> --description "<Description>"
    

    که در آن:

    • <VMID> شناسه ماشین مجازی.
    • <SnapshotName> نام snapshot که می‌خواهید برای آن انتخاب کنید.
    • --description اختیاری است و برای افزودن توضیحات به Snapshot استفاده می‌شود.
بازگرداندن Snapshot

برای بازگرداندن به یک Snapshot قبلی:

  • از Web UI:
    1. به تب Snapshots بروید.
    2. Snapshot مورد نظر را انتخاب کرده و روی دکمه Restore کلیک کنید.
  • دستور خط فرمان: برای بازگرداندن Snapshot از دستور زیر استفاده کنید:
    qm restore <VMID> <SnapshotName>
    

این دستور ماشین مجازی را به وضعیت ذخیره‌شده در Snapshot مورد نظر باز می‌گرداند.


جمع‌بندی

در این بخش، عملیات مختلفی که می‌توان بر روی ماشین‌های مجازی در Proxmox VE انجام داد، شامل Start، Stop، Reboot، Shutdown، Suspend، Resume و Snapshot گرفته شد. همچنین نحوه انجام این عملیات‌ها هم از طریق Web UI و هم از طریق دستور خط فرمان به‌طور کامل شرح داده شد. این عملیات‌ها به مدیران سیستم کمک می‌کنند تا به‌راحتی وضعیت ماشین‌های مجازی را کنترل کنند و در صورت نیاز به نسخه پشتیبان، از Snapshot استفاده کنند. با استفاده از این دستورها و ابزارها، می‌توان ماشین‌های مجازی را به‌طور کارآمد مدیریت کرده و عملیات لازم را انجام داد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت حالت‌های مختلف ماشین مجازی” subtitle=”توضیحات کامل”]ماشین‌های مجازی در محیط‌های مجازی‌سازی مانند Proxmox VE می‌توانند در چهار حالت اصلی قرار گیرند: متوقف (Stopped)، در حال اجرا (Running)، تعلیق (Suspended) و قفل (Locked). هرکدام از این حالت‌ها ویژگی‌ها و کاربردهای خاص خود را دارند. در این بخش، ما به‌طور جامع نحوه مدیریت این حالت‌ها را از طریق Web UI و دستور خط فرمان بررسی خواهیم کرد.


1. حالت متوقف (Stopped)

حالت متوقف به وضعیتی اطلاق می‌شود که ماشین مجازی به‌طور کامل متوقف شده است و هیچ‌گونه پردازش یا عملیاتی در حال اجرا نیست. ماشین مجازی در این حالت دیگر منابع سیستم را مصرف نمی‌کند، اما هنوز پیکربندی‌ها و داده‌های آن در دیسک ذخیره شده است.

مدیریت ماشین مجازی در حالت متوقف
  • از Web UI:
    1. وارد Web UI شوید و به بخش Datacenter بروید.
    2. ماشین مجازی مورد نظر را از لیست انتخاب کنید.
    3. در تب Summary وضعیت آن باید Stopped باشد.
    4. برای شروع مجدد ماشین مجازی، بر روی دکمه Start کلیک کنید.
  • دستور خط فرمان: برای بررسی وضعیت و یا شروع مجدد یک ماشین مجازی متوقف‌شده:
    qm status <VMID>  # بررسی وضعیت ماشین مجازی
    qm start <VMID>   # شروع ماشین مجازی
    

    که در آن <VMID> شناسه ماشین مجازی است.


2. حالت در حال اجرا (Running)

حالت در حال اجرا به این معناست که ماشین مجازی فعال است و در حال پردازش است. در این حالت منابع سیستم مانند CPU، RAM و دیسک در حال استفاده هستند.

مدیریت ماشین مجازی در حالت در حال اجرا
  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
    2. در تب Summary وضعیت آن باید Running باشد.
    3. برای متوقف کردن ماشین مجازی، بر روی دکمه Stop کلیک کنید.
  • دستور خط فرمان: برای بررسی وضعیت و یا متوقف کردن یک ماشین مجازی در حال اجرا:
    qm status <VMID>  # بررسی وضعیت ماشین مجازی
    qm stop <VMID>    # متوقف کردن ماشین مجازی
    

    دستور qm status وضعیت جاری ماشین مجازی را نمایش می‌دهد و دستور qm stop ماشین مجازی را متوقف می‌کند.


3. حالت تعلیق (Suspended)

حالت تعلیق هنگامی رخ می‌دهد که ماشین مجازی به حالت موقت متوقف می‌شود، اما وضعیت کنونی آن (مانند داده‌های حافظه) در دیسک ذخیره می‌شود. ماشین مجازی پس از حالت تعلیق به‌سرعت می‌تواند از جایی که متوقف شده، ادامه دهد.

مدیریت ماشین مجازی در حالت تعلیق
  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
    2. در تب Summary باید وضعیت ماشین مجازی Suspended باشد.
    3. برای ادامه کار با ماشین مجازی، بر روی دکمه Resume کلیک کنید.
  • دستور خط فرمان: برای به حالت تعلیق درآوردن و یا ادامه کار از حالت تعلیق:
    qm suspend <VMID>  # تعلیق ماشین مجازی
    qm resume <VMID>   # ادامه کار ماشین مجازی از حالت تعلیق
    

    دستور qm suspend وضعیت ماشین مجازی را ذخیره کرده و آن را متوقف می‌کند، در حالی که دستور qm resume ماشین مجازی را از وضعیت تعلیق خارج می‌کند.


4. حالت قفل (Locked)

حالت قفل زمانی اتفاق می‌افتد که ماشین مجازی به دلیل برخی عملیات‌های مدیریتی (مانند گرفتن Snapshot، عملیات پشتیبان‌گیری، یا انتقال) قفل شده باشد. در این حالت، ماشین مجازی به‌طور موقت در دسترس نیست و هیچ‌گونه عملیات مدیریتی نمی‌توان روی آن انجام داد مگر اینکه قفل آن آزاد شود.

مدیریت ماشین مجازی در حالت قفل
  • از Web UI:
    1. وارد Web UI شوید و ماشین مجازی را انتخاب کنید.
    2. در تب Summary باید وضعیت آن Locked باشد.
    3. برای آزاد کردن قفل ماشین مجازی، ابتدا باید عملیات در حال انجام را تکمیل کنید یا قفل را با کلیک بر روی دکمه مناسب آزاد کنید (در برخی موارد نیاز به اعمال دستور برای حذف قفل دارد).
  • دستور خط فرمان: برای بررسی وضعیت قفل و یا آزادسازی قفل:
    qm status <VMID>     # بررسی وضعیت ماشین مجازی
    qm unlock <VMID>     # آزاد کردن قفل ماشین مجازی
    

    دستور qm status وضعیت قفل ماشین مجازی را نشان می‌دهد و دستور qm unlock برای حذف قفل و آزادسازی ماشین مجازی از آن استفاده می‌شود.


جمع‌بندی

در این بخش به بررسی چهار حالت اصلی ماشین مجازی در Proxmox VE پرداختیم: حالت متوقف (Stopped)، حالت در حال اجرا (Running)، حالت تعلیق (Suspended) و حالت قفل (Locked). برای هرکدام از این حالت‌ها، نحوه مدیریت ماشین مجازی از طریق Web UI و دستور خط فرمان به‌طور جامع توضیح داده شد. این عملیات به مدیران سیستم کمک می‌کند تا ماشین‌های مجازی را در هر مرحله از عملیات به‌راحتی مدیریت کرده و در صورت نیاز به حالت‌های مختلف انتقال دهند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 6. مدیریت دیسک و ذخیره‌سازی ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”افزودن و مدیریت دیسک‌های اضافی به ماشین‌های مجازی” subtitle=”توضیحات کامل”]در Proxmox VE، شما می‌توانید دیسک‌های اضافی را به ماشین‌های مجازی خود اضافه کنید تا فضای ذخیره‌سازی بیشتری در اختیار داشته باشید. این دیسک‌ها می‌توانند برای ذخیره داده‌ها، نصب برنامه‌ها، یا پشتیبان‌گیری از سیستم‌ها استفاده شوند. این فرآیند می‌تواند هم از طریق Web UI و هم از طریق دستور خط فرمان انجام شود.

در این بخش، به‌طور جامع به نحوه افزودن و مدیریت دیسک‌های اضافی برای ماشین‌های مجازی خواهیم پرداخت و شامل دستورالعمل‌های کاملاً عملی برای انجام این کار هستیم.


1. افزودن دیسک جدید از طریق Web UI

مراحل افزودن دیسک جدید به ماشین مجازی:
  1. وارد Web UI Proxmox شوید و به بخش Datacenter بروید.
  2. ماشین مجازی مورد نظر را انتخاب کنید.
  3. در منوی سمت چپ، بر روی Hardware کلیک کنید تا تنظیمات سخت‌افزاری ماشین مجازی نمایش داده شود.
  4. در این بخش، گزینه Add را پیدا کرده و از منوی کشویی گزینه Hard Disk را انتخاب کنید.
  5. یک پنجره جدید باز خواهد شد که شما می‌توانید تنظیمات دیسک جدید را در آن انجام دهید:
    • Bus/Device: انتخاب نوع اتصال دیسک (مثلاً IDE، SCSI، VirtIO).
    • Disk size: تعیین اندازه دیسک جدید (برای مثال 10 GB).
    • Storage: انتخاب محلی که دیسک ذخیره خواهد شد (محلی مانند local، NFS یا ZFS).
    • Format: نوع فرمت دیسک (مثل QCOW2 یا RAW).
  6. پس از تنظیم گزینه‌ها، بر روی Add کلیک کنید تا دیسک جدید به ماشین مجازی اضافه شود.
نمایش و مدیریت دیسک‌ها:
  • بعد از افزودن دیسک جدید، آن را در لیست سخت‌افزار ماشین مجازی مشاهده خواهید کرد.
  • می‌توانید از طریق Web UI، دیسک‌ها را حذف، تغییر اندازه، یا حتی جدا کنید.

2. افزودن دیسک جدید از طریق دستور خط فرمان

در Proxmox، برای افزودن دیسک به ماشین مجازی، می‌توانید از دستور qm استفاده کنید. این روش برای افرادی که ترجیح می‌دهند از خط فرمان استفاده کنند بسیار مفید است.

دستور افزودن دیسک به ماشین مجازی:
  1. ابتدا وارد سرور Proxmox شوید.
  2. برای افزودن دیسک جدید به ماشین مجازی از دستور زیر استفاده کنید:
    qm disk add <VMID> <Size> <Storage> --format <Format> --bus <Bus> --device <Device>
    

    پارامترها:

    • <VMID>: شناسه ماشین مجازی.
    • <Size>: اندازه دیسک جدید (به‌طور مثال 10G برای 10 گیگابایت).
    • <Storage>: نام ذخیره‌سازی (مثلاً local یا local-lvm).
    • <Format>: فرمت دیسک (برای مثال qcow2 یا raw).
    • <Bus>: نوع اتصال دیسک (مثل virtio, scsi, ide).
    • <Device>: نوع دستگاه (مثل disk).

    مثال: برای افزودن یک دیسک 10 گیگابایتی به ماشین مجازی با ID 101 و ذخیره‌سازی local به صورت qcow2 با اتصال virtio:

    qm disk add 101 10G local --format qcow2 --bus virtio --device disk
    
حذف دیسک از ماشین مجازی:

برای حذف دیسک از ماشین مجازی می‌توانید از دستور زیر استفاده کنید:

qm disk del <VMID> <DiskID>

مثال: اگر می‌خواهید دیسک دوم ماشین مجازی با ID 101 را حذف کنید:

qm disk del 101 /dev/vdb

3. پیکربندی دیسک‌های اضافی

پس از افزودن دیسک جدید، ممکن است نیاز باشد که تنظیمات دیسک را پیکربندی کنید. بسته به نوع سیستم‌عامل نصب‌شده در ماشین مجازی، می‌توانید دیسک را فرمت کرده و از آن استفاده کنید.

پیکربندی دیسک در Linux:
  1. ابتدا وارد ماشین مجازی شوید:
    ssh user@<VM-IP>
    
  2. دیسک جدید را شناسایی کنید:
    lsblk
    
  3. با استفاده از دستور fdisk یا parted دیسک جدید را پارتیشن‌بندی کنید:
    fdisk /dev/vdb
    
  4. پس از پارتیشن‌بندی، آن را فرمت کرده و به آن یک سیستم فایل اختصاص دهید:
    mkfs.ext4 /dev/vdb1
    
  5. در نهایت، دیسک جدید را به دایرکتوری مورد نظر متصل (mount) کنید:
    mount /dev/vdb1 /mnt
    
پیکربندی دیسک در Windows:

در Windows، دیسک جدید باید ابتدا شناسایی شده و پارتیشن‌بندی و فرمت شود.

  1. به Disk Management بروید.
  2. دیسک جدید باید نمایش داده شود. از آنجا دیسک را انتخاب کرده و آن را پارتیشن‌بندی و فرمت کنید.
  3. در نهایت، دیسک را به یک درایو در دسترس متصل (mount) کنید.

جمع‌بندی

در این بخش، نحوه افزودن دیسک‌های اضافی به ماشین‌های مجازی در Proxmox VE با استفاده از Web UI و دستورات خط فرمان بررسی شد. علاوه بر آن، تنظیمات و پیکربندی‌های لازم برای استفاده از دیسک‌های جدید در سیستم‌عامل‌های مختلف (Linux و Windows) توضیح داده شد. با استفاده از این روش‌ها، می‌توانید به‌راحتی فضای ذخیره‌سازی اضافی برای ماشین‌های مجازی خود فراهم کنید و از آن برای ذخیره داده‌ها یا گسترش قابلیت‌های سیستم استفاده نمایید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تغییر اندازه دیسک‌های ماشین مجازی (Resize)” subtitle=”توضیحات کامل”]در برخی مواقع ممکن است نیاز به افزایش یا کاهش اندازه دیسک‌های ماشین‌های مجازی در Proxmox VE داشته باشید. این عملیات می‌تواند برای گسترش فضای ذخیره‌سازی یا بهینه‌سازی استفاده از منابع صورت گیرد. در این بخش، مراحل تغییر اندازه دیسک‌ها در محیط Proxmox VE را به‌طور کامل با جزئیات و به‌طور عملی بررسی می‌کنیم. این کار می‌تواند هم از طریق Web UI و هم از طریق دستور خط فرمان انجام شود.


1. تغییر اندازه دیسک از طریق Web UI

برای تغییر اندازه دیسک ماشین مجازی در Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکس‌موکس شوید و به بخش Datacenter بروید.
  2. ماشین مجازی مورد نظر را انتخاب کرده و بر روی آن کلیک کنید.
  3. در منوی سمت چپ، بر روی Hardware کلیک کنید.
  4. در بخش Hardware، دیسکی را که می‌خواهید اندازه آن را تغییر دهید انتخاب کنید.
  5. بر روی دیسک کلیک کرده و گزینه Resize Disk را از بالای صفحه انتخاب کنید.
  6. در پنجره‌ای که باز می‌شود، اندازه جدید دیسک را وارد کنید. توجه کنید که اندازه جدید باید بزرگتر از اندازه قبلی باشد. پس از وارد کردن اندازه، بر روی Resize کلیک کنید.
  7. این عمل باعث افزایش فضای دیسک می‌شود. البته برای استفاده از فضای جدید، باید سیستم‌عامل داخل ماشین مجازی را تنظیم کنید (مانند ایجاد پارتیشن جدید یا گسترش سیستم‌فایل).
نکات:
  • این تغییر تنها در صورتی که از دیسک‌های خاصی مانند qcow2 استفاده می‌کنید قابل اعمال است.
  • افزایش حجم دیسک ممکن است نیاز به پیکربندی داخل سیستم‌عامل برای استفاده از فضای جدید داشته باشد.

2. تغییر اندازه دیسک از طریق دستور خط فرمان

در صورتی که بخواهید دیسک را از طریق خط فرمان تغییر اندازه دهید، می‌توانید از دستور qm استفاده کنید. این دستور قابلیت‌های گسترده‌ای برای مدیریت ماشین‌های مجازی در Proxmox VE دارد.

دستور تغییر اندازه دیسک:

برای تغییر اندازه دیسک، از دستور qm resize به صورت زیر استفاده می‌شود:

qm resize <VMID> <Disk> <Size>

پارامترها:

  • <VMID>: شناسه ماشین مجازی که دیسک به آن تعلق دارد.
  • <Disk>: نام دیسک که معمولاً از فرمت /dev/sda یا مشابه آن استفاده می‌شود.
  • <Size>: اندازه جدید دیسک، به‌طور مثال +10G برای اضافه کردن 10 گیگابایت به دیسک.

مثال:

اگر بخواهید اندازه دیسک ماشین مجازی با ID 101 و دیسک scsi0 را به اندازه 10 گیگابایت افزایش دهید، دستور به شکل زیر خواهد بود:

qm resize 101 scsi0 +10G

این دستور، 10 گیگابایت به دیسک مورد نظر اضافه می‌کند.

تغییر اندازه دیسک با استفاده از Storage

اگر دیسک در یک سیستم ذخیره‌سازی خاص قرار دارد (مانند local یا local-lvm)، باید ابتدا از دستور lvextend برای افزایش فضای دیسک در سطح ذخیره‌سازی استفاده کنید. برای این کار:

  1. ابتدا اندازه دیسک را افزایش دهید:
    lvextend -L +10G /dev/pve/data
    
  2. سپس از دستور resize2fs برای گسترش سیستم‌فایل استفاده کنید:
    resize2fs /dev/pve/data
    

این دستورات به‌طور عملی فضای دیسک شما را افزایش می‌دهند.


3. پیکربندی سیستم‌عامل بعد از تغییر اندازه دیسک

پس از تغییر اندازه دیسک، ممکن است نیاز باشد که فضای اضافی به سیستم‌عامل شناسایی شود. این موضوع بستگی به سیستم‌عامل نصب‌شده در ماشین مجازی دارد.

پیکربندی در Linux:

برای شناسایی فضای جدید در Linux، باید از ابزارهایی مانند fdisk و resize2fs استفاده کنید.

  1. ابتدا از دستور lsblk برای شناسایی دیسک‌ها استفاده کنید:
    lsblk
    
  2. اگر دیسک جدید به صورت /dev/sda1 شناسایی شده باشد، باید پارتیشن جدید را ایجاد کنید. از دستور fdisk برای پارتیشن‌بندی استفاده کنید:
    fdisk /dev/sda
    
  3. سپس از دستور resize2fs برای گسترش سیستم‌فایل استفاده کنید:
    resize2fs /dev/sda1
    

این کار باعث می‌شود سیستم‌عامل فضای اضافی را شناسایی کند و به آن دسترسی داشته باشید.

پیکربندی در Windows:

در Windows، پس از تغییر اندازه دیسک در Proxmox، باید وارد Disk Management شوید و فضای جدید را پارتیشن‌بندی و فرمت کنید.

  1. به Disk Management بروید.
  2. دیسک جدید باید نمایش داده شود.
  3. آن را انتخاب کرده و با استفاده از New Simple Volume، پارتیشن جدید را ایجاد کرده و آن را فرمت کنید.

جمع‌بندی

در این بخش، نحوه تغییر اندازه دیسک‌های ماشین‌های مجازی در Proxmox VE را با استفاده از Web UI و دستور خط فرمان بررسی کردیم. همچنین نحوه پیکربندی سیستم‌عامل‌های مختلف برای شناسایی فضای جدید را آموزش دادیم. با استفاده از این مراحل، می‌توانید دیسک‌های خود را به راحتی گسترش دهید و فضای بیشتری برای ماشین‌های مجازی خود فراهم کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از انواع مختلف ذخیره‌سازی (Local Storage, NFS, Ceph)” subtitle=”توضیحات کامل”]در Proxmox VE، برای ذخیره‌سازی داده‌ها و ماشین‌های مجازی می‌توانید از انواع مختلفی از سیستم‌های ذخیره‌سازی استفاده کنید. این گزینه‌ها شامل ذخیره‌سازی محلی (Local Storage)، ذخیره‌سازی شبکه‌ای (NFS)، و ذخیره‌سازی توزیع‌شده و مقیاس‌پذیر (Ceph) هستند. هر یک از این سیستم‌ها مزایا و معایب خاص خود را دارند که در ادامه به بررسی جزئیات هر یک و نحوه پیکربندی آن‌ها می‌پردازیم.


1. Local Storage (ذخیره‌سازی محلی)

در Proxmox VE، ذخیره‌سازی محلی به دیسک‌هایی اطلاق می‌شود که به‌طور مستقیم به نود (Node) متصل هستند. این نوع ذخیره‌سازی معمولاً برای داده‌های سریع و یا برای ذخیره‌سازی ماشین‌های مجازی با حجم پایین استفاده می‌شود. همچنین Local Storage معمولاً به‌عنوان فضای ذخیره‌سازی برای تصاویر (ISO) و قالب‌های بکاپ ماشین‌های مجازی استفاده می‌شود.

نحوه پیکربندی Local Storage در Proxmox:

  1. وارد Web UI پروکس‌موکس شوید و به Datacenter > Storage بروید.
  2. بر روی دکمه “Add” در بالای صفحه کلیک کنید.
  3. گزینه Directory را برای افزودن Local Storage انتخاب کنید.
  4. در بخش ID یک شناسه برای ذخیره‌سازی وارد کنید (مثلاً local).
  5. در بخش Directory مسیر پوشه‌ای که قصد ذخیره‌سازی فایل‌ها در آن را دارید، مشخص کنید. این مسیر می‌تواند هر دایرکتوری محلی روی نود باشد.
  6. گزینه‌های دیگر را بسته به نیاز خود تنظیم کنید. برای مثال، می‌توانید دسترسی به انواع مختلف محتویات (ایزو، دیسک‌های مجازی) را فعال کنید.
  7. بر روی دکمه “Add” کلیک کنید تا ذخیره‌سازی جدید اعمال شود.

پیکربندی از طریق دستور خط فرمان:

برای افزودن Local Storage از دستور pvesh استفاده می‌شود. دستور زیر را می‌توانید اجرا کنید تا یک ذخیره‌سازی محلی جدید را اضافه کنید:

pvesh create /nodes/<node>/storage --storage <ID> --type dir --path /<path-to-directory> --content iso,backup,vztmpl

پارامترها:

  • <node>: نام نود در پروکس‌موکس (مثلاً pve1).
  • <ID>: شناسه ذخیره‌سازی (مثلاً local).
  • <path-to-directory>: مسیر دایرکتوری که می‌خواهید ذخیره‌سازی در آن انجام شود.

2. NFS (Network File System)

NFS یکی از پروتکل‌های رایج برای اشتراک‌گذاری فایل‌ها بر روی شبکه است که می‌تواند به‌عنوان ذخیره‌سازی شبکه‌ای در Proxmox استفاده شود. با استفاده از NFS، می‌توانید ماشین‌های مجازی را در یک سیستم ذخیره‌سازی مشترک ذخیره کنید که به چندین نود از طریق شبکه دسترسی دارند.

نحوه پیکربندی NFS در Proxmox:

  1. وارد Web UI پروکس‌موکس شوید و به Datacenter > Storage بروید.
  2. بر روی دکمه “Add” در بالای صفحه کلیک کرده و گزینه NFS را انتخاب کنید.
  3. در بخش ID، یک شناسه برای ذخیره‌سازی وارد کنید (مثلاً nfs-storage).
  4. در قسمت Server، آدرس IP یا نام دامنه NFS سرور خود را وارد کنید.
  5. در بخش Export، مسیر NFS را وارد کنید که به آن نیاز دارید.
  6. در قسمت Content، انواع محتوای مورد نظر را برای ذخیره‌سازی انتخاب کنید (مانند Disk image, ISO image).
  7. بر روی دکمه “Add” کلیک کنید تا ذخیره‌سازی NFS جدید اضافه شود.

پیکربندی از طریق دستور خط فرمان:

برای افزودن ذخیره‌سازی NFS از دستور pvesh استفاده کنید. دستور زیر را می‌توانید اجرا کنید:

pvesh create /nodes/<node>/storage --storage <ID> --type nfs --server <nfs-server-ip> --export <nfs-export-path> --content disk,iso,backup

پارامترها:

  • <node>: نام نود در پروکس‌موکس (مثلاً pve1).
  • <ID>: شناسه ذخیره‌سازی (مثلاً nfs-storage).
  • <nfs-server-ip>: آدرس IP سرور NFS.
  • <nfs-export-path>: مسیر export شده در سرور NFS.

3. Ceph (ذخیره‌سازی توزیع‌شده)

Ceph یک سیستم ذخیره‌سازی توزیع‌شده است که می‌تواند به‌صورت افقی مقیاس‌پذیر باشد. در محیط‌های مقیاس‌پذیر و برای دستیابی به افزونگی بالا، استفاده از Ceph می‌تواند بسیار مفید باشد. با Ceph، داده‌ها به‌طور خودکار در چندین نود توزیع شده و همگام‌سازی می‌شوند.

نحوه پیکربندی Ceph در Proxmox:

قبل از اینکه بتوانید Ceph را در Proxmox VE پیکربندی کنید، باید یک خوشه Ceph را در شبکه خود راه‌اندازی کرده باشید. پس از نصب و پیکربندی Ceph، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکس‌موکس شوید و به Datacenter > Storage بروید.
  2. بر روی دکمه “Add” در بالای صفحه کلیک کرده و گزینه Ceph را انتخاب کنید.
  3. در قسمت ID، یک شناسه برای ذخیره‌سازی Ceph وارد کنید (مثلاً ceph-storage).
  4. در بخش Monitors، آدرس‌های IP از نودهای Ceph Monitor را وارد کنید.
  5. در قسمت Pool، نام Pool مورد نظر خود را وارد کنید.
  6. در بخش Content، انواع محتوای مورد نظر (مثل Disk image, ISO image, Backup) را انتخاب کنید.
  7. بر روی دکمه “Add” کلیک کنید تا ذخیره‌سازی Ceph در Proxmox تنظیم شود.

پیکربندی از طریق دستور خط فرمان:

برای افزودن ذخیره‌سازی Ceph از دستور pvesh استفاده می‌شود. دستور زیر را می‌توانید اجرا کنید:

pvesh create /nodes/<node>/storage --storage <ID> --type ceph --monitors <monitors> --pool <pool-name> --content disk,iso,backup

پارامترها:

  • <node>: نام نود در پروکس‌موکس (مثلاً pve1).
  • <ID>: شناسه ذخیره‌سازی (مثلاً ceph-storage).
  • <monitors>: لیست آدرس‌های IP سرورهای Ceph Monitor.
  • <pool-name>: نام Pool در Ceph.

جمع‌بندی

در این بخش، استفاده از انواع مختلف ذخیره‌سازی در Proxmox VE را بررسی کردیم. ذخیره‌سازی محلی (Local Storage) مناسب برای استفاده در نودهای مستقل و ذخیره‌سازی داده‌ها در مکان‌های محدود است. ذخیره‌سازی شبکه‌ای مانند NFS برای اشتراک‌گذاری داده‌ها بین چندین نود مفید است و Ceph به‌عنوان یک سیستم ذخیره‌سازی توزیع‌شده مقیاس‌پذیر، برای محیط‌های بزرگ و نیاز به افزونگی بالا استفاده می‌شود. با توجه به نیاز خود و مقیاس زیرساخت، می‌توانید یکی از این گزینه‌ها را برای ذخیره‌سازی انتخاب و پیکربندی کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی افزونگی (Redundancy) و بکاپ‌گیری از دیسک‌ها” subtitle=”توضیحات کامل”]در محیط‌های مجازی‌سازی مانند Proxmox VE، افزونگی (Redundancy) و بکاپ‌گیری از دیسک‌ها از اهمیت بالایی برخوردارند. افزونگی به این معناست که داده‌ها و سرویس‌ها به گونه‌ای پیکربندی شوند که در صورت بروز مشکل، دسترسی به آن‌ها قطع نشود. این کار معمولاً با استفاده از تکنیک‌هایی مانند RAID، ذخیره‌سازی توزیع‌شده (مثل Ceph)، و تنظیمات ذخیره‌سازی شبکه‌ای (مثل NFS) انجام می‌شود. همچنین بکاپ‌گیری از داده‌ها برای جلوگیری از از دست رفتن اطلاعات در مواقع بحرانی ضروری است.

در این بخش به نحوه پیکربندی افزونگی و بکاپ‌گیری از دیسک‌ها در Proxmox VE پرداخته می‌شود.


1. پیکربندی افزونگی با استفاده از RAID (Redundant Array of Independent Disks)

RAID یکی از روش‌های رایج برای ایجاد افزونگی در ذخیره‌سازی داده‌ها است. با استفاده از RAID، داده‌ها به‌صورت موازی روی چندین دیسک ذخیره می‌شوند و در صورتی که یکی از دیسک‌ها خراب شود، اطلاعات بدون مشکل قابل بازیابی هستند.

Proxmox VE از RAID پشتیبانی می‌کند، اما برای استفاده از آن باید از سیستم‌عامل و ابزارهای مدیریتی که از RAID پشتیبانی می‌کنند استفاده کنید. در سیستم‌عامل‌های لینوکس، می‌توانید از ابزار mdadm برای ایجاد و مدیریت RAID استفاده کنید.

پیکربندی RAID از طریق خط فرمان:

  1. ابتدا باید ابزار mdadm را نصب کنید:
apt update
apt install mdadm
  1. سپس برای ایجاد یک آرایه RAID از چندین دیسک، دستور زیر را اجرا کنید (برای مثال، RAID 1 با دو دیسک):
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
  1. برای مشاهده وضعیت RAID:
cat /proc/mdstat
  1. پس از ایجاد آرایه RAID، می‌توانید آن را به‌عنوان یک دیسک جدید در Proxmox به‌کار گیرید. برای این کار، نیاز به ساخت یک سیستم فایل بر روی آن دارید:
mkfs.ext4 /dev/md0
  1. حالا این دیسک می‌تواند به‌عنوان ذخیره‌سازی در Proxmox استفاده شود.

2. پیکربندی افزونگی با استفاده از Ceph

برای ایجاد افزونگی و توزیع داده‌ها در سطح نودهای مختلف، استفاده از Ceph یک گزینه بسیار مناسب است. Ceph یک سیستم ذخیره‌سازی توزیع‌شده است که به‌طور خودکار داده‌ها را در چندین نود ذخیره می‌کند و در صورت خرابی یک نود، داده‌ها از نودهای دیگر قابل بازیابی هستند.

نحوه پیکربندی Ceph در Proxmox:

  1. ابتدا باید Ceph را در سیستم Proxmox خود نصب و راه‌اندازی کنید. دستور زیر را برای نصب Ceph استفاده کنید:
apt update
apt install ceph ceph-deploy
  1. سپس یک خوشه Ceph راه‌اندازی کرده و نودهای مختلف را به خوشه متصل کنید. دستور زیر برای نصب Ceph Monitor روی نودها استفاده می‌شود:
ceph-deploy new <node1> <node2>
  1. بعد از نصب Ceph، برای پیکربندی ذخیره‌سازی Ceph در Proxmox به Web UI رفته و از Datacenter > Storage استفاده کنید و Ceph را به‌عنوان نوع ذخیره‌سازی جدید اضافه کنید.
  2. حالا می‌توانید از ذخیره‌سازی Ceph در Proxmox برای ماشین‌های مجازی استفاده کنید و افزونگی داده‌ها را در سطح دیسک‌ها تضمین کنید.

3. بکاپ‌گیری از دیسک‌ها

بکاپ‌گیری منظم از ماشین‌های مجازی و دیسک‌های آن‌ها در Proxmox از اهمیت بالایی برخوردار است. Proxmox ابزارهای مختلفی برای انجام بکاپ‌های خودکار و دستی از ماشین‌های مجازی فراهم کرده است. در اینجا به نحوه پیکربندی بکاپ و ذخیره‌سازی آن‌ها خواهیم پرداخت.

نحوه پیکربندی بکاپ‌گیری از ماشین‌های مجازی در Proxmox:

  1. وارد Web UI پروکس‌موکس شوید و به Datacenter > Backup بروید.
  2. در بالای صفحه بر روی دکمه “Add” کلیک کنید.
  3. در بخش Storage ذخیره‌سازی مورد نظر برای ذخیره بکاپ‌ها را انتخاب کنید.
  4. در بخش Schedule زمان‌بندی بکاپ را مشخص کنید.
  5. نوع بکاپ را انتخاب کنید (مثلاً Stop, Suspend, Snapshot).
  6. بر روی دکمه “Add” کلیک کنید تا تنظیمات بکاپ ذخیره شوند.

پیکربندی بکاپ‌گیری از طریق دستور خط فرمان:

برای بکاپ‌گیری از ماشین‌های مجازی از دستور vzdump استفاده می‌شود. دستور زیر برای گرفتن بکاپ از یک ماشین مجازی با شناسه 100 استفاده می‌شود:

vzdump 100 --storage <storage-id> --mode snapshot --compress lzo --remove 0

پارامترها:

  • 100: شناسه ماشین مجازی.
  • <storage-id>: شناسه ذخیره‌سازی مورد نظر.
  • --mode snapshot: حالت بکاپ‌گیری (در اینجا از حالت snapshot استفاده می‌شود).
  • --compress lzo: فشرده‌سازی بکاپ با فرمت LZO.
  • --remove 0: حذف بکاپ‌های قدیمی (۰ یعنی هیچ بکاپی حذف نشود).

4. بکاپ‌گیری و بازیابی از ذخیره‌سازی خارجی

Proxmox VE به شما این امکان را می‌دهد که بکاپ‌ها را به‌صورت مستقیم به ذخیره‌سازی‌های شبکه‌ای مانند NFS یا ذخیره‌سازی‌های ابری ارسال کنید.

ارسال بکاپ‌ها به ذخیره‌سازی NFS:

  1. ابتدا یک ذخیره‌سازی NFS جدید در Proxmox اضافه کنید (همانطور که در بخش‌های قبلی توضیح داده شد).
  2. سپس در زمان ایجاد بکاپ، گزینه NFS را به‌عنوان ذخیره‌سازی انتخاب کنید.

ارسال بکاپ‌ها به ذخیره‌سازی ابری (Cloud Storage):

Proxmox از ذخیره‌سازی ابری مانند Google Drive یا AWS S3 پشتیبانی نمی‌کند، اما با استفاده از اسکریپت‌ها می‌توان این کار را انجام داد.


جمع‌بندی

در این بخش، به نحوه پیکربندی افزونگی و بکاپ‌گیری از دیسک‌های ماشین‌های مجازی در Proxmox VE پرداختیم. استفاده از RAID برای افزونگی و Ceph برای ذخیره‌سازی توزیع‌شده و مقیاس‌پذیر از جمله روش‌های اصلی ایجاد افزونگی در این سیستم است. همچنین ابزارهای بکاپ‌گیری موجود در Proxmox به شما این امکان را می‌دهند که از ماشین‌های مجازی خود بکاپ‌های منظم و ایمن بگیرید. برای انجام بکاپ‌گیری از دیسک‌ها و ماشین‌های مجازی از ابزارهایی مانند vzdump و همچنین ذخیره‌سازی‌های شبکه‌ای و ابری می‌توان بهره برد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”اتصال به سیستم‌های ذخیره‌سازی خارجی برای ذخیره‌سازی VM” subtitle=”توضیحات کامل”]در بسیاری از سناریوهای مجازی‌سازی، نیاز به استفاده از سیستم‌های ذخیره‌سازی خارجی به‌منظور افزایش مقیاس، عملکرد یا افزونگی (Redundancy) است. در این بخش، روش‌هایی که می‌توان از آن‌ها برای اتصال به سیستم‌های ذخیره‌سازی خارجی مانند NFS، iSCSI و Ceph در Proxmox استفاده کرد، مورد بررسی قرار می‌گیرند. این روش‌ها امکان می‌دهند که دیسک‌های ماشین‌های مجازی (VM) در ذخیره‌سازی‌های خارجی قرار گیرند.


1. اتصال به ذخیره‌سازی NFS (Network File System)

NFS یک پروتکل ذخیره‌سازی شبکه است که به شما این امکان را می‌دهد که فایل‌ها و دایرکتوری‌ها را از یک سرور به ماشین‌های مجازی به‌صورت اشتراکی از طریق شبکه ارائه دهید. برای استفاده از NFS در Proxmox، باید یک سرور NFS در محیط شبکه راه‌اندازی کنید و سپس آن را به Proxmox اضافه کنید.

مراحل اتصال به ذخیره‌سازی NFS:

  1. راه‌اندازی سرور NFS: ابتدا باید یک سرور NFS را در شبکه خود راه‌اندازی کنید. در صورتی که از سرور لینوکسی استفاده می‌کنید، می‌توانید از دستورات زیر برای نصب و پیکربندی NFS استفاده کنید:نصب NFS server:
    apt update
    apt install nfs-kernel-server
    

    سپس فولدر مورد نظر برای به اشتراک‌گذاری را به NFS export کنید. به عنوان مثال:

    mkdir -p /mnt/nfs_share
    chmod 777 /mnt/nfs_share
    

    حالا باید فایل /etc/exports را ویرایش کنید تا فولدر مورد نظر را به اشتراک بگذارید:

    /mnt/nfs_share *(rw,sync,no_subtree_check)
    

    سپس سرویس NFS را راه‌اندازی کنید:

    systemctl restart nfs-kernel-server
    
  2. اتصال به NFS در Proxmox: برای اضافه کردن NFS به ذخیره‌سازی در Proxmox VE از Web UI به مسیر Datacenter > Storage بروید و سپس بر روی “Add” کلیک کرده و گزینه “NFS” را انتخاب کنید.سپس اطلاعات مورد نیاز مانند آدرس سرور NFS و مسیر export شده را وارد کنید. برای مثال، آدرس سرور NFS و فولدر export شده به صورت زیر وارد می‌شود:
    • ID: NFS-Storage
    • Server: <IP-address-of-NFS-server>
    • Export: /mnt/nfs_share
    • Content: Disk image, Container

    پس از وارد کردن اطلاعات، ذخیره را انتخاب کنید.

  3. استفاده از NFS برای ذخیره‌سازی VM: حالا که NFS به Proxmox اضافه شده است، می‌توانید آن را برای ذخیره‌سازی دیسک‌های ماشین‌های مجازی استفاده کنید. هنگام ایجاد ماشین مجازی جدید یا ویرایش ماشین مجازی موجود، در قسمت “Hard Disk” گزینه ذخیره‌سازی NFS را انتخاب کنید.

2. اتصال به ذخیره‌سازی iSCSI

iSCSI یکی دیگر از پروتکل‌های ذخیره‌سازی است که امکان اتصال دیسک‌های مجازی به ماشین‌های مجازی را از طریق شبکه فراهم می‌آورد. iSCSI به شما این امکان را می‌دهد که دیسک‌های مجازی از راه دور را به‌صورت بلوک‌داده (Block Storage) به ماشین‌های مجازی متصل کنید.

مراحل اتصال به ذخیره‌سازی iSCSI:

  1. راه‌اندازی سرور iSCSI: ابتدا باید یک سرور iSCSI راه‌اندازی کنید. برای این کار می‌توانید از نرم‌افزارهایی مانند targetcli یا tgt در لینوکس استفاده کنید.نصب targetcli:
    apt update
    apt install targetcli-fb
    

    سپس یک دیسک مجازی ایجاد کرده و آن را به اشتراک بگذارید:

    targetcli /backstores/block create name=mydisk dev=/dev/sdb
    targetcli /iscsi/ create iqn.2025-01.com.example:target
    targetcli /iscsi/iqn.2025-01.com.example:target/tpg1/luns create /backstores/block/mydisk
    targetcli /iscsi/iqn.2025-01.com.example:target/tpg1/portals create 192.168.1.100
    

    سپس سرویس target را راه‌اندازی کنید:

    systemctl start target
    
  2. اتصال به iSCSI در Proxmox: در Web UI Proxmox، به مسیر Datacenter > Storage بروید و بر روی “Add” کلیک کرده و گزینه “iSCSI” را انتخاب کنید. سپس اطلاعات زیر را وارد کنید:
    • ID: iSCSI-Storage
    • Portal: <IP-address-of-iSCSI-server>
    • Target: <target-name>
    • LUN: <LUN-number>

    بعد از وارد کردن اطلاعات، گزینه “Add” را انتخاب کنید.

  3. استفاده از iSCSI برای ذخیره‌سازی VM: حالا که ذخیره‌سازی iSCSI در Proxmox پیکربندی شده است، می‌توانید آن را به‌عنوان دیسک مجازی به ماشین‌های مجازی خود اختصاص دهید. هنگام ایجاد یا ویرایش ماشین مجازی، در بخش “Hard Disk” گزینه iSCSI را به‌عنوان ذخیره‌سازی انتخاب کنید.

3. اتصال به ذخیره‌سازی Ceph

Ceph یک راه‌حل ذخیره‌سازی توزیع‌شده است که از افزونگی و مقیاس‌پذیری پشتیبانی می‌کند. این سیستم امکان ذخیره‌سازی داده‌ها را در چندین نود توزیع‌شده فراهم می‌آورد و با پشتیبانی از افزونگی، امنیت داده‌ها را تضمین می‌کند.

مراحل اتصال به Ceph:

  1. راه‌اندازی خوشه Ceph: برای راه‌اندازی خوشه Ceph، نیاز است که ابزارهای Ceph را در Proxmox نصب کنید. دستور زیر را برای نصب Ceph در Proxmox استفاده کنید:
    apt install ceph ceph-deploy
    
  2. پیکربندی Ceph در Proxmox: بعد از نصب Ceph، باید یک خوشه Ceph راه‌اندازی کنید و سپس آن را به Proxmox اضافه کنید. در Web UI Proxmox، به Datacenter > Storage بروید و سپس گزینه “Ceph” را انتخاب کنید.
  3. استفاده از Ceph برای ذخیره‌سازی VM: پس از پیکربندی Ceph، می‌توانید از آن برای ذخیره‌سازی دیسک‌های ماشین‌های مجازی استفاده کنید. برای این کار، هنگام ایجاد یا ویرایش ماشین مجازی، Ceph را به‌عنوان ذخیره‌سازی انتخاب کنید.

جمع‌بندی

در این بخش، نحوه اتصال به سیستم‌های ذخیره‌سازی خارجی از جمله NFS، iSCSI و Ceph برای ذخیره‌سازی ماشین‌های مجازی در Proxmox مورد بررسی قرار گرفت. اتصال به این سیستم‌ها به شما این امکان را می‌دهد که از ذخیره‌سازی‌های مقیاس‌پذیر، افزونگی‌دار و با عملکرد بالا برای ماشین‌های مجازی خود استفاده کنید. همچنین پیکربندی این سیستم‌ها به‌صورت کاملاً عملی و با استفاده از دستوراتی که در محیط‌های لینوکس قابل اجرا هستند، توضیح داده شد.[/cdb_course_lesson][cdb_course_lesson title=”فصل 7. پیکربندی و مدیریت شبکه ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات شبکه در ماشین‌های مجازی: Bridge Networking” subtitle=”توضیحات کامل”]Bridge Networking یکی از رایج‌ترین روش‌ها برای اتصال ماشین‌های مجازی به شبکه فیزیکی است. در این روش، ماشین مجازی به‌طور مستقیم به شبکه فیزیکی میزبان متصل می‌شود، به‌طوری‌که ماشین مجازی یک آدرس IP مستقل از شبکه داخلی خود دریافت کرده و مانند یک دستگاه مستقل در شبکه ظاهر می‌شود.

Bridge Networking اجازه می‌دهد که ماشین‌های مجازی به‌طور مستقیم به اینترنت و سایر دستگاه‌های موجود در شبکه میزبان خود دسترسی پیدا کنند. این روش بسیار مفید است زمانی که می‌خواهید ماشین‌های مجازی شما بتوانند از پروتکل‌های شبکه (مانند DHCP) یا سایر تنظیمات شبکه به‌طور کامل بهره‌مند شوند.


1. پیکربندی Bridge Networking در Proxmox VE

برای تنظیم Bridge Networking در Proxmox VE، باید به وب‌UI Proxmox مراجعه کرده و به شبکه ماشین مجازی متصل شوید. در اینجا می‌توانید یک Bridge برای ماشین مجازی ایجاد کرده و آن را به ماشین مجازی متصل کنید.

مراحل پیکربندی Bridge Networking در Proxmox:

  1. ایجاد Bridge در Proxmox: ابتدا باید یک Bridge برای اتصال ماشین‌های مجازی به شبکه فیزیکی ایجاد کنید. برای این کار، به Web UI Proxmox بروید و مراحل زیر را دنبال کنید:
    • به مسیر Datacenter > Node > System > Network بروید.
    • بر روی گزینه “Create” کلیک کنید و سپس “Linux Bridge” را انتخاب کنید.
    • در بخش “Bridge Name”، نامی برای Bridge خود انتخاب کنید. به‌طور معمول، نام “vmbr0” برای Bridge اولین انتخاب است.
    • در بخش “Bridge Ports”، کارت شبکه فیزیکی که ماشین مجازی‌ها باید به آن متصل شوند را وارد کنید (مثلاً eth0).
    • سپس بر روی “Create” کلیک کنید تا Bridge جدید ایجاد شود.
  2. پیکربندی Bridge در فایل پیکربندی شبکه (کامند):اگر می‌خواهید تنظیمات Bridge را به‌صورت دستی و از طریق خط فرمان انجام دهید، باید فایل پیکربندی شبکه /etc/network/interfaces را ویرایش کنید.

    برای ایجاد یک Bridge جدید، فایل پیکربندی شبکه را به‌صورت زیر ویرایش کنید:

    nano /etc/network/interfaces
    

    سپس محتوای زیر را اضافه کنید:

    auto lo
    iface lo inet loopback
    
    iface eth0 inet manual
    
    auto vmbr0
    iface vmbr0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
    

    این پیکربندی به این معناست که کارت شبکه فیزیکی eth0 به یک Bridge به نام vmbr0 متصل می‌شود. با استفاده از این تنظیمات، ماشین‌های مجازی قادر خواهند بود از DHCP آدرس IP دریافت کنند.

    برای اعمال تغییرات، از دستور زیر برای ریستارت شبکه استفاده کنید:

    systemctl restart networking
    
  3. اتصال ماشین مجازی به Bridge:حالا که یک Bridge شبکه‌ای به شبکه فیزیکی میزبان متصل شده است، می‌توانید این Bridge را به ماشین‌های مجازی خود اختصاص دهید.
    • هنگام ایجاد یک ماشین مجازی جدید در Web UI Proxmox، در قسمت “Network Device”، گزینه Bridge را انتخاب کرده و vmbr0 را از لیست انتخاب کنید.
    • سپس تنظیمات دیگر ماشین مجازی خود را مانند معمول انجام دهید و ماشین مجازی را راه‌اندازی کنید.
  4. اتصال ماشین مجازی به اینترنت و شبکه فیزیکی:ماشین مجازی که به Bridge متصل شده است، حالا به‌طور مستقیم به شبکه فیزیکی میزبان متصل است. در نتیجه، آن ماشین مجازی می‌تواند از DHCP آدرس IP دریافت کرده و به سایر دستگاه‌ها و منابع شبکه دسترسی پیدا کند.

    به‌عنوان مثال، در صورتی که از DHCP استفاده می‌کنید، می‌توانید از طریق دستور ip a در ماشین مجازی آدرس IP خود را مشاهده کنید:

    ip a
    

2. مزایای Bridge Networking

  1. دسترسی مستقیم به شبکه فیزیکی: یکی از بزرگ‌ترین مزایای Bridge Networking این است که ماشین مجازی به‌طور مستقیم به شبکه فیزیکی متصل می‌شود و از آدرس‌های IP معتبر در شبکه بهره‌برداری می‌کند.
  2. پشتیبانی از DHCP: با این روش، ماشین‌های مجازی می‌توانند به‌طور خودکار آدرس‌های IP خود را از سرور DHCP شبکه دریافت کنند.
  3. ساده و شفاف: راه‌اندازی Bridge ساده و شفاف است و نیازی به پیچیدگی‌های اضافی ندارد. همچنین برای سیستم‌های شبکه بزرگ و پیچیده‌تر قابل گسترش است.
  4. قابلیت اتصال به منابع شبکه دیگر: ماشین مجازی می‌تواند به‌طور مستقیم به منابع موجود در شبکه فیزیکی مانند چاپگرها، سرورها و سایر دستگاه‌ها متصل شود.

3. مشکلات ممکن و نحوه رفع آن‌ها

  • دریافت نکردن آدرس IP از DHCP: اگر ماشین مجازی آدرس IP را از DHCP دریافت نمی‌کند، باید مطمئن شوید که تنظیمات شبکه ماشین مجازی صحیح است. به‌طور خاص، اطمینان حاصل کنید که کارت شبکه به درستی به Bridge متصل شده است و شبکه فیزیکی در دسترس است.در این صورت، می‌توانید با دستور زیر وضعیت DHCP را بررسی کنید:
    systemctl status isc-dhcp-client
    
  • خطا در اتصال به شبکه: اگر ماشین مجازی به شبکه متصل نمی‌شود، بررسی کنید که آیا کارت شبکه فیزیکی میزبان به درستی به Bridge متصل است یا خیر. همچنین مطمئن شوید که پیکربندی درست در فایل /etc/network/interfaces وارد شده است.

جمع‌بندی

Bridge Networking یکی از روش‌های رایج و مؤثر برای اتصال ماشین‌های مجازی به شبکه فیزیکی است. این روش به ماشین‌های مجازی این امکان را می‌دهد که به‌طور مستقل از شبکه میزبان خود به شبکه فیزیکی متصل شوند، از DHCP استفاده کنند و به منابع شبکه دسترسی پیدا کنند. در این بخش، نحوه پیکربندی Bridge Networking در Proxmox VE، مزایا و مشکلات رایج آن بررسی شد. این تنظیمات به‌ویژه برای مواقعی مفید است که ماشین‌های مجازی نیاز به اتصال مستقیم به اینترنت یا سایر دستگاه‌ها دارند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”VLAN و اتصال ماشین‌های مجازی به شبکه‌های مختلف” subtitle=”توضیحات کامل”]VLAN (Virtual Local Area Network) یک تکنولوژی شبکه‌ای است که به شما این امکان را می‌دهد که یک شبکه فیزیکی را به چندین شبکه منطقی تقسیم کنید. این تقسیم‌بندی به شما این امکان را می‌دهد که ماشین‌های مجازی یا دستگاه‌ها را به شبکه‌های مختلفی متصل کنید بدون اینکه نیازی به سخت‌افزار جداگانه باشد. این قابلیت به‌ویژه در محیط‌های مجازی‌سازی، مثل Proxmox VE، بسیار مفید است که می‌خواهید ماشین‌های مجازی را به شبکه‌های مختلف با امنیت و جداسازی مناسب متصل کنید.

در این بخش، نحوه پیکربندی VLAN و اتصال ماشین‌های مجازی به شبکه‌های مختلف را بررسی می‌کنیم. این پیکربندی شامل تنظیمات شبکه برای ماشین‌های مجازی و پیکربندی VLAN در Proxmox VE است.


1. VLAN چیست؟

VLAN به شما این امکان را می‌دهد که دستگاه‌ها و ماشین‌های مجازی را به‌طور منطقی به گروه‌های مختلف شبکه‌ای تقسیم کنید، حتی اگر همه آن‌ها به یک شبکه فیزیکی متصل باشند. VLAN به‌ویژه برای جداسازی ترافیک شبکه و افزایش امنیت مفید است. به‌طور مثال، می‌توانید ماشین‌های مجازی که در حال اجرای سرویس‌های مختلف هستند را به VLAN‌های جداگانه‌ای تخصیص دهید، مثل:

  • VLAN 10: ماشین‌های مجازی برای سرویس وب
  • VLAN 20: ماشین‌های مجازی برای دیتابیس
  • VLAN 30: ماشین‌های مجازی برای شبکه مدیریت

2. پیکربندی VLAN در Proxmox VE

در Proxmox VE، برای ایجاد و پیکربندی VLAN‌ها، باید تنظیمات شبکه را انجام دهید. در اینجا نحوه ایجاد و پیکربندی یک VLAN در Proxmox VE به‌صورت کاملاً گام‌به‌گام آورده شده است.

2.1. پیکربندی VLAN در فایل شبکه Proxmox

برای شروع، باید از طریق خط فرمان (CLI) در فایل پیکربندی شبکه /etc/network/interfaces تغییرات موردنظر را انجام دهید. این کار می‌تواند به شما اجازه دهد که VLAN‌های مختلف را بر روی ماشین‌های مجازی تنظیم کنید.

فرض کنید می‌خواهید یک VLAN به نام vmbr0 با شماره VLAN 100 بسازید.

  1. وارد کردن تنظیمات VLAN در فایل پیکربندی شبکه:ابتدا، فایل پیکربندی شبکه را باز کنید:
    nano /etc/network/interfaces
    
  2. ایجاد تنظیمات VLAN:در این مرحله، باید تنظیمات VLAN را به فایل اضافه کنید. برای این‌که یک VLAN جدید با شماره 100 ایجاد کنید، می‌توانید از تنظیمات زیر استفاده کنید:
    auto lo
    iface lo inet loopback
    
    iface eth0 inet manual
    
    auto vmbr0
    iface vmbr0 inet dhcp
        bridge_ports eth0.100
        bridge_stp off
        bridge_fd 0
    

    در اینجا:

    • eth0.100 نمایانگر ارتباط VLAN شماره 100 است.
    • bridge_ports eth0.100 تنظیمات شبکه را به کارت شبکه فیزیکی و VLAN خاص مربوطه متصل می‌کند.
  3. اعمال تنظیمات شبکه:بعد از اعمال تغییرات، شبکه را ریستارت کنید تا تنظیمات جدید اعمال شود:
    systemctl restart networking
    

2.2. پیکربندی VLAN در Proxmox Web UI

برای ایجاد یک VLAN و تخصیص آن به ماشین‌های مجازی از Web UI نیز می‌توان استفاده کرد. مراحل پیکربندی به شرح زیر است:

  1. وارد Web UI Proxmox شوید.
  2. به مسیر Datacenter > Node > System > Network بروید.
  3. بر روی گزینه “Create” کلیک کرده و از منوی کشویی “Linux Bridge” یا “VLAN” را انتخاب کنید.
  4. در قسمت “Bridge Name”، نامی برای Bridge خود وارد کنید (به‌طور معمول vmbr0 یا vmbr100).
  5. در بخش “VLAN Tag”، شماره VLAN را وارد کنید (برای مثال، 100).
  6. در بخش “Bridge Ports”، کارت شبکه فیزیکی خود (مانند eth0) را انتخاب کنید.
  7. سپس بر روی “Create” کلیک کنید تا تنظیمات جدید ذخیره شود.

3. اتصال ماشین مجازی به VLAN‌های مختلف

حال که VLAN‌ها در Proxmox VE تنظیم شده‌اند، می‌توانید ماشین‌های مجازی خود را به هر یک از این VLAN‌ها متصل کنید. برای انجام این کار، باید تنظیمات شبکه ماشین مجازی را از Web UI Proxmox تغییر دهید.

مراحل اتصال ماشین مجازی به VLAN:

  1. در Web UI Proxmox، به صفحه ماشین مجازی موردنظر بروید.
  2. بر روی گزینه “Hardware” کلیک کنید.
  3. سپس بر روی “Network Device” کلیک کنید تا کارت شبکه ماشین مجازی را پیکربندی کنید.
  4. در بخش “Bridge”, VLAN مربوطه را انتخاب کنید.
    • به‌عنوان مثال، اگر ماشین مجازی شما باید به VLAN 100 متصل شود، باید vmbr100 را به‌عنوان Bridge انتخاب کنید.
  5. در نهایت، بر روی “OK” کلیک کنید تا تغییرات ذخیره شوند.

حالا ماشین مجازی شما به VLAN مشخص شده متصل خواهد شد و از طریق آن می‌تواند به شبکه مختلف دسترسی پیدا کند.


4. مزایای استفاده از VLAN برای ماشین‌های مجازی

  1. جداسازی ترافیک شبکه: استفاده از VLAN‌ها به شما این امکان را می‌دهد که ترافیک شبکه برای ماشین‌های مجازی مختلف را از هم جدا کنید. این کار موجب کاهش تداخل و بهبود عملکرد شبکه می‌شود.
  2. افزایش امنیت: با ایجاد VLAN‌های جداگانه برای ماشین‌های مجازی مختلف، می‌توانید دسترسی به منابع حساس را محدود کرده و امنیت شبکه را افزایش دهید.
  3. مقیاس‌پذیری بالا: VLAN‌ها به شما این امکان را می‌دهند که بدون نیاز به سخت‌افزار جدید، تعداد زیادی شبکه مجازی را مدیریت کنید.
  4. ساده‌تر کردن مدیریت شبکه: با استفاده از VLAN‌ها، مدیریت شبکه‌های مختلف بسیار ساده‌تر می‌شود و می‌توانید منابع شبکه را به‌طور بهینه‌تری تخصیص دهید.

5. مشکلات و رفع آن‌ها

  1. دریافت نکردن آدرس IP در VLAN: اگر ماشین مجازی شما نتواسته از DHCP آدرس IP دریافت کند، اطمینان حاصل کنید که سرور DHCP شما به‌درستی پیکربندی شده است و می‌تواند به VLAN‌های مختلف سرویس‌دهی کند.برای بررسی این موضوع، با دستور زیر وضعیت شبکه را در ماشین مجازی بررسی کنید:
    ip a
    
  2. اتصال نادرست به VLAN‌ها: اگر ماشین مجازی نتواسته به VLAN متصل شود، مطمئن شوید که تنظیمات Bridge در فایل /etc/network/interfaces به‌درستی وارد شده‌اند و پورت‌های فیزیکی به‌درستی به VLAN اختصاص داده شده‌اند.

جمع‌بندی

استفاده از VLAN برای اتصال ماشین‌های مجازی به شبکه‌های مختلف، ابزاری قدرتمند است که امکان جداسازی ترافیک، افزایش امنیت و مقیاس‌پذیری را فراهم می‌آورد. با استفاده از تنظیمات Web UI و دستورات خط فرمان در Proxmox VE، می‌توانید VLAN‌های مختلف ایجاد کرده و ماشین‌های مجازی خود را به شبکه‌های مختلف متصل کنید. این تکنیک در محیط‌های مجازی‌سازی به‌ویژه زمانی که نیاز به مدیریت شبکه‌های پیچیده و امن دارید، بسیار مفید است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات NAT برای اتصال به اینترنت” subtitle=”توضیحات کامل”]Network Address Translation (NAT) یک تکنیک شبکه‌ای است که به شما امکان می‌دهد ماشین‌های مجازی داخل یک شبکه خصوصی (مانند یک شبکه داخلی) بتوانند به اینترنت متصل شوند. این روش معمولاً زمانی استفاده می‌شود که شما نیاز دارید تعدادی ماشین مجازی یا دستگاه‌های داخل شبکه خصوصی را از طریق یک آدرس IP واحد به اینترنت دسترسی داشته باشید.

در این بخش، نحوه پیکربندی NAT در Proxmox VE برای ماشین‌های مجازی به‌منظور اتصال آن‌ها به اینترنت را به‌صورت گام به گام و با استفاده از دستورات CLI و Web UI بررسی می‌کنیم.


1. NAT چیست و چرا از آن استفاده می‌کنیم؟

NAT به شما این امکان را می‌دهد که آدرس‌های IP خصوصی را به آدرس‌های IP عمومی نگاشت کنید. در یک محیط مجازی‌سازی، ماشین‌های مجازی به‌طور معمول در یک شبکه خصوصی قرار دارند و نیاز دارند که از طریق یک یا چند آدرس IP عمومی به اینترنت دسترسی پیدا کنند.

با استفاده از NAT، وقتی یک ماشین مجازی درخواست اینترنتی ارسال می‌کند، آدرس IP خصوصی آن به آدرس IP عمومی (آدرس دستگاه میزبانی) تبدیل می‌شود. سپس پاسخ از اینترنت به همان آدرس IP عمومی باز می‌گردد و دوباره توسط NAT به آدرس IP خصوصی ماشین مجازی ارسال می‌شود.


2. پیکربندی NAT در Proxmox VE

در Proxmox VE، برای پیکربندی NAT به‌منظور اتصال ماشین‌های مجازی به اینترنت، باید از فایروال و تنظیمات شبکه استفاده کنید. این پیکربندی معمولاً شامل ایجاد یک bridge برای ماشین‌های مجازی، پیکربندی یک NAT rule در سرور و استفاده از IP forwarding برای انتقال ترافیک به اینترنت است.

2.1. پیکربندی Bridge Network برای NAT

ابتدا برای اینکه ماشین‌های مجازی به اینترنت دسترسی داشته باشند، باید یک bridge network در سرور Proxmox ایجاد کنیم. برای این کار می‌توانیم از تنظیمات شبکه فیزیکی و bridge استفاده کنیم.

  1. باز کردن فایل پیکربندی شبکه:
    nano /etc/network/interfaces
    
  2. ایجاد یک Bridge Network جدید برای NAT:در فایل interfaces، می‌توانید تنظیمات bridge network را به شکل زیر اضافه کنید. فرض کنید نام bridge شما vmbr0 است.
    auto lo
    iface lo inet loopback
    
    iface eth0 inet manual
    
    auto vmbr0
    iface vmbr0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
    

    در اینجا:

    • eth0 کارت شبکه فیزیکی شما است.
    • vmbr0 bridge شبکه جدید است که ماشین‌های مجازی به آن متصل می‌شوند.
  3. اعمال تغییرات و ریستارت شبکه:پس از انجام تغییرات، باید شبکه را ریستارت کنید تا تنظیمات جدید اعمال شود:
    systemctl restart networking
    

2.2. فعال‌سازی IP Forwarding و پیکربندی NAT

برای فعال‌سازی NAT، ابتدا باید از ویژگی IP forwarding استفاده کنید که اجازه می‌دهد پروکسی‌ کردن بسته‌های شبکه از طریق سرور انجام شود. همچنین باید iptables را برای انجام NAT پیکربندی کنیم.

  1. فعال‌سازی IP Forwarding:ابتدا باید فایل پیکربندی /etc/sysctl.conf را ویرایش کنید و ویژگی IP forwarding را فعال کنید.
    nano /etc/sysctl.conf
    

    در این فایل، گزینه net.ipv4.ip_forward را به‌صورت زیر پیدا کرده و تغییر دهید:

    net.ipv4.ip_forward=1
    
  2. اعمال تغییرات:پس از تغییر فایل، می‌توانید آن را با دستور زیر اعمال کنید:
    sysctl -p
    
  3. پیکربندی NAT با استفاده از iptables:اکنون باید یک rule NAT در iptables برای تبدیل آدرس IP‌های خصوصی به آدرس IP عمومی (آدرس سرور Proxmox) اضافه کنید. برای این کار از دستور زیر استفاده کنید:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    در این دستور:

    • -t nat: به iptables می‌گوید که این قانون باید در جدول NAT اعمال شود.
    • POSTROUTING: تعیین می‌کند که NAT باید پس از ارسال بسته‌ها انجام شود.
    • -o eth0: آدرس شبکه خارجی یا عمومی شما است (در اینجا eth0).
    • -j MASQUERADE: این دستور به iptables می‌گوید که NAT را به‌صورت ماسک‌شده انجام دهد.
  4. ذخیره قوانین iptables:پس از اعمال قوانین NAT، باید آن‌ها را ذخیره کنید تا در زمان راه‌اندازی مجدد سرور، فعال بمانند. برای ذخیره قوانین می‌توانید از دستور زیر استفاده کنید:
    iptables-save > /etc/iptables/rules.v4
    

2.3. اتصال ماشین‌های مجازی به Bridge Network

پس از تنظیم NAT، باید مطمئن شوید که ماشین‌های مجازی شما به bridge network (vmbr0) متصل شده‌اند تا بتوانند از طریق NAT به اینترنت دسترسی پیدا کنند.

  1. وارد Web UI Proxmox شوید.
  2. به صفحه ماشین مجازی موردنظر بروید.
  3. در تب “Hardware” بر روی “Network Device” کلیک کنید.
  4. در قسمت “Bridge”, bridge vmbr0 را انتخاب کنید.
  5. بر روی “OK” کلیک کنید تا تغییرات ذخیره شوند.

3. مراحل تکمیلی

  1. تست اتصال اینترنت:برای بررسی اینکه ماشین‌های مجازی به اینترنت متصل هستند یا خیر، می‌توانید وارد ماشین مجازی شوید و دستور زیر را اجرا کنید تا از درستی تنظیمات NAT مطمئن شوید:
    ping -c 4 8.8.8.8
    

    اگر بسته‌ها به مقصد رسیدند، اتصال اینترنت موفقیت‌آمیز بوده است.

  2. تنظیمات فایروال:اگر ماشین مجازی نتواست به اینترنت متصل شود، ممکن است فایروال Proxmox VE یا فایروال داخل ماشین مجازی مانع از اتصال به اینترنت شود. بنابراین، مطمئن شوید که پورت‌های موردنیاز باز هستند.
  3. تنظیمات Static IP در ماشین‌های مجازی:اگر به‌جای DHCP از آدرس IP ثابت استفاده می‌کنید، باید تنظیمات IP ماشین مجازی را به‌طور دستی پیکربندی کنید. برای مثال، به‌صورت زیر:
    sudo nano /etc/network/interfaces
    

    سپس IP ثابت را به تنظیمات شبکه اضافه کنید:

    iface eth0 inet static
    address 192.168.100.10
    netmask 255.255.255.0
    gateway 192.168.100.1
    

جمع‌بندی

پیکربندی NAT برای اتصال ماشین‌های مجازی به اینترنت یک فرآیند ضروری در محیط‌های مجازی‌سازی است که به شما این امکان را می‌دهد که ماشین‌های مجازی بتوانند از طریق یک آدرس IP عمومی به اینترنت دسترسی داشته باشند. در این بخش، تنظیمات NAT در Proxmox VE از طریق فایل‌های پیکربندی شبکه، فعال‌سازی IP forwarding، و پیکربندی iptables برای NAT توضیح داده شد. همچنین، با استفاده از Web UI، ماشین‌های مجازی را به شبکه مناسب متصل کرده و اتصال آن‌ها به اینترنت را تست کردیم. این روش کمک می‌کند تا ماشین‌های مجازی به‌طور مؤثر و امن به اینترنت متصل شوند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت کارت شبکه و تغییر تنظیمات در VM” subtitle=”توضیحات کامل”]یکی از جنبه‌های کلیدی مدیریت ماشین‌های مجازی، تنظیمات شبکه آن‌ها است. شبکه به شما این امکان را می‌دهد که ماشین‌های مجازی را به یکدیگر و به دنیای خارج متصل کنید. در این بخش، نحوه مدیریت کارت‌های شبکه در ماشین‌های مجازی در Proxmox VE را بررسی خواهیم کرد. این عملیات شامل اضافه کردن کارت‌های شبکه جدید، تغییر تنظیمات کارت‌های شبکه موجود، و پیکربندی ویژگی‌های مختلف کارت شبکه مانند نوع اتصال (Bridge, NAT) و تنظیمات پیشرفته مانند VirtIO خواهد بود.


1. مدیریت کارت شبکه در ماشین‌های مجازی

هر ماشین مجازی برای ارتباط با دنیای خارج نیاز به یک یا چند کارت شبکه دارد. این کارت‌ها می‌توانند به شبکه‌های مختلف متصل شوند و می‌توان تنظیمات مختلفی مانند نوع کارت شبکه، نوع اتصال (Bridge یا NAT)، و ویژگی‌های پیشرفته را اعمال کرد.

1.1. افزودن کارت شبکه جدید

برای اضافه کردن کارت شبکه جدید به ماشین مجازی در Proxmox VE، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکسی‌مکس شوید.
  2. به ماشین مجازی مورد نظر بروید.
  3. در بخش Hardware، روی گزینه Add کلیک کنید.
  4. گزینه Network Device را انتخاب کنید.

پس از این مرحله، تنظیمات مربوط به کارت شبکه جدید به شما نمایش داده می‌شود:

  • Bridge: نوع اتصال کارت شبکه را انتخاب می‌کنید. در حالت معمول، برای اتصال به شبکه‌های فیزیکی، از vmbr0 (bridge پیش‌فرض) استفاده می‌شود.
  • VLAN Tag: اگر بخواهید ماشین مجازی را به یک شبکه VLAN خاص متصل کنید، می‌توانید این قسمت را تنظیم کنید.
  • Model: مدل کارت شبکه را مشخص کنید. به طور معمول، از مدل virtio برای عملکرد بهتر و کاهش بار شبکه استفاده می‌شود.

پس از پیکربندی، بر روی Add کلیک کنید تا کارت شبکه به ماشین مجازی اضافه شود.

1.2. تغییر تنظیمات کارت شبکه

برای تغییر تنظیمات کارت شبکه در ماشین مجازی، مراحل زیر را انجام دهید:

  1. وارد Web UI شوید و ماشین مجازی مورد نظر را انتخاب کنید.
  2. به تب Hardware بروید.
  3. کارت شبکه‌ای که می‌خواهید تنظیمات آن را تغییر دهید، انتخاب کنید.
  4. بر روی دکمه Edit کلیک کنید.
  5. تنظیمات مختلفی که قابل تغییر هستند را مشاهده خواهید کرد:
    • Bridge: می‌توانید اتصال کارت شبکه را از vmbr0 به bridge دیگری تغییر دهید.
    • VLAN Tag: می‌توانید VLAN جدیدی برای کارت شبکه تعیین کنید.
    • Model: مدل کارت شبکه را تغییر دهید (برای مثال، virtio).
  6. پس از اعمال تغییرات، بر روی OK کلیک کنید.

1.3. حذف کارت شبکه

برای حذف کارت شبکه از ماشین مجازی، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکسی‌مکس شوید.
  2. ماشین مجازی مورد نظر را انتخاب کنید.
  3. به تب Hardware بروید.
  4. کارت شبکه‌ای که می‌خواهید حذف کنید، انتخاب کنید.
  5. روی دکمه Remove کلیک کنید.
  6. سپس برای تایید، روی Yes کلیک کنید.

2. پیکربندی کارت شبکه از طریق CLI

در صورت نیاز به انجام تنظیمات شبکه از طریق خط فرمان (CLI) در Proxmox، می‌توانید از دستورات زیر استفاده کنید. این دستورات برای کسانی که ترجیح می‌دهند از خط فرمان به جای Web UI برای مدیریت ماشین‌های مجازی استفاده کنند، مفید خواهد بود.

2.1. افزودن کارت شبکه از طریق CLI

برای اضافه کردن کارت شبکه جدید به ماشین مجازی از طریق خط فرمان، از دستور qm به‌صورت زیر استفاده کنید:

qm set <VMID> -net0 virtio,bridge=vmbr0

در این دستور:

  • <VMID>: شناسه ماشین مجازی که می‌خواهید کارت شبکه را به آن اضافه کنید.
  • -net0: شماره کارت شبکه (برای اولین کارت شبکه از -net0 استفاده می‌شود).
  • virtio: نوع کارت شبکه. برای کارایی بهتر، از کارت شبکه VirtIO استفاده می‌شود.
  • bridge=vmbr0: تعیین bridge‌ای که کارت شبکه به آن متصل خواهد شد.

2.2. تغییر تنظیمات کارت شبکه از طریق CLI

برای تغییر تنظیمات کارت شبکه (مثل تغییر bridge یا نوع مدل کارت شبکه)، از دستور زیر استفاده کنید:

qm set <VMID> -net0 virtio,bridge=vmbr1

در این دستور، vmbr1 به‌جای vmbr0 استفاده شده است تا کارت شبکه به bridge جدید متصل شود.

2.3. حذف کارت شبکه از طریق CLI

برای حذف کارت شبکه از ماشین مجازی از طریق CLI، می‌توانید از دستور زیر استفاده کنید:

qm set <VMID> -delete net0

این دستور کارت شبکه شماره 0 را از ماشین مجازی حذف می‌کند.


3. مدل‌های مختلف کارت شبکه

در هنگام پیکربندی کارت شبکه برای ماشین‌های مجازی، می‌توانید مدل‌های مختلفی را انتخاب کنید. مدل کارت شبکه تاثیر زیادی بر عملکرد و سازگاری ماشین‌های مجازی با سیستم‌عامل‌های مختلف دارد. برخی از مدل‌های رایج عبارتند از:

3.1. VirtIO

VirtIO یک مدل کارت شبکه است که برای عملکرد بهتر در ماشین‌های مجازی طراحی شده است. این مدل معمولاً برای سرورهایی که نیاز به سرعت بالا در انتقال داده دارند، مناسب است.

3.2. E1000

کارت شبکه مدل E1000 مشابه کارت شبکه‌های واقعی است که در سرورهای فیزیکی استفاده می‌شود. این مدل معمولاً برای سازگاری با سیستم‌عامل‌های مختلف استفاده می‌شود، اما از عملکرد پایین‌تری نسبت به VirtIO برخوردار است.

3.3. RTL8139

این کارت شبکه قدیمی است و معمولاً برای سیستم‌عامل‌های قدیمی‌تر یا کاربردهای خاص استفاده می‌شود. از آنجا که عملکرد خوبی ندارد، در بیشتر موارد از مدل‌های جدیدتر مانند VirtIO استفاده می‌شود.


4. پیکربندی VLAN در ماشین‌های مجازی

VLAN (Virtual LAN) یک فناوری شبکه‌ای است که به شما این امکان را می‌دهد که چندین شبکه مجازی را در یک شبکه فیزیکی ایجاد کنید. شما می‌توانید ماشین‌های مجازی را به VLANهای مختلف اختصاص دهید تا ترافیک آن‌ها به‌طور منطقی جداسازی شود.

برای تنظیم VLAN برای کارت شبکه ماشین مجازی، مراحل زیر را دنبال کنید:

  1. وارد Web UI پروکسی‌مکس شوید.
  2. به تب Hardware بروید.
  3. کارت شبکه‌ای که می‌خواهید تنظیم کنید، انتخاب کنید.
  4. بر روی دکمه Edit کلیک کنید.
  5. در بخش VLAN Tag، شماره VLAN موردنظر را وارد کنید.
  6. تغییرات را ذخیره کنید.

برای پیکربندی VLAN از طریق CLI، از دستور زیر استفاده کنید:

qm set <VMID> -net0 virtio,bridge=vmbr0,tag=<VLAN_ID>

در اینجا، <VLAN_ID> شماره VLAN موردنظر است که می‌خواهید به ماشین مجازی اختصاص دهید.


جمع‌بندی

مدیریت کارت شبکه در ماشین‌های مجازی بخش حیاتی در فرآیند پیکربندی شبکه است. در این بخش، نحوه افزودن، تغییر و حذف کارت‌های شبکه در Proxmox VE با استفاده از Web UI و CLI را بررسی کردیم. همچنین مدل‌های مختلف کارت شبکه و نحوه پیکربندی VLAN برای جداسازی ترافیک شبکه در ماشین‌های مجازی را توضیح دادیم. از این‌رو، می‌توانید کارت‌های شبکه را بر اساس نیازهای خود پیکربندی کرده و ماشین‌های مجازی را به‌طور مؤثر به شبکه‌های مختلف متصل کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی و استفاده از کارت شبکه VirtIO برای عملکرد بهتر” subtitle=”توضیحات کامل”]کارت شبکه VirtIO یک فناوری پیشرفته است که به طور خاص برای استفاده در ماشین‌های مجازی طراحی شده و عملکرد بسیار بالاتری نسبت به کارت‌های شبکه سنتی مانند E1000 یا RTL8139 دارد. این کارت‌ها به دلیل استفاده از تکنولوژی‌هایی مانند مدرن‌ترین روش‌های پردازش I/O، کاهش تأخیر و بار پردازشی سیستم میزبان، به طور قابل توجهی کارایی و بهره‌وری ماشین‌های مجازی را افزایش می‌دهند. در این بخش، ما نحوه پیکربندی و استفاده از کارت شبکه VirtIO در Proxmox VE را بررسی خواهیم کرد.


1. مزایای استفاده از کارت شبکه VirtIO

قبل از اینکه به پیکربندی کارت شبکه VirtIO بپردازیم، بیایید برخی از مزایای آن را مرور کنیم:

  • عملکرد بهتر: کارت شبکه VirtIO از طریق دسترسی مستقیم به منابع سیستم میزبان (direct device access) و کاهش هزینه‌های سیستم عامل مهمان، عملکرد بسیار بالاتری نسبت به کارت‌های شبکه نرم‌افزاری دارد.
  • پشتیبانی از ویژگی‌های پیشرفته: از جمله ویژگی‌های QoS (Quality of Service)، افزایش سرعت انتقال داده و بهره‌وری بیشتر پردازش‌های شبکه‌ای.
  • کمتر شدن مصرف منابع سیستم: استفاده از VirtIO باعث کاهش بار پردازش و حافظه مورد نیاز برای پردازش ترافیک شبکه می‌شود.

2. پیکربندی کارت شبکه VirtIO در Proxmox VE

در Proxmox VE، برای استفاده از کارت شبکه VirtIO، ابتدا باید تنظیمات کارت شبکه را به گونه‌ای تغییر دهید که از این مدل استفاده کند. در ادامه، مراحل گام به گام برای پیکربندی کارت شبکه VirtIO به‌صورت گرافیکی و از طریق خط فرمان (CLI) آورده شده است.

2.1. پیکربندی کارت شبکه VirtIO از طریق Web UI

برای استفاده از کارت شبکه VirtIO در Web UI Proxmox، مراحل زیر را دنبال کنید:

  1. ورود به Web UI پروکسی‌مکس: وارد Web UI پروکسی‌مکس شوید و ماشین مجازی موردنظر را انتخاب کنید.
  2. انتخاب ماشین مجازی: به تب Hardware ماشین مجازی بروید.
  3. افزودن کارت شبکه جدید: روی گزینه Add کلیک کرده و گزینه Network Device را انتخاب کنید.
  4. انتخاب مدل کارت شبکه: در پنجره جدید، گزینه Model را به virtio تغییر دهید.
    • برای اتصال به شبکه فیزیکی از bridge (برای مثال vmbr0) استفاده کنید.
    • در صورت نیاز به VLAN، در بخش VLAN Tag شماره VLAN موردنظر را وارد کنید.
  5. انتخاب Bridge: در قسمت Bridge, معمولاً از vmbr0 (bridge پیش‌فرض) برای اتصال به شبکه فیزیکی استفاده می‌شود. اما در صورتی که نیاز به پیکربندی خاص‌تری دارید، می‌توانید bridge دلخواه خود را وارد کنید.
  6. تأیید تنظیمات: بعد از انجام تنظیمات، بر روی Add کلیک کنید تا کارت شبکه VirtIO به ماشین مجازی اضافه شود.

پس از افزودن کارت شبکه VirtIO، ماشین مجازی را راه‌اندازی کنید. این کارت شبکه به طور خودکار از تکنولوژی VirtIO بهره خواهد برد و عملکرد شبکه به طور قابل توجهی بهبود خواهد یافت.

2.2. پیکربندی کارت شبکه VirtIO از طریق CLI

برای پیکربندی کارت شبکه VirtIO از طریق خط فرمان (CLI) در Proxmox، از دستور qm set استفاده می‌کنیم:

  1. افزودن کارت شبکه VirtIO از طریق CLI:برای اضافه کردن کارت شبکه VirtIO به یک ماشین مجازی، از دستور زیر استفاده کنید:
    qm set <VMID> -net0 virtio,bridge=vmbr0
    
    • <VMID>: شناسه ماشین مجازی که می‌خواهید کارت شبکه را به آن اضافه کنید.
    • virtio: نوع کارت شبکه.
    • bridge=vmbr0: تعیین bridge‌ای که کارت شبکه به آن متصل خواهد شد.
  2. برای تغییر تنظیمات کارت شبکه VirtIO از طریق CLI:برای تغییر تنظیمات کارت شبکه VirtIO، به‌طور مثال برای تغییر bridge یا مدل کارت، دستور زیر را وارد کنید:
    qm set <VMID> -net0 virtio,bridge=vmbr1
    

    در اینجا، vmbr1 به‌جای vmbr0 استفاده شده است.


3. نصب درایورهای VirtIO در سیستم‌عامل مهمان

برای استفاده بهینه از کارت شبکه VirtIO در ماشین‌های مجازی، باید درایورهای VirtIO را در سیستم‌عامل مهمان (مانند Linux یا Windows) نصب کنید. در اینجا، نحوه نصب درایورها در دو سیستم‌عامل معمول را بررسی خواهیم کرد.

3.1. نصب درایور VirtIO در سیستم‌عامل Linux

برای استفاده از کارت شبکه VirtIO در سیستم‌عامل‌های Linux، معمولاً درایورها به صورت پیش‌فرض نصب شده‌اند. با این حال، اگر به‌طور خاص نیاز به نصب درایورها دارید، مراحل زیر را دنبال کنید:

  1. در ابتدا باید فایل ISO مربوط به VirtIO را از این لینک دانلود کنید.
  2. سپس فایل ISO را به عنوان CD/DVD در ماشین مجازی خود اضافه کنید.
  3. ماشین مجازی را راه‌اندازی کرده و به کنسول آن وارد شوید.
  4. در صورت نیاز، پکیج‌های درایور VirtIO را با استفاده از دستور زیر نصب کنید:برای Debian/Ubuntu:
    sudo apt-get install linux-headers-$(uname -r) build-essential
    sudo apt-get install virtio-modules-$(uname -r)
    

    برای RHEL/CentOS:

    sudo yum install virtio-modules-$(uname -r)
    

3.2. نصب درایور VirtIO در سیستم‌عامل Windows

در سیستم‌عامل Windows، برای نصب درایورهای VirtIO مراحل زیر را دنبال کنید:

  1. فایل ISO مربوط به درایورهای VirtIO را به ماشین مجازی اضافه کنید.
  2. پس از راه‌اندازی ماشین مجازی، درایورهای موجود در ISO را از طریق CD/DVD شبیه‌سازی شده نصب کنید.
  3. به Device Manager بروید و بر روی دستگاه شبکه کلیک راست کرده و گزینه Update Driver را انتخاب کنید.
  4. در صفحه باز شده، مسیر به درایورهای نصب شده در ISO را وارد کرده و آن‌ها را نصب کنید.

4. نکات مهم در استفاده از کارت شبکه VirtIO

  • دسترس‌پذیری: کارت‌های شبکه VirtIO ممکن است در برخی از سیستم‌عامل‌های قدیمی یا نسخه‌های خاص پشتیبانی نشوند. همیشه قبل از پیکربندی، از سازگاری سیستم‌عامل مهمان با این مدل کارت شبکه اطمینان حاصل کنید.
  • عملکرد: برای بهره‌برداری کامل از مزایای VirtIO، از مدل‌های خاص سیستم‌عامل‌های مدرن و سرورهای مجازی استفاده کنید.
  • پیکربندی: مطمئن شوید که سیستم‌عامل مهمان به درستی با کارت شبکه VirtIO هماهنگ است و تمامی درایورها به‌روز شده‌اند.

جمع‌بندی

استفاده از کارت شبکه VirtIO در ماشین‌های مجازی Proxmox VE می‌تواند عملکرد شبکه را به طرز چشمگیری بهبود بخشد. این مدل کارت شبکه با استفاده از فناوری‌هایی مانند دسترسی مستقیم به سخت‌افزار و پردازش بهینه I/O، سرعت انتقال داده‌ها و بهره‌وری سیستم را افزایش می‌دهد. در این بخش، نحوه پیکربندی کارت شبکه VirtIO در Proxmox VE را هم از طریق Web UI و هم از طریق خط فرمان بررسی کردیم و همچنین نحوه نصب درایورهای VirtIO در سیستم‌عامل‌های Linux و Windows را توضیح دادیم.[/cdb_course_lesson][cdb_course_lesson title=”فصل 8. مدیریت Snapshotها و Backup ماشین‌های مجازی”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد Snapshot از ماشین‌های مجازی” subtitle=”توضیحات کامل”]یکی از ویژگی‌های بسیار مفید در محیط‌های مجازی‌سازی مانند Proxmox VE، امکان ایجاد Snapshot از ماشین‌های مجازی است. Snapshot به شما این امکان را می‌دهد تا از وضعیت فعلی ماشین مجازی یک نسخه پشتیبان بگیرید. این نسخه پشتیبان می‌تواند شامل تمامی وضعیت‌ها و تنظیمات ماشین مجازی مانند سیستم‌عامل، نرم‌افزارها، داده‌ها و حتی تنظیمات شبکه باشد.

Snapshots معمولاً زمانی مفید هستند که شما می‌خواهید قبل از انجام تغییرات بزرگ در ماشین مجازی (مانند به‌روزرسانی سیستم، نصب نرم‌افزار جدید، یا تغییرات پیکربندی) از وضعیت فعلی ماشین مجازی پشتیبان بگیرید. این کار به شما این امکان را می‌دهد که در صورت بروز مشکلات یا نیاز به برگشت به وضعیت قبلی، به سادگی از Snapshot گرفته شده استفاده کنید.


1. مزایای استفاده از Snapshot

قبل از پرداختن به نحوه ایجاد Snapshot، بیایید برخی از مزایای این ویژگی را مرور کنیم:

  • بازگشت سریع به وضعیت قبلی: در صورت بروز مشکلات یا خطاهای ناشی از تغییرات، می‌توانید به راحتی به وضعیت قبلی ماشین مجازی برگردید.
  • تست به‌روزرسانی‌ها و نرم‌افزارها: با گرفتن Snapshot از ماشین مجازی، می‌توانید به راحتی به‌روزرسانی‌ها یا تغییرات نرم‌افزاری را تست کنید و در صورت بروز مشکل، سریعاً به نسخه قبلی برگشت کنید.
  • پشتیبانی از DevOps و تست نرم‌افزار: در فرآیند توسعه و آزمایش، با استفاده از Snapshotها می‌توان به سرعت محیط آزمایشی جدیدی ایجاد کرد یا تغییرات مختلف را تست کرد.

2. ایجاد Snapshot از طریق Web UI

برای ایجاد Snapshot از ماشین‌های مجازی در Proxmox VE، مراحل زیر را دنبال کنید:

  1. ورود به Web UI پروکسی‌مکس: وارد Web UI پروکسی‌مکس شوید و ماشین مجازی‌ای که می‌خواهید از آن Snapshot بگیرید را انتخاب کنید.
  2. انتخاب ماشین مجازی: پس از ورود به Web UI، به تب Snapshots بروید که در بالای صفحه ماشین مجازی قابل مشاهده است.
  3. ایجاد Snapshot: در بخش Snapshots، روی دکمه Take Snapshot کلیک کنید.
  4. تنظیمات Snapshot: در پنجره باز شده، می‌توانید برای Snapshot خود یک نام انتخاب کنید. همچنین گزینه‌هایی مانند Include Memory برای ذخیره‌سازی وضعیت حافظه در هنگام گرفتن Snapshot نیز وجود دارد. اگر این گزینه فعال باشد، Snapshot شامل وضعیت کامل سیستم (یعنی محتویات حافظه و دیسک) خواهد بود.
    • Name: نامی برای Snapshot وارد کنید.
    • Include Memory: در صورتی که این گزینه را فعال کنید، وضعیت حافظه ماشین مجازی نیز ذخیره می‌شود.
    • Quiesce: این گزینه برای گرفتن Snapshot از سیستم‌های ویندوزی و اطمینان از همگام‌سازی صحیح داده‌ها قبل از گرفتن Snapshot مفید است.
  5. تأیید عملیات: پس از وارد کردن نام و تنظیمات موردنظر، بر روی Take Snapshot کلیک کنید. پروسه گرفتن Snapshot شروع خواهد شد و پس از چند لحظه، Snapshot جدید در لیست موجود در تب Snapshots ظاهر خواهد شد.

3. ایجاد Snapshot از طریق خط فرمان (CLI)

برای ایجاد Snapshot از ماشین مجازی در Proxmox از طریق خط فرمان (CLI)، از دستور qm snapshot استفاده می‌کنیم. این روش برای کاربرانی که ترجیح می‌دهند از طریق خط فرمان با Proxmox کار کنند، بسیار مناسب است.

3.1. دستور ایجاد Snapshot

برای ایجاد Snapshot از ماشین مجازی با شناسه <VMID> و نام snapshot <snapshot-name>، دستور زیر را اجرا کنید:

qm snapshot <VMID> <snapshot-name> --description "Snapshot description"
  • : شناسه ماشین مجازی موردنظر.
  • : نامی که برای Snapshot انتخاب می‌کنید.
  • –description: توضیحی برای Snapshot (اختیاری است).

برای مثال، اگر ماشین مجازی شما با شناسه 101 است و نام Snapshot را before-update می‌خواهید انتخاب کنید، دستور به شکل زیر خواهد بود:

qm snapshot 101 before-update --description "Snapshot before updating the system"

3.2. Snapshot با حافظه (Include Memory)

اگر می‌خواهید هنگام گرفتن Snapshot، وضعیت حافظه ماشین مجازی را نیز ذخیره کنید (مخصوصاً برای ماشین‌های مجازی در حال اجرا)، می‌توانید از گزینه --mem استفاده کنید:

qm snapshot <VMID> <snapshot-name> --mem --description "Snapshot with memory state"

در این صورت، Snapshot شما شامل حافظه (RAM) سیستم نیز خواهد بود.

3.3. بررسی وضعیت Snapshot

برای بررسی وضعیت Snapshotهای موجود، می‌توانید از دستور زیر استفاده کنید:

qm listsnapshot <VMID>

این دستور فهرستی از تمام Snapshotهای موجود برای ماشین مجازی با شناسه <VMID> را نمایش می‌دهد.


4. بازگشت به Snapshot

اگر پس از انجام تغییرات در ماشین مجازی نیاز به بازگشت به وضعیت قبلی (قبل از گرفتن Snapshot) دارید، می‌توانید از دستور qm rollback یا گزینه مناسب در Web UI استفاده کنید.

4.1. بازگشت به Snapshot از طریق Web UI

  1. وارد Web UI شوید و ماشین مجازی موردنظر را انتخاب کنید.
  2. به تب Snapshots بروید و Snapshot موردنظر را از لیست انتخاب کنید.
  3. روی دکمه Rollback کلیک کنید.
  4. تأیید عملیات بازگشت به Snapshot.

4.2. بازگشت به Snapshot از طریق CLI

برای بازگشت به یک Snapshot از طریق CLI، از دستور زیر استفاده می‌کنیم:

qm rollback <VMID> <snapshot-name>

برای مثال، برای بازگشت به Snapshot با نام before-update برای ماشین مجازی با شناسه 101، دستور به شکل زیر خواهد بود:

qm rollback 101 before-update

5. حذف Snapshot

پس از استفاده از Snapshot، ممکن است بخواهید آن را حذف کنید تا فضای ذخیره‌سازی را آزاد کنید. این کار را هم می‌توانید از طریق Web UI و هم از طریق خط فرمان انجام دهید.

5.1. حذف Snapshot از Web UI

  1. وارد Web UI شوید و ماشین مجازی موردنظر را انتخاب کنید.
  2. به تب Snapshots بروید.
  3. Snapshot موردنظر را انتخاب کرده و روی گزینه Remove کلیک کنید.
  4. تأیید حذف Snapshot.

5.2. حذف Snapshot از طریق CLI

برای حذف یک Snapshot از ماشین مجازی، از دستور زیر استفاده کنید:

qm delsnapshot <VMID> <snapshot-name>

برای مثال، برای حذف Snapshot با نام before-update از ماشین مجازی با شناسه 101، دستور به شکل زیر خواهد بود:

qm delsnapshot 101 before-update

6. نکات مهم در استفاده از Snapshot

  • فضای ذخیره‌سازی: گرفتن Snapshot‌ها معمولاً مقداری فضای اضافی در دیسک شما مصرف می‌کند. به همین دلیل باید دقت کنید که فضای کافی برای ذخیره Snapshot‌ها داشته باشید.
  • کاربرد Snapshot: Snapshotها برای بازگشت سریع به وضعیت‌های قبلی مفید هستند، اما بهتر است برای پشتیبان‌گیری از اطلاعات و حفاظت از داده‌ها از راهکارهای بکاپ‌گیری جامع استفاده کنید.
  • تاثیر بر عملکرد: هرچند Snapshot به شما امکان بازگشت سریع به وضعیت قبلی را می‌دهد، اما استفاده از تعداد زیادی Snapshot ممکن است تأثیراتی منفی بر عملکرد ماشین مجازی و ذخیره‌سازی داشته باشد.

جمع‌بندی

Snapshotها ابزاری بسیار مفید در محیط‌های مجازی‌سازی هستند که به شما این امکان را می‌دهند تا وضعیت ماشین مجازی را در یک لحظه خاص ذخیره کنید و در صورت نیاز به آن بازگشت کنید. در این بخش نحوه ایجاد Snapshot از ماشین‌های مجازی در Proxmox VE را از طریق Web UI و خط فرمان (CLI) آموزش دادیم و همچنین نحوه بازگشت به Snapshot و حذف آن را بررسی کردیم. با استفاده از این قابلیت، شما می‌توانید به راحتی از محیط‌های مجازی خود پشتیبان تهیه کرده و تغییرات را به طور ایمن مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از Snapshot برای تست و بازیابی سیستم‌ها” subtitle=”توضیحات کامل”]Snapshot‌ها در محیط‌های مجازی‌سازی ابزاری قدرتمند و بسیار مفید هستند که به‌ویژه در زمینه آزمایش و بازیابی سیستم‌ها از اهمیت ویژه‌ای برخوردارند. این ویژگی به شما اجازه می‌دهد تا وضعیت دقیق سیستم را در یک لحظه خاص ذخیره کرده و در صورت نیاز به راحتی به آن بازگردید. این ابزار برای تست‌های نرم‌افزاری، به‌روزرسانی سیستم‌ها، و همچنین ایجاد نسخه پشتیبان سریع از ماشین‌های مجازی مفید است.

در این بخش، نحوه استفاده از Snapshot‌ها برای تست و بازیابی سیستم‌ها، مزایای آن‌ها، و بهترین شیوه‌های استفاده را توضیح خواهیم داد.


1. مزایای استفاده از Snapshot برای تست سیستم‌ها

Snapshot‌ها امکاناتی را فراهم می‌کنند که به شما امکان انجام آزمایش‌ها و تست‌های بدون ریسک را می‌دهند. برخی از مزایای اصلی استفاده از Snapshot‌ها در تست‌ها به شرح زیر است:

  • آزمایش تغییرات و به‌روزرسانی‌ها: با گرفتن Snapshot از سیستم قبل از هرگونه تغییر یا به‌روزرسانی، می‌توانید تغییرات را آزمایش کنید و در صورت بروز مشکل به راحتی به وضعیت قبلی بازگردید. این کار به‌ویژه برای نصب به‌روزرسانی‌های امنیتی و نرم‌افزاری مفید است.
  • تست نرم‌افزارها و برنامه‌ها: در فرآیند توسعه و آزمایش نرم‌افزار، Snapshot‌ها به شما کمک می‌کنند تا پس از هر آزمایش یا تست نرم‌افزاری، به سرعت سیستم را به وضعیت اولیه برگردانید.
  • تست‌های تغییرات پیکربندی: تغییرات در پیکربندی‌های سیستم، مانند تنظیمات شبکه، سرویس‌ها یا برنامه‌های در حال اجرا، ممکن است باعث ایجاد اختلال یا خرابی شوند. با استفاده از Snapshot، می‌توانید این تغییرات را تست کرده و در صورت نیاز به حالت قبلی برگردید.
  • اجتناب از ریسک‌های محیط‌های تولید: در محیط‌های تولیدی، اعمال تغییرات بدون آزمایش اولیه ممکن است خطرناک باشد. با استفاده از Snapshot‌ها، می‌توانید محیط آزمایشی مشابهی ایجاد کنید و تغییرات را در آنجا آزمایش کنید بدون اینکه ریسک بالایی برای سیستم‌های تولیدی ایجاد شود.

2. استفاده از Snapshot برای بازیابی سیستم‌ها

یکی از اصلی‌ترین کاربردهای Snapshot‌ها بازیابی سیستم‌ها به وضعیت قبل از وقوع مشکل است. این ویژگی در مواقعی که یک تغییر ناخواسته یا خرابی در ماشین مجازی رخ می‌دهد، می‌تواند بسیار مفید واقع شود.

2.1. بازیابی از Snapshot

در صورتی که پس از انجام تغییرات یا آزمایش‌ها با مشکل روبه‌رو شدید، می‌توانید از Snapshot گرفته شده برای بازگشت به وضعیت قبلی استفاده کنید.

مراحل بازیابی از Snapshot از طریق Web UI:
  1. وارد Web UI پروکسی‌مکس شوید.
  2. به ماشین مجازی موردنظر بروید و به تب Snapshots مراجعه کنید.
  3. از لیست Snapshotها، Snapshot موردنظر خود را که قبلاً گرفته‌اید انتخاب کنید.
  4. روی دکمه Rollback کلیک کنید.
  5. پروکسی‌مکس عملیات بازگشت به Snapshot را آغاز می‌کند و پس از مدتی ماشین مجازی به وضعیت قبلی برمی‌گردد.
مراحل بازیابی از Snapshot از طریق CLI:

برای بازیابی از Snapshot با استفاده از دستور CLI، از دستور زیر استفاده کنید:

qm rollback <VMID> <snapshot-name>

مثال:

qm rollback 101 before-update

این دستور ماشین مجازی با شناسه 101 را به Snapshot با نام before-update باز می‌گرداند.

2.2. مواردی که باید در نظر گرفت هنگام بازیابی سیستم

  • تأثیر بر داده‌های جدید: هنگام بازگشت به Snapshot قبلی، هرگونه تغییرات جدیدی که بعد از گرفتن Snapshot انجام داده‌اید، از دست خواهد رفت. این موضوع باید قبل از بازیابی در نظر گرفته شود.
  • بازگشت به وضعیت سالم: اگر مشکل ناشی از تغییرات خاصی بوده باشد، استفاده از Snapshot می‌تواند شما را سریعاً به وضعیت سالم برگرداند. اگر مشکل همچنان ادامه داشت، باید بررسی‌های بیشتری انجام شود.

3. استفاده از Snapshot برای آزمایش‌های نرم‌افزاری و به‌روزرسانی‌ها

یکی از رایج‌ترین موارد استفاده از Snapshot‌ها، آزمایش‌های نرم‌افزاری است. بسیاری از تیم‌ها از Snapshot‌ها برای تست نرم‌افزارهای جدید یا به‌روزرسانی‌های امنیتی استفاده می‌کنند. با استفاده از Snapshot‌ها می‌توانند پیش از اعمال هر تغییر بزرگ، به سرعت محیط آزمایشی مشابهی ایجاد کنند.

3.1. تست به‌روزرسانی‌های سیستم

به‌روزرسانی‌های سیستم همیشه همراه با ریسک‌هایی هستند. اگر به‌روزرسانی به‌درستی انجام نشود، ممکن است سیستم دچار مشکلات جدی شود. با استفاده از Snapshot، می‌توانید از سیستم خود یک نسخه پشتیبان بگیرید و پس از اعمال به‌روزرسانی، اگر مشکلی پیش آمد، به راحتی به Snapshot قبلی برگردید.

مراحل:
  1. قبل از شروع به‌روزرسانی، یک Snapshot از ماشین مجازی بگیرید.
  2. به‌روزرسانی را اعمال کنید.
  3. پس از انجام به‌روزرسانی، سیستم را بررسی کنید.
  4. اگر مشکلی پیش آمد، به راحتی می‌توانید از Snapshot برای بازگشت به وضعیت قبل از به‌روزرسانی استفاده کنید.

3.2. تست نرم‌افزارهای جدید

قبل از نصب نرم‌افزارهای جدید یا برنامه‌های پیچیده، می‌توانید از Snapshot برای تست آن‌ها استفاده کنید. این کار به شما این امکان را می‌دهد که اگر نرم‌افزار جدید باعث ایجاد مشکلات شود، به راحتی به وضعیت قبلی بازگردید.


4. نکات کلیدی در استفاده از Snapshot برای تست و بازیابی سیستم‌ها

  1. حفظ فضای کافی برای ذخیره Snapshot‌ها: هر Snapshot مقداری از فضای دیسک شما را اشغال می‌کند. بنابراین، بهتر است قبل از گرفتن Snapshot، فضای ذخیره‌سازی کافی را بررسی کنید.
  2. حذف Snapshot‌های غیرضروری: پس از اتمام آزمایش یا بازیابی سیستم، بهتر است Snapshot‌های غیرضروری را حذف کنید تا فضای ذخیره‌سازی را آزاد کنید.
  3. تست قبل از اعمال تغییرات: همیشه قبل از اعمال تغییرات بزرگ به سیستم، از Snapshot استفاده کنید. این کار از بروز مشکلات جدی جلوگیری می‌کند.
  4. استفاده از Snapshot برای بازیابی: اگر سیستم دچار خرابی شد، با استفاده از Snapshot می‌توانید سریعاً به وضعیت قبلی بازگردید و از ادامه عملیات عیب‌یابی اجتناب کنید.

جمع‌بندی

استفاده از Snapshot‌ها برای تست و بازیابی سیستم‌ها در محیط‌های مجازی‌سازی مانند Proxmox VE، ابزاری بسیار کاربردی است. Snapshot‌ها به شما این امکان را می‌دهند که بدون نگرانی از بروز مشکلات، تغییرات را آزمایش کنید و در صورت نیاز به راحتی به وضعیت قبلی بازگردید. این قابلیت به‌ویژه در فرآیند به‌روزرسانی‌ها، نصب نرم‌افزارها، و تست پیکربندی‌های جدید مفید است. با بهره‌گیری صحیح از Snapshot‌ها، می‌توانید از سیستم‌های خود در برابر خرابی‌ها محافظت کنید و محیط‌های آزمایشی بدون ریسک ایجاد کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نحوه انجام پشتیبان‌گیری از ماشین‌های مجازی و ذخیره‌سازی نسخه‌های مختلف” subtitle=”توضیحات کامل”]پشتیبان‌گیری از ماشین‌های مجازی (VMs) یکی از مهمترین بخش‌های مدیریت سرور و محیط‌های مجازی است. با استفاده از پشتیبان‌گیری، می‌توان از داده‌ها و تنظیمات ماشین‌های مجازی محافظت کرد و در صورت بروز مشکلات یا خرابی‌های سیستمی، به راحتی به حالت قبلی بازگشت. در این بخش، روش‌های مختلف پشتیبان‌گیری از ماشین‌های مجازی در Proxmox VE به همراه پیکربندی‌ها و دستورات کامندی شرح داده خواهد شد.


1. پشتیبان‌گیری از ماشین‌های مجازی در Proxmox VE

Proxmox VE ابزارهای مختلفی برای پشتیبان‌گیری از ماشین‌های مجازی ارائه می‌دهد. در این سیستم، می‌توان از دو روش اصلی برای پشتیبان‌گیری استفاده کرد: پشتیبان‌گیری از طریق Web UI و از طریق دستورات خط فرمان (CLI).

پشتیبان‌گیری از طریق Web UI

برای پشتیبان‌گیری از ماشین‌های مجازی در Web UI، مراحل زیر را دنبال کنید:

  1. به داشبورد Proxmox VE وارد شوید.
  2. از پنل سمت چپ، ماشین مجازی مورد نظر را انتخاب کنید.
  3. روی ماشین مجازی کلیک راست کرده و گزینه Backup را انتخاب کنید.
  4. پنجره‌ای باز می‌شود که در آن می‌توانید نوع پشتیبان‌گیری (Full or Snapshot) و محل ذخیره‌سازی فایل پشتیبان را انتخاب کنید.
  5. پس از انتخاب تنظیمات مورد نظر، روی Backup کلیک کنید تا عملیات پشتیبان‌گیری آغاز شود.

پشتیبان‌گیری از طریق دستورات کامندی

برای پشتیبان‌گیری از ماشین‌های مجازی از طریق خط فرمان، می‌توانید از دستور vzdump استفاده کنید. دستور vzdump در Proxmox VE برای پشتیبان‌گیری از ماشین‌های مجازی و کانتینرها به‌کار می‌رود.

مثال:
vzdump 101 --storage local --mode snapshot --compress lzo --node pve1

در این مثال:

  • 101 شناسه ماشین مجازی است.
  • --storage local مسیر ذخیره‌سازی پشتیبان است.
  • --mode snapshot نوع پشتیبان‌گیری را به صورت Snapshot تنظیم می‌کند.
  • --compress lzo برای فشرده‌سازی استفاده می‌شود.
  • --node pve1 گره‌ای است که ماشین مجازی در آن قرار دارد.

انتخاب روش‌های مختلف پشتیبان‌گیری

Proxmox VE چندین روش مختلف برای پشتیبان‌گیری ارائه می‌دهد:

  • Full backup: پشتیبان‌گیری کامل از ماشین مجازی، شامل تمام داده‌ها و پیکربندی‌ها.
  • Snapshot backup: فقط یک snapshot از ماشین مجازی گرفته می‌شود. این روش سریع‌تر است، اما فقط تنظیمات و وضعیت کنونی ماشین را ذخیره می‌کند.

2. ذخیره‌سازی نسخه‌های مختلف پشتیبان

یکی از قابلیت‌های مفید در Proxmox VE، امکان ذخیره‌سازی نسخه‌های مختلف پشتیبان است. با تنظیم تعداد نسخه‌های ذخیره‌شده می‌توانید به‌راحتی به نسخه‌های قبلی دسترسی پیدا کنید.

پیکربندی ذخیره‌سازی نسخه‌های مختلف پشتیبان

برای پیکربندی ذخیره‌سازی نسخه‌های مختلف، می‌توانید از فایل پیکربندی vzdump.conf استفاده کنید که در مسیر /etc/pve/vzdump.conf قرار دارد.

تنظیمات نمونه:
maxfiles: 5

در این پیکربندی:

  • maxfiles: 5 مشخص می‌کند که فقط 5 نسخه آخر پشتیبان برای هر ماشین مجازی ذخیره خواهد شد. اگر نسخه‌های بیشتری وجود داشته باشد، نسخه‌های قدیمی‌تر به‌طور خودکار حذف می‌شوند.

استفاده از ذخیره‌سازی خارجی برای نسخه‌های پشتیبان

یکی از راه‌های اطمینان از حفاظت از داده‌ها، ذخیره‌سازی نسخه‌های پشتیبان در محل‌های مختلف است. به‌عنوان مثال، می‌توانید از ذخیره‌سازی‌های خارجی مانند NFS یا iSCSI برای نگهداری نسخه‌های پشتیبان استفاده کنید.

پیکربندی ذخیره‌سازی NFS برای پشتیبان‌گیری:

برای تنظیم ذخیره‌سازی NFS در Proxmox VE، به Web UI بروید و مراحل زیر را دنبال کنید:

  1. به بخش Datacenter بروید.
  2. روی Storage کلیک کرده و گزینه Add را انتخاب کنید.
  3. گزینه NFS را انتخاب کنید.
  4. نام ذخیره‌سازی، آدرس سرور NFS و مسیر اشتراک‌گذاری را وارد کنید.
  5. تنظیمات دیگر مانند دسترسی و سطح ذخیره‌سازی را مشخص کرده و Add را بزنید.

پس از تنظیم ذخیره‌سازی NFS، هنگام انجام پشتیبان‌گیری از ماشین‌های مجازی، می‌توانید از NFS به‌عنوان مقصد ذخیره‌سازی استفاده کنید.

3. استراتژی‌های پشتیبان‌گیری

برای اطمینان از حفظ امنیت داده‌ها، بهتر است استراتژی پشتیبان‌گیری منظمی داشته باشید:

  • پشتیبان‌گیری روزانه: پشتیبان‌گیری روزانه از تمام ماشین‌های مجازی در ساعات کم‌ترافیک.
  • پشتیبان‌گیری هفتگی: انجام پشتیبان‌گیری از ماشین‌های مجازی در پایان هر هفته به‌صورت کامل.
  • پشتیبان‌گیری ماهانه: یک نسخه از تمام ماشین‌های مجازی به‌صورت ماهانه ذخیره شود.

استفاده از ابزارهایی مانند cron برای خودکارسازی این فرآیند می‌تواند مفید باشد. به‌عنوان مثال، برای انجام پشتیبان‌گیری خودکار به‌صورت روزانه، از دستور cron در Proxmox VE استفاده کنید.

تنظیم Cron برای پشتیبان‌گیری خودکار:

برای تنظیم یک پشتیبان‌گیری روزانه، فایل crontab را ویرایش کنید:

crontab -e

سپس خط زیر را برای پشتیبان‌گیری روزانه اضافه کنید:

0 3 * * * vzdump 101 --storage nfs_backup --mode snapshot --compress lzo --node pve1

این دستور پشتیبان‌گیری را هر روز در ساعت 3 صبح اجرا می‌کند.


جمع‌بندی

پشتیبان‌گیری یکی از اساسی‌ترین مراحل مدیریت ماشین‌های مجازی در Proxmox VE است. با استفاده از روش‌های مختلف پشتیبان‌گیری، از جمله پشتیبان‌گیری کامل و snapshot، می‌توان از داده‌های ماشین‌های مجازی محافظت کرد. همچنین تنظیمات ذخیره‌سازی نسخه‌های مختلف پشتیبان و استفاده از ذخیره‌سازی خارجی مانند NFS می‌تواند اطمینان از امنیت داده‌ها را افزایش دهد. برای خودکارسازی پشتیبان‌گیری نیز می‌توان از cron استفاده کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت و بازگردانی Snapshotها” subtitle=”توضیحات کامل”]Snapshot یکی از قابلیت‌های کلیدی در سیستم‌های مجازی است که امکان ثبت وضعیت دقیق یک ماشین مجازی را در یک زمان خاص فراهم می‌کند. با استفاده از Snapshotها می‌توان به راحتی به وضعیت قبلی یک ماشین مجازی بازگشت، بدون اینکه نیازی به نصب مجدد سیستم‌عامل یا برنامه‌ها باشد. در این بخش، نحوه مدیریت و بازگردانی Snapshotها در Proxmox VE به‌طور جامع و با جزئیات بیشتری بررسی می‌شود.


1. ایجاد Snapshot از ماشین مجازی

Snapshot یک نسخه دقیق از وضعیت کنونی ماشین مجازی است که شامل سیستم‌عامل، داده‌ها، برنامه‌ها و پیکربندی‌های ماشین مجازی می‌شود. با این کار، می‌توانید بعداً ماشین مجازی را به همین وضعیت بازگردانی کنید.

ایجاد Snapshot از طریق Web UI

برای ایجاد Snapshot از ماشین مجازی در Web UI، مراحل زیر را دنبال کنید:

  1. وارد داشبورد Proxmox VE شوید.
  2. در نوار کناری، ماشین مجازی مورد نظر را انتخاب کنید.
  3. روی Snapshots در بالای صفحه کلیک کنید.
  4. در پنجره جدید، گزینه Take Snapshot را انتخاب کنید.
  5. یک نام برای Snapshot وارد کنید و گزینه‌های اضافی مانند Snapshot Memory (که وضعیت RAM را نیز شامل می‌شود) را انتخاب کنید.
  6. سپس روی Take Snapshot کلیک کنید تا Snapshot گرفته شود.

ایجاد Snapshot از طریق دستورات خط فرمان

برای ایجاد Snapshot از طریق دستورات خط فرمان، از دستور qm snapshot استفاده کنید. دستور qm برای مدیریت ماشین‌های مجازی در Proxmox VE به‌کار می‌رود.

مثال:
qm snapshot 101 snapshot_name --description "Backup before update"

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • snapshot_name نام دلخواه برای Snapshot است.
  • --description "Backup before update" توضیحی برای SnapShot ایجاد می‌کند که می‌تواند به شما کمک کند برای یادآوری وضعیت Snapshot.

2. مشاهده و مدیریت Snapshotها

پس از ایجاد Snapshot، می‌توانید وضعیت‌های مختلف ماشین مجازی را مشاهده و مدیریت کنید. در Proxmox VE، این کار از طریق Web UI یا دستورات خط فرمان انجام می‌شود.

مشاهده Snapshotها از طریق Web UI

برای مشاهده Snapshotهای موجود، مراحل زیر را انجام دهید:

  1. وارد داشبورد Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را انتخاب کرده و روی Snapshots کلیک کنید.
  3. تمام Snapshotهای مربوط به آن ماشین مجازی در این بخش نمایش داده خواهند شد.
  4. می‌توانید از اینجا Snapshotها را حذف یا بازگردانی کنید.

مشاهده Snapshotها از طریق دستورات خط فرمان

برای مشاهده Snapshotها از طریق خط فرمان، می‌توانید از دستور qm list و qm snapshot استفاده کنید.

مثال:
qm list

این دستور لیستی از تمام ماشین‌های مجازی و وضعیت آنها را نمایش می‌دهد. سپس برای مشاهده Snapshotهای ماشین مجازی خاص، دستور زیر را استفاده کنید:

qm snapshot 101

این دستور تمامی Snapshotهای مربوط به ماشین مجازی با شناسه 101 را نمایش می‌دهد.


3. بازگردانی از Snapshot

یکی از ویژگی‌های مفید Snapshotها، امکان بازگردانی به یک وضعیت خاص است. این کار معمولاً در مواقعی استفاده می‌شود که شما نیاز دارید ماشین مجازی را به وضعیت قبلی خود برگردانید، مثلاً پس از نصب یک به‌روزرسانی یا تغییرات سیستم.

بازگردانی از Snapshot از طریق Web UI

برای بازگردانی ماشین مجازی به یک Snapshot خاص، مراحل زیر را انجام دهید:

  1. وارد داشبورد Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را انتخاب کرده و روی Snapshots کلیک کنید.
  3. از لیست Snapshotها، Snapshot مورد نظر را انتخاب کنید.
  4. گزینه Rollback را انتخاب کنید.
  5. تایید کنید که می‌خواهید ماشین مجازی را به وضعیت Snapshot بازگردانید.

بازگردانی از Snapshot از طریق دستورات خط فرمان

برای بازگردانی ماشین مجازی به یک Snapshot از طریق دستورات خط فرمان، از دستور qm rollback استفاده می‌شود.

مثال:
qm rollback 101 snapshot_name

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • snapshot_name نام Snapshotی است که می‌خواهید به آن بازگردید.

4. حذف Snapshot

اگر دیگر نیازی به یک Snapshot ندارید، می‌توانید آن را حذف کنید تا فضای ذخیره‌سازی آزاد شود. حذف Snapshot از طریق Web UI و دستورات خط فرمان قابل انجام است.

حذف Snapshot از طریق Web UI

برای حذف Snapshot از Web UI، مراحل زیر را انجام دهید:

  1. وارد داشبورد Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را انتخاب کرده و روی Snapshots کلیک کنید.
  3. Snapshot مورد نظر را انتخاب کرده و روی گزینه Delete کلیک کنید.
  4. تایید کنید که می‌خواهید Snapshot حذف شود.

حذف Snapshot از طریق دستورات خط فرمان

برای حذف Snapshot از خط فرمان، از دستور qm delsnapshot استفاده کنید.

مثال:
qm delsnapshot 101 snapshot_name

در این دستور:

  • 101 شناسه ماشین مجازی است.
  • snapshot_name نام Snapshotی است که می‌خواهید حذف کنید.

5. نکات مهم در استفاده از Snapshotها

  • فضای ذخیره‌سازی: Snapshotها می‌توانند حجم زیادی از فضای ذخیره‌سازی را مصرف کنند، به‌ویژه زمانی که به طور مداوم از آنها استفاده می‌شود. باید مطمئن شوید که فضای کافی برای ذخیره Snapshotها وجود دارد.
  • اثر بر عملکرد: استفاده از Snapshotها می‌تواند بر عملکرد سیستم تأثیر بگذارد، به‌ویژه در هنگام بازگردانی یا حذف Snapshotها. بهتر است که این عملیات‌ها را در زمان‌های کم‌ترافیک انجام دهید.
  • نهایت استفاده از Snapshotها: Snapshotها برای مقاصد موقت مناسب هستند. برای پشتیبان‌گیری طولانی‌مدت و ایمن‌تر، استفاده از پشتیبان‌گیری‌های معمول توصیه می‌شود.

جمع‌بندی

Snapshotها ابزار قدرتمندی برای ذخیره وضعیت دقیق یک ماشین مجازی در زمان مشخص هستند. با استفاده از Snapshotها، می‌توان به راحتی وضعیت ماشین مجازی را ذخیره و در صورت نیاز به وضعیت قبلی بازگرداند. این ویژگی در مدیریت ماشین‌های مجازی بسیار مفید است و به شما کمک می‌کند که به سرعت به وضعیت‌های قبلی سیستم بازگردید. در این بخش نحوه ایجاد، مشاهده، بازگردانی و حذف Snapshotها به‌صورت گرافیکی و خط فرمان شرح داده شد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات پشتیبان‌گیری خودکار و زمانبندی آن ” subtitle=”توضیحات کامل”]پشتیبان‌گیری خودکار یکی از نیازهای مهم در محیط‌های مجازی است. با استفاده از این ویژگی، می‌توان از ماشین‌های مجازی به‌صورت دوره‌ای پشتیبان گرفت و در صورت بروز مشکل، سریعاً به وضعیت قبلی بازگشت. در این بخش، نحوه تنظیم پشتیبان‌گیری خودکار و زمانبندی آن در Proxmox VE را بررسی خواهیم کرد.


1. پشتیبان‌گیری خودکار ماشین‌های مجازی

در Proxmox VE، امکان تنظیم پشتیبان‌گیری خودکار از ماشین‌های مجازی وجود دارد. برای این کار، می‌توان از ویژگی Backup در Proxmox VE و ابزار زمان‌بندی Cron استفاده کرد.

تنظیم پشتیبان‌گیری خودکار از طریق Web UI

برای تنظیم پشتیبان‌گیری خودکار از طریق Web UI، مراحل زیر را دنبال کنید:

  1. وارد داشبورد Proxmox VE شوید.
  2. از نوار کناری، به بخش Datacenter بروید.
  3. در تب Backup، بر روی گزینه Add کلیک کنید.
  4. در پنجره جدید، تنظیمات پشتیبان‌گیری را وارد کنید:
    • Selection: انتخاب ماشین‌های مجازی مورد نظر برای پشتیبان‌گیری.
    • Storage: محل ذخیره‌سازی پشتیبان‌ها (به‌عنوان مثال، local یا NFS).
    • Mode: انتخاب نوع پشتیبان‌گیری (Full یا Snapshot).
    • Compression: انتخاب فرمت فشرده‌سازی (Gzip یا LZO).
    • Retention: تعداد نسخه‌های پشتیبان که باید نگهداری شوند.
    • Schedule: زمان‌بندی پشتیبان‌گیری (در ادامه در مورد زمانبندی توضیح خواهیم داد).
  5. روی Add کلیک کنید تا پشتیبان‌گیری خودکار تنظیم شود.

تنظیم پشتیبان‌گیری خودکار از طریق خط فرمان (Cron Jobs)

برای تنظیم پشتیبان‌گیری خودکار از طریق خط فرمان، می‌توانید از cron jobs برای زمان‌بندی پشتیبان‌گیری استفاده کنید. ابتدا باید اسکریپت پشتیبان‌گیری را نوشته و سپس آن را در cron تنظیم کنید.

1. نوشتن اسکریپت پشتیبان‌گیری

اسکریپت پشتیبان‌گیری ساده‌ای برای ماشین مجازی‌ها به‌صورت زیر می‌تواند باشد:

#!/bin/bash
# اسکریپت پشتیبان‌گیری خودکار

# مشخص کردن ماشین مجازی
VMID=101

# مسیر ذخیره‌سازی
BACKUP_DIR="/var/lib/vz/dump"

# انجام پشتیبان‌گیری
vzdump $VMID --storage local --mode snapshot --compress lzo --dumpdir $BACKUP_DIR

این اسکریپت با استفاده از دستور vzdump از ماشین مجازی با شناسه 101 یک پشتیبان تهیه می‌کند. پشتیبان‌گیری به حالت snapshot گرفته می‌شود و فایل‌های فشرده با فرمت LZO ذخیره خواهند شد.

2. زمان‌بندی اسکریپت با استفاده از Cron

برای زمان‌بندی این اسکریپت از cron استفاده می‌کنیم. به‌عنوان مثال، اگر بخواهید پشتیبان‌گیری هر شب در ساعت 2:00 صبح انجام شود، باید مراحل زیر را دنبال کنید:

  1. ویرایش کران جاب‌ها با دستور:
    crontab -e
    
  2. اضافه کردن دستور زیر به فایل کرون:
    0 2 * * * /path/to/backup-script.sh
    

    در این دستور:

    • 0 2 * * *: تعیین می‌کند که اسکریپت هر شب ساعت 2:00 صبح اجرا شود.
    • /path/to/backup-script.sh: مسیر اسکریپت پشتیبان‌گیری که نوشته‌اید.
3. ذخیره و خروج از ویرایشگر

با ذخیره و بستن فایل، کرون جاب تنظیم شده و پشتیبان‌گیری به‌صورت خودکار انجام می‌شود.


2. تنظیم زمان‌بندی پشتیبان‌گیری

برای تنظیم زمان‌بندی پشتیبان‌گیری در Proxmox VE از Web UI، نیاز به استفاده از ویژگی Schedule در تنظیمات Backup دارید. از این طریق می‌توانید زمان دقیق انجام پشتیبان‌گیری‌ها را مشخص کنید.

تنظیم زمان‌بندی از Web UI

  1. در بخش Backup در Web UI، پس از اضافه کردن ماشین‌های مجازی برای پشتیبان‌گیری، روی گزینه Schedule کلیک کنید.
  2. در قسمت Schedule، می‌توانید زمان‌های مختلف را برای انجام پشتیبان‌گیری تنظیم کنید:
    • انتخاب روزهای هفته
    • انتخاب ساعت و دقیقه
    • تنظیم ماه‌ها یا روزهای خاص
  3. پس از تنظیم زمان‌بندی، روی Save کلیک کنید.

3. ذخیره‌سازی و مدیریت پشتیبان‌ها

پس از تنظیم پشتیبان‌گیری خودکار، مهم است که محل ذخیره‌سازی پشتیبان‌ها را نیز مدیریت کنید. در Proxmox VE، می‌توانید از انواع مختلف ذخیره‌سازی مانند Local Storage، NFS یا Ceph برای نگهداری پشتیبان‌ها استفاده کنید.

انتخاب محل ذخیره‌سازی

  1. در هنگام تنظیم پشتیبان‌گیری، به قسمت Storage رفته و نوع ذخیره‌سازی را انتخاب کنید:
    • Local Storage: پشتیبان‌ها بر روی هارد دیسک محلی ذخیره می‌شوند.
    • NFS: پشتیبان‌ها در یک سرور NFS ذخیره می‌شوند.
    • Ceph: استفاده از ذخیره‌سازی توزیع‌شده برای پشتیبان‌ها.

مدیریت نسخه‌های پشتیبان

در قسمت Retention، می‌توانید تعداد نسخه‌های پشتیبان که باید نگهداری شوند را تعیین کنید. به‌عنوان مثال، می‌توانید مشخص کنید که فقط 7 نسخه آخر پشتیبان‌ها نگه‌داشته شوند و پشتیبان‌های قدیمی‌تر به‌صورت خودکار حذف شوند.


4. نحوه بازگردانی پشتیبان‌ها

در صورتی که نیاز به بازگردانی ماشین مجازی از پشتیبان‌ها داشته باشید، می‌توانید به راحتی این کار را انجام دهید.

بازگردانی از پشتیبان از طریق Web UI

  1. وارد داشبورد Proxmox VE شوید.
  2. ماشین مجازی مورد نظر را انتخاب کنید.
  3. از قسمت Backup، روی پشتیبان مورد نظر کلیک کرده و گزینه Restore را انتخاب کنید.
  4. تنظیمات بازگردانی را تایید کرده و عملیات بازگردانی را شروع کنید.

بازگردانی از پشتیبان از طریق دستورات خط فرمان

برای بازگردانی پشتیبان از طریق خط فرمان، از دستور vzdump استفاده می‌شود.

مثال:
vzdump --restore /var/lib/vz/dump/vm-101-backup.tar.lzo 101

در این دستور:

  • /var/lib/vz/dump/vm-101-backup.tar.lzo: مسیر فایل پشتیبان.
  • 101: شناسه ماشین مجازی که باید بازگردانی شود.

5. نکات مهم در پشتیبان‌گیری خودکار

  • فضای ذخیره‌سازی کافی: مطمئن شوید که فضای کافی برای ذخیره پشتیبان‌ها در محل انتخابی وجود دارد.
  • تست بازگردانی: به‌طور منظم، عملیات بازگردانی از پشتیبان‌ها را تست کنید تا اطمینان حاصل کنید که پشتیبان‌ها به درستی کار می‌کنند.
  • پشتیبان‌گیری از چندین ماشین مجازی: می‌توانید پشتیبان‌گیری خودکار را برای چندین ماشین مجازی تنظیم کنید، اما باید دقت کنید که منابع سرور برای پشتیبان‌گیری همزمان ماشین‌های مجازی کافی باشد.

جمع‌بندی

در این بخش، نحوه تنظیم پشتیبان‌گیری خودکار در Proxmox VE به‌طور کامل بررسی شد. از طریق Web UI و دستورات خط فرمان می‌توان زمان‌بندی و تنظیمات مختلف پشتیبان‌گیری را انجام داد. همچنین، نحوه بازگردانی پشتیبان‌ها و مدیریت نسخه‌های پشتیبان توضیح داده شد. با استفاده از پشتیبان‌گیری خودکار، می‌توان از ماشین‌های مجازی به‌صورت دوره‌ای پشتیبان گرفت و در مواقع نیاز به راحتی آنها را بازگرداند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 9. مدیریت ماشین‌های مجازی در محیط‌های خوشه‌ای (Clustering)”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد و مدیریت ماشین‌های مجازی در یک Cluster ” subtitle=”توضیحات کامل”]در محیط Proxmox VE، کلاستر به مجموعه‌ای از سرورهای فیزیکی اطلاق می‌شود که به‌صورت مرکزی مدیریت می‌شوند و به شما این امکان را می‌دهند که منابع مختلف را بین ماشین‌های مجازی (VM) به‌طور مؤثر توزیع کنید. برای انجام این کار، ابتدا باید یک Cluster ایجاد کنید و سپس ماشین‌های مجازی را در این Cluster مدیریت کنید. در این بخش، فرآیند ایجاد و مدیریت ماشین‌های مجازی در یک Cluster Proxmox VE را به‌طور کامل بررسی می‌کنیم.


1. آماده‌سازی محیط Cluster در Proxmox VE

برای شروع، لازم است که یک Cluster Proxmox VE ایجاد کرده باشید. قبل از ایجاد Cluster، باید مطمئن شوید که تمام سرورهای شما به یکدیگر متصل هستند و دسترسی شبکه‌ای بین آنها برقرار است.

مراحل ایجاد Cluster در Proxmox VE:

  1. نصب Proxmox VE بر روی سرورهای فیزیکی: ابتدا باید Proxmox VE را بر روی هر یک از سرورهای فیزیکی که می‌خواهید در Cluster قرار دهید، نصب کنید.
  2. ایجاد Cluster:
    • به سرور اصلی (که قرار است به‌عنوان “Master Node” استفاده شود) وارد شوید.
    • از طریق Web UI یا دستورات خط فرمان، Cluster را ایجاد کنید.

    برای ایجاد Cluster از طریق Web UI، مراحل زیر را دنبال کنید:

    • وارد صفحه Datacenter شوید.
    • در تب Cluster، گزینه Create Cluster را انتخاب کنید.
    • نام Cluster را وارد کنید و روی Create کلیک کنید.

    برای ایجاد Cluster از طریق دستورات خط فرمان، از دستور زیر استفاده کنید:

    pvecm create cluster-name
    

    این دستور Cluster را با نام مشخص‌شده ایجاد می‌کند. به‌طور پیش‌فرض، سرور اصلی به‌عنوان “Master Node” شناخته می‌شود.

  3. اتصال سرورهای دیگر به Cluster:
    • حالا که Cluster ایجاد شده است، می‌توانید سایر سرورهای Proxmox VE را به آن اضافه کنید.
    • برای این کار، باید وارد سرورهای دیگر شوید و دستور زیر را اجرا کنید:
    pvecm add IP-of-Master-Node
    

    این دستور باعث می‌شود که سرورهای دیگر به Cluster متصل شوند و اطلاعات مربوط به Master Node دریافت کنند.


2. ایجاد ماشین‌های مجازی (VMs) در Cluster

پس از ایجاد Cluster و اتصال سرورهای مختلف به آن، می‌توانید ماشین‌های مجازی را در Cluster ایجاد و مدیریت کنید. در اینجا، مراحل ایجاد ماشین مجازی در یک Cluster Proxmox VE را بررسی خواهیم کرد.

1. ایجاد VM از طریق Web UI:

  1. وارد داشبورد Proxmox VE شوید.
  2. در بخش Datacenter، به Node مورد نظر بروید.
  3. از تب Create VM برای ایجاد ماشین مجازی جدید استفاده کنید.
  4. در پنجره باز شده، گزینه‌های زیر را پیکربندی کنید:
    • General: نام ماشین مجازی و ID را وارد کنید.
    • OS: سیستم‌عامل مورد نظر برای نصب را انتخاب کنید.
    • System: نوع پلتفرم (BIOS یا UEFI) و پیکربندی‌های دیگر مانند نوع پشتیبانی از KVM را تنظیم کنید.
    • Hard Disk: نوع دیسک (SCSI, IDE, VirtIO) و فضای ذخیره‌سازی (برای انتخاب بین محلی یا ذخیره‌سازی شبکه) را مشخص کنید.
    • CPU: تعداد هسته‌ها و مقدار CPU که به ماشین مجازی اختصاص داده می‌شود.
    • Memory: حافظه RAM مورد نیاز برای VM را وارد کنید.
    • Network: نوع کارت شبکه (Bridge, NAT, etc.) را انتخاب کنید.
  5. بعد از پیکربندی تمامی بخش‌ها، بر روی Finish کلیک کنید تا ماشین مجازی ایجاد شود.

2. ایجاد VM از طریق دستورات خط فرمان:

برای ایجاد ماشین مجازی از طریق خط فرمان در Cluster، می‌توانید از دستور qm استفاده کنید. به‌طور مثال، برای ایجاد یک ماشین مجازی جدید با شناسه 101، دستور زیر را وارد می‌کنید:

qm create 101 --name vm-name --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --cdrom /path/to/iso

این دستور:

  • 101: شناسه ماشین مجازی (ID)
  • --name vm-name: نام ماشین مجازی
  • --memory 2048: تخصیص 2 گیگابایت RAM
  • --cores 2: تخصیص 2 هسته CPU
  • --net0 virtio,bridge=vmbr0: انتخاب کارت شبکه VirtIO و اتصال به شبکه vmbr0
  • --cdrom /path/to/iso: تعیین فایل ISO برای نصب سیستم‌عامل

3. مدیریت منابع در Cluster Proxmox VE

در Cluster، شما می‌توانید منابع مختلف مانند CPU، حافظه، ذخیره‌سازی و شبکه را بین سرورها و ماشین‌های مجازی تقسیم کنید. این کار به شما کمک می‌کند تا به‌طور بهینه از منابع موجود استفاده کنید.

1. تخصیص منابع به ماشین‌های مجازی:

در پروکسموکس، ماشین‌های مجازی می‌توانند منابع مختلفی مانند CPU و RAM را از Nodeها دریافت کنند. هنگامی که شما یک VM را در یک Cluster ایجاد می‌کنید، به طور خودکار از منابع مربوط به Node اختصاص داده می‌شود، ولی می‌توانید این منابع را مدیریت کنید.

  • تخصیص CPU: تعداد هسته‌ها و قدرت پردازشی که به هر ماشین مجازی تخصیص داده می‌شود.
  • تخصیص RAM: حافظه مورد نیاز برای هر ماشین مجازی.
  • تخصیص Disk: فضای ذخیره‌سازی مورد نیاز برای ماشین مجازی.

برای تغییر تخصیص منابع یک ماشین مجازی از طریق خط فرمان، می‌توانید از دستور qm استفاده کنید:

qm set 101 --memory 4096 --cores 4

این دستور به ماشین مجازی 101 چهار گیگابایت RAM و 4 هسته CPU اختصاص می‌دهد.

2. تخصیص منابع ذخیره‌سازی:

در Cluster، شما می‌توانید منابع ذخیره‌سازی از سرورهای مختلف را به ماشین‌های مجازی اختصاص دهید. برای این کار می‌توانید از NFS، Ceph یا Local Storage استفاده کنید.

برای پیکربندی ذخیره‌سازی از طریق Web UI:

  1. به Datacenter بروید.
  2. در تب Storage، گزینه Add را انتخاب کنید و نوع ذخیره‌سازی را مشخص کنید.
  3. مسیر ذخیره‌سازی و تنظیمات مربوطه را وارد کرده و گزینه Add را انتخاب کنید.

4. مدیریت ماشین‌های مجازی در Cluster

پس از ایجاد ماشین‌های مجازی در یک Cluster، شما می‌توانید آنها را به راحتی مدیریت کنید. برخی از عملیات مدیریتی معمول عبارتند از:

1. مشاهده وضعیت ماشین‌های مجازی:

برای مشاهده وضعیت ماشین‌های مجازی در Cluster، می‌توانید به راحتی از Web UI استفاده کنید. در تب Datacenter، تمام ماشین‌های مجازی به همراه وضعیت فعلی آنها (در حال اجرا، متوقف، تعلیق و …) نمایش داده می‌شوند.

2. تغییر تنظیمات ماشین‌های مجازی:

از طریق Web UI، می‌توانید تنظیمات ماشین‌های مجازی را تغییر دهید. به‌عنوان مثال، می‌توانید منابع تخصیص‌یافته مانند CPU و RAM را افزایش یا کاهش دهید.

3. انتقال ماشین‌های مجازی بین Nodes:

یکی از ویژگی‌های مفید در Cluster، قابلیت Live Migration است که به شما این امکان را می‌دهد که ماشین‌های مجازی را بدون توقف به سرور دیگری منتقل کنید. برای انجام این کار، در Web UI:

  • ماشین مجازی را انتخاب کنید.
  • از منوی بالا گزینه Migrate را انتخاب کنید.
  • Node مقصد را انتخاب کرده و دکمه Migrate را فشار دهید.

4. پشتیبان‌گیری و بازیابی ماشین‌های مجازی:

در Cluster، می‌توانید از قابلیت Backup و Restore برای انجام پشتیبان‌گیری و بازیابی ماشین‌های مجازی استفاده کنید.


5. نظارت و بررسی عملکرد ماشین‌های مجازی

برای بررسی عملکرد ماشین‌های مجازی در Cluster، می‌توانید از ابزارهای نظارتی Proxmox VE استفاده کنید. از بخش Datacenter، اطلاعاتی مانند استفاده از CPU، RAM و Disk مشاهده می‌شود.

برای بررسی جزئیات بیشتر، می‌توانید از دستور pveperf برای بررسی عملکرد کلی سیستم و ماشین‌های مجازی استفاده کنید.


جمع‌بندی

در این بخش، نحوه ایجاد و مدیریت ماشین‌های مجازی در یک Proxmox Cluster بررسی شد. ابتدا توضیح دادیم که چگونه می‌توان یک Cluster را ایجاد کرده و سرورها را به آن اضافه کرد. سپس، مراحل ایجاد ماشین‌های مجازی از طریق Web UI و دستورات خط فرمان توضیح داده شد. علاوه بر این، نحوه تخصیص منابع، مدیریت ماشین‌های مجازی و نظارت بر عملکرد آنها نیز شرح داده شد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتقال ماشین‌های مجازی بین نودهای مختلف در کلاستر” subtitle=”توضیحات کامل”]در Proxmox VE Cluster، انتقال ماشین‌های مجازی بین نودهای مختلف می‌تواند ضروری باشد، به‌خصوص در مواقعی که نیاز به بارگذاری مجدد یا نگهداری نودهای خاص دارید. این عملیات معمولاً به‌عنوان Live Migration یا Offline Migration شناخته می‌شود، که بسته به نیاز و وضعیت ماشین مجازی، انتخاب می‌شود.

در این بخش، نحوه انتقال ماشین‌های مجازی بین نودهای مختلف در Proxmox VE به‌صورت گرافیکی و خط فرمان توضیح داده می‌شود.


1. پیش‌نیازهای انتقال ماشین‌های مجازی بین نودها

قبل از شروع فرآیند انتقال ماشین‌های مجازی، باید به برخی از پیش‌نیازها توجه کنید:

  1. Proxmox VE Cluster باید به‌درستی پیکربندی شده باشد. همه نودها باید به یکدیگر متصل و در یک Cluster قرار داشته باشند.
  2. Shared Storage: برای انجام انتقال ماشین‌های مجازی بدون وقفه، به shared storage نیاز است. این نوع ذخیره‌سازی به شما این امکان را می‌دهد که ماشین مجازی بین نودها جابجا شود بدون اینکه به داده‌های داخل ماشین مجازی آسیبی برسد. به همین دلیل، از NFS، Ceph، iSCSI یا هر ذخیره‌سازی اشتراکی دیگر استفاده می‌شود.
  3. شبکه مناسب: نودهای موجود در Cluster باید در یک شبکه با پهنای باند کافی برای انجام عملیات انتقال داده‌ها و ماشین‌های مجازی قرار داشته باشند.

2. انتقال ماشین‌های مجازی از طریق Web UI

در Proxmox VE Web UI، مراحل زیر را دنبال کنید تا ماشین مجازی را بین نودهای مختلف انتقال دهید:

  1. وارد Proxmox Web UI شوید و به بخش Datacenter بروید.
  2. در Datacenter، از بخش Node نود مبدأ را انتخاب کنید که ماشین مجازی در آن قرار دارد.
  3. سپس از لیست ماشین‌های مجازی، ماشینی را که قصد دارید منتقل کنید انتخاب کنید.
  4. در منوی بالای صفحه، گزینه Migrate را انتخاب کنید.در این مرحله، یک پنجره پاپ‌آپ باز می‌شود که شما را برای ادامه عملیات راهنمایی می‌کند.
  5. در پنجره Migrate Virtual Machine، نود مقصد را از منوی کشویی انتخاب کنید. این نود باید بخشی از Cluster شما باشد.
  6. اگر همه پیش‌نیازها برآورده شده باشد، Shared Storage و شبکه برای ماشین مجازی به‌درستی پیکربندی شده باشند، گزینه‌های Live Migration یا Offline Migration را مشاهده خواهید کرد.
    • Live Migration: این نوع انتقال زمانی استفاده می‌شود که ماشین مجازی در حال اجرا است و نیازی به توقف آن نیست.
    • Offline Migration: این نوع انتقال زمانی استفاده می‌شود که ماشین مجازی باید خاموش شود.
  7. پس از انتخاب نود مقصد و نوع مهاجرت، بر روی Migrate کلیک کنید تا فرآیند انتقال آغاز شود.
  8. بعد از شروع فرآیند، شما می‌توانید وضعیت مهاجرت را مشاهده کنید و در صورت لزوم توقف آن را از طریق Cancel انجام دهید.

3. انتقال ماشین‌های مجازی از طریق خط فرمان (CLI)

اگر می‌خواهید ماشین مجازی را از طریق خط فرمان بین نودهای مختلف در Proxmox VE Cluster منتقل کنید، می‌توانید از دستور qm migrate استفاده کنید.

3.1. Syntax دستور qm migrate

دستور qm migrate به این صورت است:

qm migrate <vmid> <destination_node> --online
  • <vmid>: شناسه ماشین مجازی که باید منتقل شود.
  • <destination_node>: نام نود مقصد که می‌خواهید ماشین مجازی به آن منتقل شود.
  • --online: این گزینه برای Live Migration است، که اجازه می‌دهد ماشین مجازی در حال اجرا منتقل شود. اگر می‌خواهید از Offline Migration استفاده کنید، این گزینه را حذف کنید.

3.2. مثال دستور qm migrate

برای مهاجرت یک ماشین مجازی با شناسه 101 از نود node1 به نود node2 به‌صورت زنده (Live Migration)، دستور زیر را اجرا کنید:

qm migrate 101 node2 --online

اگر می‌خواهید ماشین مجازی را به‌صورت Offline Migration منتقل کنید (که ماشین مجازی باید ابتدا خاموش شود)، دستور زیر را اجرا کنید:

qm migrate 101 node2

3.3. بررسی وضعیت انتقال

برای بررسی وضعیت مهاجرت، می‌توانید از دستور qm status استفاده کنید:

qm status 101

این دستور وضعیت فعلی ماشین مجازی با شناسه 101 را نمایش می‌دهد. اگر مهاجرت به‌درستی انجام شود، وضعیت به‌روزرسانی شده و نشان‌دهنده نود مقصد خواهد بود.


4. نکات مهم در هنگام انجام Migration

  1. محدودیت‌های Live Migration: برای انجام Live Migration، ماشین مجازی باید به ذخیره‌سازی مشترک دسترسی داشته باشد. همچنین، سخت‌افزار و پیکربندی ماشین مجازی باید مشابه باشند تا امکان انتقال بدون مشکل فراهم شود.
  2. پیکربندی شبکه و ذخیره‌سازی: ماشین مجازی باید به ذخیره‌سازی مشترک (مثل NFS یا Ceph) متصل باشد تا داده‌ها در هنگام مهاجرت بدون مشکل انتقال یابند.
  3. تأثیر Migration بر عملکرد: در هنگام Live Migration، ماشین مجازی همچنان در حال اجرا خواهد بود، اما ممکن است تأخیر جزئی در پاسخ‌دهی مشاهده شود. برای مهاجرت‌های بزرگ و ماشین‌های مجازی با بار زیاد، بهتر است از Offline Migration استفاده کنید.

جمع‌بندی

انتقال ماشین‌های مجازی بین نودهای مختلف در Proxmox VE Cluster یکی از قابلیت‌های حیاتی برای اطمینان از دسترسی بالا و عملکرد بی‌وقفه است. این عملیات می‌تواند به‌صورت Live Migration یا Offline Migration انجام شود و در هر صورت، باید اطمینان حاصل کنید که shared storage و شبکه برای انتقال بدون مشکل ماشین‌های مجازی پیکربندی شده است. هم از طریق Web UI و هم از طریق خط فرمان می‌توانید این عملیات را انجام دهید، که هرکدام دارای مزایای خاص خود هستند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی HA (High Availability) برای ماشین‌های مجازی” subtitle=”توضیحات کامل”]High Availability (HA) به معنای دسترسی بالا است و در دنیای Proxmox VE ، این ویژگی به این معناست که ماشین‌های مجازی به‌گونه‌ای پیکربندی می‌شوند که در صورت بروز خرابی در یکی از نودهای خوشه، ماشین مجازی به‌طور خودکار به نود دیگری منتقل شود. این ویژگی برای اطمینان از دسترسی 24 ساعته و بدون وقفه به سرویس‌ها و برنامه‌ها ضروری است.

پیکربندی HA در Proxmox VE به شما کمک می‌کند که ماشین‌های مجازی با دسترسی بالا و بدون وقفه اجرا شوند. در این بخش، نحوه پیکربندی HA برای ماشین‌های مجازی در Proxmox VE توضیح داده می‌شود.


1. پیش‌نیازهای پیکربندی HA

قبل از راه‌اندازی HA برای ماشین‌های مجازی در خوشه Proxmox VE، باید اطمینان حاصل کنید که موارد زیر را رعایت کرده‌اید:

  1. پیکربندی خوشه (Cluster): ابتدا باید یک Proxmox VE Cluster داشته باشید که حداقل شامل دو نود باشد. این خوشه باید به‌درستی تنظیم شده و نودها باید به هم متصل باشند.
  2. شبکه مشترک: نودهای خوشه باید در یک شبکه مشترک متصل باشند تا اطلاعات و وضعیت ماشین‌های مجازی به‌طور مؤثر بین نودها به اشتراک گذاشته شود.
  3. Shared Storage: برای اطمینان از اینکه ماشین‌های مجازی می‌توانند به‌راحتی بین نودها منتقل شوند، استفاده از ذخیره‌سازی مشترک ضروری است. این ذخیره‌سازی باید به همه نودهای خوشه قابل دسترسی باشد.
    • برای پیکربندی shared storage می‌توانید از انواع مختلف ذخیره‌سازی مانند NFS، Ceph یا iSCSI استفاده کنید.
  4. تنظیمات PVE Manager: برای پیکربندی HA، باید Proxmox VE Manager (در Web UI) تنظیمات لازم را انجام دهید.

2. فعال‌سازی HA در Proxmox VE

برای پیکربندی HA در Proxmox VE، ابتدا باید HA Manager را برای خوشه خود فعال کنید. در اینجا نحوه انجام این کار به‌صورت گرافیکی و خط فرمان توضیح داده شده است.

2.1. فعال‌سازی HA از طریق Web UI

  1. وارد Proxmox Web UI شوید و به بخش Datacenter بروید.
  2. از منوی سمت چپ، روی HA کلیک کنید تا صفحه مربوط به مدیریت High Availability باز شود.
  3. برای فعال‌سازی HA، باید خوشه شما آماده باشد. در صورتی که همه نودها به درستی پیکربندی شده باشند، در این صفحه می‌توانید ماشین مجازی‌هایی که می‌خواهید به‌صورت HA تنظیم شوند را مشاهده کنید.
  4. برای هر ماشین مجازی، گزینه Add را برای اضافه کردن آن به HA انتخاب کنید.
    • بعد از انتخاب ماشین مجازی، می‌توانید برای آن تنظیمات HA خاصی را تعیین کنید.
    • به‌عنوان مثال، می‌توانید Nodeهای اولویت‌دار را انتخاب کنید یا زمان‌بندی را تنظیم کنید.
  5. پس از افزودن ماشین مجازی، پروکسموکس به‌طور خودکار آن را برای شما به HA اضافه می‌کند.

2.2. فعال‌سازی HA از طریق خط فرمان

برای فعال‌سازی HA از طریق خط فرمان، باید از دستور ha-manager استفاده کنید. در اینجا نحوه فعال‌سازی HA برای یک ماشین مجازی آورده شده است:

  1. برای فعال‌سازی HA روی ماشین مجازی با شناسه 101، از دستور زیر استفاده کنید:
    ha-manager add 101
    
    • 101: شناسه ماشین مجازی است که باید در HA اضافه شود.
  2. بعد از افزودن ماشین مجازی به HA، می‌توانید وضعیت آن را با استفاده از دستور زیر بررسی کنید:
    ha-manager status
    

    این دستور وضعیت کلیه ماشین‌های مجازی در HA را نشان می‌دهد.


3. تنظیمات و اولویت‌بندی در HA

برای استفاده بهینه از ویژگی HA، شما می‌توانید تنظیمات مختلفی را برای ماشین‌های مجازی خود اعمال کنید.

3.1. اولویت‌گذاری (Priorities) برای ماشین‌های مجازی

شما می‌توانید برای هر ماشین مجازی اولویت تعیین کنید تا در صورت بروز مشکل در یکی از نودها، ماشین‌های مجازی با اولویت بالاتر اول مهاجرت کنند. برای تنظیم اولویت ماشین مجازی از طریق Web UI یا خط فرمان استفاده کنید.

از طریق Web UI:

  1. به بخش HA بروید.
  2. روی ماشین مجازی مورد نظر کلیک کنید و گزینه Edit را انتخاب کنید.
  3. در قسمت Priority، مقدار اولویت را وارد کنید.
  4. پس از اعمال تغییرات، روی Save کلیک کنید.

از طریق خط فرمان: برای تنظیم اولویت از دستور زیر استفاده کنید:

ha-manager set <vmid> --priority <value>
  • vmid: شناسه ماشین مجازی
  • <value>: مقدار اولویت (عدد از 1 تا 100)

3.2. زمان‌بندی (Failover) و زمان بازیابی (Recovery Time)

زمانی که یک نود از دسترس خارج می‌شود، HA باید به‌طور خودکار ماشین‌های مجازی را به نودهای سالم منتقل کند. شما می‌توانید زمان‌بندی برای این عملیات را تنظیم کنید. در صورت عدم تعیین زمان‌بندی خاص، عملیات انتقال به‌صورت خودکار انجام خواهد شد.

برای تغییر زمان‌بندی، از گزینه‌های HA Manager می‌توانید استفاده کنید:

ha-manager set <vmid> --failover-time <time>
  • <time>: زمان مورد نظر برای انجام عملیات انتقال (بر حسب ثانیه).

4. نظارت و بررسی وضعیت HA

بعد از پیکربندی HA، لازم است که وضعیت ماشین‌های مجازی و نودهای موجود در خوشه را نظارت کنید.

4.1. از طریق Web UI:

  1. در Proxmox Web UI، به بخش Datacenter > HA بروید.
  2. وضعیت کلیه ماشین‌های مجازی را می‌توانید مشاهده کنید که آیا در حالت HA هستند یا خیر.
  3. همچنین می‌توانید وضعیت هر ماشین مجازی را از نظر Migration، Failover و Recovery بررسی کنید.

4.2. از طریق خط فرمان:

برای مشاهده وضعیت HA و بررسی وضعیت ماشین‌های مجازی از دستور زیر استفاده کنید:

ha-manager status

این دستور وضعیت کلیه ماشین‌های مجازی HA را نمایش می‌دهد و اطلاعاتی مانند نود فعال، وضعیت انتقال، و وضعیت ماشین مجازی به‌طور کامل را فراهم می‌کند.


جمع‌بندی

پیکربندی High Availability (HA) برای ماشین‌های مجازی در Proxmox VE، یکی از ابزارهای کلیدی برای اطمینان از دسترسی بالا و کاهش وقفه‌ها است. با استفاده از این قابلیت، ماشین‌های مجازی می‌توانند در صورت بروز مشکل در نود اصلی، به‌طور خودکار به نود دیگری منتقل شوند. برای پیکربندی HA، باید از shared storage و پیکربندی درست شبکه استفاده کنید. در این بخش، نحوه فعال‌سازی، تنظیمات و نظارت بر HA برای ماشین‌های مجازی در خوشه Proxmox VE به‌صورت گرافیکی و خط فرمان توضیح داده شد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده وضعیت ماشین‌های مجازی در خوشه و مانیتورینگ آن‌ها” subtitle=”توضیحات کامل”]در Proxmox VE مشاهده وضعیت ماشین‌های مجازی و مانیتورینگ آن‌ها امری بسیار مهم است. این فرآیند کمک می‌کند تا به سرعت از وضعیت سیستم‌ها، عملکرد، و سلامت ماشین‌های مجازی مطلع شوید و اقدام‌های لازم را انجام دهید. در این بخش، نحوه مشاهده وضعیت ماشین‌های مجازی و ابزارهای مانیتورینگ در Proxmox VE را بررسی خواهیم کرد.


1. مشاهده وضعیت ماشین‌های مجازی از طریق Web UI

در Proxmox VE Web UI، مشاهده وضعیت ماشین‌های مجازی یک فرایند ساده است که به شما این امکان را می‌دهد تا تمامی اطلاعات حیاتی مانند وضعیت، منابع استفاده شده، و عملکرد را مشاهده کنید.

1.1. مشاهده وضعیت ماشین مجازی در Web UI

  1. وارد Proxmox Web UI شوید و به بخش Datacenter بروید.
  2. از لیست Nodes، نود مورد نظر خود را انتخاب کنید که ماشین‌های مجازی در آن قرار دارند.
  3. در نوار کناری سمت چپ، روی Virtual Machines کلیک کنید تا لیستی از ماشین‌های مجازی موجود را مشاهده کنید.
  4. در لیست ماشین‌های مجازی، شما می‌توانید وضعیت هر ماشین را مشاهده کنید. وضعیت معمولی ماشین‌های مجازی شامل موارد زیر است:
    • Running: ماشین مجازی در حال اجرا است.
    • Stopped: ماشین مجازی متوقف شده است.
    • Paused: ماشین مجازی به حالت تعلیق در آمده است.
    • Suspended: ماشین مجازی موقتاً متوقف شده است.
  5. برای مشاهده جزئیات بیشتر در مورد وضعیت و عملکرد هر ماشین مجازی، بر روی شناسه ماشین مجازی کلیک کنید. در صفحه جزئیات، شما اطلاعات مربوط به منابع ماشین، مانند CPU usage, RAM usage, Disk usage, و Network traffic را مشاهده خواهید کرد.

1.2. نمایش نمودارهای عملکرد ماشین مجازی

در بخش جزئیات هر ماشین مجازی، نمودارهای مختلفی برای نمایش عملکرد منابع در دسترس قرار دارد:

  • CPU Usage: نموداری که میزان استفاده از CPU را در طول زمان نمایش می‌دهد.
  • Memory Usage: نموداری که میزان استفاده از حافظه RAM را نمایش می‌دهد.
  • Disk I/O: نموداری که میزان خواندن و نوشتن داده‌ها بر روی دیسک ماشین مجازی را نشان می‌دهد.
  • Network Traffic: نموداری که میزان ترافیک شبکه در ماشین مجازی را نمایش می‌دهد.

این نمودارها به شما کمک می‌کنند تا وضعیت هر ماشین مجازی را در زمان واقعی مشاهده کرده و در صورت بروز مشکلات، اقدام سریع‌تری انجام دهید.


2. مشاهده وضعیت ماشین‌های مجازی از طریق خط فرمان (CLI)

برای مشاهده وضعیت ماشین‌های مجازی از طریق خط فرمان، از دستور qm status استفاده می‌شود. این دستور وضعیت فعلی ماشین‌های مجازی را بر اساس شناسه VMID نشان می‌دهد.

2.1. Syntax دستور qm status

qm status <vmid>
  • <vmid>: شناسه ماشین مجازی که می‌خواهید وضعیت آن را مشاهده کنید.

2.2. مثال دستور qm status

برای مشاهده وضعیت ماشین مجازی با شناسه 101، دستور زیر را اجرا کنید:

qm status 101

خروجی این دستور ممکن است به شکل زیر باشد:

status: running

این خروجی نشان‌دهنده این است که ماشین مجازی با شناسه 101 در حال اجرا است.

2.3. مشاهده وضعیت همه ماشین‌های مجازی

برای مشاهده وضعیت همه ماشین‌های مجازی موجود در نود، می‌توانید از دستور qm list استفاده کنید:

qm list

خروجی این دستور اطلاعات مربوط به تمامی ماشین‌های مجازی را نشان می‌دهد، مانند:

VMID    Name           Status   RAM    CPU
101     vm1            running  2048   2
102     vm2            stopped  4096   4

3. ابزارهای مانیتورینگ پیشرفته در Proxmox VE

Proxmox VE دارای ابزارهای قدرتمند برای مانیتورینگ ماشین‌های مجازی و منابع آن‌ها است. در اینجا به معرفی برخی از این ابزارها می‌پردازیم.

3.1. استفاده از Proxmox VE Dashboard

در Proxmox VE Dashboard، شما می‌توانید اطلاعاتی جامع و مفصل از وضعیت کل کلاستر و نودهای موجود را مشاهده کنید. این داشبورد شامل موارد زیر است:

  • Overall Cluster Health: سلامت کلی خوشه را نمایش می‌دهد.
  • Node Summary: وضعیت نودهای مختلف شامل میزان استفاده از منابع، دما، و وضعیت شبکه را نشان می‌دهد.
  • Resource Usage: وضعیت منابع مختلف در کلاستر مانند CPU, RAM, Disk, و Network را به صورت گرافیکی نمایش می‌دهد.

3.2. مانیتورینگ از طریق Grafana و Prometheus

Prometheus و Grafana ابزارهایی هستند که برای مانیتورینگ پیشرفته در Proxmox VE استفاده می‌شوند. Prometheus به‌عنوان یک سیستم مانیتورینگ و جمع‌آوری داده‌ها عمل می‌کند، در حالی که Grafana برای تجسم داده‌ها و ایجاد داشبوردهای گرافیکی استفاده می‌شود.

  1. Prometheus داده‌های عملکرد ماشین‌های مجازی، نودها، و کلاستر را جمع‌آوری می‌کند.
  2. Grafana می‌تواند به‌طور خودکار اطلاعات را از Prometheus دریافت کرده و داشبوردهایی را برای نمایش آن داده‌ها ایجاد کند.

3.3. نصب و راه‌اندازی Prometheus و Grafana در Proxmox VE

برای نصب و راه‌اندازی Prometheus و Grafana در Proxmox VE، مراحل زیر را دنبال کنید:

  1. نصب Prometheus:
    • ابتدا بسته‌های مورد نیاز را نصب کنید:
    apt-get update
    apt-get install prometheus
    
    • سپس فایل پیکربندی Prometheus را برای اتصال به Proxmox VE تنظیم کنید.
  2. نصب Grafana:
    • نصب Grafana:
    apt-get install grafana
    
    • پس از نصب، Grafana را راه‌اندازی کنید:
    systemctl start grafana-server
    
  3. پیکربندی اتصال Prometheus به Grafana: در Grafana، منبع داده‌ها را به Prometheus متصل کنید و سپس داشبوردهای گرافیکی را برای نمایش داده‌ها تنظیم کنید.

جمع‌بندی

مشاهده وضعیت ماشین‌های مجازی در Proxmox VE Cluster و مانیتورینگ آن‌ها از اهمیت بالایی برخوردار است. از طریق Web UI و CLI می‌توانید به راحتی وضعیت ماشین‌های مجازی را مشاهده کنید. همچنین، برای مانیتورینگ پیشرفته‌تر، استفاده از ابزارهایی مانند Grafana و Prometheus به شما این امکان را می‌دهد که داده‌های عملکردی ماشین‌های مجازی را جمع‌آوری و تحلیل کنید. این ابزارها به مدیران سیستم کمک می‌کنند تا بتوانند مشکلات را به‌طور سریع شناسایی و رفع کنند و همچنین از عملکرد بهینه سیستم اطمینان حاصل نمایند.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”بخش 4. مدیریت کانتینرها (LXC)”][cdb_course_lesson title=”فصل 1. مفاهیم پایه‌ای کانتینرها (LXC)”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”معرفی کانتینرها و تفاوت آن‌ها با ماشین‌های مجازی” subtitle=”توضیحات کامل”]کانتینرها (Containers) و ماشین‌های مجازی (VMs) هر دو تکنولوژی‌های مجازی‌سازی هستند که به کاربران این امکان را می‌دهند که منابع فیزیکی را به‌طور بهینه‌تر مدیریت کنند، اما نحوه عملکرد و ویژگی‌های آن‌ها تفاوت‌های قابل توجهی دارد.

مفهوم کانتینر

کانتینرها به عنوان واحدهای کوچکی از مجازی‌سازی شناخته می‌شوند که در آن یک سیستم‌عامل (OS) میزبان به طور مستقیم برای اجرای چندین اپلیکیشن یا فرآیند به‌طور جداگانه استفاده می‌شود. به عبارت ساده‌تر، کانتینرها سیستم‌عامل مشترک دارند، اما محیط‌های اجرایی ایزوله‌شده‌ای را برای هر اپلیکیشن فراهم می‌کنند. این کار موجب استفاده بهینه از منابع سخت‌افزاری و سریع‌تر بودن نسبت به ماشین‌های مجازی می‌شود.

کانتینرها معمولاً روی یک هسته‌ی مشترک از سیستم‌عامل میزبان اجرا می‌شوند و نسبت به ماشین‌های مجازی بسیار سبک‌تر هستند.

در صورتی که بخواهیم نصب یک کانتینر را به‌صورت کامندی در پروکسموکس انجام دهیم، می‌توانیم از دستورات زیر استفاده کنیم:

pct create <vmid> /path/to/template

که در آن:

  • <vmid> شناسه ماشین مجازی یا کانتینری است که می‌خواهید بسازید.
  • /path/to/template مسیر فایل template برای کانتینر است.
ماشین‌های مجازی چیستند؟

ماشین‌های مجازی به‌طور کلی به عنوان یک محیط مجازی‌شده و کاملاً ایزوله‌شده شناخته می‌شوند که هر کدام دارای سیستم‌عامل، کرنل، و منابع اختصاصی خود هستند. این بدان معناست که هر ماشین مجازی به‌طور کامل از سیستم‌عامل میزبان جدا شده و منابع را به‌طور مستقل مصرف می‌کند.

در نتیجه، ماشین‌های مجازی منابع بیشتری از جمله حافظه، پردازنده، و ذخیره‌سازی را مصرف می‌کنند. هر VM برای راه‌اندازی به یک سیستم‌عامل کامل نیاز دارد.

برای ایجاد یک ماشین مجازی در پروکسموکس، از دستور زیر استفاده می‌کنیم:

qm create <vmid> --memory 2048 --net0 virtio,bridge=vmbr0 --ide0 local:iso/<iso-image>.iso

که در آن:

  • <vmid> شناسه ماشین مجازی است.
  • --memory 2048 حافظه اختصاص داده شده به ماشین مجازی را تعیین می‌کند.
  • --net0 virtio,bridge=vmbr0 کارت شبکه مجازی را ایجاد می‌کند.
  • --ide0 local:iso/<iso-image>.iso فایل ایزو که می‌خواهید نصب کنید را مشخص می‌کند.
تفاوت‌های اصلی بین کانتینرها و ماشین‌های مجازی:
  1. ایزوله‌سازی:
    • کانتینرها: کانتینرها به‌طور کامل از یکدیگر ایزوله نیستند و از سیستم‌عامل میزبان برای مدیریت فرآیندها استفاده می‌کنند.
    • ماشین‌های مجازی: هر ماشین مجازی یک سیستم‌عامل کامل و ایزوله از دیگر VMs و سیستم‌عامل میزبان دارد.
  2. منابع سیستم:
    • کانتینرها: از منابع سیستم به‌طور مشترک استفاده می‌کنند و نیازی به منابع اضافی ندارند.
    • ماشین‌های مجازی: هر VM به‌طور مستقل از منابع مانند پردازنده، حافظه و دیسک استفاده می‌کند.
  3. عملکرد:
    • کانتینرها: چون کانتینرها از کرنل سیستم‌عامل میزبان استفاده می‌کنند، به‌طور معمول از عملکرد بهتری برخوردار هستند.
    • ماشین‌های مجازی: به دلیل اینکه هر VM سیستم‌عامل و کرنل خود را دارد، عملکرد آن‌ها کندتر از کانتینرها است.
  4. زمان راه‌اندازی:
    • کانتینرها: کانتینرها به‌سرعت راه‌اندازی می‌شوند، زیرا نیاز به بارگذاری سیستم‌عامل ندارند.
    • ماشین‌های مجازی: زمان راه‌اندازی ماشین‌های مجازی بیشتر است، چون سیستم‌عامل کامل باید بارگذاری شود.
  5. سازگاری و پشتیبانی:
    • کانتینرها: مناسب برای برنامه‌های کاربردی مبتنی بر لینوکس و سرورهای کوچک هستند.
    • ماشین‌های مجازی: مناسب برای اجرای سیستم‌عامل‌های مختلف مانند لینوکس، ویندوز و سایر سیستم‌عامل‌ها است.
جمع بندی

در حالی که کانتینرها و ماشین‌های مجازی هردو اهداف مشابهی دارند، تفاوت‌های اصلی در نحوه ایزوله‌سازی، مصرف منابع و عملکرد آن‌ها قرار دارد. کانتینرها برای اپلیکیشن‌ها و فرآیندهای سبک‌تر و مقیاس‌پذیرتر مفید هستند، در حالی که ماشین‌های مجازی برای استفاده‌های پیچیده‌تر که نیاز به ایزوله‌سازی کامل دارند، گزینه بهتری هستند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مزایا و معایب استفاده از LXC” subtitle=”توضیحات کامل”]LXC (Linux Containers) یکی از فناوری‌های مجازی‌سازی سبک و کارآمد است که به‌ویژه در محیط‌های لینوکسی کاربرد دارد. این تکنولوژی به کاربران این امکان را می‌دهد که چندین محیط ایزوله‌شده را بر روی یک سیستم‌عامل میزبان اجرا کنند، بدون اینکه نیاز به استفاده از منابع اضافی باشد. LXC بر خلاف ماشین‌های مجازی (VMs) نیازی به سیستم‌عامل مجزا ندارد و تنها از کرنل مشترک سیستم‌عامل میزبان استفاده می‌کند. در این بخش به مزایا و معایب استفاده از LXC می‌پردازیم.


مزایا

  1. کارایی بالا و استفاده کمتر از منابع:LXC به دلیل استفاده از یک کرنل مشترک برای همه کانتینرها، برخلاف ماشین‌های مجازی که نیاز به سیستم‌عامل جداگانه دارند، منابع کمتری مصرف می‌کند. این ویژگی باعث می‌شود که کانتینرها به‌طور قابل‌توجهی از نظر عملکردی بهتر از ماشین‌های مجازی باشند.
    • عملکرد بهینه: از آنجایی که کانتینرها به طور مستقیم از کرنل میزبان استفاده می‌کنند، در مقایسه با ماشین‌های مجازی که باید از سیستم‌عامل‌های مجزا استفاده کنند، زمان راه‌اندازی بسیار سریع‌تری دارند.
    • بهره‌وری منابع: کانتینرها به‌طور مشترک از منابع سیستم مانند حافظه و پردازنده استفاده می‌کنند، بدون اینکه منابع اضافی برای مجازی‌سازی کامل لازم باشد.

    به‌عنوان مثال، اگر بخواهیم یک کانتینر را در پروکسموکس ایجاد کنیم، می‌توانیم از دستور زیر استفاده کنیم که منابع را به صورت بهینه تخصیص می‌دهد:

    pct create 101 /var/lib/vz/template/cache/debian-10-standard_10.3-1_amd64.tar.gz
    

    در این دستور:

    • 101 شناسه کانتینر است.
    • /var/lib/vz/template/cache/debian-10-standard_10.3-1_amd64.tar.gz مسیر فایل الگو برای ایجاد کانتینر است.
  2. ایزولاسیون بین کانتینرها:LXC برای هر کانتینر محیط ایزوله‌شده‌ای فراهم می‌آورد. این ایزولاسیون به این معناست که هر کانتینر به‌طور مستقل از دیگر کانتینرها و سیستم‌عامل میزبان عمل می‌کند، هرچند که از همان کرنل استفاده می‌کنند. این ویژگی مشابه ماشین‌های مجازی است، اما در LXC برخلاف VMs نیازی به سیستم‌عامل مجزا نیست.

    ایزولاسیون در LXC به‌ویژه برای توسعه‌دهندگان و محیط‌های تولیدی بسیار مفید است، زیرا شما می‌توانید کانتینرها را به‌طور جداگانه مدیریت کنید و از بروز مشکلات ناشی از تداخل اپلیکیشن‌ها جلوگیری کنید.

    برای پیکربندی شبکه برای یک کانتینر در پروکسموکس، می‌توان از دستور زیر استفاده کرد که کانتینر را به شبکه جداگانه‌ای متصل می‌کند:

    pct set 101 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

    در این دستور:

    • 101 شناسه کانتینر است.
    • bridge=vmbr0 اتصال به شبکه vmbr0 را مشخص می‌کند.
    • ip=dhcp برای تخصیص آدرس IP به‌صورت خودکار از DHCP است.

معایب

  1. محدودیت در انتخاب سیستم‌عامل:کانتینرهای LXC فقط برای سیستم‌عامل‌هایی که از کرنل لینوکس استفاده می‌کنند مناسب هستند. در مقایسه با ماشین‌های مجازی که می‌توانند سیستم‌عامل‌های مختلف (مانند لینوکس، ویندوز و …) را اجرا کنند، کانتینرها فقط برای محیط‌های لینوکسی قابل استفاده هستند. به عبارت دیگر، LXC فقط از سیستم‌عامل‌های مبتنی بر لینوکس پشتیبانی می‌کند و برای استفاده از سایر سیستم‌عامل‌ها باید از ماشین‌های مجازی استفاده کرد.
  2. عدم ایزولاسیون کامل:علی‌رغم اینکه LXC ایزولاسیون بین کانتینرها را فراهم می‌آورد، این ایزولاسیون به اندازه‌ای که در ماشین‌های مجازی وجود دارد، کامل نیست. در واقع، چون همه کانتینرها از کرنل مشترک استفاده می‌کنند، ممکن است برخی از مشکلات امنیتی در صورت آسیب‌پذیری در کرنل میزبان به همه کانتینرها سرایت کند. در مقابل، در ماشین‌های مجازی هر VM دارای کرنل مجزا و ایزولاسیون کامل‌تری است.

    برای ایزوله‌سازی بیشتر، از پروکسموکس می‌توانیم برای هر کانتینر یک فضای مجازی جداگانه تعریف کنیم:

    pct set 101 -hostname mycontainer -memory 512
    

    در این دستور:

    • -hostname mycontainer نام کانتینر را تعیین می‌کند.
    • -memory 512 مقدار حافظه اختصاص داده شده به کانتینر را مشخص می‌کند.

جمع بندی

LXC یک فناوری مجازی‌سازی سبک است که با مصرف منابع کمتر، کارایی بالاتری در مقایسه با ماشین‌های مجازی ارائه می‌دهد. ایزولاسیون قوی بین کانتینرها و مدیریت منابع بهینه، از جمله مزایای آن هستند. اما در عین حال، محدودیت در انتخاب سیستم‌عامل و ایزولاسیون ناقص از معایب آن به حساب می‌آید. با توجه به این مزایا و معایب، LXC به‌ویژه برای محیط‌های لینوکسی که نیاز به مقیاس‌پذیری و عملکرد بالا دارند، گزینه‌ای مناسب است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نحوه کار LXC: استفاده از هسته لینوکس برای ایزوله‌سازی منابع” subtitle=”توضیحات کامل”]LXC (Linux Containers) یک فناوری برای مجازی‌سازی سبک و ایزوله‌سازی منابع در سیستم‌عامل لینوکس است. برخلاف ماشین‌های مجازی که هر کدام سیستم‌عامل جداگانه‌ای دارند، کانتینرها از هسته لینوکس برای به اشتراک‌گذاری منابع و استفاده بهینه از سیستم بهره می‌برند. در اینجا به‌طور دقیق‌تر نحوه عملکرد LXC را بررسی می‌کنیم و خواهیم دید که چگونه از هسته لینوکس برای ایزوله‌سازی منابع استفاده می‌شود.


ساختار پایه‌ای LXC

LXC در واقع یک لایه نرم‌افزاری است که از ویژگی‌های هسته لینوکس مانند cgroups (برای کنترل منابع) و namespaces (برای ایزوله‌سازی) استفاده می‌کند. این ویژگی‌ها باعث می‌شوند که هر کانتینر به‌طور مستقل از دیگر کانتینرها عمل کند و منابع سیستم به طور مؤثری مدیریت شوند.

1. Namespaces:

Namespaces مکانیزمی در هسته لینوکس هستند که منابع سیستم را برای هر کانتینر ایزوله می‌کنند. به‌عبارت‌دیگر، هر کانتینر دارای فضای کاری خاص خودش است که از دیگر کانتینرها جدا است. این ویژگی کمک می‌کند تا هر کانتینر به‌طور مستقل از دیگران عمل کند.

در داخل لینوکس، 6 نوع مختلف از namespaces وجود دارند:

  • PID Namespace: هر کانتینر فضای PID مختص به خودش را دارد، به این معنا که فرایندهای داخل هر کانتینر شماره PID خاص خود را دارند.
  • Network Namespace: هر کانتینر دارای تنظیمات شبکه جداگانه است، بنابراین آنها می‌توانند آدرس‌های IP و پورت‌های شبکه خود را داشته باشند.
  • Mount Namespace: فضای فایل‌ها و سیستم فایل‌ها به‌طور جداگانه برای هر کانتینر مدیریت می‌شود.
  • UTS Namespace: نام میزبان (hostname) و دامنه به‌طور جداگانه برای هر کانتینر قابل تنظیم است.
  • IPC Namespace: امکان ایزوله‌سازی دسترسی به حافظه مشترک و پیام‌ها در بین کانتینرها.
  • User Namespace: این namespace به‌طور ویژه برای ایزوله‌سازی کاربران و گروه‌های مختلف در داخل کانتینرها استفاده می‌شود.

2. Cgroups:

Cgroups (Control Groups) از دیگر ویژگی‌های مهم هسته لینوکس هستند که به شما این امکان را می‌دهند که منابع سیستم مانند CPU، RAM و I/O را بین کانتینرها تقسیم کنید. این ویژگی اجازه می‌دهد که منابع هر کانتینر به‌طور محدود تخصیص داده شود.

به عنوان مثال:

  • شما می‌توانید به یک کانتینر ۲ گیگابایت حافظه و ۴ هسته CPU تخصیص دهید، درحالی‌که کانتینر دیگری می‌تواند به اندازه متفاوتی منابع مصرف کند.

3. Security (seccomp, AppArmor, SELinux):

کانتینرها می‌توانند برای افزایش امنیت از ابزارهای ایمنی مانند seccomp، AppArmor و SELinux استفاده کنند. این ابزارها به شما اجازه می‌دهند که عملکردهایی که در داخل کانتینر اجرا می‌شوند را محدود کنید تا از خطرات امنیتی جلوگیری شود.

برای مثال، در صورت استفاده از AppArmor یا SELinux، می‌توانید مجوزهای خاصی برای دسترسی به منابع سیستم اعمال کنید و از ارتباطات ناخواسته بین کانتینرها جلوگیری کنید.

4. Networking:

LXC از شبکه‌سازی مبتنی بر هسته لینوکس برای ارتباط بین کانتینرها استفاده می‌کند. به‌طور معمول، هر کانتینر یک آدرس IP مجزا دارد که می‌تواند با دیگر کانتینرها و سیستم‌های خارجی ارتباط برقرار کند.

نحوه ایزوله‌سازی منابع در LXC:

LXC از تکنیک‌های ایزوله‌سازی به‌صورت ترکیبی استفاده می‌کند. هر کانتینر از فضای اختصاصی خودش برای فایل سیستم‌ها، شبکه، پروسه‌ها و کاربران استفاده می‌کند، ولی در عین حال از هسته یکسان سیستم‌عامل برای اجرا استفاده می‌کند. این باعث می‌شود که مصرف منابع بسیار کم‌تر و کارایی بالاتر از ماشین‌های مجازی معمولی باشد.

در اینجا برخی از منابعی که ایزوله می‌شوند:

  • CPU: کانتینرها می‌توانند منابع پردازشی محدود خود را از طریق cgroups دریافت کنند.
  • RAM: همانند CPU، حافظه RAM نیز از طریق cgroups محدود می‌شود.
  • Disk I/O: تنظیمات برای کنترل دسترسی به دیسک نیز با استفاده از cgroups صورت می‌گیرد.
  • Network: با استفاده از Network namespaces، کانتینرها می‌توانند آدرس‌های IP مختلفی داشته باشند و از شبکه‌های جداگانه برای ارتباط با یکدیگر و سیستم‌های خارجی استفاده کنند.

پیکربندی کانتینر LXC:

برای ایجاد و پیکربندی یک کانتینر LXC، می‌توانید از دستور lxc-create استفاده کنید. در اینجا یک نمونه پیکربندی ساده آورده شده است:

  1. ایجاد یک کانتینر جدید:
    sudo lxc-create -n my-container -t ubuntu
    

    این دستور یک کانتینر جدید به نام my-container از الگوی (template) ubuntu ایجاد می‌کند.

  2. پیکربندی منابع کانتینر: برای تخصیص منابع به کانتینر، می‌توانید از دستور lxc.cgroup استفاده کنید. به‌عنوان‌مثال، برای تخصیص حافظه به کانتینر، از دستور زیر استفاده کنید:
    sudo lxc-start -n my-container
    sudo echo "lxc.cgroup.memory.limit_in_bytes = 1G" >> /var/lib/lxc/my-container/config
    
  3. راه‌اندازی کانتینر: برای شروع کانتینر، از دستور lxc-start استفاده کنید:
    sudo lxc-start -n my-container
    
  4. مشاهده وضعیت کانتینر: برای مشاهده وضعیت کانتینر در حال اجرا، از دستور lxc-info استفاده کنید:
    sudo lxc-info -n my-container
    
  5. متوقف کردن کانتینر: برای متوقف کردن کانتینر، از دستور lxc-stop استفاده کنید:
    sudo lxc-stop -n my-container
    

جمع‌بندی

LXC یک راهکار سبک برای ایزوله‌سازی منابع در لینوکس است که از امکانات هسته لینوکس مانند namespaces و cgroups استفاده می‌کند. این فناوری به شما این امکان را می‌دهد که به‌طور مؤثر منابع سیستم را مدیریت کرده و هر کانتینر را به‌طور مستقل از دیگر کانتینرها اجرا کنید. از طرف دیگر، این تکنولوژی منابع کمتری نسبت به ماشین‌های مجازی مصرف می‌کند و از امنیت بالایی برخوردار است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”کاربردهای معمول کانتینرها در محیط‌های سرور و توسعه” subtitle=”توضیحات کامل”]کانتینرها به‌عنوان یک راه‌حل سبک و ایزوله برای اجرای برنامه‌ها در محیط‌های مختلف شناخته می‌شوند. با استفاده از فناوری کانتینرها، می‌توان برنامه‌ها را در یک محیط ایزوله و استاندارد شده اجرا کرد، بدون آنکه به سیستم‌عامل میزبان وابسته باشند. این ویژگی‌ها باعث شده است که کانتینرها به‌طور فزاینده‌ای در محیط‌های سرور و توسعه برای انجام وظایف مختلف استفاده شوند.

در این بخش به‌طور مفصل کاربردهای معمول کانتینرها در محیط‌های سرور و توسعه پرداخته خواهد شد.


۱. اجرای برنامه‌ها در محیط‌های ایزوله

کانتینرها به‌طور طبیعی برای ایجاد محیط‌های ایزوله استفاده می‌شوند که در آن‌ها می‌توان برنامه‌ها را به‌طور جداگانه اجرا کرد. این ایزوله‌سازی باعث می‌شود که تغییرات یا مشکلات در یک کانتینر تأثیری بر سایر کانتینرها یا سیستم‌عامل میزبان نداشته باشد.

برای مثال، فرض کنید یک برنامه نیاز به نسخه خاصی از Python یا یک بسته نرم‌افزاری خاص دارد. به‌وسیله کانتینرها می‌توان این وابستگی‌ها را به‌طور جداگانه برای هر برنامه ایجاد کرد و نیازی به نصب آن‌ها در سیستم‌عامل میزبان نیست.

در محیط‌های سرور، کانتینرها به‌ویژه برای اجرای سرویس‌ها و اپلیکیشن‌ها استفاده می‌شوند، زیرا می‌توانند منابع را به‌طور مؤثر تقسیم کرده و مشکلات مربوط به تعارضات وابستگی‌ها را حل کنند.


۲. توسعه و آزمایش (DevOps)

در فرآیندهای توسعه نرم‌افزار، کانتینرها به یکی از ابزارهای اصلی تبدیل شده‌اند. یکی از بزرگ‌ترین مزایای کانتینرها در توسعه نرم‌افزار این است که محیط‌های یکسانی برای توسعه، آزمایش و تولید فراهم می‌کنند. این قابلیت، تفاوت‌های محیط‌های مختلف را از بین می‌برد و به تیم‌های توسعه و عملیات این امکان را می‌دهد که محیط‌های تولید مشابهی داشته باشند.

  • استفاده در محیط‌های CI/CD: در سیستم‌های یکپارچه‌سازی و تحویل مداوم (CI/CD)، کانتینرها می‌توانند به‌عنوان محیط‌های ایزوله برای اجرای تست‌ها و بسته‌بندی کد استفاده شوند.برای مثال:
    docker run --rm -v $(pwd):/app my-app-image npm test
    

    در اینجا، کانتینر my-app-image برای اجرای تست‌ها در یک محیط ایزوله استفاده می‌شود.

  • راه‌اندازی سریع محیط‌های توسعه: کانتینرها به تیم‌های توسعه این امکان را می‌دهند که به‌سرعت محیط‌های توسعه مشابه تولید را ایجاد کرده و کد را در آن تست کنند.

۳. مقیاس‌پذیری و بارگذاری سرویس‌ها

در محیط‌های تولید، کانتینرها به‌ویژه زمانی که نوبت به مقیاس‌پذیری می‌رسد، نقش بسیار مهمی ایفا می‌کنند. از آنجایی که کانتینرها به‌طور سریع و کارآمد راه‌اندازی می‌شوند، می‌توان آن‌ها را به‌طور سریع مقیاس‌پذیر کرد.

برای مقیاس‌پذیری خودکار، ابزارهایی مانند Kubernetes و Docker Swarm برای مدیریت کانتینرها و توزیع آن‌ها در نودهای مختلف خوشه‌ها استفاده می‌شوند.

  • افزایش مقیاس سرویس‌ها با Kubernetes: شما می‌توانید با استفاده از Kubernetes به‌راحتی تعداد کانتینرهای یک سرویس را افزایش دهید تا به تقاضای بالاتر پاسخ دهید.دستور نمونه برای مقیاس‌پذیری در Kubernetes:
    kubectl scale deployment my-deployment --replicas=5
    

این دستور تعداد کانتینرهای سرویس my-deployment را به پنج عدد افزایش می‌دهد.


۴. کاهش هزینه‌های منابع و بهینه‌سازی هزینه‌ها

از آنجا که کانتینرها نسبت به ماشین‌های مجازی منابع کمتری مصرف می‌کنند، استفاده از آن‌ها می‌تواند به‌طور قابل توجهی هزینه‌های سخت‌افزاری و منابع را کاهش دهد. به دلیل استفاده بهینه از منابع سیستم، تعداد زیادی کانتینر می‌توانند روی یک سرور اجرا شوند.

کانتینرها به شما این امکان را می‌دهند که از منابع بهینه‌تر استفاده کنید و هزینه‌های مربوط به تجهیزات و زیرساخت‌ها را کاهش دهید.

برای مثال، با استفاده از Docker می‌توان چندین کانتینر را روی یک ماشین فیزیکی یا یک سرور مجازی بدون نیاز به استفاده از منابع زیاد اجرا کرد.


۵. استفاده در پردازش‌های موازی و بارهای کاری پیچیده

کانتینرها به‌ویژه در برنامه‌های پردازش موازی که نیاز به تقسیم بار بین چندین نود دارند، بسیار مفید هستند. در این شرایط، کانتینرها می‌توانند به‌طور مؤثر برای تقسیم وظایف پردازشی در شبکه‌های بزرگ استفاده شوند.

برای مثال، در پردازش‌های علمی یا محاسبات داده‌های کلان، می‌توان کانتینرها را برای تقسیم کار بین نودهای مختلف در یک خوشه استفاده کرد. ابزارهایی مانند Apache Spark یا Hadoop می‌توانند از کانتینرها برای اجرای پردازش‌های داده‌محور استفاده کنند.


۶. استقرار سریع و مقیاس‌پذیری اپلیکیشن‌ها

استقرار سریع برنامه‌ها و مقیاس‌پذیری به‌شکل پویا، یکی از دلایل مهم استفاده از کانتینرها در محیط‌های سرور و تولید است. هنگامی که یک برنامه به سرعت باید در بسیاری از سرورها مستقر شود، کانتینرها به شما کمک می‌کنند که این کار را به‌طور خودکار و با سرعت بالا انجام دهید.

  • استقرار سریع برنامه‌ها در Docker: با استفاده از دستورات ساده در Docker می‌توان کانتینرهای جدید ایجاد و مستقر کرد.به‌عنوان مثال:
    docker run -d -p 80:80 --name my-web-app my-web-app-image
    

    این دستور، یک کانتینر جدید برای برنامه وب شما با نام my-web-app ایجاد کرده و پورت 80 را به سیستم میزبان متصل می‌کند.


جمع‌بندی

کانتینرها به دلیل ویژگی‌هایی مانند ایزوله‌سازی، مقیاس‌پذیری بالا، استفاده کم از منابع و قابلیت پشتیبانی از فرآیندهای توسعه و تست سریع، به ابزاری مهم در دنیای توسعه نرم‌افزار و محیط‌های سرور تبدیل شده‌اند. از توسعه نرم‌افزار و آزمایش در محیط‌های مختلف تا استقرار و مقیاس‌پذیری اپلیکیشن‌ها، کانتینرها قابلیت‌های زیادی برای بهبود کارایی و کاهش هزینه‌ها در اختیار کاربران قرار می‌دهند.[/cdb_course_lesson][cdb_course_lesson title=”فصل 2. ایجاد کانتینرهای LXC در Proxmox VE”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نحوه ایجاد کانتینر جدید از طریق Web UI” subtitle=”توضیحات کامل”]در محیط Proxmox VE، ایجاد یک کانتینر جدید از طریق Web UI بسیار ساده و کاربرپسند است. این فرآیند به شما این امکان را می‌دهد که کانتینرها را به راحتی از طریق مرورگر مدیریت کنید. در این بخش، مراحل ایجاد یک کانتینر جدید در Proxmox VE با استفاده از Web UI را به طور کامل و به صورت قدم به قدم توضیح خواهیم داد. همچنین، دستورات کامندی برای انجام این کار نیز ارائه خواهد شد.


۱. ورود به Web UI

برای شروع، ابتدا باید وارد Web UI Proxmox VE شوید.

  1. آدرس IP سرور Proxmox VE خود را در مرورگر وارد کنید. به‌طور معمول، این آدرس به صورت https://<IP-ADDRESS>:8006 است.
  2. در صفحه ورود، نام کاربری و رمز عبور خود را وارد کنید و وارد شوید.

۲. انتخاب سرور یا نود

پس از ورود به Web UI، شما باید نودی را که می‌خواهید کانتینر جدید را روی آن ایجاد کنید، انتخاب کنید.

  1. در سمت چپ صفحه، از فهرست نودها (Nodes) نود مناسب خود را انتخاب کنید.
  2. مطمئن شوید که فضای ذخیره‌سازی کافی برای ایجاد کانتینر دارید.

۳. ایجاد کانتینر جدید

حالا که نود مورد نظر را انتخاب کردید، می‌توانید فرآیند ایجاد کانتینر را آغاز کنید.

  1. از منوی بالا، گزینه “Create CT” را انتخاب کنید.

۴. پیکربندی عمومی کانتینر

در این مرحله، باید اطلاعات اولیه کانتینر را وارد کنید.

  1. Hostname: یک نام برای کانتینر خود انتخاب کنید. این نام باید یک نام منحصر به فرد باشد.
  2. Password: برای کانتینر خود یک رمز عبور تعیین کنید.
  3. Template: باید یک الگو (Template) برای کانتینر خود انتخاب کنید. الگوهای متداول شامل سیستم‌عامل‌های لینوکس مانند Debian، Ubuntu یا CentOS است. اگر الگوی مورد نظر شما از پیش بارگذاری نشده باشد، می‌توانید از طریق Web UI الگو را بارگذاری کنید.

۵. پیکربندی منابع

در این بخش، باید منابع مختلف مانند CPU، حافظه (RAM) و ذخیره‌سازی را برای کانتینر جدید خود تخصیص دهید.

  1. CPU: تعداد هسته‌های پردازشی را که به کانتینر اختصاص داده خواهد شد انتخاب کنید.
  2. RAM: مقدار حافظه RAM که به کانتینر اختصاص داده خواهد شد را وارد کنید.
  3. Disk: میزان فضای دیسک که کانتینر می‌تواند استفاده کند را مشخص کنید. نوع دیسک (مانند LVM یا Directory) را انتخاب کنید.

۶. تنظیمات شبکه

در این مرحله، باید تنظیمات شبکه کانتینر را پیکربندی کنید.

  1. Network Interface: شما می‌توانید کارت شبکه (مانند eth0) و نوع اتصال شبکه (Bridge یا NAT) را انتخاب کنید. در بیشتر موارد، اتصال به شبکه از طریق Bridge برای اتصال کانتینر به شبکه محلی (LAN) استفاده می‌شود.
  2. IP Address: یک آدرس IP استاتیک یا DHCP برای کانتینر خود مشخص کنید.

۷. تنظیمات پیشرفته (اختیاری)

در این مرحله، می‌توانید تنظیمات پیشرفته‌تری مانند پیکربندی نقاط اتصال دیسک‌های اضافی، تنظیمات منابع بیشتر یا محدود کردن دسترسی به منابع خاص را انجام دهید.


۸. بررسی تنظیمات و ایجاد کانتینر

پس از وارد کردن تمامی تنظیمات مورد نظر، در پنجره آخر، یک نمای کلی از تمامی تنظیمات کانتینر نمایش داده می‌شود. در اینجا می‌توانید تمامی اطلاعات را مرور کنید.

  1. اگر همه چیز به درستی تنظیم شده باشد، بر روی دکمه “Finish” کلیک کنید.
  2. کانتینر جدید ایجاد می‌شود و شما می‌توانید آن را در لیست ماشین‌های مجازی و کانتینرها مشاهده کنید.

۹. استارت کانتینر

پس از ایجاد کانتینر، شما می‌توانید آن را به‌راحتی از طریق Web UI راه‌اندازی کنید.

  1. به صفحه‌ی “Container” رفته و بر روی کانتینر جدید کلیک کنید.
  2. در بالای صفحه، روی دکمه “Start” کلیک کنید تا کانتینر شروع به کار کند.

۱۰. اتصال به کانتینر

بعد از اینکه کانتینر شروع به کار کرد، شما می‌توانید از طریق Web UI یا SSH به آن وصل شوید.

  1. برای اتصال به کانتینر از طریق Web UI، از منوی بالا “Console” را انتخاب کنید. این امکان را فراهم می‌کند که به‌صورت مستقیم به کنسول کانتینر دسترسی داشته باشید.
  2. همچنین، می‌توانید از طریق SSH به کانتینر وارد شوید، البته باید آدرس IP کانتینر را بدانید و SSH در آن فعال باشد.

پیکربندی کامندی برای ایجاد کانتینر

اگر بخواهید از طریق خط فرمان یک کانتینر جدید ایجاد کنید، می‌توانید از دستور pct استفاده کنید. این دستور امکان مدیریت کانتینرهای LXC را از طریق خط فرمان می‌دهد.

  1. برای ایجاد یک کانتینر جدید با استفاده از خط فرمان، دستور زیر را وارد کنید:
    pct create 101 /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz -hostname my-container -memory 512 -cores 1 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

    در این دستور:

    • 101 شناسه (ID) کانتینر است.
    • /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz مسیر فایل قالب سیستم‌عامل است.
    • my-container نام کانتینر است.
    • 512 مقدار حافظه اختصاصی برای کانتینر است.
    • 1 تعداد هسته‌های پردازشی اختصاصی به کانتینر است.
    • vmbr0 شبکه‌ای است که کانتینر به آن متصل می‌شود و از DHCP برای تخصیص IP استفاده می‌کند.
  2. برای شروع کانتینر پس از ایجاد آن:
    pct start 101
    
  3. برای دسترسی به کنسول کانتینر:
    pct enter 101
    

جمع‌بندی

ایجاد کانتینر در Proxmox VE از طریق Web UI و خط فرمان فرآیندی ساده و سریع است که به شما این امکان را می‌دهد که سیستم‌های ایزوله‌شده و مستقل از یکدیگر برای اجرای برنامه‌ها و سرویس‌ها راه‌اندازی کنید. این روش‌ها به‌ویژه در محیط‌های تولید و آزمایشی بسیار مفید هستند زیرا منابع سیستم را به‌طور مؤثر مدیریت کرده و مقیاس‌پذیری را بهبود می‌بخشند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتخاب قالب سیستم‌عامل برای کانتینر” subtitle=”توضیحات کامل”]در هنگام ایجاد کانتینر LXC در Proxmox VE، یکی از مراحل مهم انتخاب قالب سیستم‌عامل (Template) است. قالب‌های سیستم‌عامل به‌عنوان یک الگو برای ساخت کانتینرها عمل می‌کنند و می‌توانند شامل سیستم‌عامل‌های مختلف لینوکس مانند Debian، Ubuntu، CentOS و دیگر توزیع‌های لینوکس باشند. انتخاب قالب سیستم‌عامل مناسب به شما این امکان را می‌دهد که کانتینری مطابق با نیازهای خود ایجاد کنید.

در این بخش، ما به شما نحوه انتخاب قالب سیستم‌عامل برای کانتینر در Proxmox VE را با استفاده از Web UI و همچنین خط فرمان توضیح خواهیم داد.


۱. انتخاب قالب سیستم‌عامل از Web UI

برای شروع، در Web UI Proxmox VE، مراحل زیر را دنبال کنید:

  1. ورود به Web UI: ابتدا وارد Web UI Proxmox VE خود شوید. معمولاً این آدرس به صورت https://<IP-ADDRESS>:8006 است.
  2. انتخاب نود: در سمت چپ، از فهرست نودها (Nodes)، نود مورد نظر خود را انتخاب کنید.
  3. انتخاب “Create CT”: پس از انتخاب نود، از منوی بالای صفحه، روی گزینه “Create CT” کلیک کنید.
  4. انتخاب قالب (Template): در صفحه‌ای که باز می‌شود، در بخش “Template” باید قالب سیستم‌عامل مورد نظر خود را انتخاب کنید.
    • قالب‌های سیستم‌عاملی که به‌طور پیش‌فرض در Proxmox VE در دسترس هستند، شامل سیستم‌عامل‌های مختلفی مانند Debian، Ubuntu و CentOS می‌باشند.
    • برای بارگذاری قالب‌های اضافی، باید بر روی دکمه “Download” کلیک کنید. در اینجا می‌توانید قالب‌های مختلف را از مخزن رسمی Proxmox یا مخازن دیگر دانلود کنید.

۲. دانلود قالب‌های سیستم‌عامل جدید

اگر قالب مورد نظر شما در لیست پیش‌فرض وجود ندارد، می‌توانید قالب‌های مختلف را دانلود کنید:

  1. در صفحه “Create CT”، روی دکمه “Download” در کنار قسمت “Template” کلیک کنید.
  2. این کار پنجره‌ای را باز می‌کند که در آن می‌توانید لیستی از قالب‌های موجود برای سیستم‌عامل‌های مختلف مشاهده کنید.
  3. از اینجا می‌توانید قالب مورد نظر خود را انتخاب کنید. برای مثال:
    • Debian: برای ایجاد کانتینر Debian.
    • Ubuntu: برای ایجاد کانتینر Ubuntu.
    • Alpine: برای ایجاد کانتینر با سیستم‌عامل Alpine (یک توزیع لینوکس سبک).
  4. پس از انتخاب قالب، بر روی دکمه “Download” کلیک کنید و پروسه دانلود شروع می‌شود.

۳. پیکربندی قالب سیستم‌عامل در خط فرمان (CLI)

اگر تمایل دارید کانتینر خود را از طریق خط فرمان ایجاد کنید، می‌توانید از دستور pct استفاده کنید تا قالب سیستم‌عامل را مشخص کرده و کانتینر را راه‌اندازی کنید. برای انجام این کار، ابتدا باید قالب مورد نظر خود را دانلود کنید.

  1. لیست قالب‌های موجود: ابتدا می‌توانید لیست قالب‌های موجود در سرور خود را با دستور زیر مشاهده کنید:
    ls /var/lib/vz/template/cache/
    

    این دستور لیستی از قالب‌ها (مانند debian-10-standard_10.7-1_amd64.tar.gz) که در سرور Proxmox شما ذخیره شده‌اند، به شما نشان می‌دهد.

  2. دانلود قالب جدید: برای دانلود قالب‌های جدید از مخزن Proxmox، دستور زیر را وارد کنید:
    pveam download local debian-10-standard_10.7-1_amd64.tar.gz
    

    در اینجا:

    • local اشاره به ذخیره‌سازی محلی شما دارد.
    • debian-10-standard_10.7-1_amd64.tar.gz نام قالب مورد نظر شما است.
  3. ایجاد کانتینر با قالب انتخابی: پس از دانلود قالب، برای ایجاد کانتینر جدید با استفاده از دستور pct create می‌توانید از قالب مورد نظر خود استفاده کنید:
    pct create 101 /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz -hostname my-container -memory 512 -cores 1 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

    در این دستور:

    • 101 شناسه (ID) کانتینر است.
    • /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz مسیر قالب انتخابی است.
    • my-container نام کانتینر است.
    • 512 مقدار حافظه اختصاصی به کانتینر است.
    • 1 تعداد هسته‌های پردازشی اختصاصی به کانتینر است.
    • vmbr0 شبکه‌ای است که کانتینر به آن متصل می‌شود و از DHCP برای تخصیص IP استفاده می‌شود.

۴. انتخاب قالب‌های مختلف

بسته به نیازهای شما، می‌توانید قالب‌های مختلف سیستم‌عامل را انتخاب کنید:

  1. Debian: قالب محبوب و سبک که برای کانتینرهای سبک و استفاده در سرورها مناسب است.
  2. Ubuntu: یکی از توزیع‌های محبوب لینوکس که برای محیط‌های توسعه و آزمایش مناسب است.
  3. CentOS: برای کانتینرهای تجاری که نیاز به پشتیبانی طولانی‌مدت دارند.
  4. Alpine: یک توزیع بسیار سبک که بیشتر برای ساخت کانتینرهای با حجم کم و کارایی بالا استفاده می‌شود.
  5. Fedora: توزیع دیگری است که برای محیط‌های توسعه و آزمایشی استفاده می‌شود.

جمع‌بندی

انتخاب قالب سیستم‌عامل مناسب برای کانتینر در Proxmox VE یک فرآیند حیاتی است که تأثیر زیادی بر عملکرد و کاربرد کانتینر شما دارد. با انتخاب قالب مناسب، شما می‌توانید کانتینرهایی را ایجاد کنید که دقیقاً با نیازهای شما مطابقت دارند. استفاده از Web UI یا خط فرمان برای این فرآیند به شما انعطاف‌پذیری و راحتی بیشتری می‌دهد. قالب‌های مختلفی مانند Debian، Ubuntu، CentOS، و Alpine در دسترس هستند که هرکدام برای کاربردهای خاص مناسب هستند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”کانتینرهای مبتنی بر لینوکس (Debian, Ubuntu, CentOS)” subtitle=”توضیحات کامل”]در این بخش، ما به بررسی سه سیستم‌عامل لینوکس محبوب برای استفاده در کانتینرهای LXC خواهیم پرداخت: Debian، Ubuntu، و CentOS. این سیستم‌عامل‌ها به‌عنوان پایه‌ای برای ایجاد کانتینرهای مبتنی بر لینوکس در محیط Proxmox VE استفاده می‌شوند. کانتینرها به کاربران این امکان را می‌دهند که چندین محیط ایزوله‌شده با منابع مشترک را به‌طور هم‌زمان اجرا کنند، بدون اینکه به‌طور کامل از ماشین‌های مجازی استفاده شود. این امر باعث کاهش مصرف منابع و بهبود کارایی می‌شود.


۱. Debian: سبک و پایدار

Debian یکی از محبوب‌ترین توزیع‌های لینوکس است که برای سرورها و محیط‌های تولیدی مناسب است. Debian به‌ویژه برای استفاده در کانتینرها بسیار مورد توجه قرار دارد، چرا که یک سیستم‌عامل سبک و پایدار است که وابستگی‌های کمتری دارد و برای مقاصد مختلفی از جمله سرویس‌دهی وب، پایگاه داده، یا محیط‌های توسعه مورد استفاده قرار می‌گیرد.

ویژگی‌های Debian:

  • پایداری: Debian به‌طور کلی یکی از پایدارترین توزیع‌های لینوکس است که برای استفاده در محیط‌های سرور بسیار مناسب است.
  • سبکی: Debian سیستم‌عاملی سبک و بهینه است که می‌تواند برای ساخت کانتینرهای کم‌حجم استفاده شود.
  • سازگاری: Debian سازگاری بالایی با بیشتر نرم‌افزارها و اپلیکیشن‌های مبتنی بر لینوکس دارد.

نحوه ایجاد کانتینر Debian:

  1. ابتدا قالب Debian را از مخزن پروکسموکس دانلود می‌کنیم:
    pveam download local debian-10-standard_10.7-1_amd64.tar.gz
    
  2. سپس با استفاده از دستور pct کانتینر جدیدی با سیستم‌عامل Debian ایجاد می‌کنیم:
    pct create 100 /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz -hostname debian-container -memory 512 -cores 1 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

۲. Ubuntu: توزیعی محبوب برای توسعه و سرورها

Ubuntu یکی دیگر از توزیع‌های لینوکس است که بر پایه Debian ساخته شده و برای استفاده در کانتینرها بسیار مناسب است. این سیستم‌عامل به‌خصوص در دنیای توسعه نرم‌افزار و سرورهای ابری بسیار محبوب است. به‌عنوان یک توزیع لینوکس کاربرپسند و با پشتیبانی عالی از بسیاری از نرم‌افزارها، Ubuntu یک انتخاب عالی برای توسعه‌دهندگان و محیط‌های تست است.

ویژگی‌های Ubuntu:

  • کاربرپسند: یکی از مهم‌ترین ویژگی‌های Ubuntu رابط کاربری و ابزارهای پشتیبانی قوی است که به‌ویژه برای تازه‌کارها مناسب است.
  • پشتیبانی نرم‌افزاری: Ubuntu پشتیبانی بسیار خوبی از نرم‌افزارهای رایج در دنیای توسعه دارد.
  • پشتیبانی طولانی‌مدت (LTS): نسخه‌های LTS (پشتیبانی طولانی‌مدت) Ubuntu به‌طور ویژه برای سرورها و محیط‌های تولیدی مناسب هستند.

نحوه ایجاد کانتینر Ubuntu:

  1. ابتدا قالب Ubuntu را از مخزن پروکسموکس دانلود می‌کنیم:
    pveam download local ubuntu-20.04-standard_20.04-1_amd64.tar.gz
    
  2. سپس کانتینر جدید Ubuntu را با دستور زیر ایجاد می‌کنیم:
    pct create 101 /var/lib/vz/template/cache/ubuntu-20.04-standard_20.04-1_amd64.tar.gz -hostname ubuntu-container -memory 1024 -cores 2 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

۳. CentOS: انتخابی برای سرورهای تجاری و پایدار

CentOS که بر اساس Red Hat Enterprise Linux (RHEL) ساخته شده است، به‌طور خاص برای استفاده در سرورها طراحی شده و از ویژگی‌های امنیتی و پایدار RHEL بهره می‌برد. این سیستم‌عامل به‌ویژه برای محیط‌های تجاری، سرورهای وب و پایگاه داده‌ها بسیار مناسب است. CentOS در مقایسه با Debian و Ubuntu به‌طور عمومی کمتر از منابع استفاده می‌کند و برای بسیاری از سازمان‌ها گزینه‌ای محبوب است.

ویژگی‌های CentOS:

  • پایداری: CentOS به‌طور خاص برای محیط‌های تولیدی طراحی شده و نسخه‌های طولانی‌مدتی از آن در دسترس است.
  • امنیت: CentOS با تمرکز بر امنیت و سازگاری با RHEL، ابزارهای امنیتی قدرتمندی دارد.
  • سازگاری با نرم‌افزارهای تجاری: CentOS برای استفاده در نرم‌افزارهای تجاری ساخته شده است و بسیاری از نرم‌افزارها از آن پشتیبانی می‌کنند.

نحوه ایجاد کانتینر CentOS:

  1. ابتدا قالب CentOS را از مخزن پروکسموکس دانلود می‌کنیم:
    pveam download local centos-7-standard_7.9-2009_amd64.tar.gz
    
  2. سپس با استفاده از دستور pct کانتینر CentOS را ایجاد می‌کنیم:
    pct create 102 /var/lib/vz/template/cache/centos-7-standard_7.9-2009_amd64.tar.gz -hostname centos-container -memory 1024 -cores 2 -net0 name=eth0,bridge=vmbr0,ip=dhcp
    

مقایسه سه توزیع: Debian، Ubuntu، CentOS

ویژگی Debian Ubuntu CentOS
پایداری بسیار پایدار پایدار، اما به‌روزتر بسیار پایدار، از RHEL گرفته شده
سبکی سبک و کم‌حجم سبک، اما به اندازه Debian نیست سبک و بهینه برای سرورهای تجاری
پشتیبانی نرم‌افزاری عالی، اما ممکن است به‌روز نباشد عالی و به‌روزترین نسخه‌ها پشتیبانی طولانی‌مدت از نرم‌افزارها
امنیت خوب خوب، اما نیاز به پیکربندی دارد بسیار عالی، پشتیبانی رسمی از RHEL
کاربرد مناسب برای محیط‌های سرور و توسعه مناسب برای توسعه‌دهندگان و کاربران خانگی مناسب برای محیط‌های سرور تجاری

جمع‌بندی

در نهایت، انتخاب بین Debian، Ubuntu، و CentOS به نیازهای خاص شما بستگی دارد. اگر به دنبال پایداری و سبکی هستید، Debian بهترین انتخاب است. اگر نیاز به توزیعی با پشتیبانی قوی برای محیط‌های توسعه و سرور دارید، Ubuntu ممکن است بهترین گزینه باشد. از طرف دیگر، اگر نیاز به یک توزیع پایدار برای محیط‌های تجاری با امنیت بالا دارید، CentOS انتخاب مناسبی است. در هر صورت، تمامی این توزیع‌ها می‌توانند به‌طور مؤثر در ایجاد و مدیریت کانتینرها در Proxmox VE استفاده شوند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از Templateها برای راه‌اندازی سریع” subtitle=”توضیحات کامل”]در Proxmox VE، یکی از راه‌های سریع برای راه‌اندازی کانتینرها استفاده از Templateها است. Templateها مجموعه‌ای از پیکربندی‌ها و فایل‌های پیش‌فرض هستند که می‌توانند به عنوان یک تصویر پایه برای ایجاد کانتینرهای جدید استفاده شوند. این روش به‌ویژه برای محیط‌های توسعه و آزمایش مفید است زیرا نصب سیستم‌عامل‌های جدید از صفر را حذف کرده و زمان ایجاد کانتینرها را به‌شدت کاهش می‌دهد.

فرآیند ایجاد کانتینر از Template

در ابتدا، شما باید Template مناسب برای کانتینر خود را انتخاب کنید. Proxmox VE تعدادی Template پیش‌فرض مانند Debian، Ubuntu، CentOS و غیره را فراهم می‌آورد که می‌توانید از آن‌ها برای راه‌اندازی کانتینرهای خود استفاده کنید. علاوه بر این، شما همچنین می‌توانید Templateهای خود را بسازید یا از منابع خارجی برای دانلود استفاده کنید.


دانلود Template از Repository Proxmox

قبل از استفاده از Templateها، باید مطمئن شوید که Template مورد نظر شما دانلود شده است. برای انجام این کار، می‌توانید از Web UI یا دستورات کامندی استفاده کنید.

استفاده از Web UI:
  1. وارد Web UI Proxmox شوید.
  2. از منوی سمت چپ، گزینه Datacenter را انتخاب کنید.
  3. در نوار بالایی، گزینه Storage را انتخاب کنید و پس از آن، ذخیره‌سازی که می‌خواهید Templateها را دانلود کنید (معمولاً local یا local-lvm) انتخاب کنید.
  4. در پایین صفحه، بر روی دکمه Templates کلیک کنید.
  5. از لیست موجود، Template مورد نظر خود را انتخاب کنید و بر روی Download کلیک کنید.
استفاده از Command Line:

برای دانلود Template با استفاده از دستور، وارد ترمینال شوید و دستور زیر را وارد کنید:

pct template download local debian-11-standard_11.2-1_amd64.tar.gz

این دستور Template مربوط به Debian 11 را از مخزن Proxmox دانلود خواهد کرد. شما می‌توانید برای هر سیستم‌عامل دیگری که نیاز دارید، مشابه همین دستور را اجرا کنید.


ایجاد کانتینر از Template

پس از دانلود Template، شما می‌توانید از آن برای ایجاد کانتینر جدید استفاده کنید.

استفاده از Web UI:
  1. وارد Web UI Proxmox شوید.
  2. روی نود مورد نظر راست‌کلیک کرده و گزینه Create CT را انتخاب کنید.
  3. در صفحه‌ای که باز می‌شود، اطلاعات مورد نظر مانند Hostname، Root Password و Memory را وارد کنید.
  4. در قسمت Template، Template مورد نظر را از لیست موجود انتخاب کنید.
  5. سایر تنظیمات مورد نیاز را انجام دهید (مانند تنظیمات شبکه، دیسک و غیره).
  6. پس از تکمیل تنظیمات، روی Finish کلیک کنید تا کانتینر ساخته شود.
استفاده از Command Line:

برای ایجاد کانتینر از Template با استفاده از دستور، می‌توانید از دستور زیر استفاده کنید:

pct create 101 /var/lib/vz/template/cache/debian-11-standard_11.2-1_amd64.tar.gz -hostname mycontainer -memory 1024 -cores 2 -net0 name=eth0,bridge=vmbr0,ip=dhcp

در این دستور:

  • 101 شناسه کانتینر است.
  • مسیر Template دانلود شده (/var/lib/vz/template/cache/) به همراه نام Template وارد می‌شود.
  • -hostname نام کانتینر را مشخص می‌کند.
  • -memory و -cores میزان حافظه و تعداد هسته‌ها را تعیین می‌کنند.
  • -net0 تنظیمات شبکه برای اتصال به شبکه فیزیکی را مشخص می‌کند.

راه‌اندازی سریع با استفاده از Template

Templateها نه‌تنها باعث سرعت بخشیدن به فرآیند راه‌اندازی کانتینرها می‌شوند، بلکه همچنین محیط‌هایی استاندارد و یکپارچه را برای توسعه، آزمایش و استقرار سیستم‌ها ایجاد می‌کنند. به‌ویژه در محیط‌های تست و توسعه که به سرعت نیاز به راه‌اندازی محیط‌های مختلف وجود دارد، استفاده از Template یک انتخاب عالی است.

  • استفاده از Template در محیط توسعه: برای ایجاد کانتینرهایی که در آنها می‌خواهید نرم‌افزار یا پیکربندی خاصی را آزمایش کنید.
  • استفاده از Template در محیط‌های تولید: برای راه‌اندازی سریع کانتینرهای استاندارد که نیاز به پیکربندی کمتری دارند.

جمع‌بندی

استفاده از Templateها در Proxmox VE یک روش سریع و مؤثر برای راه‌اندازی کانتینرهای مختلف است. شما می‌توانید Templateهای آماده برای انواع سیستم‌عامل‌ها را دانلود کرده و با استفاده از تنظیمات ساده، کانتینرهای جدید را ایجاد کنید. این فرآیند باعث صرفه‌جویی در زمان و منابع می‌شود و همچنین قابلیت تکرارپذیری بالایی را برای توسعه‌دهندگان و مدیران سیستم فراهم می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تخصیص منابع (CPU, RAM, Disk) به کانتینر” subtitle=”توضیحات کامل”]یکی از قابلیت‌های مهم مدیریت کانتینرها، تخصیص منابع مناسب مانند CPU، RAM و Disk به کانتینرها است. در Proxmox VE، می‌توانید به‌طور دقیق منابع سیستم خود را به کانتینرها تخصیص دهید تا بهینه‌ترین عملکرد را داشته باشند. در این بخش، نحوه تخصیص منابع به کانتینر را به‌طور کامل بررسی خواهیم کرد.


تخصیص CPU به کانتینر

Proxmox VE به شما این امکان را می‌دهد که تعداد هسته‌های CPU و میزان استفاده از CPU را برای هر کانتینر به‌طور خاص تنظیم کنید.

تنظیمات گرافیکی:

  1. وارد Web UI Proxmox شوید.
  2. بر روی کانتینری که می‌خواهید منابع CPU آن را تنظیم کنید کلیک کنید.
  3. به بخش Resources بروید.
  4. در قسمت CPU، شما می‌توانید تعداد CPU cores را وارد کنید که این مقدار تعداد هسته‌هایی است که کانتینر شما از CPU استفاده خواهد کرد.
  5. همچنین می‌توانید پارامتر CPU limit را تنظیم کنید تا محدودیتی بر مصرف CPU در کانتینر اعمال شود.

تنظیمات کامندی:

برای تخصیص منابع CPU از طریق خط فرمان، می‌توانید از دستور pct استفاده کنید. برای مثال:

pct set 101 -cores 2

در این مثال:

  • 101 شناسه کانتینر است.
  • -cores 2 تعداد هسته‌هایی که کانتینر می‌تواند استفاده کند را به 2 هسته تنظیم می‌کند.

اگر بخواهید محدودیت‌هایی برای استفاده از CPU در نظر بگیرید، از گزینه -cpu به‌صورت زیر استفاده کنید:

pct set 101 -cpu 2

این دستور تعداد 2 هسته از CPU را به کانتینر اختصاص می‌دهد.


تخصیص RAM به کانتینر

در Proxmox VE، شما می‌توانید میزان حافظه RAM مورد استفاده برای هر کانتینر را مشخص کنید. این کار می‌تواند از طریق Web UI یا خط فرمان انجام شود.

تنظیمات گرافیکی:

  1. وارد Web UI شوید.
  2. کانتینر مورد نظر خود را انتخاب کنید.
  3. به بخش Resources رفته و تنظیمات مربوط به Memory (RAM) را پیدا کنید.
  4. مقدار حافظه‌ای که می‌خواهید به کانتینر اختصاص دهید را وارد کنید.

برای تنظیم بیشتر می‌توانید گزینه Memory Limit را فعال کرده و برای کانتینر محدودیت‌های مختلف حافظه مانند soft limit و hard limit تعریف کنید.

تنظیمات کامندی:

برای تخصیص حافظه به کانتینر از دستور pct استفاده کنید. به‌طور مثال:

pct set 101 -memory 2048

در این دستور:

  • 101 شناسه کانتینر است.
  • -memory 2048 حافظه 2GB را به کانتینر اختصاص می‌دهد.

شما همچنین می‌توانید از گزینه‌های swap و memory limit برای تنظیم محدودیت‌های حافظه استفاده کنید:

pct set 101 -memory 2048 -swap 1024

در اینجا:

  • -swap 1024 به کانتینر 1GB swap اختصاص می‌دهد.

تخصیص Disk به کانتینر

برای هر کانتینر می‌توانید میزان فضای دیسک را تنظیم کنید. همچنین نوع دیسک (مانند استاندارد یا SSD) و تنظیمات مختلف ورودی/خروجی (I/O) را مشخص کنید.

تنظیمات گرافیکی:

  1. وارد Web UI شوید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. به بخش Resources بروید و سپس به قسمت Disk بروید.
  4. در این قسمت، می‌توانید اندازه دیسک و نوع آن را (مانند SCSI، VirtIO و IDE) تعیین کنید.

تنظیمات کامندی:

برای تخصیص دیسک به کانتینر می‌توانید از دستور pct استفاده کنید. به‌طور مثال:

pct set 101 -rootfs local-lvm:10

در این دستور:

  • 101 شناسه کانتینر است.
  • -rootfs به‌معنی اختصاص دادن فضای دیسک به روت فایل سیستم است.
  • local-lvm:10 به‌معنی تخصیص 10GB به کانتینر از ذخیره‌سازی local-lvm است.

اگر بخواهید از تنظیمات I/O برای دیسک استفاده کنید، می‌توانید از گزینه‌های زیر بهره ببرید:

pct set 101 -rootfs local-lvm:10 -iops 1000

این دستور به کانتینر 10GB فضای دیسک از local-lvm تخصیص می‌دهد و تعداد 1000 عملیات ورودی/خروجی در ثانیه (IOPS) را محدود می‌کند.


تنظیمات پیشرفته I/O برای دیسک

Proxmox VE به شما این امکان را می‌دهد که تنظیمات پیشرفته I/O را برای دیسک کانتینرها مشخص کنید. این تنظیمات می‌تواند شامل سرعت نوشتن و خواندن، تعداد درخواست‌های I/O، و نوع دیسک باشد.

تنظیمات گرافیکی:

  1. وارد Web UI شوید.
  2. کانتینر را انتخاب کرده و به بخش Disk بروید.
  3. در اینجا می‌توانید محدودیت‌های I/O مانند Block size، Read/Write speed و IOPS را تنظیم کنید.

تنظیمات کامندی:

برای اعمال تنظیمات I/O از طریق خط فرمان، از دستور pct استفاده کنید. به‌عنوان مثال:

pct set 101 -rootfs local-lvm:10 -iops 2000 -writeback 512

این دستور:

  • به کانتینر 10GB فضای دیسک اختصاص می‌دهد.
  • تعداد IOPS را به 2000 محدود می‌کند.
  • اندازه بلاک‌ برای نوشتن را به 512 تنظیم می‌کند.

جمع‌بندی

تخصیص منابع به کانتینرها در Proxmox VE یکی از جنبه‌های مهم در مدیریت بهینه عملکرد کانتینرها است. از طریق Web UI یا دستورات کامندی، می‌توان به‌طور دقیق منابعی چون CPU، RAM و Disk را برای هر کانتینر تخصیص داد. این فرآیند به مدیران سیستم این امکان را می‌دهد که منابع سیستم را به بهترین شکل ممکن مدیریت کرده و عملکرد بهینه‌ای برای کانتینرهای مختلف فراهم کنند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات شبکه در کانتینر” subtitle=”توضیحات کامل”]یکی از جنبه‌های کلیدی در مدیریت کانتینرها، پیکربندی و تنظیمات شبکه است. این تنظیمات به شما امکان می‌دهند که نحوه ارتباط کانتینرها با شبکه‌های داخلی و خارجی را به‌طور دقیق کنترل کنید. در Proxmox VE، سه روش اصلی برای اتصال کانتینرها به شبکه وجود دارد: Bridge Networking، NAT، و VLAN. در این بخش، به بررسی هر یک از این تنظیمات می‌پردازیم و نحوه پیکربندی آن‌ها را به صورت گرافیکی و کامندی توضیح می‌دهیم.


Bridge Networking

Bridge Networking یکی از متداول‌ترین روش‌های اتصال کانتینر به شبکه است. در این روش، کانتینر به‌طور مستقیم به یک شبکه فیزیکی یا مجازی متصل می‌شود و IP خود را از شبکه داخلی دریافت می‌کند.

تنظیمات گرافیکی:

  1. وارد Web UI Proxmox شوید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. به بخش Network بروید.
  4. بر روی Add کلیک کرده و گزینه Bridge را انتخاب کنید.
  5. در فیلد Bridge، شبکه‌ای که می‌خواهید کانتینر به آن متصل شود را انتخاب کنید (مثلاً vmbr0 برای شبکه اصلی).
  6. در قسمت IP Address، IP استاتیک یا DHCP را انتخاب کنید.
  7. در صورت نیاز، تنظیمات پیشرفته مانند MAC Address و VLAN را نیز می‌توانید در اینجا وارد کنید.
  8. تنظیمات را ذخیره کرده و کانتینر را راه‌اندازی کنید.

تنظیمات کامندی:

برای تنظیم Bridge Networking از طریق خط فرمان، می‌توانید از دستور pct به‌صورت زیر استفاده کنید:

pct set 101 -net0 name=eth0,bridge=vmbr0,ip=dhcp

در این دستور:

  • 101 شناسه کانتینر است.
  • -net0 مشخص می‌کند که کارت شبکه اول کانتینر تنظیم می‌شود.
  • name=eth0 نام کارت شبکه کانتینر است.
  • bridge=vmbr0 به کانتینر اجازه می‌دهد که به شبکه vmbr0 متصل شود.
  • ip=dhcp به کانتینر دستور می‌دهد که IP خود را از سرور DHCP دریافت کند.

اگر بخواهید IP استاتیک تنظیم کنید، از دستور زیر استفاده کنید:

pct set 101 -net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24

این دستور به کانتینر IP استاتیک 192.168.1.100 را اختصاص می‌دهد.


NAT (Network Address Translation)

در این روش، کانتینر به شبکه خارجی از طریق NAT متصل می‌شود. این اتصال به‌طور معمول زمانی استفاده می‌شود که بخواهید چندین کانتینر را به یک IP خارجی متصل کنید.

تنظیمات گرافیکی:

  1. وارد Web UI شوید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. به بخش Network بروید.
  4. بر روی Add کلیک کرده و گزینه NAT را انتخاب کنید.
  5. در فیلد Bridge، شبکه‌ای که NAT از آن استفاده خواهد کرد را انتخاب کنید (مثلاً vmbr0).
  6. در قسمت IP Address، آدرس IP استاتیک یا DHCP را وارد کنید.
  7. تنظیمات را ذخیره کرده و کانتینر را راه‌اندازی کنید.

تنظیمات کامندی:

برای تنظیم NAT از طریق خط فرمان، دستور pct به‌صورت زیر استفاده می‌شود:

pct set 101 -net0 name=eth0,bridge=vmbr0,ip=dhcp,firewall=1

در اینجا:

  • -net0 به تنظیمات شبکه اول کانتینر اشاره دارد.
  • name=eth0 به کانتینر نام کارت شبکه eth0 را می‌دهد.
  • bridge=vmbr0 به کانتینر اجازه می‌دهد که از شبکه vmbr0 استفاده کند.
  • ip=dhcp به کانتینر می‌گوید که آدرس IP خود را از سرور DHCP دریافت کند.
  • firewall=1 باعث فعال شدن فایروال برای NAT می‌شود.

اگر نیاز به تنظیمات اضافی مانند port forwarding داشته باشید، می‌توانید از دستورهای اضافی مانند iptables استفاده کنید.


VLAN (Virtual Local Area Network)

VLAN به شما این امکان را می‌دهد که کانتینرها را به شبکه‌های مجازی مختلف متصل کنید. این ویژگی برای ایجاد تفکیک شبکه‌های مختلف، به‌ویژه در محیط‌های بزرگ و پیچیده مفید است.

تنظیمات گرافیکی:

  1. وارد Web UI شوید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. به بخش Network بروید.
  4. بر روی Add کلیک کرده و گزینه VLAN را انتخاب کنید.
  5. در فیلد VLAN Tag، شناسه VLAN (برای مثال 100) را وارد کنید.
  6. تنظیمات دیگر را مطابق نیاز خود تکمیل کنید.
  7. تنظیمات را ذخیره کرده و کانتینر را راه‌اندازی کنید.

تنظیمات کامندی:

برای تنظیم VLAN از طریق خط فرمان، دستور pct به‌صورت زیر استفاده می‌شود:

pct set 101 -net0 name=eth0,bridge=vmbr0,tag=100

در اینجا:

  • -net0 شبکه اول کانتینر را پیکربندی می‌کند.
  • name=eth0 نام کارت شبکه کانتینر است.
  • bridge=vmbr0 به کانتینر اجازه می‌دهد که به شبکه vmbr0 متصل شود.
  • tag=100 شناسه VLAN برای این شبکه است.

این دستور به کانتینر اجازه می‌دهد که به شبکه VLAN با شناسه 100 متصل شود.


جمع‌بندی

پیکربندی شبکه در کانتینرهای LXC می‌تواند از طریق چندین روش مختلف انجام شود: Bridge Networking، NAT و VLAN. هر کدام از این روش‌ها کاربرد خاص خود را دارند و به‌طور مؤثر برای مدیریت شبکه در محیط‌های مختلف استفاده می‌شوند. با استفاده از Web UI یا دستورات کامندی، می‌توانید شبکه کانتینرها را به‌راحتی تنظیم کنید و به آن‌ها اجازه دهید تا به شبکه‌های داخلی یا خارجی متصل شوند. این قابلیت‌ها باعث افزایش انعطاف‌پذیری و مدیریت آسان‌تر کانتینرها می‌شوند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی دستگاه‌ها و دیسک‌های اضافی برای کانتینر” subtitle=”توضیحات کامل”]در Proxmox VE، شما می‌توانید دستگاه‌ها و دیسک‌های اضافی را به کانتینرها اضافه کنید تا بتوانید فضای ذخیره‌سازی بیشتر یا دستگاه‌های ورودی/خروجی (I/O) را به آن‌ها اختصاص دهید. این دستگاه‌ها می‌توانند شامل دیسک‌های اضافی برای ذخیره‌سازی داده‌ها، USB‌ها یا دستگاه‌های PCI باشند که به کانتینرها نیاز دارند.

در این بخش، نحوه افزودن و پیکربندی دیسک‌های اضافی برای کانتینر را از طریق Web UI و خط فرمان (Command Line Interface) به صورت کاملاً عملی بررسی خواهیم کرد.


پیکربندی دیسک‌های اضافی برای کانتینر

برای هر کانتینر LXC، می‌توانید دیسک‌های اضافی را برای ذخیره‌سازی اطلاعات اضافه کنید. این دیسک‌ها می‌توانند به صورت local یا در شبکه (NFS, iSCSI, Ceph) تنظیم شوند.

تنظیمات گرافیکی (Web UI):

  1. وارد Web UI شوید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. به قسمت Hardware بروید.
  4. روی Add کلیک کرده و گزینه Disk را انتخاب کنید.
  5. در پنجره باز شده، تنظیمات دیسک را انجام دهید:
    • Storage: محلی که دیسک باید در آن ذخیره شود (به عنوان مثال local).
    • Disk size: اندازه دیسک (مثلاً 10GB).
    • Disk format: فرمت دیسک (برای مثال raw یا qcow2).
  6. پس از وارد کردن اطلاعات مورد نظر، بر روی Add کلیک کنید.
  7. کانتینر را راه‌اندازی کنید تا دیسک جدید به آن اضافه شود.

تنظیمات کامندی (CLI):

برای افزودن یک دیسک جدید به یک کانتینر، دستور زیر را استفاده کنید:

pct set 101 -mp0 /mnt/data,mp=/data

در این دستور:

  • 101 شناسه کانتینر است.
  • -mp0 به شما این امکان را می‌دهد که اولین دیسک را به کانتینر اضافه کنید.
  • /mnt/data مسیر دیسک در سیستم میزبان است.
  • mp=/data مسیر آن در کانتینر که به عنوان mount point شناخته می‌شود.

این دستور یک دایرکتوری موجود روی سیستم میزبان را به عنوان دیسک اضافی به کانتینر اضافه می‌کند.


پیکربندی دیسک اضافی با تنظیمات پیشرفته

در صورتی که بخواهید تنظیمات پیشرفته‌تری مانند تغییر اندازه دیسک، استفاده از فرمت‌های خاص یا تغییر نوع دیسک (SSD/HDD) داشته باشید، می‌توانید این تنظیمات را از طریق Web UI یا CLI انجام دهید.

تنظیمات گرافیکی (Web UI):

  1. وارد Web UI شوید و کانتینر را انتخاب کنید.
  2. به قسمت Hardware بروید.
  3. بر روی دیسک مورد نظر کلیک کنید و گزینه Edit را انتخاب کنید.
  4. در پنجره باز شده، می‌توانید اندازه دیسک، فرمت و سایر پارامترهای دیسک را ویرایش کنید.
  5. پس از انجام تغییرات، بر روی Save کلیک کنید.

تنظیمات کامندی (CLI):

برای تغییر اندازه دیسک یک کانتینر، دستور زیر را استفاده کنید:

pct resize 101 -rootfs 20G

در این دستور:

  • 101 شناسه کانتینر است.
  • -rootfs به شما این امکان را می‌دهد که دیسک ریشه کانتینر را تغییر دهید.
  • 20G اندازه جدید دیسک را مشخص می‌کند (در این مثال، 20 گیگابایت).

اگر می‌خواهید دیسک جدیدی با فرمت‌های خاص مانند qcow2 ایجاد کنید، می‌توانید دستور زیر را استفاده کنید:

pct set 101 -rootfs /mnt/data/vm-101-disk-1.qcow2,size=20G

این دستور یک دیسک جدید به کانتینر اضافه کرده و آن را به اندازه 20 گیگابایت اختصاص می‌دهد.


اضافه کردن دستگاه‌های USB به کانتینر

اگر نیاز دارید یک دستگاه USB مانند فلش درایو یا هارد دیسک را به کانتینر متصل کنید، می‌توانید این کار را به‌راحتی از طریق Web UI یا خط فرمان انجام دهید.

تنظیمات گرافیکی (Web UI):

  1. وارد Web UI شوید و کانتینر مورد نظر را انتخاب کنید.
  2. به قسمت Hardware بروید.
  3. روی Add کلیک کرده و گزینه USB Device را انتخاب کنید.
  4. دستگاه USB مورد نظر را از لیست انتخاب کنید.
  5. بر روی Add کلیک کنید تا دستگاه به کانتینر اضافه شود.
  6. کانتینر را راه‌اندازی کنید تا دستگاه به‌درستی شناسایی و استفاده شود.

تنظیمات کامندی (CLI):

برای اتصال یک دستگاه USB به کانتینر از خط فرمان، دستور زیر را استفاده کنید:

pct set 101 -usb0 host=045e:076c

در این دستور:

  • 101 شناسه کانتینر است.
  • -usb0 به شما این امکان را می‌دهد که اولین دستگاه USB را به کانتینر متصل کنید.
  • host=045e:076c شناسه دستگاه USB است (که می‌توانید آن را با استفاده از دستور lsusb پیدا کنید).

جمع‌بندی

پیکربندی دستگاه‌ها و دیسک‌های اضافی برای کانتینرها در Proxmox VE یک فرآیند ساده است که می‌توانید آن را از طریق Web UI یا خط فرمان انجام دهید. این امکان به شما اجازه می‌دهد که منابع ذخیره‌سازی بیشتری را به کانتینرها اختصاص دهید و دستگاه‌های اضافی مانند USB‌ها را به آن‌ها متصل کنید. با استفاده از این امکانات، می‌توانید عملکرد کانتینرها را بهینه کرده و منابع اضافی را برای نیازهای خاص تخصیص دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتخاب و پیکربندی سیستم فایل برای کانتینر” subtitle=”توضیحات کامل”]در هنگام راه‌اندازی و پیکربندی یک کانتینر در Proxmox VE، یکی از مهم‌ترین بخش‌ها انتخاب سیستم فایل مناسب برای کانتینر است. انتخاب سیستم فایل صحیح می‌تواند تأثیر زیادی بر عملکرد، قابلیت اطمینان، و ویژگی‌های مختلف کانتینر داشته باشد. در این بخش، نحوه انتخاب و پیکربندی سیستم فایل برای کانتینرها را از طریق Web UI و خط فرمان (CLI) بررسی خواهیم کرد.


سیستم فایل‌های پشتیبانی شده در LXC

قبل از شروع، باید بدانید که Proxmox VE و LXC از انواع مختلف سیستم فایل‌ها پشتیبانی می‌کنند. برخی از سیستم فایل‌های رایج برای کانتینرها عبارتند از:

  1. Ext4: یکی از محبوب‌ترین و پایدارترین سیستم‌های فایل است که در بیشتر موارد عملکرد بسیار خوبی دارد. این سیستم فایل اغلب برای کانتینرهای مبتنی بر Proxmox استفاده می‌شود.
  2. ZFS: یک سیستم فایل پیشرفته است که امکانات زیادی مانند snapshots، compression و replication را ارائه می‌دهد. برای نیازهای ذخیره‌سازی پیشرفته‌تر، ZFS گزینه مناسبی است.
  3. Btrfs: یک سیستم فایل مدرن که امکاناتی مانند snapshot، copy-on-write و سطح بالای فشرده‌سازی را ارائه می‌دهد. این سیستم فایل به‌ویژه در زمینه کانتینرها و ماشین‌های مجازی مفید است.
  4. LVM: به طور کلی برای مدیریت حجم‌های منطقی استفاده می‌شود و می‌تواند برای پیکربندی سیستم‌های فایل پویا و استفاده از ویژگی‌هایی مانند snapshots و افزایش اندازه دیسک مفید باشد.

انتخاب سیستم فایل برای کانتینر در هنگام ایجاد

تنظیمات گرافیکی (Web UI):

  1. وارد Web UI شوید و کانتینر جدیدی ایجاد کنید.
  2. در هنگام ایجاد کانتینر، به بخش Disk بروید.
  3. در قسمت Storage گزینه‌ای برای انتخاب سیستم فایل در دسترس است. بسته به تنظیمات ذخیره‌سازی شما، می‌توانید یکی از سیستم فایل‌های موجود مانند ext4, zfs, یا btrfs را انتخاب کنید.
  4. پس از انتخاب سیستم فایل، سایر تنظیمات مربوط به دیسک مانند اندازه و فرمت آن را پیکربندی کنید.
  5. برای ایجاد کانتینر با تنظیمات جدید، بر روی Finish کلیک کنید.

تنظیمات کامندی (CLI):

برای ایجاد یک کانتینر جدید با سیستم فایل خاص از دستور pct create استفاده می‌کنید:

pct create 101 /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz -storage local -rootfs local:8 -fs ext4

در این دستور:

  • 101 شناسه کانتینر است.
  • /var/lib/vz/template/cache/debian-10-standard_10.7-1_amd64.tar.gz مسیر قالب سیستم عامل کانتینر است.
  • -storage local اشاره به ذخیره‌سازی محلی دارد.
  • -rootfs local:8 به معنای این است که دیسک ریشه کانتینر 8 گیگابایت خواهد بود.
  • -fs ext4 سیستم فایل انتخابی برای دیسک ریشه کانتینر است.

این دستور کانتینری با سیستم فایل ext4 ایجاد می‌کند. می‌توانید سیستم فایل‌های دیگری مانند zfs یا btrfs را نیز انتخاب کنید.


پیکربندی سیستم فایل برای کانتینرهای موجود

تغییر سیستم فایل در کانتینر

برای تغییر سیستم فایل یک کانتینر موجود، ابتدا باید کانتینر را متوقف کنید و سپس از دستور pct برای تنظیم آن استفاده کنید.

  1. متوقف کردن کانتینر:
    pct stop 101
    
  2. تغییر سیستم فایل: در اینجا سیستم فایل جدید به کانتینر اضافه خواهد شد. به عنوان مثال، اگر می‌خواهید سیستم فایل کانتینر را به zfs تغییر دهید، از دستور زیر استفاده کنید:
    pct set 101 -rootfs zfs:my_zfs_pool/101/0
    

در این دستور:

  • 101 شناسه کانتینر است.
  • zfs:my_zfs_pool/101/0 به سیستم فایل ZFS اشاره دارد که کانتینر به آن متصل می‌شود.
  1. راه‌اندازی مجدد کانتینر:
    pct start 101
    

این دستورات اجازه می‌دهند که سیستم فایل کانتینر تغییر داده شود. توجه داشته باشید که معمولاً این عملیات شامل جابجایی یا کپی کردن داده‌ها از یک سیستم فایل به سیستم فایل دیگر است.


پیکربندی سیستم فایل برای ذخیره‌سازی پویا و لایه‌های مختلف

در Proxmox VE و LXC می‌توان از سیستم‌های فایل لایه‌ای مانند ZFS یا Btrfs استفاده کرد که از ویژگی‌هایی مانند Copy-on-write (CoW) پشتیبانی می‌کنند. این قابلیت‌ها به شما این امکان را می‌دهند که ذخیره‌سازی پویا برای کانتینرها ایجاد کنید که می‌تواند در کاربردهای خاص مانند مدیریت snapshot‌ها مفید باشد.

استفاده از ZFS:

اگر از ZFS به عنوان سیستم فایل برای ذخیره‌سازی کانتینر استفاده می‌کنید، می‌توانید از قابلیت‌های مانند snapshot و replication استفاده کنید.

  1. ایجاد یک ZFS volume برای کانتینر:
    zfs create my_zfs_pool/101
    
  2. تنظیم ZFS به عنوان سیستم فایل کانتینر:
    pct set 101 -rootfs my_zfs_pool/101
    
  3. ایجاد یک snapshot از کانتینر:
    zfs snapshot my_zfs_pool/101@snapshot1
    

استفاده از Btrfs:

Btrfs به شما این امکان را می‌دهد که ویژگی‌هایی مانند snapshot، compression و subvolumes را برای کانتینرها فعال کنید. برای استفاده از Btrfs:

  1. ایجاد یک subvolume در Btrfs:
    btrfs subvolume create /mnt/data/container101
    
  2. تنظیم subvolume به عنوان سیستم فایل کانتینر:
    pct set 101 -rootfs /mnt/data/container101
    
  3. ایجاد snapshot در Btrfs:
    btrfs subvolume snapshot /mnt/data/container101 /mnt/data/container101_snapshot
    

جمع‌بندی

انتخاب سیستم فایل مناسب برای کانتینرها می‌تواند تأثیر زیادی بر کارایی و امکانات اضافی آن‌ها داشته باشد. از سیستم فایل‌های رایج مانند ext4 گرفته تا گزینه‌های پیشرفته‌تر مانند ZFS و Btrfs، انتخاب صحیح بستگی به نیازهای خاص شما دارد. با استفاده از این سیستم‌ها می‌توانید ذخیره‌سازی پایدار، ویژگی‌های اضافی مانند snapshot و replication و همچنین مدیریت بهتر منابع ذخیره‌سازی را برای کانتینرها فراهم کنید. Proxmox VE ابزارهای گرافیکی و خط فرمان مناسبی را برای پیکربندی این سیستم فایل‌ها ارائه می‌دهد که به شما این امکان را می‌دهد تا بهترین راه‌حل را برای نیازهای خود پیاده‌سازی کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 3. مدیریت کانتینرهای LXC”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده وضعیت کانتینرها از Web UI” subtitle=”توضیحات کامل”]در محیط Proxmox VE، مشاهده وضعیت کانتینرها از طریق Web UI (رابط کاربری وب) یکی از راه‌های اصلی مدیریت کانتینرها و نظارت بر عملکرد آن‌ها است. در این بخش، روش‌های مختلفی برای مشاهده وضعیت کانتینرها، از جمله مشاهده منابع مصرفی، وضعیت شبکه، و وضعیت اجرای کانتینرها توضیح داده می‌شود.


1. ورود به Web UI پروکسموکس

قبل از هر چیز، برای مشاهده وضعیت کانتینرها از طریق Web UI، ابتدا باید وارد داشبورد Proxmox VE شوید:

  1. آدرس IP سرور Proxmox خود را در مرورگر وارد کنید.
  2. نام کاربری و رمز عبور خود را وارد کرده و وارد سیستم شوید.

پس از ورود، صفحه‌ی داشبورد Proxmox برای شما نمایش داده خواهد شد.


2. مشاهده وضعیت کانتینرها از Web UI

برای مشاهده وضعیت کانتینرها از Web UI، می‌توانید مراحل زیر را دنبال کنید:

  1. انتخاب نود:
    • در پنل سمت چپ، نود (Node) خود را انتخاب کنید. این نود می‌تواند سرور فیزیکی باشد که کانتینرها بر روی آن اجرا می‌شوند.
  2. رفتن به تب LXC:
    • در نوار بالای صفحه، بر روی “LXC” کلیک کنید. این قسمت شامل تمام کانتینرهای ایجاد شده در این نود خواهد بود.
    • در این قسمت، لیستی از کانتینرهای موجود به همراه وضعیت آن‌ها نشان داده می‌شود.
  3. انتخاب کانتینر خاص:
    • روی کانتینری که می‌خواهید وضعیت آن را مشاهده کنید کلیک کنید. پس از انتخاب کانتینر، اطلاعاتی از قبیل وضعیت فعلی، میزان استفاده از منابع و وضعیت شبکه به شما نمایش داده خواهد شد.
  4. اطلاعات نمایش داده شده: در صفحه‌ی مربوط به هر کانتینر، اطلاعات زیر نمایش داده می‌شود:
    • وضعیت کانتینر: اطلاعاتی مانند “در حال اجرا”، “متوقف” یا “تعلیق” نمایش داده می‌شود.
    • مصرف منابع: اطلاعاتی از جمله میزان استفاده از CPU، RAM و Disk.
    • شبکه: جزئیاتی در مورد شبکه کانتینر، از جمله آدرس IP و وضعیت اتصال به شبکه.
    • مدیریت لایه ذخیره‌سازی: اطلاعاتی در مورد فضای دیسک مورد استفاده و فضاهای آزاد.

3. استفاده از دستورات خط فرمان برای مشاهده وضعیت کانتینر

همچنین می‌توان از دستورات خط فرمان برای مشاهده وضعیت کانتینرها استفاده کرد. این دستورات به شما این امکان را می‌دهند که اطلاعات دقیق‌تری از وضعیت کانتینرها به دست آورید.

برای مشاهده وضعیت کلی کانتینرها:

pct list

این دستور لیستی از کانتینرها به همراه وضعیت آن‌ها (در حال اجرا یا متوقف) را نشان می‌دهد.

برای مشاهده جزئیات بیشتر از وضعیت یک کانتینر خاص، دستور زیر را وارد کنید:

pct status <VMID>

جایگزین <VMID> با شناسه کانتینر (ID) مورد نظر خود کنید. این دستور وضعیت دقیق کانتینر شامل CPU، RAM، شبکه و دیگر جزئیات را نشان می‌دهد.


4. نظارت بر منابع مصرفی کانتینر

برای نظارت بر منابع مصرفی کانتینرها، به‌ویژه در سطح Web UI، می‌توانید از ابزار “Resource Graph” که در پنل Proxmox در دسترس است، استفاده کنید.

  1. پس از انتخاب کانتینر، به تب “Resources” بروید.
  2. در این قسمت می‌توانید نمودارهای مختلفی از مصرف منابع شامل CPU، RAM و Disk مشاهده کنید.

این نمودارها به شما کمک می‌کنند تا با دقت بیشتری متوجه شوید که کدام منابع بیشترین استفاده را دارند و در صورت نیاز اقدام به افزایش یا بهینه‌سازی منابع کنید.


5. مشاهده وضعیت شبکه

در قسمت “Network” نیز می‌توانید وضعیت شبکه کانتینر را مشاهده کنید. در این بخش، اطلاعاتی مانند آدرس‌های IP تخصیص داده شده، وضعیت ارتباطات شبکه و سایر جزئیات شبکه قابل مشاهده است.

اگر بخواهید از طریق کامندلاین هم اطلاعات شبکه کانتینر را مشاهده کنید، می‌توانید از دستور زیر استفاده کنید:

pct exec <VMID> -- ip a

این دستور وضعیت شبکه کانتینر را به شما نشان می‌دهد، از جمله آدرس‌های IP، آداپتورهای شبکه و وضعیت ارتباطات.


جمع بندی

در این بخش، روش‌های مختلفی برای مشاهده وضعیت کانتینرها از Web UI و دستورات خط فرمان بررسی شد. از Web UI می‌توانید به راحتی وضعیت کانتینرها، مصرف منابع و وضعیت شبکه آن‌ها را مشاهده کنید. علاوه بر این، دستورات خط فرمان نیز ابزار قدرتمندی برای مشاهده اطلاعات دقیق‌تری از وضعیت کانتینرها هستند. مدیریت و نظارت بر کانتینرها یکی از وظایف مهم در استفاده از Proxmox VE است و به شما این امکان را می‌دهد که سیستم را بهینه و کارآمد نگه دارید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انجام عملیات مختلف بر روی کانتینرها” subtitle=”توضیحات کامل”]در محیط Proxmox VE، انجام عملیات مختلف بر روی کانتینرها بخش مهمی از مدیریت روزانه است. این عملیات شامل روشن کردن، خاموش کردن، راه‌اندازی مجدد، تعلیق و از سرگیری است که به‌طور معمول برای مدیریت و نگهداری کانتینرها استفاده می‌شود. در این بخش، نحوه انجام این عملیات‌ها از طریق Web UI و خط فرمان (CLI) به تفصیل شرح داده می‌شود.


1. عملیات Start، Stop، Reboot، Shutdown

این عملیات‌ها معمولاً برای مدیریت وضعیت کانتینرها و انجام نیازمندی‌های روزانه مانند راه‌اندازی، خاموش کردن یا راه‌اندازی مجدد استفاده می‌شوند.

عملیات Start

برای شروع (Start) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. وارد Web UI Proxmox شوید.
  2. در پنل سمت چپ، نود خود را انتخاب کنید.
  3. به تب “LXC” بروید و کانتینری که می‌خواهید آن را راه‌اندازی کنید انتخاب کنید.
  4. در بالای صفحه، دکمه “Start” را فشار دهید.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct start <VMID>

جایگزین <VMID> با شناسه کانتینر (ID) مورد نظر خود کنید.

عملیات Stop

برای متوقف کردن (Stop) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. به تب “LXC” بروید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. در بالای صفحه، دکمه “Stop” را فشار دهید.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct stop <VMID>

این دستور کانتینر را به طور کامل متوقف می‌کند.

عملیات Reboot

برای راه‌اندازی مجدد (Reboot) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. به تب “LXC” بروید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. در بالای صفحه، دکمه “Reboot” را فشار دهید.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct reboot <VMID>

این دستور کانتینر را بدون خاموش کردن کامل آن، مجدداً راه‌اندازی می‌کند.

عملیات Shutdown

برای خاموش کردن (Shutdown) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. به تب “LXC” بروید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. در بالای صفحه، دکمه “Shutdown” را فشار دهید.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct shutdown <VMID>

این دستور باعث خاموش شدن ایمن کانتینر می‌شود و می‌توانید از آن زمانی استفاده کنید که بخواهید کانتینر را بدون توقف غیرمنتظره خاموش کنید.


2. عملیات Suspend و Resume

عملیات تعلیق (Suspend) و از سرگیری (Resume) برای حفظ وضعیت کانتینر در حالت‌های خاص و جلوگیری از مصرف اضافی منابع استفاده می‌شود.

عملیات Suspend

برای تعلیق (Suspend) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. به تب “LXC” بروید.
  2. کانتینر مورد نظر را انتخاب کنید.
  3. در بالای صفحه، دکمه “Suspend” را فشار دهید.

این عملیات کانتینر را متوقف می‌کند، اما آن را به طور کامل خاموش نمی‌کند. کانتینر به حالت تعلیق می‌رود و وضعیت فعلی آن حفظ می‌شود.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct suspend <VMID>
عملیات Resume

برای از سرگیری (Resume) یک کانتینر از Web UI، مراحل زیر را دنبال کنید:

  1. به تب “LXC” بروید.
  2. کانتینر تعلیق شده را انتخاب کنید.
  3. در بالای صفحه، دکمه “Resume” را فشار دهید.

برای انجام این عملیات از خط فرمان، از دستور زیر استفاده کنید:

pct resume <VMID>

این دستور کانتینر را از حالت تعلیق خارج می‌کند و آن را به وضعیت قبل از تعلیق باز می‌گرداند.


جمع بندی

در این بخش، نحوه انجام عملیات‌های مختلف بر روی کانتینرها مانند Start، Stop، Reboot، Shutdown، Suspend و Resume از طریق Web UI و خط فرمان بررسی شد. این عملیات‌ها برای مدیریت وضعیت کانتینرها ضروری هستند و به شما این امکان را می‌دهند که به‌راحتی منابع را مدیریت کنید و در مواقع نیاز کانتینرها را به حالت‌های مختلفی مانند تعلیق یا راه‌اندازی مجدد منتقل کنید. استفاده از دستوراتی که در این بخش شرح داده شد، امکان مدیریت کانتینرها را با دقت و انعطاف‌پذیری بیشتری فراهم می‌آورد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت منابع و محدودیت‌ها در کانتینرها” subtitle=”توضیحات کامل”]مدیریت منابع در کانتینرها به شما این امکان را می‌دهد که تخصیص منابع بهینه و مناسب‌تری برای هر کانتینر داشته باشید تا عملکرد بهتری را تجربه کنید. در این بخش، نحوه تخصیص منابع مختلف مانند CPU و حافظه و همچنین محدودیت‌های I/O (دیسک و شبکه) برای کانتینرها به‌طور کامل توضیح داده خواهد شد.


1. تخصیص CPU و حافظه

تخصیص منابع مانند CPU و حافظه از مهم‌ترین نکات در مدیریت کانتینرها است. برای اینکه کانتینرها به‌طور بهینه کار کنند و منابع سرور شما به‌طور عادلانه تقسیم شوند، باید تخصیص منابع به درستی انجام گیرد.

تخصیص CPU

برای تخصیص تعداد هسته‌های CPU به کانتینر از دو روش می‌توان استفاده کرد: تخصیص تعداد هسته‌ها به‌صورت مستقیم و محدود کردن استفاده از CPU با استفاده از نرخ اولویت.

1.1. تخصیص هسته‌های CPU به کانتینر

با استفاده از دستور pct می‌توانید تعداد هسته‌های CPU را برای کانتینر مشخص کنید. برای مثال، برای تخصیص دو هسته به یک کانتینر، از دستور زیر استفاده کنید:

pct set <VMID> -cores 2

در اینجا <VMID> شناسه کانتینر مورد نظر است و -cores 2 تعداد هسته‌های CPU را به ۲ محدود می‌کند.

1.2. محدود کردن مصرف CPU با استفاده از نرخ اولویت

برای محدود کردن مقدار استفاده از CPU، می‌توانید از پارامتر cpuunits استفاده کنید. مقدار پیش‌فرض cpuunits برابر 1024 است و این به معنای استفاده عادلانه از CPU در مقایسه با سایر کانتینرها است.

برای تغییر مقدار cpuunits به 512 (که به معنای تخصیص اولویت کمتر است)، از دستور زیر استفاده کنید:

pct set <VMID> -cpuunits 512
تخصیص حافظه (RAM)

برای تخصیص حافظه به کانتینر، از پارامتر memory استفاده می‌کنید که مقدار حافظه را به طور دقیق مشخص می‌کند. به‌عنوان مثال، برای تخصیص 2 گیگابایت RAM به یک کانتینر، از دستور زیر استفاده کنید:

pct set <VMID> -memory 2048

اگر بخواهید محدودیتی برای حافظه قابل استفاده کانتینر اعمال کنید، می‌توانید از پارامتر swap استفاده کنید که به شما این امکان را می‌دهد که محدوده swap (فضای مجازی) برای کانتینر را تعریف کنید.

برای تعیین مقدار حافظه Swap برای کانتینر به 512MB، از دستور زیر استفاده کنید:

pct set <VMID> -swap 512

2. محدودیت‌های I/O (Disk و Network)

محدودیت‌های I/O به شما این امکان را می‌دهند که دسترسی کانتینر به منابع دیسک و شبکه را کنترل کرده و از استفاده بیش از حد از منابع جلوگیری کنید.

محدودیت‌های دیسک (Disk I/O)

برای محدود کردن مصرف I/O دیسک، می‌توانید از پارامترهای disk و iops استفاده کنید.

2.1. محدود کردن مصرف دیسک

برای اعمال محدودیت برای حجم دیسک کانتینر (برای مثال 10 گیگابایت)، از دستور زیر استفاده کنید:

pct set <VMID> -rootfs local:10

در اینجا local نوع ذخیره‌سازی است و 10 ظرفیت دیسک را به ۱۰ گیگابایت محدود می‌کند.

2.2. محدود کردن I/O دیسک با IOPS

برای محدود کردن تعداد عملیات ورودی/خروجی دیسک (IOPS)، می‌توانید از دستور زیر استفاده کنید:

pct set <VMID> -disk iops=100

در اینجا 100 تعداد عملیات ورودی/خروجی در هر ثانیه است که به کانتینر اجازه انجام آن را می‌دهد.

محدودیت‌های شبکه (Network I/O)

برای محدود کردن مصرف پهنای باند شبکه توسط کانتینر، می‌توانید از پارامتر netif استفاده کنید.

2.3. محدود کردن مصرف پهنای باند شبکه

برای محدود کردن سرعت آپلود و دانلود شبکه به 1 مگابایت در ثانیه، از دستور زیر استفاده کنید:

pct set <VMID> -net0 name=eth0,bridge=vmbr0,rate=1024

در اینجا rate=1024 به معنای محدودیت سرعت شبکه به 1024KB (1MB) است.


جمع بندی

در این بخش، نحوه تخصیص منابع مختلف به کانتینرها در Proxmox VE مانند CPU، حافظه (RAM)، و محدودیت‌های I/O (دیسک و شبکه) بررسی شد. تخصیص منابع بهینه می‌تواند عملکرد کانتینرها را بهبود بخشد و از مصرف بی‌رویه منابع جلوگیری کند. با استفاده از دستوراتی که در این بخش آورده شده، می‌توانید به راحتی منابع سیستم را برای هر کانتینر تنظیم کرده و مدیریت بهتری بر منابع سرور خود داشته باشید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده و بررسی لاگ‌ها و وضعیت کانتینر” subtitle=”توضیحات کامل”]یکی از جنبه‌های مهم در مدیریت کانتینرها، نظارت بر وضعیت و بررسی لاگ‌های مربوط به آن‌هاست. لاگ‌ها به شما این امکان را می‌دهند که مشکلات سیستم را شناسایی کنید، عملکرد کانتینرها را بررسی کنید و به‌طور کلی وضعیت کانتینرها را از نظر عملکرد و پایداری بررسی کنید. در این بخش به روش‌های مختلف مشاهده لاگ‌ها و بررسی وضعیت کانتینرها پرداخته می‌شود.


1. مشاهده وضعیت کانتینر

قبل از بررسی لاگ‌ها، باید بتوانید وضعیت کانتینرها را بررسی کنید. برای مشاهده وضعیت کانتینرها، می‌توانید از دستور pct status استفاده کنید.

بررسی وضعیت کانتینر با استفاده از دستور pct status

برای مشاهده وضعیت کانتینرها، از دستور زیر استفاده کنید:

pct status <VMID>

در اینجا، <VMID> شناسه کانتینر مورد نظر است.

این دستور اطلاعاتی نظیر وضعیت کانتینر (در حال اجرا یا متوقف)، زمان راه‌اندازی، و مصرف منابع را نشان می‌دهد. به‌عنوان مثال:

pct status 100

این دستور وضعیت کانتینر با شناسه 100 را نشان خواهد داد.

خروجی به‌صورت زیر خواهد بود:

status: running
uptime: 2 hours

در اینجا status: running نشان‌دهنده این است که کانتینر در حال اجرا است و uptime: 2 hours نشان‌دهنده زمان فعالیت کانتینر از زمان شروع است.

مشاهده وضعیت تمام کانتینرها

برای مشاهده وضعیت تمام کانتینرها در سرور، می‌توانید دستور زیر را وارد کنید:

pct list

این دستور فهرستی از تمام کانتینرهای موجود در سرور به همراه وضعیت آن‌ها، شناسه (VMID)، و سایر اطلاعات کاربردی را نمایش می‌دهد.


2. بررسی لاگ‌های کانتینر

برای بررسی مشکلات و رخدادهای مختلف در داخل کانتینر، نیاز به دسترسی به لاگ‌های آن دارید. لاگ‌ها اطلاعات مفیدی مانند خطاهای سیستمی، پیام‌های هشدار و اطلاعات عملکرد را به شما می‌دهند.

مشاهده لاگ‌های کانتینر

برای مشاهده لاگ‌های سیستم کانتینر می‌توانید از دستور journalctl استفاده کنید. این دستور تمام پیام‌های سیستم را نشان می‌دهد که شامل لاگ‌های کانتینر نیز می‌شود.

برای مشاهده لاگ‌های کانتینر خاص می‌توانید از دستور زیر استفاده کنید:

journalctl -u lxc@<VMID>

در اینجا <VMID> شناسه کانتینر است. این دستور تمام لاگ‌های مربوط به کانتینر با شناسه مورد نظر را نمایش می‌دهد.

مثال:

journalctl -u lxc@100

این دستور لاگ‌های کانتینر با شناسه 100 را نمایش خواهد داد.

مشاهده لاگ‌های خاص کانتینر

اگر بخواهید تنها بخش خاصی از لاگ‌ها را مشاهده کنید، می‌توانید از گزینه‌های مختلف journalctl مانند -n برای تعداد خطوط اخیر یا -f برای مشاهده لاگ‌ها به‌صورت زنده استفاده کنید.

برای مثال، برای مشاهده آخرین 100 خط از لاگ‌ها به‌صورت زنده، از دستور زیر استفاده کنید:

journalctl -u lxc@100 -n 100 -f

در اینجا، -n 100 به معنای نمایش 100 خط آخر و -f برای دنبال کردن به‌صورت زنده است.

مشاهده لاگ‌های دیگر کانتینرها

اگر بخواهید لاگ‌های تمام کانتینرهای سیستم را مشاهده کنید، دستور زیر را وارد کنید:

journalctl -u lxc@*

این دستور تمام لاگ‌ها را برای تمام کانتینرها نمایش می‌دهد.


3. بررسی لاگ‌های Docker (در صورت استفاده از Docker در کانتینر)

اگر از Docker در کانتینرها استفاده می‌کنید، می‌توانید لاگ‌های مربوط به کانتینرهای Docker را با دستور زیر مشاهده کنید:

docker logs <Container_ID>

در اینجا <Container_ID> شناسه کانتینر است که می‌خواهید لاگ‌های آن را مشاهده کنید. به‌عنوان مثال:

docker logs my-container

این دستور تمام لاگ‌های مربوط به کانتینر Docker با شناسه my-container را نمایش می‌دهد.


4. مشاهده منابع مصرفی کانتینر

برای بررسی مصرف منابع کانتینرها، از دستور pct exec برای اجرای دستور در داخل کانتینر و مشاهده وضعیت سیستم عامل استفاده می‌شود. برای مشاهده مصرف CPU، RAM و سایر منابع، از دستور top استفاده کنید.

برای مثال:

برای مشاهده مصرف منابع داخل کانتینر، می‌توانید به‌صورت زیر وارد کانتینر شوید:

pct exec <VMID> -- top

این دستور در داخل کانتینر اجرا می‌شود و می‌توانید اطلاعات مصرف منابع را به‌صورت زنده مشاهده کنید.


جمع بندی

در این بخش به بررسی روش‌های مشاهده وضعیت و لاگ‌های کانتینرها پرداختیم. با استفاده از دستوراتی مانند pct status, journalctl, و pct exec می‌توان وضعیت کانتینرها و لاگ‌های آن‌ها را مشاهده کرده و مشکلات احتمالی را شناسایی کرد. این ابزارها به شما کمک می‌کنند تا عملکرد کانتینرها را تحت نظر داشته باشید و بتوانید به‌سرعت به مشکلات پاسخ دهید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 4. پیکربندی و مدیریت شبکه در کانتینرها”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات شبکه در کانتینرهای LXC: اتصال به شبکه‌های موجود با استفاده از Bridge یا NAT” subtitle=”توضیحات کامل”]شبکه یکی از اجزای حیاتی در هر سیستم عامل است که ارتباطات بین کانتینرها و دنیای خارج را فراهم می‌کند. در محیط‌های مبتنی بر LXC، می‌توان از دو روش اصلی برای اتصال کانتینرها به شبکه‌های موجود استفاده کرد: Bridge و NAT. این دو روش متفاوت از هم برای نیازهای خاصی طراحی شده‌اند و در این بخش به بررسی هر کدام و نحوه پیکربندی آن‌ها می‌پردازیم.


1. Bridge Networking: اتصال کانتینر به شبکه فیزیکی

Bridge Networking یک روش برای اتصال کانتینرها به شبکه داخلی است که در آن یک پل (Bridge) شبکه مجازی برای کانتینر ایجاد می‌شود. این پل به شبکه فیزیکی سرور متصل می‌شود، به‌طوری‌که کانتینرها می‌توانند آدرس‌های IP عمومی از شبکه فیزیکی دریافت کنند و به‌طور مستقیم با سایر دستگاه‌های موجود در شبکه ارتباط برقرار کنند.

نحوه پیکربندی Bridge Networking در کانتینرهای LXC

برای استفاده از Bridge Networking در کانتینرهای LXC، باید پیکربندی شبکه را در فایل پیکربندی کانتینر و در تنظیمات شبکه سرور انجام دهید.

مراحل پیکربندی:

  1. ایجاد Bridge شبکه: ابتدا باید یک Bridge شبکه روی سرور ایجاد کنید. برای این کار می‌توانید از دستور brctl استفاده کنید. به‌عنوان مثال، دستور زیر برای ایجاد یک Bridge به نام vmbr0 استفاده می‌شود:
    ip link add name vmbr0 type bridge
    ip addr add 192.168.1.1/24 dev vmbr0
    ip link set vmbr0 up
    
  2. پیکربندی شبکه کانتینر: سپس، باید تنظیمات شبکه کانتینر را به‌طور صحیح پیکربندی کنید تا به این Bridge متصل شود. برای این کار باید فایل پیکربندی کانتینر (معمولاً در مسیر /etc/pve/lxc/<VMID>.conf) را ویرایش کنید.در فایل پیکربندی کانتینر، باید خط زیر را اضافه کنید:
    net0: name=eth0,bridge=vmbr0,ip=dhcp
    

    این خط مشخص می‌کند که کانتینر از Bridge vmbr0 استفاده می‌کند و از DHCP برای دریافت IP استفاده خواهد کرد.

  3. راه‌اندازی مجدد کانتینر: پس از اعمال تغییرات، کانتینر را راه‌اندازی مجدد کنید تا تنظیمات جدید اعمال شوند:
    pct restart <VMID>
    

    به‌عنوان مثال، برای راه‌اندازی مجدد کانتینر با شناسه 100، از دستور زیر استفاده می‌کنید:

    pct restart 100
    
  4. بررسی اتصال شبکه کانتینر: برای بررسی اتصال کانتینر، می‌توانید از دستور ping برای تست اتصال به شبکه فیزیکی استفاده کنید:
    pct exec <VMID> -- ping -c 4 192.168.1.1
    

    این دستور از داخل کانتینر تلاش می‌کند تا به شبکه فیزیکی سرور متصل شود.


2. NAT Networking: اتصال کانتینر به اینترنت از طریق NAT

در روش NAT (Network Address Translation)، کانتینرها به‌طور مستقیم به شبکه فیزیکی متصل نمی‌شوند، بلکه با استفاده از NAT به اینترنت و شبکه‌های دیگر دسترسی پیدا می‌کنند. این روش معمولاً زمانی استفاده می‌شود که نیاز به پنهان‌سازی آدرس‌های IP داخلی کانتینرها از شبکه‌های خارجی داشته باشیم.

نحوه پیکربندی NAT Networking در کانتینرهای LXC

برای استفاده از NAT در کانتینرهای LXC، می‌توان تنظیمات NAT را در سرور و کانتینر به‌طور جداگانه پیکربندی کرد.

مراحل پیکربندی:

  1. پیکربندی NAT در سرور: در ابتدا باید IP Forwarding را در سیستم عامل سرور فعال کنید و قواعد NAT را برای ترافیک ورودی و خروجی تنظیم کنید. برای فعال کردن IP Forwarding، دستور زیر را وارد کنید:
    sysctl -w net.ipv4.ip_forward=1
    

    برای حفظ تغییرات در صورت ریستارت سرور، می‌توانید این تنظیم را به فایل /etc/sysctl.conf اضافه کنید:

    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    sysctl -p
    

    سپس باید قوانین NAT را برای سرور تنظیم کنید. برای این کار، از iptables استفاده می‌کنیم. دستور زیر ترافیک خروجی از کانتینر را از طریق NAT منتقل می‌کند:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    این دستور ترافیک کانتینرها را از طریق eth0 که رابط شبکه فیزیکی سرور است، NAT می‌کند.

  2. پیکربندی شبکه کانتینر برای استفاده از NAT: حالا باید فایل پیکربندی کانتینر را به‌گونه‌ای تنظیم کنید که از NAT استفاده کند. برای این کار باید در فایل پیکربندی کانتینر (معمولاً /etc/pve/lxc/<VMID>.conf) خطوط زیر را اضافه کنید:
    net0: name=eth0,bridge=none,hwaddr=<mac-address>,ip=dhcp
    

    در اینجا، bridge=none نشان‌دهنده این است که کانتینر از هیچ Bridge خاصی استفاده نخواهد کرد و از NAT برای اتصال به شبکه استفاده خواهد کرد.

  3. راه‌اندازی مجدد کانتینر: پس از اعمال تنظیمات، کانتینر را دوباره راه‌اندازی کنید تا تغییرات جدید اعمال شوند:
    pct restart <VMID>
    

    به‌عنوان مثال، برای راه‌اندازی مجدد کانتینر با شناسه 100 از دستور زیر استفاده می‌کنید:

    pct restart 100
    
  4. تست اتصال اینترنتی: برای تست اتصال اینترنت از داخل کانتینر، دستور زیر را وارد کنید:
    pct exec <VMID> -- ping -c 4 8.8.8.8
    

    این دستور تلاش می‌کند تا از داخل کانتینر به آدرس IP عمومی 8.8.8.8 (Google DNS) پینگ بزند.


جمع بندی

در این بخش به بررسی دو روش اصلی اتصال کانتینرهای LXC به شبکه پرداخته شد: Bridge Networking و NAT Networking. در روش Bridge، کانتینرها به شبکه فیزیکی سرور متصل می‌شوند و از DHCP یا IP استاتیک برای دریافت آدرس IP استفاده می‌کنند. در حالی که در روش NAT، کانتینرها از طریق سرور به اینترنت و شبکه‌های خارجی دسترسی پیدا می‌کنند. با توجه به نیازهای مختلف، می‌توانید از یکی از این دو روش برای پیکربندی شبکه کانتینرهای خود استفاده کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از VLAN و تنظیمات پیشرفته شبکه در LXC” subtitle=”توضیحات کامل”]در محیط‌های شبکه‌ای پیچیده‌تر، به ویژه در دیتاسنترها یا هنگام کار با زیرساخت‌های مجازی، نیاز به استفاده از VLAN (Virtual Local Area Network) برای جداسازی شبکه‌ها و مدیریت ترافیک است. LXC (Linux Containers) با استفاده از ویژگی‌های شبکه‌ای مانند Bridge Networking و NAT قابلیت‌های پیشرفته‌ای برای اتصال به شبکه‌های مختلف را فراهم می‌کند. در این بخش، به بررسی نحوه پیکربندی VLAN و تنظیمات پیشرفته شبکه در کانتینرهای LXC می‌پردازیم.


۱. پیکربندی VLAN در LXC

VLAN به شما این امکان را می‌دهد که چندین شبکه مجازی را در یک شبکه فیزیکی ایجاد کرده و آنها را از یکدیگر ایزوله کنید. برای پیکربندی VLAN در LXC، ابتدا باید آن را در سطح ماشین میزبان (Host) پیکربندی کرده و سپس کانتینرها را به شبکه‌های مختلف مرتبط کنید.

۱.۱. پیکربندی VLAN در سطح ماشین میزبان

  1. برای ایجاد یک VLAN در سطح میزبان، ابتدا باید در سیستم‌عامل میزبان، یک اینترفیس شبکه جدید با VLAN مورد نظر ایجاد کنید.
  2. فرض کنید VLAN ID که می‌خواهید استفاده کنید، ۱۰ است. برای ایجاد این اینترفیس می‌توانید از دستور زیر استفاده کنید:
# ایجاد VLAN با ID 10 بر روی اینترفیس eth0
sudo ip link add link eth0 name eth0.10 type vlan id 10
  1. پس از ایجاد اینترفیس، باید آن را فعال کنید:
sudo ip link set eth0.10 up
  1. سپس، IP آدرس مناسب برای اینترفیس جدید تنظیم می‌کنید:
sudo ip addr add 192.168.10.1/24 dev eth0.10

۱.۲. پیکربندی VLAN در کانتینر LXC

پس از تنظیم VLAN در سطح میزبان، می‌توانید کانتینر LXC خود را به این VLAN متصل کنید. برای این کار، باید یک پیکربندی Bridge Networking را ایجاد کرده و از آن در تنظیمات شبکه کانتینر استفاده کنید.

  1. ابتدا فایل پیکربندی کانتینر را ویرایش کنید. به مسیر زیر بروید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس، تنظیمات شبکه را به شکل زیر اضافه کنید تا کانتینر به VLAN 10 متصل شود:
# تنظیم شبکه برای کانتینر
lxc.network.type = veth
lxc.network.link = eth0.10
lxc.network.flags = up
lxc.network.name = eth0

در اینجا:

  • lxc.network.type = veth: این گزینه به کانتینر اجازه می‌دهد که از طریق یک دستگاه شبکه مجازی (veth) متصل شود.
  • lxc.network.link = eth0.10: این گزینه VLAN 10 را به عنوان اینترفیس شبکه کانتینر مشخص می‌کند.
  • lxc.network.name = eth0: این گزینه نام اینترفیس شبکه داخل کانتینر را تنظیم می‌کند.
  1. پس از ذخیره کردن تغییرات، کانتینر را راه‌اندازی کنید تا تنظیمات جدید اعمال شوند:
sudo pct start <container-id>

۲. تنظیمات پیشرفته شبکه در LXC

LXC امکانات مختلفی برای مدیریت و تنظیم شبکه‌های پیچیده‌تر مانند استفاده از VLAN و ارتباطات داخلی کانتینرها فراهم می‌آورد. در این بخش، به برخی از تنظیمات پیشرفته شبکه در LXC می‌پردازیم.

۲.۱. استفاده از شبکه Bridge برای اتصال به شبکه میزبان

Bridge Networking یکی از روش‌های معمول برای اتصال کانتینرها به شبکه میزبان است. برای استفاده از Bridge، باید یک اینترفیس Bridge روی ماشین میزبان ایجاد کنید و آن را به کانتینرها اختصاص دهید.

  1. برای ایجاد یک Bridge جدید، دستور زیر را اجرا کنید:
sudo ip link add name vmbr0 type bridge
sudo ip link set vmbr0 up
  1. سپس، IP آدرس مناسبی برای این Bridge تعیین کنید:
sudo ip addr add 192.168.1.1/24 dev vmbr0
  1. حالا، برای اتصال کانتینرها به این Bridge، پیکربندی LXC را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf

و تنظیمات زیر را به فایل پیکربندی اضافه کنید:

# تنظیم شبکه برای کانتینر با Bridge
lxc.network.type = veth
lxc.network.link = vmbr0
lxc.network.flags = up
lxc.network.name = eth0
  1. پس از ذخیره تغییرات، کانتینر را راه‌اندازی کنید:
sudo pct start <container-id>

۲.۲. استفاده از NAT برای اتصال به اینترنت

برای اتصال کانتینرها به اینترنت از طریق میزبان، می‌توانید از NAT (Network Address Translation) استفاده کنید. این روش معمولاً زمانی مفید است که بخواهید کانتینرها را بدون داشتن آدرس IP عمومی به اینترنت متصل کنید.

  1. برای تنظیم NAT در میزبان، ابتدا باید فایروال را برای اجازه دادن به NAT پیکربندی کنید. در ابتدا، این دستور را برای فعال کردن IP forwarding اجرا کنید:
echo 1 > /proc/sys/net/ipv4/ip_forward
  1. سپس، برای ایجاد NAT از دستور زیر استفاده کنید:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  1. برای اطمینان از اینکه تنظیمات NAT همیشه پس از راه‌اندازی دوباره سیستم فعال می‌شود، می‌توانید این دستور را در فایل /etc/rc.local اضافه کنید:
iptables-save > /etc/iptables/rules.v4
  1. سپس، در فایل پیکربندی کانتینر LXC، شبکه NAT را فعال کنید:
sudo nano /etc/pve/lxc/<container-id>.conf

و تنظیمات زیر را اضافه کنید:

# تنظیمات NAT برای کانتینر
lxc.network.type = veth
lxc.network.link = eth0
lxc.network.flags = up
lxc.network.name = eth0
  1. پس از ذخیره تغییرات، کانتینر را راه‌اندازی کنید:
sudo pct start <container-id>

جمع‌بندی

در این بخش، نحوه پیکربندی VLAN و تنظیمات پیشرفته شبکه برای کانتینرهای LXC را بررسی کردیم. با استفاده از این تنظیمات می‌توانید کانتینرها را به شبکه‌های مختلف متصل کرده و از امکاناتی مانند ایزولاسیون شبکه، NAT، و Bridge Networking بهره‌برداری کنید. این تنظیمات به شما امکان می‌دهد که شبکه‌های پیچیده و ایزوله برای کانتینرها ایجاد کرده و ترافیک شبکه را به‌طور مؤثر مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی IP و DHCP برای کانتینرها” subtitle=”توضیحات کامل”]در محیط‌های مجازی‌سازی و به‌ویژه در LXC (Linux Containers)، مدیریت IP آدرس‌ها و استفاده از DHCP برای تخصیص خودکار IP به کانتینرها بسیار مهم است. این تنظیمات کمک می‌کند تا اتصال شبکه کانتینرها به شبکه‌های مختلف راحت‌تر و قابل مدیریت‌تر باشد. در این بخش، به نحوه پیکربندی IP ثابت و DHCP برای کانتینرهای LXC خواهیم پرداخت.


۱. پیکربندی IP ثابت برای کانتینر

در صورتی که بخواهید برای هر کانتینر یک IP ثابت اختصاص دهید، می‌توانید به راحتی تنظیمات پیکربندی شبکه کانتینر را تغییر دهید. این روش معمولاً زمانی استفاده می‌شود که بخواهید ارتباطات ثابت بین کانتینرها یا دیگر سیستم‌ها برقرار کنید.

۱.۱. تنظیمات IP ثابت در کانتینر

  1. ابتدا فایل پیکربندی کانتینر LXC را ویرایش کنید. برای این کار باید به مسیر زیر بروید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس تنظیمات شبکه را به شکل زیر اضافه کنید. در اینجا قصد داریم یک IP ثابت به کانتینر اختصاص دهیم.
# تنظیمات شبکه برای کانتینر
lxc.network.type = veth
lxc.network.link = vmbr0
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.ipv4 = 192.168.1.100/24
lxc.network.ipv4.gateway = 192.168.1.1

در این پیکربندی:

  • lxc.network.ipv4 = 192.168.1.100/24: این خط IP ثابت را برای کانتینر تنظیم می‌کند.
  • lxc.network.ipv4.gateway = 192.168.1.1: این خط گیت‌وی پیش‌فرض کانتینر را مشخص می‌کند.
  1. پس از اعمال تغییرات، کانتینر را مجدداً راه‌اندازی کنید:
sudo pct start <container-id>

اکنون کانتینر با IP ثابت تنظیم‌شده در شبکه شما در دسترس خواهد بود.


۲. پیکربندی DHCP برای کانتینر

در صورتی که بخواهید کانتینرها از DHCP برای دریافت IP به‌طور خودکار استفاده کنند، می‌توانید این تنظیمات را به‌راحتی پیکربندی کنید. استفاده از DHCP برای تخصیص IP می‌تواند در مواقعی که نیازی به پیکربندی دستی IP‌ها ندارید بسیار مفید باشد.

۲.۱. تنظیمات DHCP در کانتینر

  1. ابتدا فایل پیکربندی کانتینر LXC را ویرایش کنید. برای این کار باید به مسیر زیر بروید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس تنظیمات شبکه را به‌گونه‌ای تنظیم کنید که کانتینر از DHCP برای دریافت IP استفاده کند:
# تنظیمات شبکه برای استفاده از DHCP
lxc.network.type = veth
lxc.network.link = vmbr0
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.ipv4.gateway = 192.168.1.1
lxc.network.dhcp = 1

در این پیکربندی:

  • lxc.network.dhcp = 1: این خط باعث می‌شود که کانتینر از DHCP برای دریافت IP استفاده کند.
  1. پس از اعمال تغییرات، کانتینر را مجدداً راه‌اندازی کنید:
sudo pct start <container-id>

در این صورت، کانتینر به‌طور خودکار IP خود را از سرور DHCP شبکه دریافت خواهد کرد.


۳. نحوه تنظیم DHCP سرور برای شبکه

اگر کانتینرها از DHCP استفاده می‌کنند، نیاز است که یک DHCP سرور در شبکه میزبان یا شبکه محلی شما پیکربندی شده باشد. معمولاً، این سرویس DHCP روی روتر یا سرور میزبان موجود است.

برای راه‌اندازی یک DHCP سرور در لینوکس، می‌توانید از isc-dhcp-server استفاده کنید:

  1. نصب بسته isc-dhcp-server:
sudo apt update
sudo apt install isc-dhcp-server
  1. پیکربندی DHCP سرور. فایل پیکربندی سرور DHCP در مسیر /etc/dhcp/dhcpd.conf قرار دارد. این فایل را ویرایش کنید تا آدرس‌های IP مناسب برای کانتینرها تخصیص یابد:
sudo nano /etc/dhcp/dhcpd.conf
  1. در فایل پیکربندی، تنظیمات زیر را اضافه کنید:
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
}

این تنظیمات باعث می‌شود که DHCP سرور آدرس‌های IP بین 192.168.1.100 تا 192.168.1.200 را به کانتینرها و دیگر دستگاه‌ها تخصیص دهد.

  1. پس از ویرایش فایل پیکربندی، DHCP سرور را راه‌اندازی کنید:
sudo systemctl restart isc-dhcp-server

جمع‌بندی

در این بخش، نحوه پیکربندی IP ثابت و DHCP برای کانتینرهای LXC را بررسی کردیم. استفاده از IP ثابت می‌تواند برای مدیریت راحت‌تر شبکه‌های داخلی و ارتباطات کانتینرها مفید باشد، در حالی که DHCP برای تخصیص خودکار IP به کانتینرها به‌ویژه در محیط‌های بزرگ و پویا بسیار کارآمد است. علاوه بر این، با راه‌اندازی و پیکربندی یک سرور DHCP می‌توان آدرس‌دهی خودکار را در شبکه برای کانتینرها فراهم کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از کارت شبکه VirtIO در کانتینرها برای افزایش کارایی” subtitle=”توضیحات کامل”]یکی از مهم‌ترین جنبه‌های بهینه‌سازی عملکرد کانتینرها، استفاده از درایورهای مناسب برای منابع شبکه است. کارت شبکه VirtIO به‌طور خاص برای عملکرد بهتر در محیط‌های مجازی‌سازی طراحی شده است. این کارت‌ها با استفاده از تکنولوژی‌های بهینه‌سازی‌شده، تأخیر و مصرف منابع را کاهش می‌دهند و به شما کمک می‌کنند تا عملکرد شبکه کانتینرها را بهبود بخشید.

در این بخش، به نحوه استفاده از کارت شبکه VirtIO در کانتینرهای LXC برای بهبود کارایی خواهیم پرداخت.


۱. مفهوم کارت شبکه VirtIO

کارت شبکه VirtIO یک نوع درایور شبکه مجازی است که توسط پروژه QEMU/KVM توسعه داده شده است. این کارت به‌ویژه برای استفاده در ماشین‌های مجازی و کانتینرها طراحی شده است و عملکرد بهتری در مقایسه با کارت‌های شبکه معمولی مجازی ارائه می‌دهد. کارت شبکه VirtIO به‌طور خاص در محیط‌هایی که نیاز به کارایی بالا و مصرف کم منابع دارند بسیار مفید است.

ویژگی‌های کلیدی کارت شبکه VirtIO:

  • کارایی بالا: کارت شبکه VirtIO عملکرد بهتری را ارائه می‌دهد زیرا از پردازش مستقیم‌تر داده‌ها استفاده می‌کند.
  • کاهش مصرف منابع: استفاده از این کارت باعث کاهش بار سیستم و مصرف منابع در هنگام انتقال داده‌ها می‌شود.
  • پشتیبانی از ویژگی‌های پیشرفته: کارت شبکه VirtIO قابلیت‌های مانند پردازش تراکم داده‌ها و کاهش تأخیر را پشتیبانی می‌کند.

۲. نحوه استفاده از کارت شبکه VirtIO در کانتینر LXC

برای استفاده از کارت شبکه VirtIO در کانتینرهای LXC، باید تنظیمات مربوط به کارت شبکه را در فایل پیکربندی کانتینر تغییر دهید.

۲.۱. تغییر پیکربندی کانتینر LXC برای استفاده از کارت شبکه VirtIO

  1. ابتدا باید فایل پیکربندی کانتینر LXC را باز کنید. مسیر فایل پیکربندی به‌طور معمول به این صورت است:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس تنظیمات شبکه را به‌گونه‌ای تغییر دهید که کارت شبکه VirtIO به‌جای کارت شبکه پیش‌فرض استفاده شود. در اینجا تنظیمات جدید برای استفاده از کارت شبکه VirtIO آورده شده است:
lxc.network.type = veth
lxc.network.link = vmbr0
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.model = virtio

در این پیکربندی:

  • lxc.network.type = veth: به‌منظور اتصال کانتینر به شبکه استفاده می‌شود.
  • lxc.network.link = vmbr0: این لینک، پل شبکه‌ای است که کانتینر به آن متصل می‌شود.
  • lxc.network.model = virtio: این خط نشان می‌دهد که از کارت شبکه VirtIO برای اتصال شبکه استفاده می‌شود.
  1. پس از اعمال تغییرات، کانتینر را مجدداً راه‌اندازی کنید تا تغییرات اعمال شود:
sudo pct start <container-id>

اکنون کانتینر شما با استفاده از کارت شبکه VirtIO در دسترس خواهد بود.


۳. بررسی وضعیت کارت شبکه VirtIO در کانتینر

پس از پیکربندی کارت شبکه VirtIO برای کانتینر، می‌توانید وضعیت شبکه کانتینر و استفاده از کارت شبکه VirtIO را بررسی کنید. برای این کار، از دستور lxc-ls یا ip a در داخل کانتینر استفاده کنید.

  1. ابتدا وارد کانتینر شوید:
sudo pct enter <container-id>
  1. سپس دستور ip a را برای بررسی تنظیمات شبکه و کارت شبکه در کانتینر وارد کنید:
ip a

در صورتی که کارت شبکه VirtIO به‌درستی پیکربندی شده باشد، باید در لیست کارت‌های شبکه کانتینر، کارت شبکه eth0 با مدل virtio را مشاهده کنید.


۴. مزایای استفاده از کارت شبکه VirtIO در کانتینرها

استفاده از کارت شبکه VirtIO در کانتینرها برای افزایش کارایی دارای مزایای زیادی است. این مزایا شامل موارد زیر می‌باشد:

  • افزایش سرعت شبکه: کارت شبکه VirtIO معمولاً تا چندین برابر سریع‌تر از کارت‌های شبکه معمولی مجازی است. این موضوع می‌تواند در مواردی که انتقال داده‌ها نیاز به سرعت بالا دارد، بسیار مفید باشد.
  • کاهش تأخیر (Latency): کارت شبکه VirtIO برای بهینه‌سازی تأخیر در انتقال داده‌ها طراحی شده است. این ویژگی به‌ویژه در برنامه‌هایی که نیاز به پاسخ‌دهی سریع دارند اهمیت زیادی دارد.
  • مصرف کم‌تر منابع سیستم: کارت شبکه VirtIO به‌گونه‌ای طراحی شده است که مصرف منابع سیستم را کاهش دهد، به‌ویژه در محیط‌هایی که تعداد زیادی کانتینر یا ماشین مجازی در حال اجرا هستند.
  • سازگاری بهتر با زیرساخت‌های مجازی‌سازی: کارت شبکه VirtIO برای استفاده در محیط‌های مجازی‌سازی طراحی شده است، بنابراین سازگاری بالایی با ابزارهایی مانند KVM، QEMU، و LXC دارد.

جمع‌بندی

در این بخش، نحوه استفاده از کارت شبکه VirtIO در کانتینرهای LXC را بررسی کردیم. کارت شبکه VirtIO برای افزایش کارایی و بهینه‌سازی عملکرد شبکه در محیط‌های مجازی‌سازی طراحی شده است و می‌تواند تأثیر زیادی بر سرعت انتقال داده‌ها و کاهش مصرف منابع سیستم داشته باشد. با پیکربندی صحیح کارت شبکه VirtIO، می‌توانید عملکرد شبکه کانتینرها را به طور چشمگیری بهبود دهید و تجربه کاربری بهتری را در محیط‌های مجازی‌سازی فراهم کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی DNS و Gateway برای ارتباط اینترنتی کانتینرها” subtitle=”توضیحات کامل”]یکی از نکات کلیدی در پیکربندی کانتینرها، خصوصاً زمانی که می‌خواهید کانتینرها به اینترنت متصل شوند، تنظیم صحیح DNS (Domain Name System) و Gateway است. این تنظیمات به کانتینرها این امکان را می‌دهند که به‌طور صحیح به اینترنت متصل شده و نام‌ها را به آدرس‌های IP تبدیل کنند. در این بخش، به پیکربندی DNS و Gateway در کانتینرهای LXC خواهیم پرداخت.


۱. مفهوم DNS و Gateway در شبکه کانتینرها

  • DNS (Domain Name System): DNS یک سیستم نام‌گذاری است که به دستگاه‌ها کمک می‌کند تا نام‌های دامنه (مانند google.com) را به آدرس‌های IP تبدیل کنند تا بتوانند به منابع مختلف در شبکه متصل شوند. در محیط‌های کانتینری، تنظیم DNS برای دسترسی به وب‌سایت‌ها و سرویس‌های اینترنتی اهمیت دارد.
  • Gateway: Gateway یا دروازه پیش‌فرض، مسیریابی است که به کانتینر کمک می‌کند تا به اینترنت دسترسی پیدا کند. در واقع، Gateway مسیریابی را از شبکه خصوصی کانتینر به شبکه خارجی (اینترنت) انجام می‌دهد.

۲. پیکربندی DNS برای کانتینر LXC

برای پیکربندی DNS در کانتینرهای LXC، می‌توان دو روش مختلف را اعمال کرد:

  1. پیکربندی DNS در سطح سیستم (میزبان)
  2. پیکربندی DNS در فایل پیکربندی کانتینر

۲.۱. پیکربندی DNS در سطح سیستم (میزبان)

اگر می‌خواهید تمام کانتینرها از DNS سرور میزبان استفاده کنند، می‌توانید تنظیمات DNS سیستم میزبان را به‌صورت مرکزی پیکربندی کنید. برای این کار:

  1. فایل /etc/resolv.conf را در میزبان باز کنید:
sudo nano /etc/resolv.conf
  1. آدرس DNS را در این فایل اضافه کنید:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. پس از اعمال این تنظیمات، تمامی کانتینرها به‌طور خودکار از این DNS سرورها استفاده خواهند کرد، مگر اینکه تنظیمات DNS خاصی برای کانتینرهای خاصی در نظر گرفته شود.

۲.۲. پیکربندی DNS در فایل پیکربندی کانتینر

برای تنظیم DNS مخصوص به هر کانتینر، باید فایل پیکربندی آن کانتینر را تغییر دهید. این فایل معمولاً در مسیر /etc/pve/lxc/<container-id>.conf قرار دارد.

  1. برای تغییر DNS برای یک کانتینر خاص، ابتدا فایل پیکربندی کانتینر را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس خطوط زیر را به فایل اضافه کنید تا DNS سرور خاصی به کانتینر اختصاص یابد:
lxc.network.type = veth
lxc.network.link = vmbr0
lxc.network.name = eth0
lxc.network.dns = 8.8.8.8
lxc.network.dns = 8.8.4.4
  1. این تغییرات باعث می‌شود که کانتینر از DNS سرورهای مشخص‌شده استفاده کند.
  2. پس از اعمال این تغییرات، کانتینر را راه‌اندازی مجدد کنید:
sudo pct restart <container-id>

۳. پیکربندی Gateway برای کانتینر LXC

در اکثر موارد، Gateway برای اتصال به اینترنت و سایر شبکه‌ها بسیار حیاتی است. برای پیکربندی Gateway در کانتینرهای LXC، باید تنظیمات مربوطه را در فایل پیکربندی کانتینر وارد کنید.

۳.۱. پیکربندی Gateway در فایل پیکربندی کانتینر

  1. برای تنظیم Gateway برای کانتینر، ابتدا فایل پیکربندی کانتینر را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس خط زیر را برای پیکربندی Gateway در فایل پیکربندی کانتینر اضافه کنید:
lxc.network.gateway = 192.168.1.1

در اینجا، 192.168.1.1 باید به آدرس IP دروازه پیش‌فرض شبکه‌ای که کانتینر در آن قرار دارد، تغییر یابد.

  1. برای تنظیم کانتینر به‌گونه‌ای که به‌طور خودکار از دروازه پیش‌فرض میزبان استفاده کند، می‌توانید فایل /etc/network/interfaces در کانتینر را ویرایش کنید:
sudo pct enter <container-id>
sudo nano /etc/network/interfaces

در این فایل، اطمینان حاصل کنید که دروازه پیش‌فرض تنظیم‌شده باشد:

iface eth0 inet dhcp
    gateway 192.168.1.1
  1. پس از این پیکربندی‌ها، کانتینر را راه‌اندازی مجدد کنید:
sudo pct restart <container-id>

۴. بررسی و تست اتصال اینترنتی کانتینر

پس از پیکربندی DNS و Gateway، می‌توانید به‌راحتی اتصال اینترنتی کانتینر را بررسی کنید. برای این کار، می‌توانید از دستور ping برای تست اتصال به یک آدرس IP خارجی یا یک دامنه استفاده کنید.

  1. وارد کانتینر شوید:
sudo pct enter <container-id>
  1. دستور ping را برای تست اتصال به اینترنت وارد کنید:
ping google.com

اگر کانتینر به اینترنت متصل است، باید پاسخ‌هایی از سرورهای Google دریافت کنید.


۵. نکات اضافی

  • استفاده از DNSهای معتبر: از DNS سرورهای معتبر و پرسرعت مانند DNSهای عمومی گوگل (8.8.8.8 و 8.8.4.4) یا Cloudflare (1.1.1.1) استفاده کنید.
  • استفاده از DHCP برای Gateway: در برخی مواقع، ممکن است بخواهید Gateway را به‌طور خودکار از DHCP دریافت کنید. در این صورت، می‌توانید تنظیمات DHCP را در فایل پیکربندی کانتینر فعال کنید.

جمع‌بندی

در این بخش، نحوه پیکربندی DNS و Gateway برای کانتینرهای LXC به‌طور جامع و گام به گام بررسی شد. با تنظیم صحیح DNS و Gateway برای کانتینرها، می‌توانید اطمینان حاصل کنید که کانتینرها به درستی به اینترنت متصل شده و از سرویس‌های DNS برای تبدیل نام دامنه‌ها به آدرس‌های IP استفاده می‌کنند. این تنظیمات برای ارتباط صحیح و عملکرد بهینه کانتینرها در محیط‌های مختلف بسیار حیاتی است.[/cdb_course_lesson][cdb_course_lesson title=”فصل 5. مدیریت دیسک و ذخیره‌سازی کانتینرها”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از ذخیره‌سازی محلی و شبکه‌ای برای کانتینرها” subtitle=”توضیحات کامل”]در مدیریت کانتینرها، یکی از مهم‌ترین نکات استفاده بهینه از ذخیره‌سازی است. ذخیره‌سازی به‌عنوان یکی از اجزای اصلی در پیکربندی کانتینرها عمل می‌کند و می‌تواند عملکرد، مقیاس‌پذیری و امنیت سیستم‌ها را به‌طور قابل توجهی تحت تأثیر قرار دهد. در این بخش، به بررسی روش‌های مختلف ذخیره‌سازی برای کانتینرهای LXC پرداخته خواهد شد، از جمله ذخیره‌سازی محلی (Local Storage) و ذخیره‌سازی شبکه‌ای (Network Storage).


۱. ذخیره‌سازی محلی برای کانتینرها

ذخیره‌سازی محلی در حقیقت به معنای استفاده از دیسک‌های فیزیکی و فضای ذخیره‌سازی موجود در میزبان (Host) برای ذخیره داده‌های کانتینر است. این نوع ذخیره‌سازی به‌طور معمول برای کانتینرهایی استفاده می‌شود که نیاز به سرعت بالا و دسترسی مستقیم به داده‌ها دارند.

۱.۱. پیکربندی ذخیره‌سازی محلی برای کانتینر LXC

در LXC، می‌توانید داده‌های کانتینرها را بر روی دیسک محلی سیستم میزبان ذخیره کنید. به‌طور پیش‌فرض، داده‌های کانتینرها در مسیر /var/lib/lxc/<container-id>/ ذخیره می‌شوند. می‌توان این مسیر را در فایل پیکربندی کانتینر تغییر داد.

برای پیکربندی ذخیره‌سازی محلی برای کانتینر LXC:

  1. ابتدا فایل پیکربندی کانتینر را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. در این فایل، می‌توانید مسیر ذخیره‌سازی داده‌ها را به یک دیسک محلی جدید تغییر دهید:
lxc.rootfs = /mnt/storage/lxc/<container-id>

در این مثال، lxc.rootfs مسیر ذخیره‌سازی داده‌های کانتینر را به /mnt/storage/lxc/<container-id> تغییر می‌دهد.

  1. پس از اعمال تغییرات، کانتینر را راه‌اندازی مجدد کنید:
sudo pct restart <container-id>

۲. ذخیره‌سازی شبکه‌ای برای کانتینرها

در مواقعی که به مقیاس‌پذیری بالاتر و دسترسی به داده‌ها از چندین میزبان مختلف نیاز دارید، می‌توانید از ذخیره‌سازی شبکه‌ای استفاده کنید. ذخیره‌سازی شبکه‌ای به کانتینرها این امکان را می‌دهد تا داده‌ها را از طریق شبکه به اشتراک بگذارند و به‌راحتی بین نودهای مختلف منتقل کنند.

۲.۱. ذخیره‌سازی NFS برای کانتینرها

NFS (Network File System) یکی از رایج‌ترین پروتکل‌های ذخیره‌سازی شبکه‌ای است که به کانتینرها این امکان را می‌دهد تا داده‌های خود را در یک سیستم ذخیره‌سازی مشترک از طریق شبکه ذخیره کنند.

۲.۱.۱. راه‌اندازی NFS بر روی میزبان

برای راه‌اندازی NFS بر روی میزبان (Server)، مراحل زیر را انجام دهید:

  1. ابتدا بسته‌های مورد نیاز را نصب کنید:
sudo apt-get install nfs-kernel-server
  1. دایرکتوری‌ای که می‌خواهید به اشتراک بگذارید را ایجاد کنید (برای مثال: /mnt/storage):
sudo mkdir -p /mnt/storage
  1. سپس دایرکتوری را در فایل پیکربندی NFS به اشتراک بگذارید. فایل /etc/exports را ویرایش کنید:
sudo nano /etc/exports
  1. دایرکتوری مورد نظر را به‌صورت زیر به اشتراک بگذارید:
/mnt/storage *(rw,sync,no_subtree_check)

این تنظیم به همه دستگاه‌ها اجازه می‌دهد تا به این دایرکتوری دسترسی پیدا کنند.

  1. بعد از اعمال تغییرات، سرویس NFS را راه‌اندازی کنید:
sudo systemctl restart nfs-kernel-server
۲.۱.۲. پیکربندی ذخیره‌سازی NFS برای کانتینر

برای استفاده از NFS در کانتینرهای LXC، ابتدا باید کانتینر را پیکربندی کنید تا از NFS به‌عنوان سیستم فایل استفاده کند.

  1. فایل پیکربندی کانتینر را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. سپس سیستم فایل NFS را به‌صورت زیر اضافه کنید:
lxc.mount.entry = /mnt/storage /var/lib/lxc/<container-id>/rootfs/ nfs defaults 0 0

در اینجا، /mnt/storage دایرکتوری اشتراکی است که در میزبان قرار دارد و nfs پروتکل ذخیره‌سازی شبکه‌ای است.

  1. پس از اعمال این تغییرات، کانتینر را راه‌اندازی مجدد کنید:
sudo pct restart <container-id>

۳. استفاده از ذخیره‌سازی iSCSI

iSCSI (Internet Small Computer Systems Interface) یک پروتکل دیگر است که امکان استفاده از دیسک‌های ذخیره‌سازی از راه دور را فراهم می‌کند. مشابه با NFS، iSCSI به کانتینرها اجازه می‌دهد تا داده‌های خود را بر روی یک سیستم ذخیره‌سازی شبکه‌ای ذخیره کنند.

۳.۱. راه‌اندازی iSCSI برای کانتینر

  1. برای راه‌اندازی iSCSI بر روی میزبان، ابتدا بسته‌های مورد نیاز را نصب کنید:
sudo apt-get install open-iscsi
  1. سپس iSCSI را با استفاده از دستور زیر راه‌اندازی کنید:
sudo iscsiadm -m discovery -t st -p <ip-of-iscsi-target>
  1. برای اتصال به ذخیره‌سازی iSCSI، دستور زیر را اجرا کنید:
sudo iscsiadm -m node -T <target-name> -p <ip-of-iscsi-target> -l
  1. پس از متصل شدن به iSCSI Target، می‌توانید ذخیره‌سازی آن را به‌عنوان سیستم فایل در کانتینر استفاده کنید.

۴. بررسی و مدیریت ذخیره‌سازی کانتینر

برای بررسی وضعیت ذخیره‌سازی کانتینر، می‌توانید از دستور df برای مشاهده میزان فضای استفاده‌شده و آزاد شده در کانتینر استفاده کنید:

  1. وارد کانتینر شوید:
sudo pct enter <container-id>
  1. دستور df -h را برای بررسی فضای ذخیره‌سازی وارد کنید:
df -h

این دستور اطلاعات مربوط به فضای ذخیره‌سازی کانتینر را نمایش می‌دهد.


جمع‌بندی

در این بخش، نحوه استفاده از ذخیره‌سازی محلی و شبکه‌ای برای کانتینرهای LXC به‌طور جامع توضیح داده شد. ذخیره‌سازی محلی برای عملکرد سریع و ذخیره‌سازی شبکه‌ای برای مقیاس‌پذیری و دسترسی به داده‌ها از چندین میزبان مختلف استفاده می‌شود. در این راهنما، روش‌های مختلف پیکربندی ذخیره‌سازی از جمله NFS و iSCSI بررسی شد و نحوه اعمال آن‌ها در کانتینرهای LXC توضیح داده شد. با استفاده صحیح از ذخیره‌سازی، می‌توانید به‌طور مؤثر از منابع سیستم بهره‌برداری کنید و عملکرد کانتینرهای خود را بهبود دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات دیسک کانتینر” subtitle=”توضیحات کامل”]در مدیریت کانتینرهای LXC، یکی از اجزای کلیدی پیکربندی، تخصیص و مدیریت فضای ذخیره‌سازی است. هر کانتینر می‌تواند با نیازهای خاص خود برای ذخیره‌سازی و دسترسی به داده‌ها پیکربندی شود. در این بخش به نحوه تخصیص فضای ذخیره‌سازی برای کانتینرها و انتخاب و استفاده از فرمت‌های ذخیره‌سازی مختلف (مانند ext4، ZFS، Btrfs) پرداخته خواهد شد. هر یک از این فرمت‌های ذخیره‌سازی ویژگی‌های خاص خود را دارند که می‌تواند بر عملکرد و مقیاس‌پذیری سیستم تأثیرگذار باشد.


۱. تخصیص فضای ذخیره‌سازی برای هر کانتینر

در LXC، فضای ذخیره‌سازی هر کانتینر به‌طور مجزا تخصیص داده می‌شود. این فضای ذخیره‌سازی می‌تواند در دیسک محلی میزبان یا در سیستم‌های ذخیره‌سازی شبکه‌ای مانند NFS یا iSCSI قرار گیرد. معمولاً فضای ذخیره‌سازی به‌صورت یک فایل یا یک دیسک مجازی برای هر کانتینر ایجاد می‌شود.

۱.۱. تخصیص فضای ذخیره‌سازی به‌صورت فایل

به‌طور پیش‌فرض، کانتینرها در LXC از یک فایل به‌عنوان سیستم فایل استفاده می‌کنند. این فایل سیستم فایل کانتینر را به‌عنوان یک بلوک ذخیره‌سازی بزرگ مدیریت می‌کند که می‌توان آن را مانند یک دیسک فیزیکی به کانتینر متصل کرد.

برای تخصیص فضای ذخیره‌سازی به‌صورت فایل برای کانتینر LXC، مراحل زیر را دنبال کنید:

  1. ابتدا فایل پیکربندی کانتینر را ویرایش کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. در این فایل، می‌توانید فضای ذخیره‌سازی فایل را با استفاده از پارامتر lxc.rootfs مشخص کنید. به‌طور مثال:
lxc.rootfs = /mnt/storage/lxc/<container-id>/rootfs

این دستور باعث می‌شود که فضای ذخیره‌سازی کانتینر در مسیر /mnt/storage/lxc/<container-id>/rootfs ذخیره شود.

  1. بعد از اعمال تغییرات، کانتینر را مجدداً راه‌اندازی کنید:
sudo pct restart <container-id>

۱.۲. تخصیص فضای ذخیره‌سازی به‌صورت بلوک (برای دیسک‌های مجازی)

در برخی مواقع، می‌خواهید از دیسک‌های مجازی (Virtual Disk) به‌جای فایل‌ها برای ذخیره‌سازی داده‌های کانتینر استفاده کنید. در این حالت، می‌توانید فضای ذخیره‌سازی بلوکی برای کانتینر تخصیص دهید.

  1. ابتدا یک دیسک جدید با استفاده از دستور زیر ایجاد کنید:
qemu-img create -f raw /mnt/storage/lxc/<container-id>/disk.raw 10G

این دستور یک دیسک مجازی با حجم 10 گیگابایت ایجاد می‌کند.

  1. سپس فایل پیکربندی کانتینر را ویرایش کنید و دیسک ایجاد شده را به‌عنوان فضای ذخیره‌سازی به کانتینر اضافه کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. در این فایل، تنظیمات دیسک را به‌صورت زیر اضافه کنید:
lxc.rootfs = /mnt/storage/lxc/<container-id>/disk.raw
  1. پس از اعمال تغییرات، کانتینر را مجدداً راه‌اندازی کنید:
sudo pct restart <container-id>

۲. انتخاب و استفاده از فرمت‌های ذخیره‌سازی مختلف

در LXC، می‌توانید از فرمت‌های مختلف ذخیره‌سازی برای سیستم فایل کانتینرها استفاده کنید. انتخاب فرمت ذخیره‌سازی مناسب می‌تواند تأثیر زیادی بر کارایی، ایمنی داده‌ها و مقیاس‌پذیری سیستم داشته باشد. رایج‌ترین فرمت‌های ذخیره‌سازی که می‌توان در LXC استفاده کرد عبارتند از: ext4، ZFS و Btrfs.

۲.۱. استفاده از فرمت ext4

ext4 یک سیستم فایل قدیمی و بسیار شناخته‌شده است که در اکثر سیستم‌های لینوکسی استفاده می‌شود. این فرمت نسبتاً سریع و ساده است و برای بسیاری از کاربردهای عمومی مناسب است. از آنجا که LXC به‌طور پیش‌فرض از ext4 برای سیستم‌های فایل استفاده می‌کند، پیکربندی آن به‌طور خودکار انجام می‌شود، مگر اینکه فرمت دیگری را انتخاب کنید.

برای استفاده از ext4، مراحل زیر را دنبال کنید:

  1. ابتدا یک دیسک جدید با فرمت ext4 ایجاد کنید:
sudo mkfs.ext4 /mnt/storage/lxc/<container-id>/disk.raw
  1. سپس فایل پیکربندی کانتینر را ویرایش کنید و مسیر سیستم فایل ext4 را به کانتینر اختصاص دهید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. در فایل پیکربندی، این تنظیمات را اضافه کنید:
lxc.rootfs = /mnt/storage/lxc/<container-id>/disk.raw
  1. کانتینر را مجدداً راه‌اندازی کنید:
sudo pct restart <container-id>

۲.۲. استفاده از فرمت ZFS

ZFS یکی از پیشرفته‌ترین و کارآمدترین سیستم‌های فایل موجود است که ویژگی‌هایی مانند مدیریت snapshot و حجم‌های بالا را به‌طور پیش‌فرض دارد. این سیستم فایل برای محیط‌هایی با نیازهای ذخیره‌سازی پیچیده و مقیاس‌پذیر مناسب است.

برای استفاده از ZFS در LXC، ابتدا باید پشتیبانی از ZFS را در سیستم خود فعال کنید و سپس از آن در پیکربندی کانتینرها استفاده کنید.

  1. ابتدا ZFS را در سیستم خود نصب کنید (در صورتی که از قبل نصب نشده باشد):
sudo apt-get install zfsutils-linux
  1. سپس یک ZFS pool جدید ایجاد کنید:
sudo zpool create lxc-pool /mnt/storage/lxc/<container-id>/disk
  1. حالا فایل پیکربندی کانتینر را ویرایش کنید و مسیر ZFS pool را به‌عنوان سیستم فایل کانتینر انتخاب کنید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. در فایل پیکربندی، این تنظیمات را اضافه کنید:
lxc.rootfs = zfs:lxc-pool/<container-id>
  1. کانتینر را مجدداً راه‌اندازی کنید:
sudo pct restart <container-id>

۲.۳. استفاده از فرمت Btrfs

Btrfs یک سیستم فایل پیشرفته دیگر است که قابلیت‌هایی مانند snapshot، مدیریت فضای پویا و یکپارچه‌سازی با ذخیره‌سازی داده‌ها را فراهم می‌کند. این سیستم فایل بیشتر برای محیط‌های با بار کاری سنگین و نیاز به مدیریت پیچیده‌تر داده‌ها مناسب است.

برای استفاده از Btrfs در LXC:

  1. ابتدا Btrfs را بر روی سیستم خود نصب کنید:
sudo apt-get install btrfs-progs
  1. سپس یک بایومتریک Btrfs جدید ایجاد کنید:
sudo mkfs.btrfs /mnt/storage/lxc/<container-id>/disk.raw
  1. فایل پیکربندی کانتینر را ویرایش کنید و سیستم فایل Btrfs را به کانتینر اختصاص دهید:
sudo nano /etc/pve/lxc/<container-id>.conf
  1. تنظیمات زیر را در فایل پیکربندی اضافه کنید:
lxc.rootfs = /mnt/storage/lxc/<container-id>/disk.raw
  1. کانتینر را مجدداً راه‌اندازی کنید:
sudo pct restart <container-id>

جمع‌بندی

در این بخش، نحوه تخصیص فضای ذخیره‌سازی برای کانتینرهای LXC بررسی شد و همچنین روش‌های مختلف استفاده از فرمت‌های ذخیره‌سازی مانند ext4، ZFS و Btrfs برای بهبود عملکرد و مدیریت داده‌ها در کانتینرها توضیح داده شد. استفاده از این فرمت‌ها می‌تواند تأثیر زیادی در کارایی، مقیاس‌پذیری و مدیریت داده‌های کانتینرها داشته باشد. برای هر کدام از این فرمت‌ها، مراحل پیکربندی و راه‌اندازی به‌طور کامل توضیح داده شد تا شما بتوانید کانتینرهای خود را به‌صورت مؤثر و مطابق با نیازهای خاص خود مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پشتیبان‌گیری و بازیابی داده‌های کانتینرها” subtitle=”توضیحات کامل”]پشتیبان‌گیری و بازیابی داده‌ها از مهم‌ترین بخش‌های هر سیستم مدیریت کانتینر هستند، زیرا به شما کمک می‌کنند تا از اطلاعات خود در برابر مشکلات احتمالی، خرابی سیستم یا خطاهای انسانی محافظت کنید. در محیط‌های کانتینر، معمولاً پشتیبان‌گیری از داده‌ها و تنظیمات کانتینر به دو بخش تقسیم می‌شود: پشتیبان‌گیری از سیستم فایل کانتینر و پشتیبان‌گیری از تنظیمات و پیکربندی کانتینر. این بخش به شما نشان می‌دهد که چگونه پشتیبان‌گیری و بازیابی را در LXC انجام دهید.


۱. پشتیبان‌گیری از داده‌های کانتینر

برای پشتیبان‌گیری از داده‌های کانتینر، روش‌های مختلفی وجود دارد. یکی از رایج‌ترین روش‌ها استفاده از ابزار rsync برای ایجاد نسخه‌های پشتیبان از سیستم فایل کانتینر است. در این روش، شما می‌توانید داده‌های کانتینر را به یک ذخیره‌سازی خارجی (مانند یک دستگاه NAS یا سرور دیگر) کپی کنید.

۱.۱. پشتیبان‌گیری از فایل سیستم کانتینر

برای پشتیبان‌گیری از داده‌های کانتینر، ابتدا باید سیستم فایل کانتینر را در مسیر خاصی ذخیره‌سازی کپی کنید. فرض کنید مسیر سیستم فایل کانتینر شما /mnt/storage/lxc/<container-id>/rootfs است. برای پشتیبان‌گیری از این مسیر، مراحل زیر را دنبال کنید:

  1. با استفاده از دستور rsync، داده‌های کانتینر را به مکان ذخیره‌سازی پشتیبان منتقل کنید:
sudo rsync -a --exclude='/rootfs/dev' --exclude='/rootfs/proc' --exclude='/rootfs/sys' /mnt/storage/lxc/<container-id>/rootfs /path/to/backup/location/

در این دستور:

  • -a: برای استفاده از گزینه‌های آرشیوی rsync است که داده‌ها را به‌طور کامل کپی می‌کند.
  • --exclude: به شما این امکان را می‌دهد که پوشه‌های خاصی (مثل /dev، /proc، و /sys) که نیاز به پشتیبان‌گیری ندارند را از فرآیند پشتیبان‌گیری حذف کنید.
  1. همچنین می‌توانید از دستور tar برای ایجاد یک آرشیو فشرده از سیستم فایل کانتینر استفاده کنید:
sudo tar -czvf /path/to/backup/location/container-backup.tar.gz /mnt/storage/lxc/<container-id>/rootfs

این دستور یک فایل فشرده .tar.gz ایجاد می‌کند که شامل تمام داده‌های کانتینر است.

۱.۲. پشتیبان‌گیری از تنظیمات و پیکربندی کانتینر

علاوه بر داده‌های سیستم فایل، برای پشتیبان‌گیری کامل، باید تنظیمات و پیکربندی کانتینر را نیز پشتیبان‌گیری کنید. فایل پیکربندی هر کانتینر در مسیر /etc/pve/lxc/<container-id>.conf قرار دارد.

برای پشتیبان‌گیری از پیکربندی کانتینر، از دستور cp استفاده کنید تا فایل پیکربندی را به مکان ذخیره‌سازی پشتیبان منتقل کنید:

sudo cp /etc/pve/lxc/<container-id>.conf /path/to/backup/location/container-config-backup.conf

۲. بازیابی داده‌های کانتینر

در صورت نیاز به بازیابی داده‌ها و پیکربندی‌های کانتینر، می‌توانید از نسخه‌های پشتیبان خود استفاده کنید. در اینجا نحوه بازیابی داده‌ها و تنظیمات کانتینر را بررسی خواهیم کرد.

۲.۱. بازیابی فایل سیستم کانتینر

برای بازیابی سیستم فایل کانتینر، ابتدا باید نسخه پشتیبان از سیستم فایل کانتینر را از مسیر ذخیره‌سازی پشتیبان به مسیر اصلی کانتینر کپی کنید.

  1. با استفاده از دستور rsync داده‌ها را از مکان پشتیبان به مسیر اصلی کانتینر کپی کنید:
sudo rsync -a /path/to/backup/location/container-backup/ /mnt/storage/lxc/<container-id>/rootfs
  1. همچنین اگر از دستور tar برای پشتیبان‌گیری استفاده کرده‌اید، می‌توانید فایل پشتیبان را استخراج کنید:
sudo tar -xzvf /path/to/backup/location/container-backup.tar.gz -C /mnt/storage/lxc/<container-id>/rootfs

۲.۲. بازیابی تنظیمات و پیکربندی کانتینر

برای بازیابی پیکربندی کانتینر، کافی است که فایل پیکربندی پشتیبان‌گیری شده را به مسیر پیکربندی کانتینر کپی کنید:

sudo cp /path/to/backup/location/container-config-backup.conf /etc/pve/lxc/<container-id>.conf

پس از کپی فایل پیکربندی، کانتینر را راه‌اندازی مجدد کنید تا تنظیمات اعمال شوند:

sudo pct restart <container-id>

۳. استفاده از ابزارهای پشتیبان‌گیری در پروکسموکس

پروکسموکس (Proxmox VE) ابزارهای داخلی برای پشتیبان‌گیری و بازیابی داده‌های کانتینرها دارد. با استفاده از ابزار vzdump، شما می‌توانید به‌طور خودکار پشتیبان‌گیری از کانتینرها انجام دهید.

۳.۱. پشتیبان‌گیری از کانتینر با استفاده از vzdump

برای پشتیبان‌گیری از کانتینر با استفاده از vzdump، از دستور زیر استفاده کنید:

sudo vzdump <container-id> --dumpdir /path/to/backup/location --mode snapshot

این دستور یک نسخه پشتیبان از کانتینر مشخص‌شده در حالت snapshot ایجاد می‌کند و فایل پشتیبان را در مسیر مشخص‌شده ذخیره می‌کند.

۳.۲. بازیابی کانتینر با استفاده از vzdump

برای بازیابی کانتینر از یک نسخه پشتیبان که با vzdump ایجاد شده است، از دستور زیر استفاده کنید:

sudo vzdump --restore /path/to/backup/location/<backup-file> <new-container-id>

این دستور نسخه پشتیبان کانتینر را بازیابی کرده و آن را در یک کانتینر جدید با شناسه جدید راه‌اندازی می‌کند.


جمع‌بندی

در این بخش، نحوه پشتیبان‌گیری و بازیابی داده‌ها و پیکربندی‌های کانتینر در LXC به‌طور مفصل توضیح داده شد. برای پشتیبان‌گیری از داده‌ها، می‌توان از ابزارهایی مانند rsync و tar استفاده کرد و همچنین از ابزار داخلی پروکسموکس (vzdump) برای ایجاد و بازیابی پشتیبان‌ها بهره برد. پشتیبان‌گیری از پیکربندی کانتینر و داده‌های سیستم فایل می‌تواند به شما کمک کند تا در صورت بروز مشکل یا خرابی سیستم، داده‌ها و تنظیمات کانتینر خود را به‌راحتی بازیابی کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد Snapshot برای ذخیره وضعیت کانتینر” subtitle=”توضیحات کامل”]Snapshot یکی از ابزارهای قدرتمند برای ذخیره وضعیت کنونی سیستم است. با استفاده از Snapshot، می‌توان از وضعیت فعلی کانتینر یک نسخه پشتیبان فوری ایجاد کرد که در صورت بروز مشکل یا نیاز به بازگشت به حالت قبلی، به راحتی بازیابی شود. این قابلیت به شما این امکان را می‌دهد که از هرگونه تغییرات غیرمنتظره یا خرابی‌های احتمالی جلوگیری کنید و در صورت نیاز به بازگشت به وضعیت قبلی، به سرعت اقدام کنید.

در LXC (Linux Containers)، ایجاد Snapshot به‌طور خاص برای ذخیره‌سازی وضعیت کانتینر استفاده می‌شود، که شامل داده‌ها و پیکربندی‌های کانتینر است. در این بخش، به شما نشان خواهیم داد که چگونه Snapshot را برای کانتینرها ایجاد کنید، از آن استفاده کنید و وضعیت کانتینر را در یک لحظه خاص ذخیره کنید.


۱. ایجاد Snapshot در LXC با استفاده از Web UI

  1. وارد پنل مدیریت Proxmox VE شوید.
  2. از بخش سمت چپ، کانتینری که می‌خواهید از آن Snapshot بگیرید را انتخاب کنید.
  3. بر روی تب “Snapshot” کلیک کنید.
  4. بر روی دکمه “Take Snapshot” کلیک کنید.
  5. در پنجره بازشده، نامی برای Snapshot وارد کنید و اگر نیاز به ذخیره وضعیت به‌صورت “Backup” دارید، گزینه مربوطه را فعال کنید.
  6. بر روی “Take Snapshot” کلیک کنید تا Snapshot ایجاد شود.

با این روش، یک Snapshot از وضعیت کنونی کانتینر ایجاد خواهد شد. این Snapshot شامل تمامی تنظیمات و داده‌های کانتینر است.


۲. ایجاد Snapshot در LXC با استفاده از خط فرمان

برای ایجاد Snapshot از کانتینرها در Proxmox VE از دستور pct snapshot استفاده می‌شود. این دستور به شما این امکان را می‌دهد که از هر کانتینر یک Snapshot بگیرید و وضعیت آن را ذخیره کنید.

۲.۱. دستور ایجاد Snapshot

  1. ابتدا با استفاده از دستور زیر Snapshot را برای یک کانتینر مشخص ایجاد کنید:
sudo pct snapshot <container-id> <snapshot-name>
  • <container-id> شناسه کانتینر است که می‌خواهید از آن Snapshot بگیرید.
  • <snapshot-name> نامی است که برای Snapshot در نظر می‌گیرید.

برای مثال، اگر شناسه کانتینر شما 101 باشد و بخواهید یک Snapshot به نام snapshot1 ایجاد کنید، دستور به این صورت خواهد بود:

sudo pct snapshot 101 snapshot1

این دستور، Snapshot‌ای از کانتینر 101 به نام snapshot1 ایجاد می‌کند. بعد از این که Snapshot ساخته شد، می‌توانید از آن برای بازگشت به وضعیت قبلی استفاده کنید.


۳. مشاهده لیست Snapshot‌های موجود

پس از ایجاد Snapshot، ممکن است بخواهید لیست تمامی Snapshot‌های ایجادشده برای یک کانتینر خاص را مشاهده کنید. برای انجام این کار از دستور زیر استفاده کنید:

sudo pct snapshot <container-id> list

این دستور تمام Snapshot‌های موجود برای کانتینر مشخص‌شده را نمایش خواهد داد. به عنوان مثال، برای مشاهده لیست Snapshot‌ها برای کانتینر با شناسه 101:

sudo pct snapshot 101 list

۴. بازگردانی از Snapshot

در صورتی که بخواهید وضعیت کانتینر را به یکی از Snapshot‌های قبلی بازگردانی کنید، می‌توانید از دستور pct restore استفاده کنید. دستور زیر برای بازگردانی یک Snapshot به کانتینر استفاده می‌شود:

sudo pct snapshot <container-id> restore <snapshot-name>
  • <container-id> شناسه کانتینر موردنظر است.
  • <snapshot-name> نام Snapshot موردنظر برای بازگردانی است.

برای مثال، اگر بخواهید Snapshot snapshot1 را به کانتینر 101 بازگردانی کنید، از دستور زیر استفاده کنید:

sudo pct snapshot 101 restore snapshot1

این دستور کانتینر 101 را به وضعیت ذخیره‌شده در Snapshot snapshot1 بازمی‌گرداند.


۵. حذف Snapshot

اگر دیگر به Snapshot خاصی نیاز ندارید و بخواهید آن را حذف کنید، می‌توانید از دستور زیر استفاده کنید:

sudo pct snapshot <container-id> delete <snapshot-name>

برای مثال، برای حذف Snapshot به نام snapshot1 از کانتینر 101، دستور به این صورت خواهد بود:

sudo pct snapshot 101 delete snapshot1

این دستور Snapshot snapshot1 را از کانتینر 101 حذف می‌کند.


۶. نکات مهم در استفاده از Snapshot

  • فضای ذخیره‌سازی: ایجاد Snapshot از کانتینرها می‌تواند فضای زیادی را مصرف کند، به‌ویژه اگر حجم داده‌های کانتینر زیاد باشد. در صورت استفاده از چندین Snapshot، بهتر است فضای ذخیره‌سازی کافی برای آن‌ها اختصاص داده شود.
  • عملکرد: اگرچه Snapshot‌ها برای بازگشت سریع به وضعیت قبلی بسیار مفید هستند، ولی استفاده بیش از حد از Snapshot‌ها ممکن است به عملکرد سیستم آسیب بزند. توصیه می‌شود که پس از استفاده از Snapshot و بازیابی از آن، Snapshot‌های قدیمی را حذف کنید.
  • محدودیت‌ها: در برخی موارد، Snapshot‌ها نمی‌توانند همه تغییرات کانتینر را ثبت کنند. بنابراین، بهتر است که از Snapshot‌ها به عنوان ابزار اصلی برای پشتیبان‌گیری استفاده کنید، نه به‌عنوان روش اصلی برای ذخیره دائمی داده‌ها.

جمع‌بندی

در این بخش، روش‌های مختلف ایجاد Snapshot برای ذخیره وضعیت کانتینرها در LXC بررسی شد. Snapshot‌ها ابزار مفیدی هستند که به شما این امکان را می‌دهند تا وضعیت کنونی کانتینر خود را ذخیره کرده و در صورت نیاز به راحتی به آن بازگردید. ایجاد Snapshot از طریق Web UI یا خط فرمان امکان‌پذیر است و از آن برای بازیابی وضعیت کانتینر استفاده می‌شود. این قابلیت در مدیریت و نگهداری کانتینرها بسیار موثر است و می‌تواند در بسیاری از سناریوهای مختلف، مانند آزمایش تغییرات یا رفع خطاها، کاربرد داشته باشد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پشتیبان‌گیری از کانتینرها و بازیابی آن‌ها از نسخه‌های پشتیبان” subtitle=”توضیحات کامل”]پشتیبان‌گیری از کانتینرها یکی از اجزای اساسی مدیریت زیرساخت‌های کانتینری است. در صورت بروز خطا، حمله امنیتی، یا مشکلات دیگر، داشتن نسخه پشتیبان از کانتینرها می‌تواند به شما کمک کند تا به سرعت سیستم‌های خود را بازیابی کنید و از دست دادن داده‌ها جلوگیری کنید. در این بخش، به بررسی نحوه پشتیبان‌گیری و بازیابی کانتینرها در سیستم‌هایی مانند Proxmox VE خواهیم پرداخت.

پشتیبان‌گیری از کانتینرها با استفاده از ابزارهایی مانند vzdump یا از طریق محیط‌های مدیریتی (Web UI) به راحتی قابل انجام است. در این قسمت، پشتیبان‌گیری به‌صورت خط فرمان و Web UI، به همراه فرآیند بازیابی آن‌ها بررسی می‌شود.


۱. پشتیبان‌گیری از کانتینرها با استفاده از Web UI

Proxmox VE به‌طور پیش‌فرض امکاناتی برای پشتیبان‌گیری از کانتینرها از طریق Web UI فراهم کرده است. این روش برای کاربران که به دنبال مدیریت گرافیکی آسان هستند، بسیار مناسب است.

۱.۱. نحوه پشتیبان‌گیری از کانتینر در Web UI:

  1. وارد پنل Web UI Proxmox شوید.
  2. از بخش سمت چپ، کانتینری که می‌خواهید از آن پشتیبان بگیرید را انتخاب کنید.
  3. از منوی بالا بر روی “Backup” کلیک کنید.
  4. در پنجره پاپ‌آپ باز شده، تنظیمات پشتیبان‌گیری را انجام دهید:
    • نوع پشتیبان‌گیری (Backup Mode): انتخاب کنید که پشتیبان‌گیری در حالت Stop (پایان فعالیت کانتینر قبل از پشتیبان‌گیری)، Suspend (معلق کردن کانتینر)، یا Snapshot (استفاده از Snapshot) انجام شود.
    • نوع فشرده‌سازی: می‌توانید فشرده‌سازی پشتیبان را فعال کنید. از فرمت‌هایی مانند LZO یا gzip برای فشرده‌سازی استفاده کنید.
    • مسیر ذخیره‌سازی: محل ذخیره پشتیبان را مشخص کنید.
  5. روی دکمه “Backup” کلیک کنید تا فرآیند پشتیبان‌گیری آغاز شود.

این فرآیند به شما این امکان را می‌دهد که یک پشتیبان کامل از کانتینر خود در قالب یک فایل آرشیو ذخیره کنید.


۲. پشتیبان‌گیری از کانتینرها با استفاده از خط فرمان

پشتیبان‌گیری از کانتینرها با استفاده از دستور vzdump در خط فرمان یک روش سریع و کارآمد است. این دستور برای پشتیبان‌گیری از تمامی ماشین‌های مجازی و کانتینرها در Proxmox VE به کار می‌رود.

۲.۱. نحوه پشتیبان‌گیری از کانتینر با دستور vzdump

برای پشتیبان‌گیری از یک کانتینر خاص، از دستور vzdump به‌صورت زیر استفاده می‌شود:

vzdump <container-id> --dumpdir <backup-directory> --mode <backup-mode> --compress <compression-method>
  • <container-id>: شناسه کانتینر موردنظر که می‌خواهید از آن پشتیبان بگیرید.
  • <backup-directory>: مسیر دایرکتوری که پشتیبان در آن ذخیره می‌شود.
  • <backup-mode>: حالت پشتیبان‌گیری. این مورد می‌تواند یکی از موارد زیر باشد:
    • stop: کانتینر قبل از پشتیبان‌گیری متوقف می‌شود.
    • suspend: کانتینر در حالت تعلیق قرار می‌گیرد.
    • snapshot: یک Snapshot از کانتینر گرفته می‌شود.
  • <compression-method>: نوع فشرده‌سازی پشتیبان. معمولاً از gzip یا LZO استفاده می‌شود.

برای مثال، اگر بخواهید از کانتینر با شناسه 101 پشتیبان بگیرید و پشتیبان‌گیری را در حالت snapshot و با فشرده‌سازی gzip انجام دهید، دستور به این صورت خواهد بود:

vzdump 101 --dumpdir /mnt/backup --mode snapshot --compress gzip

این دستور یک پشتیبان از کانتینر 101 در حالت Snapshot ایجاد کرده و آن را در مسیر /mnt/backup ذخیره می‌کند.


۳. بازیابی کانتینر از نسخه پشتیبان

بازیابی کانتینرها از نسخه‌های پشتیبان یکی از مهم‌ترین مراحل در فرآیند بازیابی است. با استفاده از ابزار vzdump یا Web UI می‌توانید به راحتی یک کانتینر را از نسخه پشتیبان بازیابی کنید.

۳.۱. بازیابی کانتینر از پشتیبان با Web UI

  1. وارد Web UI Proxmox شوید.
  2. در نوار کناری سمت چپ، بر روی “Datacenter” کلیک کرده و سپس “Storage” را انتخاب کنید.
  3. در تب “Backup” پشتیبان‌هایی که قبلاً گرفته شده‌اند، نمایش داده می‌شوند.
  4. پشتیبان موردنظر را انتخاب کرده و بر روی “Restore” کلیک کنید.
  5. انتخاب کنید که پشتیبان را به چه نودی بازیابی کنید.
  6. برای تکمیل فرآیند، روی “Restore” کلیک کنید تا کانتینر از نسخه پشتیبان بازیابی شود.

۳.۲. بازیابی کانتینر از پشتیبان با دستور vzdump

برای بازیابی کانتینر از یک پشتیبان، از دستور vzdump استفاده می‌شود. این دستور به شما این امکان را می‌دهد که پشتیبان‌های قبلی را بازیابی کنید و آن‌ها را به‌عنوان کانتینر جدید یا به‌عنوان نسخه‌ای از کانتینر موجود بازگردانید.

دستور بازیابی به صورت زیر است:

vzdump --restore <backup-file> <container-id>
  • <backup-file>: مسیر فایل پشتیبان که می‌خواهید از آن بازیابی کنید.
  • <container-id>: شناسه کانتینری که می‌خواهید پشتیبان را به آن بازیابی کنید.

برای مثال، برای بازیابی کانتینر از پشتیبان /mnt/backup/vzdump-lxc-101-2023_05_21-14_00_00.tar.gz به کانتینر با شناسه 101، دستور به صورت زیر خواهد بود:

vzdump --restore /mnt/backup/vzdump-lxc-101-2023_05_21-14_00_00.tar.gz 101

این دستور کانتینر 101 را از پشتیبان مربوطه بازیابی خواهد کرد.


۴. نکات مهم در پشتیبان‌گیری و بازیابی

  • پشتیبان‌گیری منظم: پشتیبان‌گیری باید به‌صورت منظم انجام شود تا در مواقع بروز مشکل، از داده‌های حیاتی خود محافظت کنید.
  • فضای ذخیره‌سازی: اطمینان حاصل کنید که فضای کافی برای ذخیره پشتیبان‌ها دارید. در صورت کمبود فضا، ممکن است پشتیبان‌گیری با شکست مواجه شود.
  • حفاظت از داده‌ها: همیشه فایل‌های پشتیبان را در مکان‌های جداگانه از داده‌های اصلی ذخیره کنید. اینکار خطر از دست دادن داده‌ها در صورت بروز حادثه را کاهش می‌دهد.
  • تست بازیابی: بهتر است که فرآیند بازیابی را به‌طور منظم تست کنید تا در مواقع بحرانی با مشکل مواجه نشوید.

جمع‌بندی

پشتیبان‌گیری و بازیابی کانتینرها جزء اساسی‌ترین بخش‌های مدیریت سیستم‌های کانتینری هستند. با استفاده از ابزارهایی مانند vzdump یا Web UI در Proxmox VE، می‌توانید به راحتی از کانتینرها پشتیبان بگیرید و در صورت بروز مشکل، آن‌ها را بازیابی کنید. فرآیند پشتیبان‌گیری باید به‌صورت منظم انجام شود تا در مواقع بحران از داده‌های خود محافظت کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 6. مدیریت امنیت در کانتینرهای LXC”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات ایزولاسیون منابع در LXC” subtitle=”توضیحات کامل”]یکی از ویژگی‌های مهم در مدیریت کانتینرها، ایزولاسیون منابع است. ایزولاسیون منابع به شما این امکان را می‌دهد که هر کانتینر را از سایر کانتینرها و منابع سیستم به طور کامل جدا کنید تا از تداخل منابع جلوگیری شود. در محیط LXC (Linux Containers)، این ایزولاسیون می‌تواند شامل منابعی مانند CPU، حافظه (RAM)، دیسک، شبکه و I/O باشد. در این بخش، به بررسی نحوه پیکربندی ایزولاسیون منابع در LXC خواهیم پرداخت. تنظیمات ایزولاسیون منابع می‌تواند به‌صورت گرافیکی از طریق Web UI Proxmox VE و همچنین از طریق خط فرمان (کامند لاین) انجام شود.


۱. ایزولاسیون منابع با استفاده از Web UI

در Web UI Proxmox، شما می‌توانید منابع اختصاص‌یافته به هر کانتینر را به‌راحتی تنظیم کنید. این تنظیمات شامل تخصیص CPU، حافظه (RAM)، فضای دیسک و سایر محدودیت‌های منابع است. مراحل زیر برای ایزولاسیون منابع کانتینر با استفاده از Web UI توضیح داده شده است:

۱.۱. تنظیمات CPU

  1. وارد پنل Web UI Proxmox شوید.
  2. از سمت چپ، کانتینری که می‌خواهید منابع آن را ایزوله کنید، انتخاب کنید.
  3. به تب “Resources” بروید.
  4. در بخش “CPU”، شما می‌توانید تعداد هسته‌های CPU که به کانتینر اختصاص داده شده است را تنظیم کنید. همچنین می‌توانید محدودیت‌های استفاده از CPU را اعمال کنید.

۱.۲. تنظیمات RAM

  1. در تب “Resources” و بخش “Memory”، شما می‌توانید مقدار حافظه RAM اختصاص‌یافته به کانتینر را تنظیم کنید.
  2. برای ایزولاسیون بیشتر، می‌توانید حداکثر و حداقل مقدار حافظه را مشخص کنید تا در صورت نیاز کانتینر به منابع بیشتر، محدودیتی برای آن اعمال نشود.

۱.۳. تنظیمات دیسک

  1. در بخش “Disks”، فضای ذخیره‌سازی دیسک را می‌توانید محدود کنید.
  2. برای ایزولاسیون بیشتر، شما می‌توانید تعداد IOPS و سرعت خواندن و نوشتن دیسک را نیز تنظیم کنید.

۱.۴. تنظیمات شبکه

  1. در تب “Network”، می‌توانید کارت شبکه‌های مختلف را برای کانتینر انتخاب کرده و تنظیمات IP و VLAN را پیکربندی کنید.
  2. برای ایزولاسیون کامل، می‌توانید شبکه‌های مجزا برای هر کانتینر تنظیم کرده تا از تداخل ترافیک شبکه جلوگیری کنید.

۲. ایزولاسیون منابع با استفاده از خط فرمان

در LXC، شما می‌توانید ایزولاسیون منابع کانتینرها را با استفاده از دستوراتی مانند lxc.cgroup برای تخصیص CPU و حافظه، و سایر تنظیمات برای دیسک و شبکه انجام دهید. این روش به‌خصوص برای کاربران حرفه‌ای و افرادی که به خط فرمان مسلط هستند مناسب است.

۲.۱. تخصیص CPU به کانتینر

برای ایزوله کردن منابع CPU، می‌توانید از دستور lxc-cgroup برای تنظیم تعداد هسته‌های CPU و تخصیص آن‌ها استفاده کنید. مثلاً اگر بخواهید به کانتینر شماره 101 تنها یک هسته CPU اختصاص دهید، دستور زیر را وارد کنید:

lxc-cgroup -n 101 cpuset.cpus 0

در این دستور:

  • -n 101 مشخص می‌کند که تنظیمات برای کانتینر با شناسه 101 اعمال شود.
  • cpuset.cpus 0 به این معناست که کانتینر فقط از هسته CPU شماره 0 استفاده خواهد کرد.

۲.۲. تخصیص حافظه (RAM) به کانتینر

برای محدود کردن حافظه RAM اختصاص داده شده به کانتینر، می‌توانید از دستور lxc-cgroup به‌صورت زیر استفاده کنید:

lxc-cgroup -n 101 memory.limit_in_bytes 2G

این دستور محدودیت حافظه کانتینر شماره 101 را به 2 گیگابایت تنظیم می‌کند. برای تغییر مقدار حافظه می‌توانید آن را به مقدار دلخواه تغییر دهید.

۲.۳. تنظیمات دیسک

برای ایزولاسیون دیسک، می‌توانید از دستورات مختلفی برای محدود کردن ظرفیت I/O، تعداد IOPS و محدودیت سرعت خواندن و نوشتن استفاده کنید. به‌عنوان مثال، برای محدود کردن سرعت خواندن و نوشتن به 10MB/s، می‌توانید از دستور زیر استفاده کنید:

lxc-cgroup -n 101 blkio.throttle.read_bps_device "8:0 10485760"
lxc-cgroup -n 101 blkio.throttle.write_bps_device "8:0 10485760"

در این دستور:

  • blkio.throttle.read_bps_device "8:0 10485760" محدودیت سرعت خواندن از دستگاه /dev/sda (هارد دیسک) به 10MB/s را اعمال می‌کند.
  • blkio.throttle.write_bps_device "8:0 10485760" محدودیت سرعت نوشتن را نیز به 10MB/s تنظیم می‌کند.

۲.۴. تنظیمات شبکه (Network)

برای ایزوله کردن شبکه کانتینرها، می‌توانید به‌صورت دستی از طریق فایل پیکربندی کانتینر (موجود در /etc/pve/lxc/) تنظیمات مختلف شبکه را اعمال کنید. برای مثال، برای تنظیم IP به‌صورت استاتیک برای کانتینر، دستور زیر را وارد کنید:

  1. فایل پیکربندی کانتینر را ویرایش کنید:
nano /etc/pve/lxc/101.conf
  1. سپس تنظیمات مربوط به شبکه را به‌صورت زیر اضافه کنید:
net0: name=eth0,bridge=vmbr0,ip=192.168.1.10/24,gw=192.168.1.1

در این تنظیمات:

  • name=eth0 نام کارت شبکه است.
  • bridge=vmbr0 به معنی اتصال کانتینر به یک bridge شبکه خاص است.
  • ip=192.168.1.10/24 IP استاتیک کانتینر را مشخص می‌کند.
  • gw=192.168.1.1 IP Gateway را مشخص می‌کند.

۳. تنظیمات محدودیت‌های I/O در LXC

برای محدود کردن میزان مصرف I/O (چه دیسک و چه شبکه) در LXC، می‌توان از محدودیت‌های مختلف استفاده کرد. این محدودیت‌ها به‌ویژه زمانی مفید هستند که بخواهید از بار زیاد I/O توسط یک کانتینر خاص جلوگیری کنید.

۳.۱. محدودیت سرعت I/O دیسک

برای محدود کردن سرعت I/O دیسک، از دستورات زیر استفاده می‌شود:

lxc-cgroup -n 101 blkio.throttle.read_bps_device "8:0 10485760"
lxc-cgroup -n 101 blkio.throttle.write_bps_device "8:0 10485760"

این دستورات سرعت خواندن و نوشتن دیسک را به 10MB/s محدود می‌کنند.

۳.۲. محدودیت I/O شبکه

برای محدود کردن مصرف I/O شبکه، می‌توانید از تنظیمات QoS و ترافیک شبکه استفاده کنید که معمولاً از طریق tc یا iptables برای هر کانتینر اعمال می‌شود. به‌عنوان مثال، برای محدود کردن سرعت آپلود/دانلود شبکه یک کانتینر، می‌توانید از دستور tc استفاده کنید.


جمع‌بندی

ایزولاسیون منابع در LXC یک بخش کلیدی از مدیریت کانتینرها است که به شما امکان می‌دهد منابع سیستم را به‌طور دقیق تخصیص داده و از تداخل منابع بین کانتینرها جلوگیری کنید. این ایزولاسیون می‌تواند شامل CPU، حافظه، دیسک، شبکه و I/O باشد. شما می‌توانید این تنظیمات را هم از طریق Web UI Proxmox و هم از طریق خط فرمان اعمال کنید. با استفاده از این قابلیت‌ها، می‌توانید عملکرد سیستم را بهینه کرده و از منابع به‌صورت بهینه استفاده کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از ویژگی‌های امنیتی مانند cgroups و namespaces” subtitle=”توضیحات کامل”]در LXC (Linux Containers)، ویژگی‌های امنیتی و ایزولاسیون منابع، به‌ویژه cgroups و namespaces، نقش بسیار مهمی در حفظ ایمنی و جداسازی فرآیندها و منابع سیستم دارند. این ویژگی‌ها به شما این امکان را می‌دهند که منابع سیستم را به‌صورت مؤثر ایزوله کرده و از دسترسی غیرمجاز به آن‌ها جلوگیری کنید. در این بخش، به معرفی و استفاده از این ویژگی‌ها در LXC پرداخته خواهد شد.


۱. معرفی cgroups و namespaces

۱.۱. cgroups (Control Groups)

cgroups ابزاری در لینوکس است که به شما این امکان را می‌دهد که منابع سیستم مانند CPU، حافظه، دیسک و شبکه را برای گروه‌های مختلف فرآیندها محدود کنید. این ویژگی به‌ویژه در محیط‌های کانتینری مانند LXC مفید است زیرا به شما این امکان را می‌دهد که منابع هر کانتینر را ایزوله کرده و به آن تخصیص دهید.

مزایای استفاده از cgroups:

  • محدود کردن منابع: می‌توانید تخصیص منابع مانند CPU، حافظه و I/O را محدود کنید تا از بار زیاد یا تداخل منابع جلوگیری شود.
  • اولویت‌بندی فرآیندها: می‌توانید اولویت استفاده از منابع را برای فرآیندها و کانتینرها تنظیم کنید.
  • ایجاد محدودیت‌ها: برای هر کانتینر، می‌توانید محدودیت‌هایی برای استفاده از منابع اعمال کنید، مثلاً میزان مصرف حافظه یا I/O دیسک.

۱.۲. namespaces

namespaces ویژگی‌های امنیتی لینوکس هستند که به‌طور بنیادی سیستم‌های جداگانه‌ای را برای هر کانتینر ایجاد می‌کنند. این ویژگی باعث می‌شود که هر کانتینر گویی بر روی یک سیستم مجزا در حال اجرا باشد، در حالی که در واقع به اشتراک‌گذاری منابع و هسته‌ی سیستم‌عامل با سایر کانتینرها می‌پردازد.

انواع namespaces در لینوکس:

  • PID Namespace: ایزوله‌سازی فرآیندها. هر کانتینر فرآیندهای خود را به‌طور جداگانه مشاهده و کنترل می‌کند.
  • Network Namespace: ایزوله‌سازی شبکه. هر کانتینر به‌طور جداگانه آدرس‌های IP و پورت‌های خود را دارد.
  • Mount Namespace: ایزوله‌سازی سیستم فایل. هر کانتینر فایل‌سیستم مجزای خود را دارد.
  • UTS Namespace: ایزوله‌سازی نام سیستم. به هر کانتینر این امکان را می‌دهد که نام میزبان (hostname) خود را تغییر دهد.
  • IPC Namespace: ایزوله‌سازی ارتباطات بین فرآیندها (IPC). هر کانتینر فضای IPC مجزا برای تعاملات بین فرآیندها دارد.

۲. نحوه استفاده از cgroups و namespaces در LXC

۲.۱. پیکربندی cgroups برای ایزولاسیون منابع

در LXC، شما می‌توانید از cgroups برای محدود کردن منابع سیستم مانند CPU، حافظه، و I/O دیسک برای هر کانتینر استفاده کنید. این تنظیمات می‌توانند به‌صورت گرافیکی در Web UI Proxmox یا از طریق خط فرمان انجام شوند.

۲.۱.۱. تخصیص CPU و حافظه با استفاده از cgroups

برای محدود کردن منابع مانند CPU و حافظه در یک کانتینر، می‌توانید از دستورات lxc-cgroup استفاده کنید.

برای محدود کردن مقدار حافظه یک کانتینر به 1 گیگابایت:

lxc-cgroup -n 101 memory.limit_in_bytes 1G

برای محدود کردن مصرف CPU کانتینر به 1 هسته:

lxc-cgroup -n 101 cpuset.cpus 0

در این دستورات:

  • memory.limit_in_bytes 1G به معنای تخصیص 1 گیگابایت حافظه برای کانتینر است.
  • cpuset.cpus 0 به این معناست که کانتینر فقط از هسته 0 استفاده می‌کند.
۲.۱.۲. محدودیت I/O دیسک با cgroups

برای محدود کردن سرعت خواندن و نوشتن دیسک در کانتینر، می‌توانید از دستور lxc-cgroup به‌صورت زیر استفاده کنید:

lxc-cgroup -n 101 blkio.throttle.read_bps_device "8:0 10485760"
lxc-cgroup -n 101 blkio.throttle.write_bps_device "8:0 10485760"

این دستورات سرعت خواندن و نوشتن را به 10MB/s برای کانتینر شماره 101 محدود می‌کنند.

۲.۲. استفاده از namespaces برای ایزوله‌سازی کانتینرها

در LXC، ایزولاسیون با استفاده از namespaces به‌طور پیش‌فرض فعال است. هر کانتینر می‌تواند به‌طور مستقل از کانتینرهای دیگر عمل کند و شبکه، فایل‌سیستم و فرآیندهای مجزای خود را داشته باشد. برای پیکربندی یا مشاهده اطلاعات مربوط به namespaces، می‌توانید از دستوراتی مانند lsns استفاده کنید.

۲.۲.۱. مشاهده و مدیریت namespaces با استفاده از خط فرمان

برای مشاهده اطلاعات مربوط به namespaces فعال در سیستم، از دستور زیر استفاده کنید:

lsns

این دستور لیستی از انواع namespaces (مانند PID، شبکه، IPC، و غیره) را نمایش می‌دهد و اطلاعات مربوط به هر namespace فعال در سیستم را نشان می‌دهد.

۲.۲.۲. تخصیص IP استاتیک به کانتینر با استفاده از Network Namespace

برای ایزوله کردن شبکه در کانتینر، می‌توانید تنظیمات مربوط به IP و شبکه را در فایل پیکربندی کانتینر تنظیم کنید. به‌عنوان مثال، برای تخصیص یک IP استاتیک به کانتینر، فایل پیکربندی کانتینر را به‌صورت زیر ویرایش کنید:

nano /etc/pve/lxc/101.conf

سپس تنظیمات زیر را در آن وارد کنید:

net0: name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1

این تنظیمات به کانتینر شماره 101 یک IP استاتیک در شبکه 192.168.1.0/24 اختصاص می‌دهند.


۳. مزایای استفاده از cgroups و namespaces

  • ایزولاسیون کامل: با استفاده از namespaces، هر کانتینر به‌طور کامل از کانتینرهای دیگر ایزوله می‌شود، به طوری که فرآیندها، شبکه، و فایل‌سیستم هر کانتینر از دیگر کانتینرها جدا است.
  • مدیریت منابع مؤثر: cgroups به شما این امکان را می‌دهد که منابع سیستم را به‌طور دقیق برای هر کانتینر محدود و تخصیص دهید، بنابراین هیچ کانتینری نمی‌تواند منابع اضافی مصرف کند و باعث کاهش عملکرد سایر کانتینرها شود.
  • امنیت بالا: استفاده از cgroups و namespaces امنیت را در سطح سیستم افزایش می‌دهد زیرا فرآیندها و منابع به‌طور کامل ایزوله شده‌اند.

جمع‌بندی

استفاده از ویژگی‌های امنیتی مانند cgroups و namespaces در LXC برای ایزولاسیون منابع و فرآیندها یکی از مهم‌ترین جنبه‌های مدیریت کانتینرها است. cgroups به شما امکان می‌دهد که منابع سیستم مانند CPU، حافظه، و I/O دیسک را محدود کنید، در حالی که namespaces باعث ایزوله شدن شبکه، فایل‌سیستم، و فرآیندها بین کانتینرها می‌شود. با پیکربندی این ویژگی‌ها، می‌توانید محیطی امن، پایدار، و بهینه برای اجرای کانتینرها فراهم کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات دسترسی و مجوزها در کانتینرها” subtitle=”توضیحات کامل”]در LXC (Linux Containers)، پیکربندی و مدیریت دسترسی‌ها و مجوزها برای کانتینرها نقش مهمی در امنیت و کارایی محیط‌های کانتینری دارد. تنظیمات دقیق دسترسی‌ها می‌تواند به شما این امکان را بدهد که منابع سیستم را برای کانتینرهای مختلف به‌صورت مؤثر و ایمن مدیریت کنید. در این بخش، به معرفی تنظیمات مختلف دسترسی و مجوزها در کانتینرها پرداخته خواهد شد و نحوه پیکربندی آن‌ها هم به‌صورت گرافیکی و هم از طریق خط فرمان ارائه خواهد شد.


۱. تنظیمات دسترسی فایل و دایرکتوری‌ها

۱.۱. دسترسی به فایل‌سیستم کانتینر

در LXC، هر کانتینر فضای فایل‌سیستم مخصوص به خود را دارد که ممکن است شامل فایل‌ها، دایرکتوری‌ها و داده‌ها باشد. به‌طور پیش‌فرض، کانتینرها ایزوله شده‌اند و نمی‌توانند به فایل‌های سیستم میزبان یا کانتینرهای دیگر دسترسی داشته باشند. برای مدیریت دسترسی به فایل‌ها و دایرکتوری‌ها، شما می‌توانید از روش‌های زیر استفاده کنید:

۱.۱.۱. اختصاص دایرکتوری‌ها به کانتینر

برای ایجاد دسترسی به یک دایرکتوری خاص از سیستم میزبان در کانتینر، می‌توانید از ویژگی lxc.mount.entry استفاده کنید. این ویژگی به شما این امکان را می‌دهد که یک دایرکتوری از سیستم میزبان را به یک مسیر خاص در کانتینر متصل کنید.

برای مثال، برای اختصاص دایرکتوری /mnt/data از میزبان به مسیر /data در کانتینر، فایل پیکربندی کانتینر را به‌صورت زیر ویرایش کنید:

nano /etc/pve/lxc/101.conf

سپس این خط را به فایل پیکربندی اضافه کنید:

lxc.mount.entry = /mnt/data /var/lib/lxc/101/rootfs/data none bind 0 0

این دستور دایرکتوری /mnt/data را به مسیر /data در سیستم فایل کانتینر متصل می‌کند.

۱.۱.۲. تنظیم دسترسی‌ها به فایل‌ها و دایرکتوری‌ها

برای کنترل دسترسی به فایل‌ها و دایرکتوری‌ها در داخل کانتینر، از دستورات استاندارد لینوکس برای تغییر مجوزها استفاده کنید. به‌عنوان مثال:

  • برای تغییر مالکیت یک فایل:
chown user:user /data/file.txt
  • برای تغییر مجوزهای یک فایل (خواندن، نوشتن، اجرا):
chmod 755 /data/file.txt

۱.۲. تنظیمات دسترسی به دستگاه‌ها

اگر کانتینر نیاز به دسترسی به دستگاه‌های خاصی مانند دیسک‌ها یا درایوهای USB دارد، باید دستگاه‌ها را به‌صورت صحیح از میزبان به کانتینر متصل کنید. این کار را می‌توان با استفاده از ویژگی lxc.cgroup.devices.allow انجام داد.

برای مثال، برای دادن دسترسی به دستگاه /dev/sda در کانتینر:

nano /etc/pve/lxc/101.conf

سپس این خط را به فایل پیکربندی کانتینر اضافه کنید:

lxc.cgroup.devices.allow = b 8:0 rwm

این تنظیم به کانتینر اجازه می‌دهد که به دستگاه /dev/sda (با major و minor شماره ۸:۰) دسترسی داشته باشد.


۲. تنظیمات دسترسی شبکه و پورت‌ها

۲.۱. تنظیمات دسترسی شبکه برای کانتینرها

برای کنترل دسترسی به شبکه و پورت‌ها در کانتینر، شما می‌توانید از تنظیمات شبکه استفاده کنید. به‌طور پیش‌فرض، کانتینرها از طریق bridge به شبکه میزبان متصل می‌شوند. با این حال، شما می‌توانید با استفاده از ویژگی‌های مختلف LXC دسترسی شبکه‌ای کانتینرها را محدود کنید.

۲.۱.۱. اتصال کانتینر به شبکه‌های مختلف

برای تغییر تنظیمات شبکه در کانتینر و اتصال آن به شبکه‌های مختلف، باید فایل پیکربندی کانتینر را ویرایش کنید. به‌عنوان مثال، برای اتصال کانتینر به یک شبکه خاص با استفاده از Bridge شبکه:

nano /etc/pve/lxc/101.conf

سپس بخش مربوط به شبکه را به‌صورت زیر تنظیم کنید:

net0: name=eth0,bridge=vmbr0,ip=dhcp

در این مثال، کانتینر به شبکه vmbr0 متصل شده و آدرس IP خود را از DHCP دریافت می‌کند.

۲.۱.۲. محدود کردن دسترسی به پورت‌ها

برای محدود کردن دسترسی به پورت‌ها، شما می‌توانید از قابلیت firewall یا تنظیمات iptables استفاده کنید. به‌عنوان مثال، برای محدود کردن دسترسی به پورت 80 در کانتینر، از دستورات iptables به شکل زیر استفاده کنید:

iptables -A INPUT -p tcp --dport 80 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j REJECT

این دستورات تنها به آدرس IP 192.168.1.100 اجازه دسترسی به پورت 80 را می‌دهند و سایر دسترسی‌ها را مسدود می‌کنند.


۳. تنظیمات دسترسی کاربران

۳.۱. مدیریت کاربران در کانتینر

در داخل هر کانتینر، شما می‌توانید کاربران و گروه‌ها را به‌طور مجزا از سیستم میزبان مدیریت کنید. برای اضافه کردن یک کاربر جدید به کانتینر، از دستورات زیر استفاده کنید:

  • برای اضافه کردن یک کاربر جدید به کانتینر:
lxc-attach -n 101 -- useradd -m newuser
  • برای تنظیم رمز عبور برای کاربر جدید:
lxc-attach -n 101 -- passwd newuser

۳.۲. تخصیص مجوزها به کاربران

برای تغییر مجوزها برای یک کاربر خاص در داخل کانتینر، می‌توانید از دستورات chmod و chown استفاده کنید. به‌عنوان مثال:

  • برای تغییر مجوز دسترسی یک فایل به کاربر newuser:
lxc-attach -n 101 -- chmod 755 /home/newuser/file.txt
  • برای تغییر مالکیت یک فایل به کاربر خاص:
lxc-attach -n 101 -- chown newuser:newuser /home/newuser/file.txt

۳.۳. محدود کردن دسترسی به منابع

برای محدود کردن دسترسی یک کاربر به منابع خاص در داخل کانتینر، می‌توانید از تنظیمات مربوط به cgroups استفاده کنید. به‌عنوان مثال، برای محدود کردن مصرف حافظه توسط یک کاربر خاص:

echo "memory.limit_in_bytes = 512M" > /sys/fs/cgroup/memory/lxc/101/user.newuser

این تنظیم باعث می‌شود که کاربر newuser نتواند بیش از 512MB حافظه مصرف کند.


جمع‌بندی

تنظیمات دسترسی و مجوزها در کانتینرهای LXC جزء ضروری‌ترین جنبه‌های مدیریت کانتینرها هستند که به شما این امکان را می‌دهند که منابع سیستم را ایزوله کرده و دسترسی‌های لازم را به‌طور دقیق مدیریت کنید. با استفاده از cgroups، namespaces و تنظیمات مربوط به فایل‌سیستم و شبکه، شما می‌توانید ایزولاسیون کامل و امنی را برای هر کانتینر فراهم کنید. این تنظیمات به شما کمک می‌کنند که منابع کانتینرها را به‌طور مؤثر تخصیص داده و دسترسی‌های غیرمجاز را به‌راحتی محدود کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از AppArmor و SELinux برای افزایش امنیت” subtitle=”توضیحات کامل”]در محیط‌های کانتینری مانند LXC، امنیت یک بخش کلیدی است که باید به‌طور مؤثر و با استفاده از تکنولوژی‌های مختلف مدیریت شود. یکی از مهم‌ترین ابزارهایی که برای امنیت بیشتر می‌توان استفاده کرد، ابزارهای کنترل دسترسی مبتنی بر سیاست‌ها مانند AppArmor و SELinux هستند. این ابزارها به‌طور خاص برای محافظت از سیستم و کانتینرها در برابر حملات طراحی شده‌اند و نقش مهمی در ایزولاسیون منابع و محدود کردن دسترسی‌ها دارند.

در این بخش، به بررسی نحوه استفاده از AppArmor و SELinux در کانتینرهای LXC پرداخته می‌شود و نحوه پیکربندی و استفاده از آن‌ها به‌صورت گرافیکی و کامندلاین توضیح داده خواهد شد.


۱. AppArmor: یک فریم‌ورک امنیتی برای کنترل دسترسی

AppArmor (Application Armor) یک فریم‌ورک امنیتی برای محدود کردن دسترسی به منابع سیستم است. AppArmor سیاست‌هایی را برای برنامه‌ها تعیین می‌کند که تعیین می‌کنند هر برنامه به کدام منابع سیستم می‌تواند دسترسی پیدا کند و چه‌کارهایی می‌تواند انجام دهد. در کانتینرهای LXC، AppArmor به شما این امکان را می‌دهد که سیاست‌های امنیتی برای کانتینرهای مختلف تعیین کرده و از آنها برای محدود کردن دسترسی‌ها و جلوگیری از فعالیت‌های غیرمجاز استفاده کنید.

۱.۱. نصب و پیکربندی AppArmor

در بیشتر توزیع‌های لینوکس مانند Ubuntu یا Debian، AppArmor به‌طور پیش‌فرض نصب شده است. اما در صورتی که AppArmor بر روی سیستم شما نصب نباشد، می‌توانید آن را با استفاده از دستور زیر نصب کنید:

sudo apt update
sudo apt install apparmor apparmor-utils

پس از نصب، باید AppArmor را فعال کنید. این کار را می‌توانید با استفاده از دستور زیر انجام دهید:

sudo systemctl enable apparmor
sudo systemctl start apparmor

۱.۲. پیکربندی سیاست‌های AppArmor برای کانتینرها

پس از فعال‌سازی AppArmor، شما می‌توانید سیاست‌های امنیتی خاصی برای کانتینرهای LXC خود تنظیم کنید. به‌طور پیش‌فرض، LXC از یک پروفایل AppArmor به نام lxc-container-default استفاده می‌کند که برای اکثر نیازهای معمول کافی است. اما می‌توانید پروفایل‌های خاصی برای کانتینرهای مختلف بسازید.

برای ایجاد یک پروفایل جدید برای یک کانتینر خاص، ابتدا یک فایل پروفایل جدید ایجاد کنید:

sudo nano /etc/apparmor.d/lxc-container-mycontainer

در این فایل، می‌توانید سیاست‌های امنیتی مانند دسترسی به دایرکتوری‌ها و فایل‌ها، دسترسی به شبکه و دستگاه‌ها و دیگر منابع سیستم را تعیین کنید. پس از ویرایش، باید پروفایل را بارگذاری کنید:

sudo apparmor_parser -r /etc/apparmor.d/lxc-container-mycontainer

۱.۳. بررسی وضعیت AppArmor

برای بررسی وضعیت پروفایل‌های AppArmor، از دستور زیر استفاده کنید:

sudo aa-status

این دستور اطلاعات مربوط به وضعیت پروفایل‌ها و برنامه‌های مختلف تحت نظارت AppArmor را نمایش می‌دهد.


۲. SELinux: کنترل دسترسی و ایزولاسیون

SELinux (Security-Enhanced Linux) یک ماژول هسته‌ای برای امنیت لینوکس است که توسط NSA (آژانس امنیت ملی ایالات متحده) توسعه یافته و به‌طور پیش‌فرض در بسیاری از توزیع‌های لینوکس مانند RHEL و CentOS فعال است. SELinux بر اساس سیاست‌های امنیتی نقش‌های مختلف دسترسی را برای کاربران و برنامه‌ها مشخص می‌کند.

۲.۱. نصب و پیکربندی SELinux

در بیشتر توزیع‌های مبتنی بر Red Hat مانند RHEL یا CentOS، SELinux به‌طور پیش‌فرض نصب و فعال است. برای بررسی وضعیت SELinux می‌توانید از دستور زیر استفاده کنید:

sestatus

اگر SELinux غیرفعال باشد، می‌توانید آن را با ویرایش فایل /etc/selinux/config فعال کنید:

sudo nano /etc/selinux/config

و گزینه SELINUX را به enforcing تغییر دهید:

SELINUX=enforcing

سپس سیستم را مجدداً راه‌اندازی کنید تا تغییرات اعمال شود.

۲.۲. پیکربندی SELinux برای کانتینرها

در SELinux، برای هر برنامه و کانتینر یک سری از سیاست‌های امنیتی اعمال می‌شود که این سیاست‌ها می‌توانند به طور دقیق مشخص کنند که هر کانتینر به کدام منابع دسترسی دارد و چه‌کاری می‌تواند انجام دهد.

برای اعمال سیاست‌های SELinux بر روی کانتینرهای LXC، می‌توانید به فایل‌های پیکربندی کانتینر مراجعه کنید و ویژگی‌های خاصی را تنظیم کنید. به‌عنوان مثال، برای یک کانتینر خاص به نام mycontainer، می‌توانید پروفایل امنیتی را به‌صورت زیر تنظیم کنید:

sudo nano /etc/selinux/targeted/contexts/lxc_contexts

در این فایل، شما می‌توانید سیاست‌های امنیتی را برای کانتینر خاص مشخص کنید و محدودیت‌هایی مانند دسترسی به فایل‌ها، شبکه و دستگاه‌ها را تنظیم کنید.

۲.۳. تغییر وضعیت SELinux

برای تغییر وضعیت SELinux در زمان اجرا می‌توانید از دستور زیر استفاده کنید:

setenforce 0

این دستور SELinux را به حالت “permissive” تغییر می‌دهد، به‌طوری‌که محدودیت‌ها اعمال نمی‌شوند اما رویدادهای مربوط به دسترسی‌ها ثبت می‌شوند. برای بازگشت به حالت “enforcing”، دستور زیر را وارد کنید:

setenforce 1

۲.۴. بررسی وضعیت SELinux

برای بررسی وضعیت SELinux در سیستم، می‌توانید از دستور زیر استفاده کنید:

getenforce

این دستور وضعیت فعال یا غیرفعال بودن SELinux را نمایش می‌دهد.


۳. ترکیب AppArmor و SELinux

برای افزایش سطح امنیت در کانتینرها، می‌توانید از هر دو ابزار AppArmor و SELinux به‌صورت هم‌زمان استفاده کنید. این دو ابزار می‌توانند در کنار یکدیگر کار کنند و به شما این امکان را می‌دهند که سیاست‌های امنیتی بسیار دقیق و قوی برای ایزولاسیون و کنترل دسترسی به منابع سیستم در سطح کانتینر پیاده‌سازی کنید.

۳.۱. استفاده از هر دو ابزار در کنار یکدیگر

در حالی که AppArmor و SELinux دو ابزار امنیتی مختلف هستند، در بسیاری از سیستم‌ها می‌توانند هم‌زمان فعال باشند. به‌طور معمول، اگر سیستم از SELinux استفاده می‌کند، AppArmor به‌طور پیش‌فرض غیرفعال می‌شود. برای اینکه از هر دو استفاده کنید، باید هر دو را به‌صورت جداگانه پیکربندی و فعال کنید.

برای فعال کردن AppArmor و SELinux در کنار هم، باید مطمئن شوید که هر دو ابزار به‌درستی بر روی سیستم نصب و پیکربندی شده باشند و برای هر کانتینر سیاست‌های امنیتی مربوطه به هر دو ابزار تنظیم شوند.


جمع‌بندی

استفاده از AppArmor و SELinux برای افزایش امنیت کانتینرها یک روش مؤثر برای محدود کردن دسترسی‌ها و جلوگیری از تهدیدات خارجی است. AppArmor با اعمال سیاست‌های دقیق در سطح فایل‌سیستم و دستگاه‌ها و SELinux با کنترل دقیق دسترسی به منابع سیستم، ابزارهای مهمی برای ایزوله کردن کانتینرها و محافظت از سیستم شما محسوب می‌شوند. پیکربندی صحیح این ابزارها در کنار هم می‌تواند امنیت کانتینرها را به سطح بسیار بالاتری برساند و اطمینان حاصل کند که منابع سیستم به‌درستی مدیریت شده و از دسترسی‌های غیرمجاز جلوگیری می‌شود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت کاربران و سطوح دسترسی در داخل کانتینر” subtitle=”توضیحات کامل”]مدیریت کاربران و سطوح دسترسی در داخل کانتینرها یکی از بخش‌های کلیدی در حفظ امنیت و مدیریت منابع در محیط‌های LXC است. همان‌طور که در سرورهای فیزیکی و ماشین‌های مجازی نیاز به مدیریت کاربران داریم، در کانتینرها نیز این مسئله مطرح است. کانتینرها به‌طور معمول به‌صورت ایزوله از سیستم اصلی و دیگر کانتینرها عمل می‌کنند، اما با این حال، لازم است که بتوانید به‌درستی کاربران و سطوح دسترسی آن‌ها را مدیریت کنید.

در این بخش، به معرفی روش‌ها و ابزارهایی برای مدیریت کاربران و سطوح دسترسی در داخل کانتینرهای LXC خواهیم پرداخت و نحوه اعمال تنظیمات و پیکربندی‌ها به‌صورت گرافیکی و کامندلاین را شرح خواهیم داد.


۱. مدیریت کاربران در کانتینر LXC

برای مدیریت کاربران داخل کانتینر، روش‌های مشابه به سیستم‌های لینوکس معمولی اعمال می‌شود. می‌توانید کاربران جدید ایجاد کرده، آن‌ها را به گروه‌های مختلف اضافه کنید و دسترسی‌های مختلفی به آن‌ها تخصیص دهید.

۱.۱. ایجاد کاربر جدید داخل کانتینر

برای ایجاد یک کاربر جدید در کانتینر LXC، ابتدا باید وارد کانتینر شوید:

lxc exec <container_name> -- /bin/bash

پس از ورود به کانتینر، می‌توانید از دستور useradd برای ایجاد یک کاربر جدید استفاده کنید:

useradd -m username

با استفاده از این دستور، یک کاربر جدید به نام username ایجاد می‌شود. گزینه -m باعث می‌شود که دایرکتوری خانگی برای کاربر ساخته شود.

۱.۲. تنظیم پسورد برای کاربر

پس از ایجاد کاربر، برای تعیین پسورد به‌صورت زیر عمل کنید:

passwd username

این دستور از شما می‌خواهد که پسورد جدیدی برای کاربر وارد کنید.

۱.۳. افزودن کاربر به گروه

برای افزودن کاربر به یک گروه خاص، از دستور usermod استفاده کنید. به‌طور مثال، برای اضافه کردن کاربر به گروه sudo برای دسترسی به دستورات سطح بالا:

usermod -aG sudo username

این دستور کاربر username را به گروه sudo اضافه می‌کند.


۲. سطوح دسترسی و مجوزها در کانتینر LXC

در هر سیستم لینوکسی، دسترسی‌ها و مجوزها توسط چندین متغیر کنترل می‌شود که عبارتند از: دستگاه‌ها (devices)، دایرکتوری‌ها (directories) و فایل‌ها (files). در کانتینرهای LXC نیز این قوانین صدق می‌کنند و شما می‌توانید برای هر کاربر یا گروه، سطوح مختلفی از دسترسی را تعیین کنید.

۲.۱. تنظیم دسترسی به فایل‌ها و دایرکتوری‌ها

برای تنظیم دسترسی‌ها به فایل‌ها و دایرکتوری‌ها، می‌توانید از دستورات معمول لینوکس مانند chmod، chown و chgrp استفاده کنید.

  • تغییر مالکیت یک فایل یا دایرکتوری:
    chown username:groupname filename
    
  • تغییر دسترسی به فایل یا دایرکتوری:
    chmod 755 filename
    

در اینجا، 755 به‌این‌معنی است که مالک فایل دسترسی کامل دارد (خواندن، نوشتن، اجرا)، در حالی که گروه و دیگران فقط اجازه خواندن و اجرا دارند.

۲.۲. استفاده از گروه‌ها برای کنترل دسترسی

گروه‌ها یکی از ابزارهای مهم برای مدیریت دسترسی به منابع مشترک هستند. با استفاده از گروه‌ها می‌توانید کنترل دقیق‌تری بر دسترسی‌ها داشته باشید.

برای اضافه کردن یک کاربر به گروه، از دستور زیر استفاده کنید:

usermod -aG groupname username

برای حذف یک کاربر از گروه، از دستور زیر استفاده کنید:

gpasswd -d username groupname

۲.۳. استفاده از Sudo برای دسترسی به دستورات سطح بالا

برای اینکه یک کاربر به‌صورت موقت بتواند دستورات سطح بالا را اجرا کند، می‌توانید از گروه sudo استفاده کنید.

برای دادن دسترسی sudo به کاربر:

  1. وارد کانتینر شوید:
    lxc exec <container_name> -- /bin/bash
    
  2. کاربر را به گروه sudo اضافه کنید:
    usermod -aG sudo username
    
  3. حالا کاربر می‌تواند با استفاده از دستور sudo دستورات سطح بالا را اجرا کند. برای مثال:
    sudo apt update
    

۳. امنیت و محدودیت‌های دسترسی

در کانتینرها، ممکن است بخواهید سطح دسترسی کاربران به برخی منابع خاص مانند شبکه، دستگاه‌ها یا دایرکتوری‌های خاص را محدود کنید.

۳.۱. محدودیت دسترسی به دستگاه‌ها و منابع خاص

برای محدود کردن دسترسی به دستگاه‌ها و منابع، می‌توانید از cgroups و AppArmor استفاده کنید که اجازه می‌دهند منابع مختلف مانند CPU، حافظه و دستگاه‌ها را برای کاربران و فرآیندهای خاص محدود کنید.

برای مثال، برای محدود کردن دسترسی به دستگاه‌ها در کانتینر، می‌توانید از پروفایل‌های AppArmor استفاده کنید تا دسترسی به دستگاه‌ها مانند /dev/sda برای یک کاربر خاص محدود شود.

۳.۲. اعمال محدودیت‌های امنیتی با استفاده از SELinux و AppArmor

همچنین برای محدود کردن دسترسی به منابع سیستم، می‌توانید از SELinux یا AppArmor استفاده کنید. این ابزارها به شما اجازه می‌دهند که قوانین دقیق‌تری برای دسترسی به منابع و فایل‌ها اعمال کنید و از دسترسی غیرمجاز جلوگیری کنید.


۴. مدیریت کاربران از طریق Web UI

اگر از Proxmox VE به‌عنوان ابزار مدیریت کانتینر استفاده می‌کنید، می‌توانید کاربران و گروه‌ها را از طریق رابط گرافیکی Web UI مدیریت کنید.

  1. وارد داشبورد Proxmox شوید.
  2. بر روی کانتینر مورد نظر کلیک کنید.
  3. در بخش Resources یا User Permissions، می‌توانید کاربران و گروه‌های مختلف را اضافه کرده و دسترسی‌های خاصی برای هر کدام تخصیص دهید.

جمع‌بندی

مدیریت کاربران و سطوح دسترسی در کانتینرهای LXC بسیار مهم است و می‌تواند تأثیر زیادی بر امنیت و کارایی سیستم شما داشته باشد. ایجاد کاربران، تخصیص دسترسی‌ها، و استفاده از ابزارهایی مانند sudo، AppArmor و SELinux به شما این امکان را می‌دهند که به‌طور مؤثری منابع را مدیریت کنید و از سیستم خود محافظت کنید. استفاده از گروه‌ها، دستورات محدودیت دسترسی، و مراقبت از سطح دسترسی‌ها باعث افزایش امنیت و ایزولاسیون بیشتر در محیط‌های کانتینری خواهد شد.[/cdb_course_lesson][cdb_course_lesson title=”فصل 7. مدیریت پیکربندی پیشرفته در LXC”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات پیشرفته سیستم‌عامل و هسته برای کانتینرها” subtitle=”توضیحات کامل”]کانتینرهای LXC در سطح سیستم‌عامل و هسته (Kernel) از قابلیت‌های پیشرفته‌ای برای بهبود کارایی و امنیت برخوردار هستند. در این بخش، ما به بررسی تنظیمات پیشرفته‌ای خواهیم پرداخت که به شما این امکان را می‌دهند تا منابع را به‌طور دقیق‌تری کنترل کنید، از امنیت بیشتر برخوردار شوید و دسترسی به ویژگی‌های خاص هسته را برای کانتینرها فراهم کنید.

در این مقاله، تنظیمات پیشرفته سیستم‌عامل و هسته در کانتینرهای LXC شامل مواردی همچون محدودیت منابع، پیکربندی دستگاه‌ها، مجوزهای دسترسی به ویژگی‌های هسته و استفاده از تکنولوژی‌های پیشرفته هسته لینوکس مانند cgroups و namespaces خواهد بود.


۱. استفاده از cgroups برای محدود کردن منابع کانتینر

cgroups (Control Groups) یکی از ویژگی‌های هسته لینوکس است که به شما این امکان را می‌دهد تا منابع سیستم مانند CPU، حافظه (RAM)، و I/O (دیسک و شبکه) را به‌طور دقیق کنترل کنید. با استفاده از cgroups در کانتینرهای LXC، می‌توانید منابع مورد نیاز هر کانتینر را محدود کرده و از ایجاد بار اضافی در سیستم جلوگیری کنید.

۱.۱. محدود کردن منابع CPU

برای محدود کردن مصرف CPU توسط یک کانتینر، می‌توانید از ویژگی‌های cgroup استفاده کنید. به‌عنوان مثال، برای محدود کردن CPU استفاده شده توسط کانتینر، می‌توانید از پارامتر lxc.cgroup.cpu.shares استفاده کنید که نشان‌دهنده میزان تخصیص CPU برای کانتینر است.

در مسیر تنظیمات کانتینر (معمولاً /etc/pve/lxc/<container_id>.conf)، این پارامتر را به‌صورت زیر اضافه کنید:

lxc.cgroup.cpu.shares = 512

مقدار پیش‌فرض این پارامتر 1024 است و به‌طور معادل با یک سهم کامل از CPU تخصیص داده می‌شود. کاهش این مقدار موجب محدود شدن میزان استفاده از CPU توسط کانتینر می‌شود.

۱.۲. محدود کردن حافظه RAM

برای محدود کردن میزان حافظه (RAM) مصرفی توسط کانتینر، از پارامتر lxc.cgroup.memory.limit_in_bytes استفاده کنید:

lxc.cgroup.memory.limit_in_bytes = 2G

در اینجا، کانتینر حداکثر 2 گیگابایت RAM را مصرف خواهد کرد. اگر کانتینر بیشتر از این مقدار حافظه مصرف کند، فرایندهای آن شروع به کشیدن از سیستم عامل می‌کنند یا ممکن است کرش کنند.

۱.۳. محدود کردن I/O (دیسک و شبکه)

برای محدود کردن سرعت دیسک و شبکه، می‌توانید از تنظیمات blkio و net_cls در cgroup استفاده کنید. به‌طور مثال:

lxc.cgroup.blkio.throttle.write_bps_device = 8:0 104857600
lxc.cgroup.net_cls.classid = 0x100001

در اینجا، با استفاده از blkio محدودیت برای نوشتن داده‌ها به دیسک اعمال می‌شود و با استفاده از net_cls محدودیت بر ترافیک شبکه کانتینر تعریف می‌شود.


۲. استفاده از Namespaces برای ایزوله‌سازی

Namespaces یکی از ویژگی‌های هسته لینوکس است که ایزوله‌سازی فرآیندها، شبکه، کاربر و دیگر منابع را در سیستم فراهم می‌کند. هر کانتینر از یک یا چند Namespace استفاده می‌کند تا به‌طور مستقل از دیگر کانتینرها و سیستم اصلی عمل کند.

۲.۱. شبکه (Network Namespace)

برای ایزوله‌سازی شبکه، کانتینرها به‌طور معمول از یک Namespace شبکه جداگانه استفاده می‌کنند. این به‌معنی این است که هر کانتینر می‌تواند آدرس‌های IP، کارت‌های شبکه و دروازه‌های (Gateways) خود را داشته باشد و در عین حال از سایر کانتینرها ایزوله باشد.

برای پیکربندی Bridge Networking برای یک کانتینر و اعمال تنظیمات شبکه، از دستور زیر استفاده کنید:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.ipv4 = 10.0.3.100/24
lxc.network.ipv4.gateway = 10.0.3.1

در اینجا:

  • lxcbr0 یک Bridge Network است که به‌طور پیش‌فرض در بسیاری از محیط‌های LXC برای اتصال کانتینرها به شبکه استفاده می‌شود.
  • ipv4 آدرس IP اختصاصی برای کانتینر است.
  • ipv4.gateway به‌عنوان دروازه شبکه برای کانتینر تنظیم می‌شود.

۲.۲. کاربر (User Namespace)

User Namespace اجازه می‌دهد که هر کانتینر کاربر و گروه‌های خودش را داشته باشد. این امر به ایزوله‌سازی بیشتر امنیتی کمک می‌کند، زیرا کاربر داخل کانتینر می‌تواند یک UID و GID خاص داشته باشد که در سیستم اصلی متفاوت است.

برای فعال‌سازی User Namespace در کانتینر LXC، باید در فایل تنظیمات کانتینر این پارامتر را اضافه کنید:

lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536

این تنظیمات باعث می‌شود که کاربر root داخل کانتینر (UID 0) به کاربر با UID 100000 در سیستم اصلی نگاشته شود.


۳. تنظیمات هسته برای امنیت و کنترل دسترسی

با استفاده از هسته لینوکس، می‌توان امنیت کانتینرها را بهبود داد. ویژگی‌های هسته‌ای مانند AppArmor، SELinux و seccomp می‌توانند دسترسی به منابع را محدود کرده و فرآیندها را ایزوله کنند.

۳.۱. استفاده از AppArmor برای افزایش امنیت

AppArmor یک ابزار امنیتی است که می‌تواند به شما این امکان را بدهد که دسترسی کانتینرها به فایل‌ها، دستگاه‌ها و دیگر منابع را کنترل کنید.

برای فعال‌سازی AppArmor برای کانتینر LXC، ابتدا باید پروفایل AppArmor مناسب را برای کانتینر تنظیم کنید. به‌عنوان مثال:

lxc.apparmor.profile = unconfined

این پروفایل اجازه می‌دهد که کانتینر بدون هیچ محدودیتی اجرا شود. برای محدودیت‌های بیشتر، باید از پروفایل‌های خاص استفاده کنید.

۳.۲. استفاده از seccomp برای محدود کردن سیستم‌تماس‌ها

seccomp (Secure Computing Mode) به شما این امکان را می‌دهد که دسترسی کانتینر به سیستم‌تماس‌های خاص (syscalls) هسته را محدود کنید. برای فعال‌سازی seccomp، می‌توانید در فایل تنظیمات کانتینر از پارامتر زیر استفاده کنید:

lxc.seccomp.profile = /etc/lxc/seccomp

فایل seccomp باید شامل لیستی از سیستم‌تماس‌هایی باشد که مجاز یا غیرمجاز هستند.


۴. استفاده از تکنیک‌های ذخیره‌سازی پیشرفته

در کانتینرهای LXC، امکان استفاده از انواع سیستم‌فایل‌ها و تکنیک‌های ذخیره‌سازی پیشرفته مانند ZFS و Btrfs برای بهبود کارایی و انعطاف‌پذیری ذخیره‌سازی داده‌ها وجود دارد.

۴.۱. استفاده از ZFS برای ذخیره‌سازی کانتینرها

ZFS یکی از سیستم‌فایل‌های پیشرفته است که از ویژگی‌هایی مانند snapshots و compression پشتیبانی می‌کند. برای استفاده از ZFS در کانتینر LXC، باید از پارامترهای زیر استفاده کنید:

lxc.rootfs = zfs:pool_name/container_name

این دستور به‌طور خودکار فضای ذخیره‌سازی کانتینر را در ZFS pool تعیین شده قرار می‌دهد.


جمع‌بندی

تنظیمات پیشرفته سیستم‌عامل و هسته برای کانتینرها شامل مواردی است که به شما این امکان را می‌دهد که منابع را به‌طور دقیق‌تری کنترل کرده، امنیت را افزایش دهید و از ویژگی‌های پیشرفته هسته لینوکس برای ایزوله‌سازی و بهبود کارایی استفاده کنید. با استفاده از ابزارهایی مانند cgroups، namespaces، AppArmor، seccomp و ZFS می‌توانید به‌طور مؤثر کانتینرها را مدیریت کرده و امنیت و کارایی آن‌ها را افزایش دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از LXC config files برای پیکربندی کانتینر” subtitle=”توضیحات کامل”]در LXC، فایل‌های پیکربندی یا همان LXC config files ابزارهای اصلی برای تنظیم و پیکربندی کانتینرها هستند. این فایل‌ها به شما این امکان را می‌دهند که ویژگی‌ها و تنظیمات مختلف کانتینر را به‌طور دقیق مشخص کنید. فایل‌های پیکربندی به‌طور معمول در مسیر /etc/pve/lxc/<container_id>.conf برای کانتینرهای Proxmox و در مسیر /var/lib/lxc/<container_id>/config برای سیستم‌های غیر Proxmox ذخیره می‌شوند.

در این بخش، به بررسی نحوه استفاده و ویرایش این فایل‌ها برای پیکربندی کانتینرهای LXC می‌پردازیم.


۱. ساختار فایل پیکربندی LXC

فایل پیکربندی LXC شامل یک سری پارامترها و گزینه‌ها است که به شما این امکان را می‌دهند تا رفتار کانتینر را به دقت تنظیم کنید. این فایل‌ها معمولاً شامل گزینه‌هایی برای شبکه، دیسک، CPU، حافظه و تنظیمات امنیتی هستند. هر بخش از فایل معمولاً با استفاده از # برای نوشتن توضیحات آغاز می‌شود.

۱.۱. یک فایل پیکربندی نمونه

فرض کنید که یک فایل پیکربندی LXC برای کانتینر با شناسه 101 به نام 101.conf داریم. نمونه‌ای از این فایل به شرح زیر است:

# مشخصات عمومی کانتینر
lxc.name = container_name
lxc.uts.name = container_name
lxc.rootfs.path = dir:/var/lib/lxc/101/rootfs

# تخصیص منابع
lxc.cgroup.memory.limit_in_bytes = 512M
lxc.cgroup.cpu.shares = 512

# تنظیمات شبکه
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.ipv4 = 10.0.3.101/24
lxc.network.ipv4.gateway = 10.0.3.1

# تنظیمات امنیتی
lxc.apparmor.profile = unconfined
lxc.seccomp.profile = /etc/lxc/seccomp

# موارد اضافی
lxc.mount.entry = /mnt/data container_mount none bind 0 0

۲. پیکربندی منابع کانتینر

در فایل پیکربندی LXC، شما می‌توانید منابع مختلف مانند CPU، حافظه (RAM)، دیسک و I/O را برای کانتینر پیکربندی کنید.

۲.۱. تخصیص حافظه (RAM)

برای محدود کردن میزان حافظه استفاده‌شده توسط کانتینر، از پارامتر lxc.cgroup.memory.limit_in_bytes استفاده می‌شود:

lxc.cgroup.memory.limit_in_bytes = 1G

این دستور موجب می‌شود که کانتینر حداکثر 1 گیگابایت RAM مصرف کند.

۲.۲. تخصیص CPU

برای تخصیص منابع CPU، از پارامتر lxc.cgroup.cpu.shares استفاده می‌شود. مقدار پیش‌فرض 1024 است که نشان‌دهنده یک سهم کامل از CPU است.

lxc.cgroup.cpu.shares = 512

در اینجا، کانتینر سهم کمتری از CPU دریافت می‌کند (نصف مقدار پیش‌فرض).

۲.۳. تخصیص دیسک

برای محدود کردن استفاده از دیسک، می‌توان از ویژگی‌های blkio استفاده کرد:

lxc.cgroup.blkio.throttle.write_bps_device = 8:0 104857600

این دستور حداکثر سرعت نوشتن به دیسک را برای کانتینر محدود می‌کند.


۳. پیکربندی شبکه در LXC

شبکه یکی از مهم‌ترین بخش‌ها در پیکربندی کانتینرها است. شما می‌توانید با استفاده از فایل پیکربندی، تنظیمات مختلف شبکه مانند نوع اتصال، آدرس IP و دروازه (Gateway) را پیکربندی کنید.

۳.۱. تنظیمات شبکه

در فایل پیکربندی، پارامترهای مختلفی برای تنظیمات شبکه وجود دارد. به‌عنوان مثال:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.ipv4 = 10.0.3.101/24
lxc.network.ipv4.gateway = 10.0.3.1

در اینجا:

  • lxc.network.type = veth: نوع شبکه را به veth (Virtual Ethernet) تنظیم می‌کند.
  • lxc.network.link = lxcbr0: اتصال شبکه به bridge lxcbr0 برقرار می‌شود.
  • lxc.network.ipv4 = 10.0.3.101/24: آدرس IP اختصاصی برای کانتینر تعیین می‌شود.
  • lxc.network.ipv4.gateway = 10.0.3.1: دروازه شبکه برای کانتینر تنظیم می‌شود.

۴. پیکربندی امنیت و مجوزها

در پیکربندی امنیت کانتینرها، ویژگی‌هایی همچون AppArmor، SELinux و seccomp وجود دارند که می‌توانند دسترسی به منابع و فرآیندهای سیستم را محدود کنند.

۴.۱. استفاده از AppArmor

برای استفاده از AppArmor در کانتینر، باید پروفایل مناسب را مشخص کنید. به‌عنوان مثال:

lxc.apparmor.profile = unconfined

این پروفایل اجازه می‌دهد که کانتینر بدون هیچ محدودیتی اجرا شود. برای محدودیت‌های بیشتر، می‌توانید از پروفایل‌های خاص استفاده کنید.

۴.۲. استفاده از seccomp

برای محدود کردن دسترسی کانتینر به تماس‌های سیستم خاص (syscalls)، می‌توانید از seccomp استفاده کنید:

lxc.seccomp.profile = /etc/lxc/seccomp

در اینجا، فایل seccomp باید شامل لیستی از تماس‌های مجاز و غیرمجاز باشد.


۵. پیکربندی دستگاه‌ها و دیسک‌های اضافی

برای اضافه کردن دستگاه‌ها و دیسک‌های اضافی به کانتینر، می‌توانید از تنظیمات زیر در فایل پیکربندی استفاده کنید.

۵.۱. افزودن دستگاه‌ها

برای افزودن یک دستگاه به کانتینر، از پارامتر lxc.cgroup.devices.allow استفاده کنید:

lxc.cgroup.devices.allow = c 10:200 rwm

این دستور اجازه دسترسی به دستگاه 10:200 (که معمولاً به یک دستگاه خاص اشاره دارد) را برای کانتینر فراهم می‌کند.

۵.۲. افزودن دیسک

برای افزودن یک دیسک به کانتینر، از پارامتر lxc.mount.entry استفاده می‌شود:

lxc.mount.entry = /mnt/data container_mount none bind 0 0

این دستور باعث می‌شود که پوشه /mnt/data از میزبان به کانتینر متصل شود.


۶. تغییرات دینامیک و اعمال تنظیمات

پس از انجام تغییرات در فایل پیکربندی کانتینر، برای اعمال این تنظیمات به‌طور مستقیم، باید کانتینر را مجدداً راه‌اندازی کنید. این کار را می‌توانید با استفاده از دستور زیر انجام دهید:

lxc restart <container_id>

جمع‌بندی

فایل‌های پیکربندی LXC ابزاری قدرتمند برای مدیریت تنظیمات کانتینرها هستند. با استفاده از این فایل‌ها، شما می‌توانید منابع، شبکه، امنیت، دستگاه‌ها و سایر ویژگی‌های کانتینر را به دقت تنظیم کنید. از طریق این پیکربندی‌ها، می‌توانید به‌طور مؤثر منابع سیستم را مدیریت کرده، امنیت کانتینرها را تقویت کرده و نیازهای خاص خود را در محیط کانتینری رفع کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات ورودی و خروجی I/O برای بهینه‌سازی عملکرد ” subtitle=”توضیحات کامل”]عملکرد ورودی و خروجی (I/O) در کانتینرهای LXC بخش بسیار مهمی از مدیریت منابع است. برای اطمینان از عملکرد بهینه سیستم، باید تنظیمات I/O به‌دقت پیکربندی شوند. در این بخش، به بررسی نحوه پیکربندی تنظیمات I/O برای کانتینرهای LXC و روش‌هایی برای بهینه‌سازی عملکرد آن‌ها می‌پردازیم.


۱. مدیریت I/O در کانتینرها

I/O در کانتینرها معمولاً شامل خواندن و نوشتن داده‌ها بر روی دیسک و عملیات شبکه است. به‌طور خاص، از ابزارهای cgroups و blkio برای کنترل مصرف منابع I/O در کانتینرها استفاده می‌شود.

در اینجا تنظیمات مختلف I/O را در سطح کانتینر بررسی خواهیم کرد که می‌توانند به بهینه‌سازی عملکرد کمک کنند.


۲. تنظیمات I/O در LXC

LXC برای مدیریت و محدود کردن منابع I/O، از تنظیمات cgroup استفاده می‌کند. این تنظیمات امکان اعمال محدودیت‌هایی برای دیسک و شبکه را در کانتینر فراهم می‌کنند.

۲.۱. محدود کردن سرعت نوشتن/خواندن دیسک

برای محدود کردن سرعت I/O دیسک در کانتینر، از تنظیمات blkio در فایل پیکربندی استفاده می‌شود. این تنظیمات به شما امکان می‌دهند که میزان خواندن و نوشتن روی دیسک را برای کانتینر محدود کنید.

  • محدود کردن سرعت نوشتن به دیسک:

برای محدود کردن سرعت نوشتن به دیسک، می‌توانید از گزینه‌های blkio.throttle.write_bps_device یا blkio.throttle.write_iops_device استفاده کنید:

lxc.cgroup.blkio.throttle.write_bps_device = 8:0 104857600

در اینجا:

  • 8:0 شناسه دستگاه است (در اینجا برای دستگاه /dev/sda).
  • 104857600 محدودیت نوشتن به دیسک را به 100MB/s تنظیم می‌کند.
  • محدود کردن سرعت خواندن از دیسک:

برای محدود کردن سرعت خواندن از دیسک، از گزینه‌های مشابه برای خواندن داده‌ها استفاده می‌شود:

lxc.cgroup.blkio.throttle.read_bps_device = 8:0 104857600

این دستور سرعت خواندن را نیز به 100MB/s محدود می‌کند.

۲.۲. تنظیمات بلوک‌های I/O

علاوه بر محدود کردن سرعت خواندن و نوشتن، می‌توان تعداد عملیات ورودی/خروجی (I/O operations per second) را برای دیسک محدود کرد:

lxc.cgroup.blkio.throttle.read_iops_device = 8:0 1000
lxc.cgroup.blkio.throttle.write_iops_device = 8:0 1000

این تنظیمات موجب می‌شود که تعداد عملیات ورودی/خروجی خواندن و نوشتن در دیسک به 1000 محدود شود.

۲.۳. تنظیمات محدودیت I/O برای فایل سیستم

علاوه بر محدودیت‌های I/O برای دیسک، شما می‌توانید برای عملیات‌های I/O روی فایل سیستم نیز محدودیت‌هایی اعمال کنید. این تنظیمات برای بهینه‌سازی عملکرد فایل‌های سیستم‌های مختلف بسیار کاربردی هستند.

  • محدودیت زمان پاسخ‌دهی:
lxc.cgroup.memory.memory.soft_limit_in_bytes = 512M

این تنظیمات اجازه می‌دهد تا زمان تأخیر در پاسخ‌دهی به درخواست‌های I/O برای فایل‌ها محدود شود.


۳. بهینه‌سازی عملکرد شبکه

علاوه بر دیسک، تنظیمات I/O شبکه نیز برای بهینه‌سازی عملکرد بسیار مهم است. شما می‌توانید از تنظیمات مختلف شبکه برای بهینه‌سازی سرعت ارسال و دریافت داده‌ها استفاده کنید.

۳.۱. محدودیت پهنای باند شبکه

برای اعمال محدودیت در پهنای باند شبکه، از ابزارهای tc (Traffic Control) در سطح میزبان یا فایل پیکربندی کانتینر می‌توان استفاده کرد. برای مثال، برای محدود کردن سرعت شبکه کانتینر به 1Mbps:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.tc = "1mbit"

۳.۲. تنظیمات پردازش داده‌ها و ترافیک

برای مدیریت ترافیک و اولویت‌بندی بسته‌ها، می‌توانید از تنظیمات مربوط به QoS (Quality of Service) استفاده کنید:

lxc.network.qos = low

این تنظیمات ترافیک شبکه را بر اساس نیازهای کانتینر اولویت‌بندی می‌کند.


۴. استفاده از سیستم‌های فایل سریع‌تر و بهینه‌تر

انتخاب سیستم فایل مناسب برای کانتینرها می‌تواند تأثیر زیادی بر عملکرد I/O داشته باشد. برخی سیستم‌های فایل مانند ZFS و Btrfs به‌ویژه در کاربردهای I/O-heavy (با مصرف بالای I/O) بهتر عمل می‌کنند.

۴.۱. استفاده از ZFS

ZFS به دلیل ویژگی‌های مدیریت ذخیره‌سازی پیشرفته، مانند قابلیت فشرده‌سازی داده‌ها، هشدارهای خودکار خطا و کارایی بالای I/O، به یکی از بهترین گزینه‌ها برای استفاده در LXC تبدیل شده است.

برای استفاده از ZFS در LXC، شما باید یک سیستم ذخیره‌سازی ZFS نصب کرده و از آن به‌عنوان سیستم فایل کانتینر استفاده کنید. به‌عنوان مثال:

lxc.rootfs = zfs:/mnt/zfs_volume/container_name

۴.۲. استفاده از Btrfs

Btrfs نیز یک سیستم فایل با ویژگی‌هایی نظیر snapshots، checksums و مدیریت حجم است که در بهینه‌سازی عملکرد I/O مفید است.

برای استفاده از Btrfs در LXC، کافی است در فایل پیکربندی از آن به‌عنوان سیستم فایل استفاده کنید:

lxc.rootfs = btrfs:/mnt/btrfs_volume/container_name

۵. اعمال تغییرات و راه‌اندازی مجدد کانتینر

پس از اعمال تغییرات در فایل پیکربندی، شما باید کانتینر را برای اعمال این تنظیمات مجدداً راه‌اندازی کنید. برای این کار، دستور زیر را وارد کنید:

lxc restart <container_id>

جمع‌بندی

با استفاده از تنظیمات مختلف I/O در LXC، می‌توانید بهینه‌سازی‌های قابل توجهی در عملکرد کانتینرها انجام دهید. محدود کردن سرعت I/O دیسک، تنظیمات محدودیت‌های خواندن و نوشتن، استفاده از سیستم‌های فایل بهینه و تنظیمات شبکه می‌توانند باعث افزایش کارایی و کاهش مصرف منابع شوند. تنظیمات دقیق و مناسب I/O می‌توانند تأثیر زیادی بر عملکرد کلی کانتینرها و منابع سیستم داشته باشند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تخصیص منابع و تخصیص حافظه (Swapping, Memory Limits)” subtitle=”توضیحات کامل”]در محیط‌های کانتینری مانند LXC، تخصیص منابع یکی از جنبه‌های مهم مدیریت کارایی است. یکی از اصلی‌ترین منابع که باید به‌دقت مدیریت شود، حافظه (RAM) است. تخصیص مناسب حافظه برای هر کانتینر می‌تواند باعث بهبود عملکرد سیستم و جلوگیری از مشکلاتی مانند مصرف زیاد حافظه یا خطاهای مرتبط با کمبود منابع شود.

در این بخش، به بررسی نحوه تنظیم تخصیص حافظه و منابع در LXC خواهیم پرداخت و نشان خواهیم داد که چگونه می‌توانید حافظه را برای کانتینرهای خود محدود کنید و از ویژگی‌هایی مانند swapping و memory limits استفاده کنید.


۱. تخصیص حافظه در LXC

در LXC، منابع مختلفی مانند CPU، حافظه و دیسک می‌توانند به هر کانتینر تخصیص داده شوند. تخصیص حافظه به کانتینرها به شما این امکان را می‌دهد که میزان حافظه‌ای که یک کانتینر می‌تواند استفاده کند را محدود کنید. در اینجا، دو ویژگی مهم برای تخصیص حافظه را بررسی خواهیم کرد:

  1. Swapping
  2. Memory Limits

۱.۱. محدود کردن حافظه (Memory Limits)

برای محدود کردن مقدار حافظه‌ای که یک کانتینر می‌تواند استفاده کند، از گزینه lxc.cgroup.memory.limit_in_bytes استفاده می‌شود. این گزینه به شما این امکان را می‌دهد که مقدار ثابت حافظه برای کانتینر تعیین کنید.

مثال:

اگر بخواهید به کانتینر خود 2 گیگابایت حافظه اختصاص دهید، می‌توانید از تنظیم زیر استفاده کنید:

lxc.cgroup.memory.limit_in_bytes = 2G

در اینجا:

  • 2G به معنی 2 گیگابایت حافظه است.

۱.۲. استفاده از حافظه برای Swapping

Swapping در واقع به این معناست که وقتی حافظه فیزیکی سیستم پر می‌شود، اطلاعات به دیسک منتقل می‌شود تا فضای بیشتری برای برنامه‌ها فراهم شود. با استفاده از LXC، شما می‌توانید مشخص کنید که آیا کانتینر اجازه دارد از فضای swap استفاده کند یا خیر، و در صورتی که استفاده از swap مجاز باشد، چه مقدار حافظه می‌تواند به swap اختصاص یابد.

برای فعال‌سازی swapping در LXC، باید تنظیماتی را در فایل پیکربندی کانتینر اعمال کنید. به‌طور پیش‌فرض، استفاده از swap برای کانتینرها فعال است، اما اگر بخواهید آن را محدود یا غیرفعال کنید، می‌توانید از گزینه‌های زیر استفاده کنید:

  • محدود کردن فضای swap:
lxc.cgroup.memory.memsw.limit_in_bytes = 4G

این تنظیمات به کانتینر اجازه می‌دهد که حداکثر 4 گیگابایت حافظه (شامل حافظه فیزیکی و swap) استفاده کند.

  • غیرفعال کردن swap:

برای غیرفعال کردن swap برای یک کانتینر، می‌توانید از این تنظیمات استفاده کنید:

lxc.cgroup.memory.memsw.limit_in_bytes = 2G
lxc.cgroup.memory.swappiness = 0

در اینجا:

  • memsw.limit_in_bytes = 2G مشخص می‌کند که کانتینر حداکثر 2 گیگابایت حافظه استفاده کند.
  • swappiness = 0 اجازه نمی‌دهد که سیستم از swap استفاده کند، و به این معنی است که حافظه اضافی فقط در صورتی استفاده می‌شود که هیچ‌چیز دیگری برای استفاده وجود نداشته باشد.

۱.۳. تنظیم حداقل و حداکثر حافظه

در برخی مواقع، ممکن است بخواهید برای کانتینر خود یک حداقل و حداکثر میزان حافظه تعیین کنید. برای مثال، ممکن است بخواهید اطمینان حاصل کنید که کانتینر همیشه حداقل 1 گیگابایت حافظه داشته باشد، اما در صورت نیاز، بتواند به 4 گیگابایت افزایش یابد.

برای انجام این کار، از گزینه‌های lxc.cgroup.memory.soft_limit_in_bytes و lxc.cgroup.memory.limit_in_bytes استفاده می‌شود:

lxc.cgroup.memory.soft_limit_in_bytes = 1G
lxc.cgroup.memory.limit_in_bytes = 4G

در اینجا:

  • soft_limit_in_bytes = 1G به کانتینر این امکان را می‌دهد که حداقل 1 گیگابایت حافظه را داشته باشد.
  • limit_in_bytes = 4G حداکثر مقدار حافظه‌ای است که کانتینر می‌تواند استفاده کند.

۱.۴. تنظیمات اختصاصی برای بخش swap

اگر نیاز دارید که swap به‌طور خاص برای کانتینر فعال یا غیرفعال شود، می‌توانید از گزینه lxc.cgroup.memory.swappiness استفاده کنید.

  • فعال‌سازی استفاده از swap:
lxc.cgroup.memory.swappiness = 60

این تنظیمات به کانتینر اجازه می‌دهد که از swap استفاده کند، اما با اولویت پایین‌تر نسبت به حافظه فیزیکی. مقدار 60 نشان‌دهنده تمایل به استفاده از swap است.

  • غیرفعال کردن swap:
lxc.cgroup.memory.swappiness = 0

این تنظیمات باعث می‌شود که کانتینر هرگز از swap استفاده نکند مگر اینکه حافظه فیزیکی به طور کامل مصرف شود.


۲. تخصیص حافظه در فایل پیکربندی

تمامی این تنظیمات باید در فایل پیکربندی کانتینر (که معمولاً در مسیر /etc/lxc/<container_name>.conf قرار دارد) قرار گیرند. به‌طور مثال، می‌توانید فایل پیکربندی کانتینر را به این صورت ویرایش کنید:

sudo nano /etc/lxc/<container_name>.conf

سپس، تنظیمات لازم را وارد کنید، مانند:

lxc.cgroup.memory.limit_in_bytes = 2G
lxc.cgroup.memory.memsw.limit_in_bytes = 4G
lxc.cgroup.memory.swappiness = 0

۳. بررسی و مانیتورینگ مصرف حافظه

پس از انجام پیکربندی‌های لازم، شما باید مطمئن شوید که کانتینرها به درستی منابع حافظه را مصرف می‌کنند. برای بررسی مصرف حافظه کانتینر، می‌توانید از ابزارهایی مانند lxc-info یا top استفاده کنید.

  • استفاده از دستور lxc-info:

برای مشاهده وضعیت مصرف حافظه کانتینر، از دستور زیر استفاده کنید:

lxc-info -n <container_name>

این دستور اطلاعات مربوط به کانتینر از جمله میزان حافظه مصرفی را نمایش می‌دهد.

  • استفاده از دستور top:

همچنین می‌توانید از دستور top در داخل کانتینر برای بررسی مصرف حافظه استفاده کنید:

lxc exec <container_name> -- top

این دستور اطلاعات کاملی از مصرف منابع، از جمله حافظه و CPU را نمایش می‌دهد.


جمع‌بندی

تخصیص حافظه و مدیریت منابع در LXC برای کانتینرها بخش بسیار مهمی از مدیریت سیستم است. با استفاده از تنظیمات دقیق حافظه و سوآپ، می‌توانید عملکرد کانتینرها را بهینه کنید و از مشکلات مربوط به کمبود منابع جلوگیری کنید. تنظیمات مختلفی از جمله محدود کردن حافظه، فعال‌سازی یا غیرفعال‌سازی استفاده از swap و استفاده از soft و hard limits به شما این امکان را می‌دهند که منابع را به‌طور مؤثر مدیریت کنید. همچنین، ابزارهای نظارتی مانند lxc-info و top به شما کمک می‌کنند تا مصرف منابع کانتینرها را به دقت پیگیری کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی تنظیمات شبکه پیشرفته و ویژگی‌های VPN برای کانتینرها” subtitle=”توضیحات کامل”]در دنیای کانتینرها، شبکه یکی از جنبه‌های حیاتی است که می‌تواند تأثیر زیادی بر کارایی و امنیت سیستم‌ها داشته باشد. به‌ویژه در محیط‌های تولیدی، به‌کارگیری تنظیمات پیشرفته شبکه و استفاده از ویژگی‌هایی مانند VPN می‌تواند به شما در مدیریت ارتباطات ایمن و بهینه کمک کند. در این بخش، ما به بررسی نحوه پیکربندی شبکه پیشرفته و استفاده از ویژگی‌های VPN برای کانتینرهای LXC خواهیم پرداخت.

این تنظیمات به شما امکان می‌دهند که از قابلیت‌های مختلف شبکه‌ای مانند Bridge، NAT، VLAN و VPN استفاده کنید تا کانتینرهای خود را به‌طور مؤثر مدیریت کنید.


۱. پیکربندی شبکه پیشرفته در LXC

۱.۱. Bridge Networking

یکی از رایج‌ترین روش‌ها برای اتصال کانتینرها به شبکه، استفاده از Bridge Networking است. در این روش، کانتینرها به‌طور مستقیم به شبکه میزبان (Host) متصل می‌شوند و به آن‌ها یک آدرس IP اختصاص داده می‌شود که از شبکه میزبان قابل دسترسی است.

برای پیکربندی Bridge Networking در LXC، ابتدا باید یک Bridge در سیستم میزبان ایجاد کنید. این کار معمولاً توسط ابزارهای مدیریت شبکه لینوکس مانند brctl انجام می‌شود.

  1. ایجاد Bridge جدید در میزبان:
sudo brctl addbr lxcbr0
sudo ip link set lxcbr0 up
  1. پیکربندی فایل کانتینر برای استفاده از Bridge:

در فایل پیکربندی کانتینر (به‌طور پیش‌فرض در /etc/lxc/<container_name>.conf)، شما باید تنظیمات مربوط به Bridge را اضافه کنید:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.ipv4 = 10.0.3.10/24
lxc.network.ipv4.gateway = 10.0.3.1

در اینجا:

  • lxc.network.type = veth تعیین می‌کند که شبکه به‌صورت veth باشد.
  • lxc.network.link = lxcbr0 مشخص می‌کند که کانتینر از Bridge lxcbr0 استفاده کند.
  • lxc.network.ipv4 به کانتینر آدرس IP اختصاص می‌دهد.
  • lxc.network.ipv4.gateway گیت‌وی شبکه را تنظیم می‌کند.

۱.۲. NAT Networking

در صورتی که بخواهید کانتینرهای شما به شبکه خارجی متصل شوند، ولی آدرس IP آن‌ها در دسترس دیگر سیستم‌ها نباشد، می‌توانید از NAT (Network Address Translation) استفاده کنید.

برای پیکربندی NAT، شما باید از تنظیمات زیر در فایل پیکربندی کانتینر استفاده کنید:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.ipv4 = 10.0.3.10/24
lxc.network.ipv4.gateway = 10.0.3.1
lxc.network.ipv4.dhcp = 1

در اینجا:

  • lxc.network.ipv4.dhcp = 1 این گزینه اجازه می‌دهد که کانتینر به‌طور خودکار از DHCP یک آدرس IP دریافت کند.

برای اینکه NAT به درستی کار کند، باید روتینگ و IP forwarding را در سیستم میزبان فعال کنید:

  1. فعال‌سازی IP forwarding در میزبان:
echo 1 > /proc/sys/net/ipv4/ip_forward
  1. تنظیم NAT با استفاده از iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

در اینجا:

  • -o eth0 مشخص می‌کند که ارتباطات شبکه باید از کارت شبکه eth0 عبور کند.

۱.۳. VLAN Networking

برای تقسیم‌بندی و جداسازی شبکه‌ها به بخش‌های مختلف، می‌توانید از VLAN (Virtual Local Area Network) استفاده کنید. برای پیکربندی VLAN در LXC، باید یک VLAN خاص را برای کانتینر تنظیم کنید.

  1. ایجاد VLAN در میزبان:

ابتدا باید VLAN مورد نظر را در میزبان ایجاد کنید:

sudo ip link add link eth0 name eth0.10 type vlan id 10
sudo ip link set eth0.10 up

در اینجا:

  • eth0.10 یک VLAN جدید است که به کارت شبکه eth0 متصل می‌شود.
  • id 10 شناسه VLAN است.
  1. پیکربندی فایل کانتینر برای استفاده از VLAN:

در فایل پیکربندی کانتینر، تنظیمات VLAN را به‌صورت زیر اضافه کنید:

lxc.network.type = veth
lxc.network.link = eth0.10
lxc.network.flags = up

۲. پیکربندی VPN برای کانتینرها

استفاده از VPN در کانتینرها به شما این امکان را می‌دهد که ارتباطات امن‌تری برای کانتینرهای خود فراهم کنید و به‌راحتی به شبکه‌های خصوصی دسترسی پیدا کنید. در اینجا نحوه راه‌اندازی VPN برای کانتینرهای LXC را توضیح خواهیم داد.

۲.۱. نصب و پیکربندی OpenVPN برای کانتینر

برای راه‌اندازی یک شبکه VPN در کانتینرها، می‌توانیم از OpenVPN استفاده کنیم. این مراحل را برای نصب و پیکربندی OpenVPN روی سیستم میزبان و کانتینرها دنبال می‌کنیم.

  1. نصب OpenVPN در میزبان:
sudo apt-get update
sudo apt-get install openvpn
  1. پیکربندی OpenVPN در میزبان:

برای پیکربندی OpenVPN، ابتدا باید یک فایل پیکربندی VPN (مانند client.ovpn) تهیه کنید که تنظیمات اتصال به سرور VPN را شامل می‌شود. سپس این فایل را در سیستم میزبان قرار دهید و تنظیمات لازم را انجام دهید.

  1. اتصال کانتینر به VPN:

برای اتصال کانتینر به شبکه VPN، ابتدا باید OpenVPN را در داخل کانتینر نصب کنید. سپس فایل پیکربندی VPN را در کانتینر قرار داده و سرویس VPN را راه‌اندازی کنید.

برای نصب OpenVPN در داخل کانتینر، دستور زیر را اجرا کنید:

lxc exec <container_name> -- apt-get update
lxc exec <container_name> -- apt-get install openvpn

سپس فایل پیکربندی client.ovpn را در کانتینر قرار دهید و اتصال به VPN را از داخل کانتینر راه‌اندازی کنید:

lxc exec <container_name> -- openvpn --config /path/to/client.ovpn

۲.۲. پیکربندی VPN در سطح شبکه میزبان

شما همچنین می‌توانید از VPN در سطح میزبان استفاده کنید تا تمام ارتباطات شبکه میزبان و کانتینرها از طریق VPN عبور کند. برای انجام این کار، سرویس OpenVPN را روی میزبان راه‌اندازی کنید و تنظیمات مربوطه را انجام دهید.

sudo openvpn --config /path/to/server.conf

جمع‌بندی

پیکربندی تنظیمات شبکه پیشرفته و ویژگی‌های VPN در LXC می‌تواند به‌طور قابل‌توجهی به بهبود امنیت و کارایی ارتباطات بین کانتینرها کمک کند. استفاده از Bridge Networking، NAT و VLAN به شما این امکان را می‌دهد که شبکه‌های پیچیده‌تری برای کانتینرهای خود ایجاد کنید، در حالی که استفاده از VPN امنیت ارتباطات را در سطح بالاتری حفظ می‌کند.

  • با پیکربندی Bridge یا NAT می‌توانید شبکه‌های مجازی میان کانتینرها و شبکه میزبان برقرار کنید.
  • VLAN به شما اجازه می‌دهد که شبکه‌های جداگانه و ایمن برای هر کانتینر ایجاد کنید.
  • با استفاده از OpenVPN، می‌توانید شبکه‌های خصوصی مجازی برای کانتینرها ایجاد کرده و امنیت ارتباطات آن‌ها را بهبود بخشید.

این تنظیمات به شما کمک می‌کند تا کنترل بیشتری بر روی شبکه کانتینرهای خود داشته باشید و آن‌ها را به شکلی ایمن‌تر و بهینه‌تر پیکربندی کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 8. اسکن و نظارت بر وضعیت کانتینرها”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از ابزارهای مانیتورینگ و اسکن وضعیت کانتینرها” subtitle=”توضیحات کامل”]برای مدیریت و نگهداری کانتینرها به‌طور مؤثر، نظارت بر وضعیت و عملکرد آن‌ها امری ضروری است. در این بخش، به معرفی ابزارهایی برای مانیتورینگ و اسکن وضعیت کانتینرها خواهیم پرداخت تا بتوانید عملکرد کانتینرها را به‌طور دقیق بررسی کنید و از وقوع مشکلات پیشگیری کنید.

ابزارهای مانیتورینگ به شما این امکان را می‌دهند که وضعیت منابع (مانند CPU، RAM، Disk) و سرویس‌های درون کانتینرها را کنترل کنید. همچنین، برخی از ابزارها قابلیت‌های پیشرفته‌تری مانند اسکن امنیتی و گزارش‌گیری از آسیب‌پذیری‌ها را در اختیار شما قرار می‌دهند.


۴.۱. ابزارهای مانیتورینگ کانتینرها

۴.۱.۱. LXC Monitoring (LXC Stats)

برای مانیتورینگ کانتینرها در LXC، می‌توانید از ابزار lxc info یا lxc stats استفاده کنید که اطلاعاتی در مورد وضعیت منابع، میزان استفاده از CPU، RAM، Disk و وضعیت شبکه کانتینرها ارائه می‌دهد.

  • دستور lxc info: این دستور اطلاعات کلی درباره وضعیت کانتینر شامل IP، وضعیت شبکه و مشخصات منابع را نمایش می‌دهد.
lxc info <container_name>
  • دستور lxc stats: این دستور به شما آمار دقیقی از مصرف منابع کانتینر مانند CPU، حافظه و میزان داده‌های دریافتی/ارسالی شبکه برای کانتینر مشخص شده را نمایش می‌دهد.
lxc stats <container_name>

۴.۱.۲. Netdata

Netdata یک ابزار قدرتمند برای مانیتورینگ عملکرد سیستم‌ها، سرورها و کانتینرها است. این ابزار می‌تواند اطلاعات گرافیکی و به‌روز در مورد منابع سخت‌افزاری و شبکه‌ای سیستم‌ها و کانتینرها ارائه دهد.

  1. نصب Netdata:

برای نصب Netdata روی سیستم میزبان، می‌توانید از دستور زیر استفاده کنید:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)
  1. نصب Netdata در کانتینر:

برای نصب Netdata در داخل کانتینر، ابتدا باید به‌عنوان root وارد کانتینر شوید و دستور نصب را اجرا کنید:

lxc exec <container_name> -- bash -c "$(curl -Ss https://my-netdata.io/kickstart.sh)"

Netdata پس از نصب، با استفاده از یک داشبورد وب به شما نمایش گرافیکی کاملی از وضعیت منابع کانتینر و میزبان خواهد داد.

۴.۱.۳. Prometheus & Grafana

Prometheus یکی از ابزارهای مانیتورینگ محبوب است که برای جمع‌آوری داده‌ها از کانتینرها، سرورها و سیستم‌ها طراحی شده است. این ابزار معمولاً با Grafana ترکیب می‌شود تا داشبوردهای گرافیکی قابل تنظیم برای نمایش داده‌های مربوط به عملکرد سیستم‌ها ایجاد کند.

  1. نصب Prometheus:

برای نصب Prometheus روی میزبان، می‌توانید از دستورات زیر استفاده کنید:

sudo apt-get install prometheus
  1. نصب Grafana:

برای نصب Grafana روی میزبان، دستور زیر را اجرا کنید:

sudo apt-get install grafana
  1. تنظیمات Prometheus برای جمع‌آوری داده‌ها از کانتینرها:

برای این منظور، باید تنظیمات Prometheus را به‌گونه‌ای پیکربندی کنید که از cAdvisor یا node_exporter برای نظارت بر کانتینرها استفاده کند.

  1. نمایش داده‌ها در Grafana:

پس از نصب و پیکربندی Prometheus، می‌توانید از Grafana برای ایجاد داشبوردهایی جهت نمایش گرافیکی داده‌های جمع‌آوری‌شده استفاده کنید. این داشبوردها به شما این امکان را می‌دهند که عملکرد کانتینرها را به‌صورت بصری و به‌روز بررسی کنید.

۴.۱.۴. cAdvisor

cAdvisor ابزاری است که توسط Google توسعه داده شده و برای جمع‌آوری و نمایش اطلاعات استفاده از منابع کانتینرها به‌طور دقیق طراحی شده است. این ابزار به‌طور خاص برای بررسی عملکرد کانتینرها در Kubernetes و Docker ساخته شده است.

  1. نصب cAdvisor:

برای نصب cAdvisor روی میزبان، دستور زیر را اجرا کنید:

sudo docker run -d --name=cadvisor --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --restart=always google/cadvisor:latest
  1. دسترسی به cAdvisor:

پس از نصب، شما می‌توانید با مراجعه به http://<host-ip>:8080 به داشبورد cAdvisor دسترسی پیدا کنید که اطلاعات دقیقی از وضعیت عملکرد کانتینرها ارائه می‌دهد.


۴.۲. اسکن وضعیت و امنیت کانتینرها

۴.۲.۱. Clair

Clair یک ابزار اسکن امنیتی است که برای تجزیه‌وتحلیل آسیب‌پذیری‌ها در تصاویر کانتینرها طراحی شده است. Clair می‌تواند آسیب‌پذیری‌های موجود در نرم‌افزارهای نصب‌شده در کانتینرها را شناسایی کرده و گزارشی از آن‌ها تولید کند.

  1. نصب Clair:

برای نصب Clair، ابتدا باید از داکر استفاده کنید. دستور نصب Clair به‌صورت زیر است:

docker run -d --name clair quay.io/coreos/clair
  1. استفاده از Clair برای اسکن کانتینرها:

برای اسکن یک تصویر کانتینر با Clair، باید تصویری که قصد دارید بررسی کنید را به Clair ارسال کنید:

clairctl analyze <image_name>

Clair سپس به بررسی و شناسایی آسیب‌پذیری‌ها در تصویر کانتینر پرداخته و گزارشی از آن‌ها ارائه می‌دهد.

۴.۲.۲. Lynis

Lynis یک ابزار اسکن امنیتی است که می‌تواند به‌طور خودکار تنظیمات امنیتی سیستم‌های لینوکس و کانتینرها را بررسی کند. این ابزار آسیب‌پذیری‌ها و تنظیمات امنیتی ضعیف را شناسایی کرده و به شما کمک می‌کند که امنیت کانتینرها را تقویت کنید.

  1. نصب Lynis:

برای نصب Lynis، دستور زیر را اجرا کنید:

sudo apt-get install lynis
  1. اجرای اسکن امنیتی با Lynis:

برای اسکن امنیتی سیستم یا کانتینرها، دستور زیر را اجرا کنید:

lynis audit system

Lynis بررسی‌های امنیتی کاملی را روی سیستم یا کانتینر انجام می‌دهد و گزارشی از مشکلات امنیتی احتمالی ارائه می‌کند.


جمع‌بندی

در این بخش، ابزارهای مختلفی برای مانیتورینگ و اسکن وضعیت کانتینرها معرفی شد. ابزارهایی مانند lxc stats, Netdata, Prometheus, Grafana, cAdvisor, Clair و Lynis به شما این امکان را می‌دهند که عملکرد کانتینرها را به‌طور دقیق نظارت کرده و از بروز مشکلات و آسیب‌پذیری‌ها پیشگیری کنید. همچنین، استفاده از ابزارهای اسکن امنیتی به شما کمک می‌کند که از آسیب‌پذیری‌ها و مشکلات امنیتی در سیستم‌های مبتنی بر کانتینر آگاه شوید و اقدامات لازم را برای تقویت امنیت سیستم‌های خود انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیگیری مصرف منابع (CPU, RAM, Disk I/O) در کانتینرها” subtitle=”توضیحات کامل”]پیگیری مصرف منابع در کانتینرها یکی از جنبه‌های حیاتی مدیریت کانتینرها است. برای تضمین عملکرد بهینه کانتینرها و جلوگیری از مشکلاتی همچون کاهش کارایی یا ناپایداری، نظارت بر CPU، RAM و Disk I/O بسیار مهم است. در این بخش، روش‌های مختلفی برای پیگیری و نظارت دقیق بر مصرف منابع در کانتینرها با استفاده از ابزارهای مختلف گرافیکی و خط فرمان بررسی می‌شود.

۴.۱. پیگیری مصرف CPU

میزان استفاده از CPU در کانتینرها می‌تواند تأثیر زیادی بر کارایی کلی سیستم بگذارد. اگر یک یا چند کانتینر از منابع CPU به‌طور غیرمعمولی زیاد استفاده کنند، می‌تواند باعث کاهش عملکرد سایر سرویس‌ها شود.

۴.۱.۱. ابزار lxc stats

یکی از ساده‌ترین روش‌ها برای نظارت بر مصرف CPU در کانتینرها، استفاده از ابزار lxc stats است. این ابزار اطلاعاتی از وضعیت منابع (شامل CPU) برای هر کانتینر به‌طور لحظه‌ای نمایش می‌دهد.

برای نمایش آمار مصرف CPU کانتینر خاصی، دستور زیر را وارد کنید:

lxc stats <container_name>

این دستور اطلاعاتی مانند مصرف CPU، RAM، Disk I/O و شبکه کانتینر را به‌طور دقیق نمایش می‌دهد. برای مثال:

$ lxc stats mycontainer
+-------------------+---------+---------+---------+---------+--------+--------+
| NAME              | CPU %   | MEM USAGE | MEM %   | NET IN  | NET OUT | BLOCK IN | BLOCK OUT |
+-------------------+---------+---------+---------+---------+--------+--------+
| mycontainer       | 15.2    | 1.5GB    | 20%     | 1.2MB/s | 3.1MB/s | 100KB   | 50KB     |
+-------------------+---------+---------+---------+---------+--------+--------+
۴.۱.۲. استفاده از top و htop

دستور top در داخل کانتینر به شما امکان می‌دهد تا مصرف CPU را به‌طور دقیق پیگیری کنید. برای استفاده از top، ابتدا باید به کانتینر وارد شوید:

lxc exec <container_name> -- /bin/bash
top

همچنین، اگر ترجیح می‌دهید از یک ابزار گرافیکی‌تر استفاده کنید، می‌توانید htop را نصب کنید:

sudo apt-get install htop
htop

این ابزار به‌طور دقیق‌تر و گرافیکی‌تر، مصرف CPU، فرآیندها و سایر اطلاعات مهم را نشان می‌دهد.

۴.۲. پیگیری مصرف RAM

استفاده از حافظه (RAM) نیز می‌تواند به عملکرد کانتینرها وابسته باشد. برای نظارت بر مصرف RAM و شناسایی مشکلات مربوط به حافظه، می‌توان از ابزارهای مختلف استفاده کرد.

۴.۲.۱. ابزار lxc stats

همان‌طور که پیش‌تر اشاره شد، دستور lxc stats مصرف حافظه کانتینر را به‌طور دقیق نشان می‌دهد. در اینجا، بخش مربوط به حافظه را بررسی می‌کنیم:

lxc stats <container_name>

در مثال زیر، مصرف حافظه کانتینر را مشاهده می‌کنیم:

+-------------------+---------+---------+---------+---------+--------+--------+
| NAME              | CPU %   | MEM USAGE | MEM %   | NET IN  | NET OUT | BLOCK IN | BLOCK OUT |
+-------------------+---------+---------+---------+---------+--------+--------+
| mycontainer       | 15.2    | 1.5GB    | 20%     | 1.2MB/s | 3.1MB/s | 100KB   | 50KB     |
+-------------------+---------+---------+---------+---------+--------+--------+

در اینجا، ستون “MEM USAGE” مصرف حافظه و ستون “MEM %” درصد استفاده از حافظه سیستم را نشان می‌دهد.

۴.۲.۲. ابزار free و vmstat

برای مشاهده جزئیات بیشتر درباره حافظه در داخل کانتینر، از دستور free و vmstat می‌توان استفاده کرد.

  • دستور free اطلاعات دقیقی از حافظه سیستم و کانتینر را به نمایش می‌گذارد:
free -h
  • دستور vmstat آمار بیشتری از وضعیت حافظه و منابع دیگر سیستم را نمایش می‌دهد:
vmstat

۴.۳. پیگیری مصرف Disk I/O

میزان مصرف I/O دیسک در کانتینرها می‌تواند تأثیر قابل توجهی بر کارایی داشته باشد. بررسی میزان خواندن و نوشتن داده‌ها به دیسک به شما کمک می‌کند تا مشکلات احتمالی در سطح ذخیره‌سازی را شناسایی کنید.

۴.۳.۱. ابزار lxc stats

دستور lxc stats می‌تواند آمار دقیق مصرف I/O دیسک کانتینرها را نمایش دهد. ستون‌های BLOCK IN و BLOCK OUT در این دستور میزان داده‌های ورودی و خروجی را از دیسک نشان می‌دهند.

lxc stats <container_name>

خروجی مشابه زیر خواهد بود:

+-------------------+---------+---------+---------+---------+--------+--------+
| NAME              | CPU %   | MEM USAGE | MEM %   | NET IN  | NET OUT | BLOCK IN | BLOCK OUT |
+-------------------+---------+---------+---------+---------+--------+--------+
| mycontainer       | 15.2    | 1.5GB    | 20%     | 1.2MB/s | 3.1MB/s | 100KB   | 50KB     |
+-------------------+---------+---------+---------+---------+--------+--------+
۴.۳.۲. استفاده از iostat

دستور iostat می‌تواند آمار دقیق‌تری از I/O دیسک سیستم به شما بدهد. برای نصب و استفاده از iostat، ابتدا باید بسته sysstat را نصب کنید:

sudo apt-get install sysstat

سپس می‌توانید دستور iostat را اجرا کنید تا میزان I/O دیسک را مشاهده کنید:

iostat -dx 1

این دستور آمارهای دقیق I/O شامل میزان خواندن و نوشتن داده‌ها به هر دیسک را به نمایش می‌گذارد.

۴.۴. استفاده از ابزارهای گرافیکی

برای کسانی که نیاز به نظارت گرافیکی دارند، ابزارهایی مانند Grafana و Prometheus می‌توانند به شما در پیگیری مصرف منابع در کانتینرها کمک کنند.

  • Prometheus: برای جمع‌آوری داده‌ها از کانتینرها و منابع میزبان.
  • Grafana: برای نمایش داده‌های جمع‌آوری‌شده از Prometheus به‌صورت داشبوردهای گرافیکی.

۴.۵. هشدارها و آلارم‌ها

در برخی موارد، نظارت بر مصرف منابع بدون داشتن هشدارها و آلارم‌ها ممکن است کافی نباشد. ابزارهایی مانند Prometheus و Netdata قابلیت تنظیم آلارم برای اطلاع از افزایش ناگهانی در مصرف CPU، RAM یا I/O را دارند.

برای مثال، در Prometheus می‌توانید با تنظیم AlertManager آلارم‌هایی برای مصرف بالای CPU یا RAM تنظیم کنید. این هشدارها می‌توانند به شما اطلاع دهند که کانتینری در حال استفاده بیش از حد منابع است.

۴.۶. تنظیم محدودیت‌های منابع برای جلوگیری از مصرف زیاد

یکی از روش‌های مهم در مدیریت منابع کانتینرها، تنظیم محدودیت‌ها برای استفاده از منابع است. می‌توانید میزان مصرف CPU و RAM هر کانتینر را محدود کنید تا از مصرف زیاد جلوگیری شود.

برای مثال، برای محدود کردن مصرف RAM و CPU در هنگام ایجاد یک کانتینر از دستور زیر استفاده می‌کنیم:

lxc launch ubuntu:20.04 mycontainer --limits memory=2GB,cpu=2

این دستور میزان مصرف حافظه را به 2 گیگابایت و مصرف CPU را به 2 هسته محدود می‌کند.

جمع‌بندی

در این بخش، به روش‌های مختلف پیگیری و نظارت بر مصرف منابع CPU، RAM و Disk I/O در کانتینرها پرداختیم. از ابزارهایی مانند lxc stats, top, htop, free, iostat و Prometheus می‌توان برای پیگیری دقیق مصرف منابع استفاده کرد. همچنین، برای جلوگیری از مصرف بیش از حد منابع، می‌توان از محدودیت‌ها و آلارم‌ها استفاده کرد تا از بروز مشکلات در عملکرد کانتینرها جلوگیری شود. با این روش‌ها، می‌توانید به‌راحتی وضعیت عملکرد کانتینرهای خود را نظارت کرده و در صورت لزوم اقدام به بهینه‌سازی منابع کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مشاهده و نظارت بر عملکرد شبکه در داخل کانتینرها” subtitle=”توضیحات کامل”]نظارت و مشاهده عملکرد شبکه در کانتینرها از جمله مباحث حیاتی در مدیریت کانتینرها است. در این بخش، به چگونگی بررسی وضعیت شبکه، مشاهده مصرف پهنای باند، تشخیص مشکلات شبکه‌ای و ابزارهایی که می‌توانند برای نظارت بر شبکه کانتینرها استفاده شوند، پرداخته خواهد شد.

۴.۱. ابزارهای مورد استفاده برای نظارت بر شبکه در کانتینرها

برای نظارت بر عملکرد شبکه در کانتینرها، ابزارهای مختلفی وجود دارند که می‌توانند اطلاعات دقیقی از مصرف پهنای باند، ترافیک شبکه، وضعیت شبکه و سایر ویژگی‌ها ارائه دهند. برخی از این ابزارها به شرح زیر هستند:

۴.۱.۱. استفاده از دستور lxc network

یکی از ابزارهای اصلی برای نظارت بر شبکه در LXC، دستور lxc network است. این ابزار به شما کمک می‌کند تا وضعیت شبکه کانتینرها را مشاهده کرده و عملیات مختلفی مانند ایجاد و حذف شبکه‌های داخلی را انجام دهید.

برای مشاهده وضعیت شبکه در کانتینرها از دستور زیر استفاده می‌کنیم:

lxc network list

این دستور لیستی از تمامی شبکه‌های موجود را نمایش می‌دهد که به کانتینرها متصل هستند. برای مشاهده جزئیات بیشتر از وضعیت شبکه یک کانتینر خاص، می‌توانید از دستور زیر استفاده کنید:

lxc network show <network_name>

خروجی این دستور شامل اطلاعات مربوط به تنظیمات شبکه از جمله IP و وضعیت اتصال خواهد بود.

۴.۱.۲. استفاده از دستور lxc exec

برای مشاهده اطلاعات جزئی‌تری از وضعیت شبکه داخل کانتینر، می‌توانید به کانتینر وارد شده و از ابزارهای شبکه لینوکس استفاده کنید. دستور lxc exec به شما اجازه می‌دهد تا وارد کانتینر شده و دستوراتی مانند ifconfig یا ip را برای بررسی وضعیت شبکه اجرا کنید.

برای ورود به کانتینر و مشاهده وضعیت شبکه، از دستور زیر استفاده می‌کنیم:

lxc exec <container_name> -- /bin/bash

پس از ورود به کانتینر، می‌توانید از دستور ifconfig برای مشاهده جزئیات رابط‌های شبکه استفاده کنید:

ifconfig

همچنین، دستور ip می‌تواند اطلاعات دقیق‌تری از وضعیت شبکه، مسیریابی، و آدرس‌های IP کانتینر ارائه دهد:

ip addr
۴.۱.۳. استفاده از ابزار netstat

برای نظارت بر اتصالات شبکه و آمار ترافیک شبکه در کانتینر، می‌توانید از ابزار netstat استفاده کنید. این ابزار به شما امکان می‌دهد تا تمامی اتصالات فعال شبکه، پورت‌ها و وضعیت آن‌ها را مشاهده کنید.

برای استفاده از netstat در کانتینر، ابتدا وارد کانتینر شوید و دستور زیر را اجرا کنید:

netstat -tuln

این دستور لیستی از اتصالات فعال شبکه را به نمایش می‌گذارد.

۴.۱.۴. استفاده از ابزار ss

ابزار ss مشابه netstat است، اما معمولاً عملکرد بهتری دارد و می‌تواند جزئیات بیشتری از اتصالات شبکه ارائه دهد. برای استفاده از ss به‌طور مشابه می‌توانید وارد کانتینر شوید و دستور زیر را اجرا کنید:

ss -tuln

این دستور نیز اتصالات شبکه فعال را به نمایش می‌گذارد و شامل پروتکل‌ها، پورت‌ها و وضعیت اتصالات است.

۴.۲. پیگیری مصرف پهنای باند شبکه

یکی از جنبه‌های مهم نظارت بر شبکه، بررسی میزان استفاده از پهنای باند شبکه است. با استفاده از ابزارهایی مانند iftop، nload و vnstat، می‌توانیم پهنای باند ورودی و خروجی شبکه کانتینرها را مشاهده کنیم.

۴.۲.۱. ابزار iftop

ابزار iftop یک ابزار گرافیکی برای نظارت بر ترافیک شبکه است که اطلاعات مصرف پهنای باند را به‌صورت زنده نمایش می‌دهد. برای استفاده از iftop، ابتدا باید آن را در کانتینر نصب کنید:

apt-get install iftop

پس از نصب، برای مشاهده مصرف پهنای باند از دستور زیر استفاده کنید:

iftop

این ابزار اطلاعات دقیق‌تری از میزان مصرف داده‌ها توسط هر اتصال را نمایش می‌دهد. برای مثال، شما می‌توانید ببینید که چه‌کسی داده‌ها را از کانتینر شما ارسال یا دریافت می‌کند.

۴.۲.۲. ابزار nload

ابزار دیگری که می‌تواند برای نظارت بر پهنای باند استفاده شود، nload است. این ابزار مصرف ترافیک شبکه به‌صورت گرافیکی و زنده را نمایش می‌دهد. برای نصب آن، دستور زیر را اجرا کنید:

apt-get install nload

پس از نصب، می‌توانید مصرف پهنای باند ورودی و خروجی را به‌صورت گرافیکی مشاهده کنید:

nload
۴.۲.۳. ابزار vnstat

ابزار vnstat برای نظارت بر ترافیک شبکه در بلندمدت طراحی شده است. این ابزار به شما اجازه می‌دهد تا آمار مصرف پهنای باند را ذخیره کرده و گزارش‌های دوره‌ای ایجاد کنید.

برای نصب و استفاده از vnstat، دستور زیر را وارد کنید:

apt-get install vnstat

پس از نصب، برای مشاهده آمار ترافیک شبکه از دستور زیر استفاده کنید:

vnstat -d

این دستور میزان استفاده از پهنای باند در یک روز را نمایش می‌دهد.

۴.۳. نظارت بر مشکلات و تأخیرهای شبکه

یکی از مشکلات رایج در کانتینرها، وجود تأخیرهای شبکه یا مشکلات در اتصالات شبکه است که می‌تواند باعث کاهش عملکرد شود. برای پیگیری این مسائل می‌توانید از ابزارهایی مانند ping، traceroute و mtr استفاده کنید.

۴.۳.۱. استفاده از دستور ping

برای بررسی وضعیت اتصالات شبکه بین کانتینر و سرورهای دیگر، می‌توانید از دستور ping استفاده کنید. این دستور به شما کمک می‌کند تا تأخیر در ارتباطات شبکه را اندازه‌گیری کنید.

برای مثال، برای پینگ کردن یک آدرس IP خارجی می‌توانید از دستور زیر استفاده کنید:

ping google.com
۴.۳.۲. استفاده از دستور traceroute

ابزار traceroute به شما کمک می‌کند تا مسیر انتقال بسته‌های داده را از کانتینر تا مقصد بررسی کنید. این ابزار اطلاعاتی درباره تاخیر در هر مرحله از انتقال داده‌ها ارائه می‌دهد.

برای استفاده از traceroute، ابتدا باید آن را نصب کنید:

apt-get install traceroute

سپس از دستور زیر برای بررسی مسیر شبکه استفاده کنید:

traceroute google.com
۴.۳.۳. استفاده از ابزار mtr

ابزار mtr ترکیبی از ping و traceroute است که به شما امکان می‌دهد وضعیت شبکه را به‌صورت زنده مشاهده کنید. برای نصب mtr، از دستور زیر استفاده کنید:

apt-get install mtr

سپس می‌توانید از آن برای بررسی مسیر و تأخیر شبکه استفاده کنید:

mtr google.com

۴.۴. نظارت پیشرفته با ابزارهای مانیتورینگ

برای مدیریت پیشرفته‌تر وضعیت شبکه، می‌توان از ابزارهایی مانند Prometheus، Grafana و Netdata استفاده کرد. این ابزارها می‌توانند نظارت دقیق‌تری بر وضعیت شبکه در مقیاس بزرگ ارائه دهند و گزارش‌های گرافیکی و لحظه‌ای را در اختیار شما قرار دهند.

  • Prometheus: برای جمع‌آوری داده‌ها از کانتینرها و سایر منابع.
  • Grafana: برای نمایش داده‌ها و آمارهای جمع‌آوری‌شده به‌صورت داشبورد گرافیکی.
  • Netdata: برای نظارت بر شبکه، منابع سیستم، و کانتینرها به‌صورت لحظه‌ای.

جمع‌بندی

در این بخش، ابزارها و روش‌های مختلفی برای مشاهده و نظارت بر عملکرد شبکه کانتینرها بررسی شد. از ابزارهایی مانند lxc network, iftop, nload, vnstat, ping, traceroute, و mtr می‌توان برای پیگیری ترافیک شبکه، تشخیص مشکلات و بررسی میزان مصرف پهنای باند استفاده کرد. همچنین، استفاده از ابزارهای پیشرفته مانند Prometheus و Grafana می‌تواند به شما کمک کند تا نظارت دقیقی بر عملکرد شبکه کانتینرها در مقیاس بزرگ داشته باشید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از ابزارهای خارجی برای مانیتورینگ کانتینرها (مثل Zabbix, Prometheus)” subtitle=”توضیحات کامل”]برای نظارت دقیق و پیشرفته‌تر بر وضعیت کانتینرها، به‌ویژه در مقیاس‌های بزرگ، ابزارهای مانیتورینگ خارجی مانند Zabbix و Prometheus می‌توانند مفید باشند. این ابزارها امکان جمع‌آوری و نمایش داده‌ها به‌صورت گرافیکی، هشداردهی، و تجزیه‌وتحلیل پیشرفته وضعیت کانتینرها و منابع آن‌ها را فراهم می‌آورند.

در این بخش، نحوه استفاده از این ابزارهای قدرتمند برای نظارت بر وضعیت کانتینرها بررسی خواهد شد. همچنین، نحوه پیاده‌سازی این ابزارها در محیط LXC و کانتینرهای Docker توضیح داده می‌شود.

۴.۱. استفاده از Zabbix برای مانیتورینگ کانتینرها

Zabbix یک ابزار قدرتمند برای نظارت بر شبکه، سرورها، کانتینرها، و دیگر منابع سیستم است. این ابزار قابلیت‌های متنوعی برای جمع‌آوری داده‌ها، تحلیل، ایجاد هشدار، و مدیریت وضعیت سیستم‌ها فراهم می‌آورد. Zabbix می‌تواند برای نظارت بر عملکرد کانتینرها و منابع سیستم آن‌ها، از جمله استفاده از CPU، RAM، شبکه و دیسک، استفاده شود.

۴.۱.۱. نصب Zabbix Server

برای استفاده از Zabbix، ابتدا باید Zabbix Server را نصب کنید. این سرور مسئول جمع‌آوری داده‌ها از دستگاه‌های مختلف است.

در ابتدا، برای نصب Zabbix Server بر روی سیستم‌عامل Debian یا Ubuntu، دستورهای زیر را اجرا کنید:

sudo apt update
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-agent
۴.۱.۲. تنظیمات Zabbix برای نظارت بر کانتینرها

پس از نصب Zabbix، نیاز به تنظیمات خاصی برای نظارت بر کانتینرها دارید. Zabbix از طریق Zabbix agent قادر به جمع‌آوری داده‌ها از کانتینرهاست. برای این کار، می‌توانید از Zabbix agent برای نظارت بر منابع داخل کانتینر استفاده کنید.

برای نصب و راه‌اندازی Zabbix agent در داخل کانتینرها، ابتدا باید وارد کانتینر شده و بسته Zabbix agent را نصب کنید:

sudo apt-get install zabbix-agent

سپس، فایل پیکربندی zabbix_agentd.conf را ویرایش کرده و تنظیمات مربوط به Zabbix Server را اعمال کنید:

sudo nano /etc/zabbix/zabbix_agentd.conf

در این فایل، موارد زیر را تنظیم کنید:

Server=<Zabbix_Server_IP>
ServerActive=<Zabbix_Server_IP>
Hostname=<Container_Name>

پس از اعمال تغییرات، سرویس Zabbix agent را راه‌اندازی کنید:

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
۴.۱.۳. نظارت بر کانتینرها با Zabbix

پس از نصب و پیکربندی Zabbix agent، می‌توانید از Zabbix Frontend برای مشاهده و نظارت بر وضعیت کانتینرها استفاده کنید. در این مرحله، باید از Zabbix frontend (وب‌سایت) وارد شوید و کانتینرها را به عنوان hostهای جدید اضافه کنید.

در وب‌سایت Zabbix، به بخش Configuration → Hosts بروید و یک host جدید برای کانتینر ایجاد کنید. در بخش Agent interfaces آدرس IP و پورت Zabbix agent را وارد کنید.

بعد از انجام این تنظیمات، اطلاعات مربوط به منابع و وضعیت کانتینر در داشبورد Zabbix نمایش داده خواهد شد.

۴.۲. استفاده از Prometheus برای مانیتورینگ کانتینرها

Prometheus یکی دیگر از ابزارهای محبوب برای نظارت بر وضعیت سیستم‌ها، سرویس‌ها و کانتینرها است. این ابزار عمدتاً برای جمع‌آوری و ذخیره‌سازی داده‌های آماری از سیستم‌های توزیع‌شده طراحی شده است و قابلیت‌های گرافیکی پیشرفته‌ای از جمله هشداردهی و تجزیه‌وتحلیل را فراهم می‌آورد.

۴.۲.۱. نصب Prometheus

برای نصب Prometheus بر روی سیستم‌عامل‌های مبتنی بر Debian و Ubuntu، ابتدا با استفاده از دستورات زیر Prometheus را نصب کنید:

sudo apt update
sudo apt install -y prometheus

برای راه‌اندازی Prometheus، سرویس آن را به صورت زیر راه‌اندازی کنید:

sudo systemctl start prometheus
sudo systemctl enable prometheus
۴.۲.۲. پیکربندی Prometheus برای نظارت بر کانتینرها

برای نظارت بر کانتینرها، Prometheus باید داده‌ها را از Exporter ها جمع‌آوری کند. برای این کار، ابزار cAdvisor به‌طور معمول برای نظارت بر کانتینرها در کنار Prometheus استفاده می‌شود.

cAdvisor یک ابزار گوگل است که اطلاعات عملکرد کانتینرها را جمع‌آوری و به Prometheus ارسال می‌کند. برای نصب cAdvisor در سیستم، دستور زیر را اجرا کنید:

docker run -d --name=cadvisor \
  -p 8080:8080 \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  google/cadvisor:latest
۴.۲.3. پیکربندی Prometheus برای جمع‌آوری داده‌ها از cAdvisor

برای پیکربندی Prometheus برای نظارت بر کانتینرها از طریق cAdvisor، فایل پیکربندی Prometheus (prometheus.yml) را ویرایش کنید:

nano /etc/prometheus/prometheus.yml

در این فایل، بخش scrape_configs را برای اضافه کردن cAdvisor به Prometheus تنظیم کنید:

scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['<cAdvisor_IP>:8080']

پس از ویرایش این فایل، سرویس Prometheus را دوباره راه‌اندازی کنید:

sudo systemctl restart prometheus
۴.۲.4. مشاهده داده‌های جمع‌آوری‌شده با Prometheus

پس از پیکربندی، Prometheus به‌طور خودکار داده‌ها را از cAdvisor جمع‌آوری کرده و آن‌ها را ذخیره می‌کند. برای مشاهده و تحلیل این داده‌ها، می‌توانید از Prometheus Web Interface استفاده کنید.

برای دسترسی به Prometheus Web UI، به آدرس زیر مراجعه کنید:

http://<Prometheus_Server_IP>:9090

در اینجا می‌توانید کوئری‌های مختلف برای جستجوی اطلاعات مربوط به منابع کانتینرها (مثل CPU، RAM، Disk I/O و شبکه) اجرا کنید.

۴.۳. استفاده از Grafana برای نمایش داده‌های Prometheus

برای نمایش گرافیکی داده‌های جمع‌آوری‌شده توسط Prometheus، ابزار Grafana بسیار مفید است. شما می‌توانید Grafana را نصب کرده و آن را به Prometheus متصل کنید تا داشبوردهایی با نمودارهای گرافیکی ایجاد کنید.

برای نصب Grafana، دستورات زیر را اجرا کنید:

sudo apt update
sudo apt install -y grafana

پس از نصب، سرویس Grafana را راه‌اندازی کنید:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

در وب‌سایت Grafana (معمولاً در http://<Grafana_Server_IP>:3000) وارد شوید و در بخش Data Sources، Prometheus را به‌عنوان یک منبع داده اضافه کنید.

جمع‌بندی

در این بخش، ابزارهای Zabbix و Prometheus برای نظارت و مانیتورینگ کانتینرها بررسی شدند. Zabbix از Zabbix Agent برای جمع‌آوری داده‌ها از کانتینرها استفاده می‌کند، در حالی که Prometheus و cAdvisor به‌طور ترکیبی داده‌های آماری دقیق از کانتینرها جمع‌آوری کرده و در اختیار شما قرار می‌دهند. علاوه بر این، با استفاده از Grafana می‌توانید گزارش‌های گرافیکی از داده‌های Prometheus ایجاد کنید. استفاده از این ابزارها برای نظارت بر کانتینرها، عملکرد سیستم، و تشخیص مشکلات به‌صورت خودکار و پیشرفته را تسهیل می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیم هشدارها برای مصرف منابع غیرمعمول یا خطاها” subtitle=”توضیحات کامل”]در محیط‌های سرور و کانتینرها، نظارت بر منابع و عملکرد بسیار اهمیت دارد، به‌ویژه در مواردی که مصرف منابع به مقادیر غیرمعمول برسد یا خطاهایی در سیستم اتفاق بیافتد. برای این منظور، ابزارهای مانیتورینگ مانند Zabbix و Prometheus قابلیت تنظیم هشدارها و آلارم‌ها را فراهم می‌کنند. با استفاده از این هشدارها می‌توانیم به سرعت از مشکلات موجود مطلع شده و اقدامات لازم را انجام دهیم.

در این بخش، روش‌های تنظیم هشدارها در Zabbix و Prometheus را توضیح می‌دهیم و نحوه پیکربندی آن‌ها برای اطلاع‌رسانی در صورت مصرف غیرمعمول منابع یا وقوع خطاها را شرح خواهیم داد.

هشدارها در Zabbix

Zabbix به‌طور پیش‌فرض قابلیت تنظیم آلارم‌ها و هشدارها را برای وضعیت‌های مختلف مانند استفاده بیش از حد منابع، خطاها و سایر مشکلات سیستم فراهم می‌آورد. برای تنظیم هشدارها، می‌توان از Trigger ها و Actions در Zabbix استفاده کرد.

۱.۱. ایجاد Trigger برای مصرف بیش از حد منابع

یک Trigger در Zabbix می‌تواند برای شناسایی شرایط غیرمعمول مانند استفاده بالای CPU یا حافظه تعیین شود. برای ایجاد یک Trigger برای مصرف منابع، مراحل زیر را دنبال کنید:

  1. وارد Zabbix Web Interface شوید و به بخش Configuration → Hosts بروید.
  2. میزبان (Host) مورد نظر را انتخاب کنید.
  3. در منوی Triggers، روی Create Trigger کلیک کنید.
  4. در پنجره باز شده، تنظیمات زیر را وارد کنید:
    • Name: نام Trigger (برای مثال: “High CPU Usage”).
    • Expression: عبارت شرطی که مصرف غیرمعمول منابع را بررسی می‌کند. برای مثال، اگر استفاده از CPU بیشتر از 90 درصد باشد، می‌توانید از عبارت زیر استفاده کنید:
      {hostname:system.cpu.util[,user].last(0)} > 90
      
    • Severity: شدت هشدار (برای مثال: High).
    • Enabled: گزینه فعال بودن Trigger را انتخاب کنید.

بعد از این مرحله، هشدار شما به‌طور خودکار فعال خواهد شد و در صورت وقوع مصرف بالا از CPU، Zabbix آلارم را صادر می‌کند.

۱.۲. تنظیم Action برای ارسال هشدار

برای ارسال هشدار به مدیر سیستم یا تیم پشتیبانی در صورت وقوع هشدار، باید یک Action ایجاد کنید:

  1. به بخش Configuration → Actions بروید.
  2. روی Create Action کلیک کنید.
  3. در پنجره جدید، تنظیمات زیر را وارد کنید:
    • Name: نام Action (مثال: “Notify on High CPU Usage”).
    • Event source: انتخاب “Triggers” به‌عنوان منبع رویداد.
    • Operation: انتخاب نوع عملیات که می‌تواند ارسال ایمیل، اجرای اسکریپت یا هر روش دیگری باشد.
    • Send message: تنظیم ارسال هشدار به تیم‌های مرتبط از طریق ایمیل یا هر سیستم ارتباطی دیگری.

با این کار، به محض اینکه مصرف CPU از حد مشخص شده فراتر برود، Zabbix به‌طور خودکار آلارم ارسال می‌کند.

هشدارها در Prometheus

Prometheus با استفاده از Alertmanager به شما این امکان را می‌دهد که هشدارهایی برای شرایط خاص مانند مصرف منابع غیرمعمول یا خطاها تنظیم کنید. Alertmanager یک ابزار برای مدیریت و ارسال هشدارها است که می‌تواند پیام‌ها را از طریق ایمیل، Slack، یا سایر سرویس‌ها ارسال کند.

۲.۱. پیکربندی Alertmanager

برای استفاده از Alertmanager در Prometheus، ابتدا باید آن را نصب و پیکربندی کنید.

۱. نصب Alertmanager:

sudo apt update
sudo apt install -y alertmanager

۲. پیکربندی Alertmanager: Alertmanager معمولاً از فایل پیکربندی /etc/alertmanager/config.yml استفاده می‌کند. در این فایل می‌توانید تنظیمات مربوط به نحوه ارسال هشدارها را وارد کنید. برای مثال، برای ارسال ایمیل، پیکربندی به صورت زیر خواهد بود:

global:
  smtp_smarthost: 'smtp.gmail.com:587'
  smtp_from: 'your-email@gmail.com'
  smtp_auth_username: 'your-email@gmail.com'
  smtp_auth_password: 'your-password'

route:
  receiver: 'email'

receivers:
  - name: 'email'
    email_configs:
      - to: 'recipient-email@example.com'
        send_resolved: true
۲.۲. ایجاد Alert برای مصرف منابع غیرمعمول

برای تنظیم آلارم‌ها در Prometheus, ابتدا باید یک قاعده (rule) برای نظارت و شناسایی مصرف بیش از حد منابع ایجاد کنید. این کار را می‌توان در فایل پیکربندی Prometheus انجام داد.

۱. باز کردن فایل پیکربندی Prometheus (prometheus.yml):

sudo nano /etc/prometheus/prometheus.yml

۲. اضافه کردن یک alert rule برای نظارت بر استفاده از CPU یا RAM. برای مثال، در صورتی که مصرف CPU از 90 درصد بیشتر شود، باید یک هشدار ایجاد کنیم:

groups:
  - name: example
    rules:
    - alert: HighCpuUsage
      expr: avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) < 0.1
      for: 2m
      labels:
        severity: critical
      annotations:
        description: "CPU usage is over 90% for the last 2 minutes."
        summary: "High CPU Usage Alert"

در این مثال:

  • expr: بیانگر شرایطی است که اگر مصرف CPU از 90 درصد بیشتر شود، آلارم صادر خواهد شد.
  • for: این گزینه تعیین می‌کند که شرایط باید برای مدت‌زمان مشخصی برقرار باشد تا آلارم فعال شود (در اینجا 2 دقیقه).
  • labels و annotations: اطلاعات اضافی برای شناسایی آلارم و ارسال توضیحات بیشتر.

۳. راه‌اندازی مجدد Prometheus:

sudo systemctl restart prometheus
۲.۳. تنظیم هشدار برای Alertmanager

بعد از اینکه شرایط هشدار را در Prometheus پیکربندی کردید، باید تنظیمات Alertmanager را برای دریافت هشدارها از Prometheus انجام دهید. برای این کار، در فایل پیکربندی Prometheus (prometheus.yml) این تنظیمات را اضافه کنید:

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 'localhost:9093'

در اینجا، localhost:9093 نشان‌دهنده آدرس Alertmanager است.

جمع‌بندی

در این بخش، نحوه تنظیم هشدارها برای مصرف منابع غیرمعمول یا خطاها در کانتینرها با استفاده از ابزارهای Zabbix و Prometheus شرح داده شد. با استفاده از Zabbix, می‌توانید با ایجاد Triggers و Actions هشدارهایی برای وضعیت‌های مختلف کانتینرها تعریف کنید. همچنین در Prometheus, از Alertmanager برای ارسال هشدارها به تیم‌های مختلف استفاده می‌شود. این ابزارها به شما کمک می‌کنند تا در صورت وقوع مشکلات عملکردی و مصرف غیرمعمول منابع، به سرعت واکنش نشان دهید و از بروز مشکلات جدی جلوگیری کنید.[/cdb_course_lesson][cdb_course_lesson title=”فصل 9. پشتیبان‌گیری، Snapshot و Migration در LXC”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از Snapshot برای مدیریت وضعیت کانتینر” subtitle=”توضیحات کامل”]در محیط‌های کانتینری مانند LXC، نگهداری از وضعیت فعلی کانتینر و امکان بازگشت به حالت قبلی یکی از مهم‌ترین جنبه‌ها برای مدیریت سیستم‌های تولیدی است. یکی از روش‌های محبوب برای انجام این کار، استفاده از Snapshot است. یک Snapshot به شما این امکان را می‌دهد که وضعیت فعلی کانتینر را ذخیره کرده و در صورت نیاز به بازگرداندن آن، تنها کافی است که Snapshot را بازیابی کنید.

در این بخش، نحوه استفاده از Snapshot‌ها برای مدیریت وضعیت کانتینرها را به‌طور کامل بررسی می‌کنیم. هم از نظر گرافیکی و هم از نظر کامند لاین روش‌ها را شرح خواهیم داد.

۱. تعریف Snapshot و اهمیت آن در مدیریت کانتینرها

Snapshot در کانتینرها به معنای ذخیره وضعیت کامل کانتینر در یک لحظه خاص است. این عملیات شامل ذخیره‌سازی اطلاعات مربوط به فایل‌سیستم، پیکربندی‌ها، و وضعیت‌های جاری است. در صورت وقوع خطا یا بروز مشکل در عملکرد کانتینر، می‌توانید به سرعت به وضعیت قبلی بازگردید و از وقوع مشکلات بیشتر جلوگیری کنید.

مزایای استفاده از Snapshot عبارتند از:

  • بازگشت سریع به وضعیت قبلی: در صورتی که تنظیمات اشتباهی را اعمال کنید یا به مشکلی برخورد کنید، می‌توانید سریعاً به وضعیت سالم و قبلی بازگردید.
  • آزمایش بدون ریسک: برای آزمایش تغییرات جدید بدون ریسک، می‌توانید از Snapshot استفاده کنید. در صورت بروز مشکلات، می‌توانید به وضعیت قبلی برگردید.
  • پشتیبان‌گیری سریع: می‌توانید از Snapshot به‌عنوان راهی سریع برای پشتیبان‌گیری از کانتینر استفاده کنید.

۲. نحوه ایجاد Snapshot از طریق Web UI

در صورتی که از Proxmox VE به‌عنوان پلتفرم مدیریت کانتینر استفاده می‌کنید، می‌توانید از طریق Web UI نیز Snapshot بگیرید. برای این کار، مراحل زیر را دنبال کنید:

  1. وارد Proxmox Web UI شوید.
  2. به بخش Datacenter بروید و سپس کانتینر مورد نظر را انتخاب کنید.
  3. در سمت راست صفحه، به بخش Snapshots بروید.
  4. روی Take Snapshot کلیک کنید.
  5. در پنجره باز شده، نامی برای Snapshot انتخاب کنید و گزینه‌های مورد نظر خود را فعال یا غیرفعال کنید (مانند اینکه آیا تنظیمات شبکه نیز ذخیره شود یا خیر).
  6. روی OK کلیک کنید تا Snapshot ساخته شود.

پس از این کار، شما می‌توانید Snapshot جدید خود را در فهرست Snapshots مشاهده کنید.

۳. نحوه ایجاد Snapshot از طریق خط فرمان (CLI)

برای ایجاد Snapshot از طریق خط فرمان در LXC، می‌توانید از دستور زیر استفاده کنید:

lxc snapshot <container-name> <snapshot-name>

مثال:

lxc snapshot mycontainer snapshot-2025-02-20

در این مثال:

  • mycontainer نام کانتینری است که می‌خواهید از آن Snapshot بگیرید.
  • snapshot-2025-02-20 نام Snapshot است که باید انتخاب کنید.

این دستور یک Snapshot از کانتینر ایجاد کرده و وضعیت فعلی کانتینر را ذخیره می‌کند.

۴. مشاهده لیست Snapshot‌ها

برای مشاهده لیست Snapshot‌ها از کانتینر، می‌توانید از دستور زیر استفاده کنید:

lxc snapshot <container-name> list

مثال:

lxc snapshot mycontainer list

این دستور لیستی از تمام Snapshot‌هایی که برای کانتینر mycontainer ساخته شده‌اند را نمایش می‌دهد.

۵. بازگرداندن به Snapshot قبلی

در صورت نیاز به بازگشت به یک Snapshot خاص، می‌توانید از دستور زیر استفاده کنید:

lxc restore <container-name> <snapshot-name>

مثال:

lxc restore mycontainer snapshot-2025-02-20

این دستور کانتینر mycontainer را به وضعیت Snapshot مورد نظر باز می‌گرداند.

۶. حذف Snapshot

در صورتی که دیگر به یک Snapshot نیاز نداشتید، می‌توانید آن را با دستور زیر حذف کنید:

lxc delete <container-name> <snapshot-name>

مثال:

lxc delete mycontainer snapshot-2025-02-20

این دستور Snapshot مربوطه را حذف می‌کند.

۷. نکات و محدودیت‌های استفاده از Snapshot

  • فضای ذخیره‌سازی: هر Snapshot فضای ذخیره‌سازی خاص خود را مصرف می‌کند. در صورتی که از تعداد زیادی Snapshot استفاده کنید، ممکن است فضای ذخیره‌سازی شما کاهش یابد.
  • Performance: استفاده از Snapshot در برخی مواقع می‌تواند بر عملکرد کانتینر تاثیر بگذارد، زیرا سیستم باید تغییرات را در مقایسه با Snapshot‌ها ردیابی کند.
  • Snapshot‌های فقط خواندنی: برخی از Snapshot‌ها به‌صورت فقط خواندنی ایجاد می‌شوند. این به این معنی است که نمی‌توان تغییرات را مستقیماً در آن‌ها اعمال کرد، مگر اینکه از Snapshot جدیدی برای اعمال تغییرات استفاده کنید.

جمع‌بندی

استفاده از Snapshot یکی از روش‌های مؤثر برای مدیریت وضعیت کانتینرها است. با گرفتن Snapshot از کانتینرها، می‌توانید از وضعیت فعلی کانتینر یک نسخه پشتیبان گرفته و در صورت نیاز به سرعت به وضعیت قبلی بازگردید. چه از طریق Web UI و چه از طریق خط فرمان، می‌توان به راحتی Snapshot‌ها را ایجاد، مشاهده، بازگردانی و حذف کرد. با استفاده از این ویژگی، می‌توانید از بروز مشکلات پیش‌بینی‌نشده جلوگیری کنید و در صورت بروز خطا یا تغییرات اشتباه، سریعاً به وضعیت قبلی برگردید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پشتیبان‌گیری از کانتینرها و ذخیره‌سازی نسخه‌های مختلف” subtitle=”توضیحات کامل”]یکی از مهم‌ترین وظایف مدیریت کانتینرها، ایجاد و مدیریت پشتیبان‌گیری‌های منظم از داده‌ها و وضعیت کانتینرها است. پشتیبان‌گیری از کانتینرها به شما این امکان را می‌دهد که در صورت بروز هرگونه مشکل، بتوانید به راحتی به وضعیت قبلی بازگردید و از داده‌های خود محافظت کنید. این فرآیند به ویژه در محیط‌های تولیدی که داده‌های حیاتی در حال پردازش هستند، بسیار حائز اهمیت است.

در این بخش، به بررسی نحوه پشتیبان‌گیری از کانتینرها و ذخیره‌سازی نسخه‌های مختلف از پشتیبان‌ها خواهیم پرداخت. این موضوع شامل راه‌های مختلف پشتیبان‌گیری، ذخیره‌سازی نسخه‌ها و نحوه بازیابی آنها می‌شود. هم از روش گرافیکی (Web UI) و هم از خط فرمان (CLI) برای پیکربندی و مدیریت پشتیبان‌ها صحبت خواهیم کرد.

۱. اهمیت پشتیبان‌گیری از کانتینرها

پشتیبان‌گیری منظم از کانتینرها تضمین می‌کند که:

  • داده‌ها و تنظیمات مهم در برابر از دست رفتن یا آسیب‌دیدگی محافظت شوند.
  • شما قادر به بازگشت به وضعیت قبلی کانتینر در صورت بروز مشکلاتی نظیر خرابی سیستم، تنظیمات اشتباه یا حملات سایبری باشید.
  • امنیت و پایداری سیستم در محیط‌های تولیدی حفظ شود.

۲. نحوه پشتیبان‌گیری از کانتینرها از طریق Web UI

اگر از Proxmox VE برای مدیریت کانتینرهای LXC استفاده می‌کنید، پشتیبان‌گیری از طریق Web UI به‌راحتی انجام می‌شود. مراحل زیر را برای پشتیبان‌گیری از یک کانتینر دنبال کنید:

  1. وارد Proxmox Web UI شوید.
  2. به بخش Datacenter بروید و کانتینر مورد نظر را انتخاب کنید.
  3. در قسمت بالای صفحه، روی گزینه Backup کلیک کنید.
  4. در پنجره باز شده، مسیر ذخیره‌سازی پشتیبان و نوع پشتیبان‌گیری (Full یا Stop) را انتخاب کنید:
    • Full Backup: پشتیبان‌گیری کامل از کانتینر که شامل داده‌ها و تنظیمات می‌شود.
    • Stop Backup: پشتیبان‌گیری که قبل از آن کانتینر متوقف می‌شود (مناسب برای اطمینان از تکمیل کامل پشتیبان).
  5. روی Start کلیک کنید تا فرایند پشتیبان‌گیری آغاز شود.
  6. پس از اتمام، پشتیبان‌ها را می‌توانید در بخش Backup مشاهده کنید.

۳. نحوه پشتیبان‌گیری از کانتینرها از طریق خط فرمان (CLI)

برای پشتیبان‌گیری از کانتینرها از طریق خط فرمان در LXC، از دستور زیر استفاده می‌شود:

lxc snapshot <container-name> <backup-name>

مثال:

lxc snapshot mycontainer backup-2025-02-21

در این مثال:

  • mycontainer نام کانتینر است که می‌خواهید از آن پشتیبان بگیرید.
  • backup-2025-02-21 نام پشتیبان است که به آن داده می‌شود.

برای گرفتن یک پشتیبان کامل از کانتینر (که شامل فایل‌سیستم و تنظیمات می‌شود)، می‌توانید از دستور زیر استفاده کنید:

lxc copy <container-name> <backup-path>/<backup-name>

مثال:

lxc copy mycontainer /mnt/backups/mycontainer-backup-2025-02-21

این دستور پشتیبان کامل از کانتینر mycontainer را به مسیر /mnt/backups کپی می‌کند.

۴. ذخیره‌سازی نسخه‌های مختلف پشتیبان

برای ذخیره‌سازی نسخه‌های مختلف از پشتیبان‌ها، می‌توانید از روش‌های مختلف استفاده کنید:

  1. مدیریت نسخه‌های دستی: به‌طور مرتب پشتیبان‌ها را با نام‌هایی مطابق با تاریخ و زمان ذخیره کنید. به‌عنوان مثال، پشتیبان‌ها را به‌صورت mycontainer-backup-2025-02-21 ذخیره کنید تا نسخه‌های مختلف به راحتی قابل شناسایی و بازیابی باشند.
  2. استفاده از ابزارهای خودکار برای پشتیبان‌گیری: می‌توانید از ابزارهایی مانند cron برای برنامه‌ریزی پشتیبان‌گیری‌های منظم و خودکار استفاده کنید. به‌عنوان مثال، دستور زیر یک پشتیبان از کانتینر را هر روز ساعت 2 صبح انجام می‌دهد:در ابتدا باید یک اسکریپت پشتیبان‌گیری بسازید. این اسکریپت می‌تواند به شکل زیر باشد:
    #!/bin/bash
    DATE=$(date +\%Y-\%m-\%d)
    lxc snapshot mycontainer /mnt/backups/mycontainer-backup-$DATE
    

    سپس این اسکریپت را به‌صورت روزانه با استفاده از cron برنامه‌ریزی کنید:

    crontab -e
    

    و سپس خط زیر را اضافه کنید تا هر شب ساعت 2 صبح پشتیبان گرفته شود:

    0 2 * * * /path/to/backup-script.sh
    
  3. ذخیره‌سازی نسخه‌ها در فضای ذخیره‌سازی شبکه‌ای یا خارجی: برای اطمینان از ایمنی بیشتر پشتیبان‌ها، می‌توانید نسخه‌های مختلف پشتیبان را در فضای ذخیره‌سازی شبکه‌ای (NAS) یا سیستم‌های ذخیره‌سازی ابری (Cloud Storage) ذخیره کنید.

۵. بازیابی از پشتیبان‌ها

برای بازیابی از یک نسخه پشتیبان، می‌توانید از دستور زیر در خط فرمان استفاده کنید:

lxc copy <backup-path>/<backup-name> <container-name>

مثال:

lxc copy /mnt/backups/mycontainer-backup-2025-02-21 mycontainer

این دستور پشتیبان mycontainer-backup-2025-02-21 را به کانتینر mycontainer بازمی‌گرداند.

۶. حذف پشتیبان‌های قدیمی

برای حذف پشتیبان‌های قدیمی، می‌توانید از دستور زیر استفاده کنید:

rm -rf <backup-path>/<backup-name>

مثال:

rm -rf /mnt/backups/mycontainer-backup-2025-02-19

این دستور پشتیبان مربوطه را حذف می‌کند.

جمع‌بندی

پشتیبان‌گیری از کانتینرها و ذخیره‌سازی نسخه‌های مختلف پشتیبان به‌طور منظم یکی از الزامات برای مدیریت موثر کانتینرها است. با استفاده از روش‌های مختلف پشتیبان‌گیری از طریق Web UI یا خط فرمان (CLI) می‌توان از کانتینرها پشتیبان گرفت و در صورت نیاز، به راحتی به وضعیت قبلی بازگشت. همچنین، ذخیره‌سازی نسخه‌های مختلف پشتیبان و استفاده از ابزارهای خودکار می‌تواند فرایند پشتیبان‌گیری را ساده‌تر و مؤثرتر کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بازیابی کانتینر از نسخه‌های پشتیبان” subtitle=”توضیحات کامل”]بازیابی کانتینر از نسخه‌های پشتیبان یکی از مهم‌ترین وظایف مدیریت کانتینرها است که امکان بازگرداندن کانتینرها به وضعیت‌های قبلی را فراهم می‌کند. این عملیات ممکن است به دلایل مختلفی مانند خرابی سخت‌افزاری، حذف تصادفی داده‌ها، یا حتی اشتباهات تنظیماتی انجام شود. داشتن نسخه‌های پشتیبان معتبر از کانتینرها، تضمین می‌کند که داده‌ها و تنظیمات مهم شما در صورت بروز مشکل از دست نمی‌روند.

در این قسمت، به طور جامع و با جزئیات به نحوه بازیابی کانتینرها از نسخه‌های پشتیبان پرداخته می‌شود. این توضیحات شامل استفاده از ابزارهای مختلف (CLI و Web UI) برای انجام عملیات بازیابی و مراحل لازم برای انجام آن است.

۱. بازیابی کانتینر از پشتیبان در Web UI (Proxmox VE)

اگر از Proxmox VE به عنوان محیط مدیریت کانتینرها استفاده می‌کنید، بازیابی کانتینر از نسخه‌های پشتیبان بسیار ساده است. مراحل زیر را دنبال کنید:

  1. وارد Proxmox Web UI شوید.
  2. در نوار کناری، به بخش Datacenter بروید و سپس کانتینر مورد نظر را انتخاب کنید.
  3. در بخش Backup (که در سمت راست کانتینر‌ها قرار دارد) نسخه‌های پشتیبان موجود را مشاهده خواهید کرد.
  4. بر روی پشتیبان مورد نظر کلیک کرده و گزینه Restore را انتخاب کنید.
  5. در پنجره باز شده، مقصد بازیابی و تنظیمات مربوط به آن (مثل Overwrite یا Restore in Place) را انتخاب کنید:
    • Overwrite: در صورتی که بخواهید پشتیبان را روی کانتینر موجود بازنویسی کنید، این گزینه را انتخاب کنید.
    • Restore in Place: برای بازیابی کانتینر بدون از دست دادن تنظیمات فعلی، این گزینه مناسب است.
  6. بر روی Restore کلیک کنید تا فرایند بازیابی شروع شود.
  7. پس از اتمام عملیات، کانتینر بازیابی شده در وضعیت اولیه خود قابل استفاده خواهد بود.

۲. بازیابی کانتینر از پشتیبان از طریق خط فرمان (CLI)

در صورتی که از LXC یا هر سیستم مدیریت کانتینری مشابه استفاده می‌کنید، می‌توانید از دستوراتی برای بازیابی کانتینرها از نسخه‌های پشتیبان استفاده کنید. در اینجا، نحوه بازیابی کانتینر را از طریق خط فرمان توضیح می‌دهیم.

۲.۱. بازیابی کانتینر با استفاده از پشتیبان

برای بازیابی یک کانتینر از پشتیبان، ابتدا باید کانتینر جدیدی ایجاد کنید (در صورتی که کانتینر مقصد وجود نداشته باشد). سپس از دستور زیر استفاده کنید:

lxc restore <container-name> <backup-path>/<backup-name>

مثال:

فرض کنید نام کانتینر شما mycontainer است و پشتیبان کانتینر به نام backup-2025-02-21 در مسیر /mnt/backups ذخیره شده است. برای بازیابی کانتینر از این پشتیبان، دستور زیر را اجرا می‌کنید:

lxc restore mycontainer /mnt/backups/backup-2025-02-21

این دستور کانتینر mycontainer را به وضعیت موجود در پشتیبان باز می‌گرداند.

۲.۲. بازیابی پشتیبان به کانتینر جدید

در برخی مواقع، شما می‌خواهید که پشتیبان را به یک کانتینر جدید بازیابی کنید. برای انجام این کار می‌توانید از دستور زیر استفاده کنید:

lxc copy <backup-path>/<backup-name> <new-container-name>

مثال:

برای کپی پشتیبان backup-2025-02-21 به یک کانتینر جدید به نام newcontainer از دستور زیر استفاده کنید:

lxc copy /mnt/backups/backup-2025-02-21 newcontainer

این دستور پشتیبان را به کانتینر جدید کپی کرده و آن را بازیابی می‌کند.

۲.۳. بازیابی نسخه‌های مختلف پشتیبان (Snapshot)

اگر از ویژگی snapshot برای گرفتن پشتیبان استفاده کرده‌اید، می‌توانید هر زمان که بخواهید، از نسخه‌های مختلف snapshot بازیابی کنید. برای انجام این کار از دستور زیر استفاده کنید:

lxc restore <container-name> <snapshot-name>

مثال:

اگر از یک snapshot به نام snapshot-2025-02-20 برای کانتینر mycontainer استفاده کرده‌اید، دستور زیر را برای بازیابی کانتینر از این snapshot وارد می‌کنید:

lxc restore mycontainer snapshot-2025-02-20

۳. انتخاب حالت بازیابی

هنگام بازیابی کانتینرها از نسخه‌های پشتیبان، دو حالت اصلی وجود دارد که می‌توانید انتخاب کنید:

  • Restore in Place: این حالت به شما امکان می‌دهد تا وضعیت کانتینر را بدون تغییر در تنظیمات و اطلاعات موجود بازیابی کنید. در این روش، فقط داده‌های کانتینر از نسخه پشتیبان بازگردانده می‌شود.
  • Overwrite (بازنویسی): در این حالت، پشتیبان نسخه جدید، جایگزین تمام داده‌ها و تنظیمات کانتینر فعلی می‌شود. این حالت زمانی مفید است که می‌خواهید به طور کامل به نسخه پشتیبان بازگردید و هیچ گونه تغییرات جدیدی را در نظر نگیرید.

۴. بررسی وضعیت کانتینر پس از بازیابی

پس از بازیابی کانتینر، برای اطمینان از صحت بازیابی و عملکرد کانتینر، می‌توانید وضعیت کانتینر را با استفاده از دستور زیر بررسی کنید:

lxc info <container-name>

مثال:

برای بررسی وضعیت کانتینر mycontainer، دستور زیر را وارد می‌کنید:

lxc info mycontainer

این دستور اطلاعاتی مانند وضعیت کانتینر، مصرف منابع، و تنظیمات شبکه آن را نمایش می‌دهد.

۵. بازیابی کانتینر از پشتیبان در صورت خرابی سخت‌افزاری یا سیستمی

در برخی مواقع، ممکن است به دلیل خرابی سیستم یا سخت‌افزار، نتوانید از کانتینر استفاده کنید. در این شرایط، معمولاً شما نیاز دارید که بازیابی را از نسخه پشتیبان موجود بر روی یک سرور دیگر یا یک سیستم دیگر انجام دهید. برای این منظور:

  1. ابتدا پشتیبان‌ها را از مکان ذخیره‌سازی پشتیبان خود (مثل NFS، ZFS یا Cloud Storage) به سرور جدید یا سیستم دیگر کپی کنید.
  2. سپس همان روش‌های ذکر شده برای بازیابی از پشتیبان را دنبال کنید.

۶. حذف کانتینر قدیمی قبل از بازیابی

اگر نیاز دارید که قبل از بازیابی یک پشتیبان، کانتینر موجود را حذف کنید، از دستور زیر برای حذف کانتینر استفاده کنید:

lxc stop <container-name> && lxc delete <container-name>

مثال:

برای توقف و حذف کانتینر mycontainer، از دستور زیر استفاده کنید:

lxc stop mycontainer && lxc delete mycontainer

پس از این، می‌توانید پشتیبان جدید را به راحتی بازیابی کنید.

جمع‌بندی

بازیابی کانتینرها از نسخه‌های پشتیبان به‌ویژه در محیط‌های تولیدی بسیار حیاتی است و به مدیران سیستم این امکان را می‌دهد که در صورت بروز مشکلات، کانتینرها را به وضعیت قبلی خود بازگردانند. این فرایند می‌تواند با استفاده از ابزارهای مختلف نظیر Web UI و خط فرمان انجام شود. در اینجا، روش‌های بازیابی از پشتیبان، مدیریت وضعیت بازیابی و انتخاب حالت‌های مختلف بازیابی توضیح داده شد. به‌طور کلی، برای حفاظت از داده‌ها و تنظیمات کانتینرها باید پشتیبان‌گیری منظم انجام گیرد و در صورت نیاز به بازیابی، فرایند بازیابی باید به‌راحتی و با دقت انجام شود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”انتقال (Migration) کانتینرها بین نودهای مختلف در کلاستر Proxmox” subtitle=”توضیحات کامل”]انتقال کانتینرها بین نودهای مختلف در یک خوشه Proxmox یکی از ویژگی‌های کلیدی این پلتفرم است که به شما امکان می‌دهد تا بار کاری را به طور متعادل بین نودها تقسیم کنید و از داغ شدن بیش از حد یک نود جلوگیری کنید. این قابلیت به ویژه زمانی که یکی از نودها تحت فشار است یا می‌خواهید عملیات تعمیر و نگهداری را بر روی یک نود انجام دهید، مفید است. در این مقاله، نحوه انتقال کانتینرها در یک خوشه Proxmox را با جزئیات کامل و به صورت کاملاً عملی توضیح خواهیم داد.

۱. مفهوم Migration در Proxmox

Migration به معنای انتقال یک کانتینر یا ماشین مجازی از یک نود به نود دیگر در یک کلاستر است. این عملیات می‌تواند به صورت مستقل (Offline Migration) یا بی‌وقفه (Online Migration) انجام شود:

  • Offline Migration: در این حالت، کانتینر قبل از انتقال خاموش می‌شود و سپس به نود دیگر منتقل می‌شود. این نوع انتقال نیاز به توقف کانتینر دارد و در مدت زمان کوتاهی سرویس‌دهی کانتینر متوقف می‌شود.
  • Online Migration: در این حالت، کانتینر بدون توقف و به صورت بی‌وقفه منتقل می‌شود. برای این کار، باید از Shared Storage (ذخیره‌سازی مشترک) استفاده شود تا داده‌ها بدون نیاز به انتقال از نود مبدا، قابل دسترس برای نود مقصد باشند.

۲. شرایط لازم برای Migration

قبل از انجام انتقال کانتینرها بین نودها، مطمئن شوید که شرایط زیر فراهم است:

  1. Proxmox Cluster: باید چندین نود Proxmox در یک کلاستر به هم متصل شده باشند.
  2. Shared Storage: برای انتقال آنلاین، کانتینر باید از ذخیره‌سازی مشترک استفاده کند تا بدون نیاز به کپی کردن داده‌ها، به نود مقصد منتقل شود.
  3. Network Configuration: اتصال شبکه باید بدون مشکل باشد تا عملیات انتقال به درستی انجام شود.

۳. مراحل انجام Migration کانتینرها

۳.۱. Migration آنلاین کانتینر (با استفاده از Shared Storage)

برای انجام Online Migration، باید از ذخیره‌سازی مشترک استفاده کنید. در این حالت، کانتینر بدون نیاز به خاموش شدن و بدون قطعی به نود دیگر منتقل می‌شود.

برای انجام Online Migration مراحل زیر را دنبال کنید:

  1. وارد Proxmox Web UI شوید.
  2. به بخش Datacenter بروید.
  3. بر روی کانتینری که می‌خواهید آن را منتقل کنید، کلیک کنید.
  4. از منوی بالایی گزینه Migrate را انتخاب کنید.
  5. در پنجره باز شده، نود مقصد را انتخاب کنید.
  6. برای انجام Online Migration، گزینه “Move disk” را انتخاب کنید تا ذخیره‌سازی مشترک استفاده شود.
  7. بر روی Migrate کلیک کنید تا عملیات شروع شود.
۳.۲. Migration آفلاین کانتینر

در صورتی که به دلایلی نتوانید از Shared Storage استفاده کنید، می‌توانید از Offline Migration برای انتقال کانتینر به نود دیگر استفاده کنید. در این حالت، کانتینر باید ابتدا خاموش شود.

مراحل انجام Offline Migration:

  1. وارد Proxmox Web UI شوید.
  2. به بخش Datacenter بروید.
  3. کانتینر مورد نظر را انتخاب کنید.
  4. روی Shutdown کلیک کنید تا کانتینر خاموش شود.
  5. پس از خاموش شدن کانتینر، دوباره روی آن کلیک کنید و از منوی بالایی گزینه Migrate را انتخاب کنید.
  6. نود مقصد را از لیست انتخاب کنید.
  7. بر روی Migrate کلیک کنید تا عملیات انتقال شروع شود.
۳.۳. Migration کانتینر از طریق خط فرمان

برای انجام عملیات Migration از طریق خط فرمان، از دستور زیر استفاده کنید:

Online Migration:

pct migrate <container-id> <destination-node> --online

مثال:

pct migrate 101 proxmox-node2 --online

در این دستور:

  • <container-id>: شناسه کانتینر است (مثلاً 101).
  • <destination-node>: نام نود مقصد است که می‌خواهید کانتینر به آن منتقل شود.

Offline Migration:

برای انجام Offline Migration از دستور زیر استفاده کنید:

pct migrate <container-id> <destination-node>

مثال:

pct migrate 101 proxmox-node2

در این حالت، کانتینر ابتدا خاموش می‌شود و سپس به نود مقصد منتقل می‌شود.

۴. نظارت بر وضعیت Migration

برای نظارت بر وضعیت عملیات Migration، می‌توانید از دستور زیر استفاده کنید:

pve-migrate status

این دستور وضعیت انتقال کانتینر را نمایش می‌دهد و به شما کمک می‌کند که در صورت بروز خطاها، مشکل را شناسایی کنید.

۵. مشکلات رایج در Migration کانتینرها

در طول عملیات Migration، ممکن است با مشکلاتی مواجه شوید. برخی از مشکلات رایج و نحوه رفع آن‌ها عبارتند از:

  • عدم دسترسی به Shared Storage: اگر از Online Migration استفاده می‌کنید و خطای عدم دسترسی به ذخیره‌سازی مشترک مشاهده می‌کنید، مطمئن شوید که ذخیره‌سازی مشترک به درستی پیکربندی شده باشد و نود مقصد به آن دسترسی داشته باشد.
  • مشکلات شبکه: اگر انتقال به نود مقصد انجام نمی‌شود، ممکن است مشکلاتی در ارتباط شبکه بین نودها وجود داشته باشد. در این صورت، اتصال شبکه را بررسی کنید.
  • مشکلات در منابع: اگر نود مقصد منابع کافی برای پذیرش کانتینر نداشته باشد (مثلاً حافظه یا پردازنده کافی نداشته باشد)، باید منابع نود مقصد را افزایش دهید.

جمع‌بندی

انتقال کانتینرها بین نودهای مختلف در کلاستر Proxmox یک فرآیند ساده و مؤثر است که می‌تواند به شما کمک کند تا منابع خود را بهینه کنید و از در دسترس بودن کانتینرها اطمینان حاصل کنید. این عملیات می‌تواند به صورت Online Migration و Offline Migration انجام شود و با استفاده از Shared Storage می‌توان بدون توقف کانتینرها آن‌ها را به نودهای مختلف منتقل کرد. همچنین، در صورت نیاز به پیکربندی از طریق خط فرمان، دستوراتی برای انجام این عملیات فراهم است که به شما کمک می‌کند تا به صورت خودکار این عملیات را انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات HA برای تضمین در دسترس بودن کانتینرها” subtitle=”توضیحات کامل”]HA یا دسترس‌پذیری بالا به مجموعه‌ای از تکنیک‌ها و پیکربندی‌ها اطلاق می‌شود که هدف آن جلوگیری از وقفه در دسترسی به خدمات است. در محیط‌های مجازی و کانتینری HA به صورت ویژه برای اطمینان از این که کانتینرها و خدمات در صورت بروز مشکلات سخت‌افزاری یا نرم‌افزاری همچنان در دسترس باقی بمانند، استفاده می‌شود. در این قسمت، نحوه تنظیم HA برای کانتینرها در Proxmox را با جزئیات توضیح خواهیم داد.

۱. اصول HA در Proxmox

Proxmox VE از Cluster و Resource Manager برای مدیریت HA استفاده می‌کند. در این سیستم، چندین نود (سرور) در یک خوشه قرار دارند و اگر یکی از نودها دچار مشکل شود، کانتینرها و ماشین‌های مجازی به طور خودکار به نود دیگر منتقل می‌شوند. این پروسه توسط Corosync و Pacemaker مدیریت می‌شود که برای مدیریت وضعیت خوشه و مدیریت منابع HA استفاده می‌شوند.

برای پیاده‌سازی HA برای کانتینرها، لازم است که:

  1. Proxmox Cluster تنظیم شده باشد.
  2. Storage مشترک مانند NFS یا Ceph برای ذخیره‌سازی مشترک کانتینرها و ماشین‌های مجازی استفاده شود.
  3. سرویس‌ها و کانتینرها باید به گونه‌ای پیکربندی شوند که در صورت خرابی نود، به نود دیگر منتقل شوند.

۲. مراحل پیکربندی HA در Proxmox

۲.۱. راه‌اندازی Proxmox Cluster

قبل از هر چیز، باید یک Cluster از نودهای Proxmox بسازید. برای انجام این کار:

  1. ابتدا باید Proxmox را بر روی حداقل دو نود نصب کنید.
  2. بر روی یکی از نودها به عنوان Master وارد شوید و دستور زیر را برای ایجاد خوشه اجرا کنید:
pvecm create <cluster-name>

مثال:

pvecm create my-cluster
  1. سپس بر روی نودهای دیگر وارد شوید و آن‌ها را به خوشه اضافه کنید:
pvecm add <IP-address-of-master-node>

مثال:

pvecm add 192.168.1.10

در اینجا:

  • 192.168.1.10: آدرس IP نود Master شما است.
  • my-cluster: نام خوشه‌ای است که ساخته‌اید.
۲.۲. تنظیمات Storage مشترک برای HA

برای اینکه کانتینرها در نودهای مختلف قابل دسترس باشند، نیاز به Storage مشترک داریم که تمامی نودها بتوانند به آن دسترسی داشته باشند. این می‌تواند شامل استفاده از ذخیره‌سازی‌هایی مانند NFS یا Ceph باشد. برای تنظیم ذخیره‌سازی NFS:

  1. ابتدا باید سرویس NFS را بر روی سرور ذخیره‌سازی راه‌اندازی کنید.
  2. سپس در Proxmox، وارد بخش Datacenter شوید و از قسمت Storage گزینه Add و سپس NFS را انتخاب کنید.
  3. در پنجره جدید، آدرس NFS Server و تنظیمات آن را وارد کنید.
۲.۳. پیکربندی HA برای کانتینرها

پس از راه‌اندازی خوشه و تنظیم Storage مشترک، می‌توانیم HA را برای کانتینرها تنظیم کنیم.

  1. وارد Proxmox Web UI شوید.
  2. به قسمت Datacenter بروید و روی گزینه HA در منوی سمت چپ کلیک کنید.
  3. برای اضافه کردن کانتینر جدید به HA، بر روی Add کلیک کنید و سپس کانتینری که می‌خواهید به HA اضافه کنید را انتخاب کنید.
  4. در پنجره باز شده، تنظیمات مختلف مانند:
    • Resource Type (نوع منابع: کانتینر یا VM)
    • Priority (اولویت: تنظیم اولویت برای کانتینرها)
    • Failover Mode (مدل تعویض در صورت شکست: در اینجا می‌توانید انتخاب کنید که در صورت خرابی، کانتینر به کدام نود منتقل شود)

برای اضافه کردن کانتینر به HA از طریق خط فرمان می‌توانید دستور زیر را وارد کنید:

ha-manager add <container-id>

مثال:

برای افزودن کانتینر با شناسه 101 به HA:

ha-manager add 101
۲.۴. نظارت و بررسی وضعیت HA

برای نظارت بر وضعیت HA، می‌توانید از ابزار pvecm استفاده کنید. برای بررسی وضعیت خوشه و اطلاعات مربوط به HA:

pvecm status

همچنین، در Web UI، می‌توانید به بخش Datacenter و سپس HA بروید تا وضعیت کانتینرهای HA و نودهای مربوطه را مشاهده کنید.

۳. نحوه تنظیمات انتقال کانتینر در صورت خرابی نود

در صورتی که یکی از نودهای شما دچار مشکل شود، کانتینرهای HA به طور خودکار به نودهای دیگر منتقل می‌شوند. برای تنظیم انتقال اتوماتیک، باید مطمئن شوید که:

  1. ذخیره‌سازی مشترک درست تنظیم شده باشد.
  2. کانتینرها با ویژگی HA فعال باشند.
  3. سرویس‌های مانند Corosync و Pacemaker به درستی در حال اجرا باشند.

برای تنظیم Failover Mode و نحوه برخورد با خرابی نودها، در Web UI به بخش HA بروید و پس از انتخاب کانتینر، گزینه Failover را پیکربندی کنید.

۴. مدیریت اولویت‌ها و محدودیت‌ها در HA

شما می‌توانید اولویت (Priority) کانتینرها را تعیین کنید تا در صورت بروز مشکلات در منابع، کانتینرهایی با اولویت بالاتر پیش از کانتینرهای با اولویت پایین‌تر به نود دیگر منتقل شوند. برای انجام این کار، از گزینه Priority در تنظیمات HA استفاده کنید.

جمع‌بندی

پیکربندی HA در Proxmox VE به شما این امکان را می‌دهد که کانتینرها را در صورت خرابی نود به نودهای دیگر منتقل کنید و از در دسترس بودن آن‌ها اطمینان حاصل کنید. این قابلیت برای ارائه خدمات پایدار و بدون وقفه در محیط‌های تولید و حساس ضروری است. تنظیمات HA شامل پیکربندی خوشه Proxmox، تنظیمات ذخیره‌سازی مشترک، و مدیریت منابع و اولویت‌ها است. همچنین نظارت بر وضعیت HA می‌تواند به شما کمک کند تا از صحت عملکرد سیستم و جلوگیری از خرابی‌ها مطمئن شوید.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”پاسخ به سوالات فنی کاربران”][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”free” title=”پشتیبانی دائمی و در لحظه” subtitle=”توضیحات کامل”]ما در این دوره تمام تلاش خود را کرده‌ایم تا محتوایی جامع و کاربردی ارائه دهیم که شما را برای ورود به دنیای حرفه‌ای آماده کند. اما اگر در طول دوره یا پس از آن با سوالات فنی، چالش‌ها یا حتی مشکلاتی در اجرای مطالب آموزشی مواجه شدید، نگران نباشید!

  1. پرسش‌های شما، بخش مهمی از دوره است:
    هر سوال یا مشکلی که مطرح کنید، با دقت بررسی شده و پاسخ کامل و کاربردی برای آن ارائه می‌شود. علاوه بر این، سوالات و پاسخ‌های شما به دوره اضافه خواهند شد تا برای سایر کاربران نیز مفید باشد.
  2. پشتیبانی دائمی و در لحظه:
    تیم ما همواره آماده پاسخگویی به سوالات شماست. هدف ما این است که شما با خیالی آسوده بتوانید مهارت‌های خود را به کار بگیرید و پروژه‌های واقعی را با اعتماد به نفس کامل انجام دهید.
  3. آپدیت دائمی دوره:
    این دوره به طور مداوم به‌روزرسانی می‌شود تا همگام با نیازهای جدید و سوالات کاربران تکمیل‌تر و بهتر گردد. هر نکته جدید یا مشکل رایج، در نسخه‌های بعدی دوره قرار خواهد گرفت.

حرف آخر

با ما همراه باشید تا نه تنها به مشکلات شما پاسخ دهیم، بلکه در مسیر یادگیری و پیشرفت حرفه‌ای، شما را پشتیبانی کنیم. هدف ما این است که شما به یک متخصص حرفه‌ای و قابل‌اعتماد تبدیل شوید و بتوانید با اطمینان پروژه‌های واقعی را بپذیرید و انجام دهید.

📩 اگر سوالی دارید یا به مشکلی برخوردید، همین حالا مطرح کنید!
ما در کوتاه‌ترین زمان ممکن پاسخ شما را ارائه خواهیم داد. 🙌[/cdb_course_lesson][/cdb_course_lessons]

نقد و بررسی ها

نقد و بررسی وجود ندارد.

فقط مشتریانی که وارد سیستم شده اند و این محصول را خریداری کرده اند می توانند نظر بدهند.

سبد خرید

سبد خرید شما خالی است.

ورود به سایت