مسیری راهنما از «ماشین مجازی چیست؟» تا برنامهریزی یک مهاجرت: مجازیسازی و شبکهٔ آن چطور کار میکند، کجا خراب میشود، و Zaryn و zev چطور هر ماشین مجازی، پورت سوئیچی که واقعاً از آن میگذرد و آنچه پیش از خراب شدن خراب میشود را نشان میدهند. اول تصویر، هر گام با توضیح.
آموزش⏱ حدود ۳۵ دقیقه◔ از صفر تا پیشرفته☰ ۱۵ فصل
یاد میگیرید
✓هایپروایزر، ماشین مجازی و VLAN چیست و یک ماشین مجازی چطور به شبکهٔ واقعی میرسد
✓چرا ماشینهای مجازی پس از جابهجایی از کار میافتند و چه چیزی را هیچ کنسول هایپروایزری نشان نمیدهد
✓وصل کردن Proxmox، vSphere، KVM، Hyper-V، oVirt، Nutanix یا OpenStack به صورت فقطخواندنی
✓بررسی یک جابهجایی زنده، راهاندازی دوبارهٔ یک سوئیچ و ذخیرهسازی پیش از آنکه آسیب بزنند
✓برنامهریزی مهاجرت در موجها از روی ترافیک واقعی
لازم دارید
•یک حساب Zaryn (طرح رایگان برای دنبال کردن کافی است)
•یک ماشین لینوکسی در سایت برای جمعآوریکننده (یک ماشین مجازی کوچک هم کافی است)
این آموزش شما را از همان آغاز تا امکانات پیشرفته، فصل به فصل، پیش میبرد. مرحلهٔ اول خود مجازیسازی را توضیح میدهد؛ اگر آن را میدانید جلو بروید: نقشهٔ راه بالا شما را به هر فصلی میبرد و نوار بالای صفحه میگوید کجا هستید. مرجع کامل در [مجازیسازی](/docs/fa/virtualization) است.
## ۱. مجازیسازی چیست
```diagram
type: graph
title: یک سرور، چندین ماشین
alt: یک سرور فیزیکی هایپروایزری را اجرا میکند که چند ماشین مجازی و یک کانتینر را اجرا میکند، هر کدام با پردازنده، حافظه، دیسک و کارت شبکهٔ خودش که از سرور برداشته شده
start: یک سرور فیزیکی
height: 52
---
box میزبان pve1: یک سرور فیزیکی | 2 2 96 48 | accent
node hw | پردازنده، حافظه، دیسک، کارت شبکه | 50 42 | server | | سختافزار واقعی: هایپروایزر آن را تقسیم میکند
node hv | هایپروایزر | 50 26 | collector | accent | Proxmox VE، ESXi، Hyper-V، KVM، AHV…: مهمانها را اجرا میکند و از هم جدا نگه میدارد
node web | web1 | 14 10 | vm | dim | یک ماشین مجازی: سیستمعامل، vCPU، حافظه، دیسک و کارت شبکهٔ خودش
node db | db1 | 38 10 | vm | dim | ماشین مجازی دیگر: حافظه و دیسک web1 را نمیبیند
node erp | erp | 62 10 | vm | dim |
node ct | ct-cache | 86 10 | host | dim | یک کانتینر (LXC): سبکتر، با کرنل مشترک میزبان
link hw hv | | path
link hv web | | dim
link hv db | | dim
link hv erp | | dim
link hv ct | | dim
step مهمانها روشن میشوند | هایپروایزر به هر مهمان سهمی از سرور میدهد: اینجا ۴ vCPU، آنجا ۸ گیگابایت. حالا ده سرور کوچک در یک جعبه جا میشوند.
node web | normal
node db | normal
node erp | normal
node ct | normal
link hv web | new
link hv db | new
link hv erp | new
link hv ct | new
```
**هایپروایزر** یک سرور فیزیکی (یک **میزبان**) را به چندین **ماشین مجازی** جدا از هم تبدیل میکند که هر کدام سیستمعامل، پردازندههای مجازی، حافظه، دیسک و کارت شبکهٔ خود را دارند. **کانتینرها** همین کار را سبکتر انجام میدهند. چند میزبان یک **کلاستر** میسازند تا یک ماشین مجازی در حال کار به میزبان دیگری برود (**جابهجایی زنده**) یا وقتی میزبانش از کار افتاد آنجا دوباره روشن شود (**HA**).
```diagram
type: cards
title: سکوهایی که Zaryn میخواند
---
🟧 | Proxmox VE | متنباز، KVM و LXC؛ پرطرفدار از زمان تغییر مجوزهای VMware |
🟦 | VMware vSphere | میزبانهای ESXi با مدیریت vCenter |
🐧 | KVM (libvirt) | میزبانهای سادهٔ لینوکسی با virsh |
🪟 | Hyper-V | ویندوز سرور، تنها یا در یک کلاستر failover |
🔶 | oVirt / OLVM | مدیرهای KVM از Red Hat و Oracle |
🟩 | Nutanix AHV | هایپرکانورجد، از راه Prism Central |
☁️ | OpenStack | یک ابر خصوصی: Nova، Neutron، Cinder |
```
## ۲. یک ماشین مجازی چطور به شبکه میرسد
```diagram
type: graph
title: چهار گام تا شبکهٔ واقعی
alt: کارت web1 روی پل vmbr0 با VLAN 20 است؛ پل از پورت بالادست eno1 میزبان استفاده میکند که به پورت Gi1/0/5 سوئیچ وصل است و آن پورت باید VLAN 20 را عبور دهد
legend: path=فریمهای web1؛ down=دورریختهشده
start: در حال کار
height: 40
---
box میزبان pve1 | 2 4 56 32 | accent
node web | web1 | 9 20 | vm | accent | کارت eth0 آن به یک سوئیچ مجازی وصل است، نه به کابل
node br | vmbr0 | 27 20 | switch | | پل (vSwitch، port group): فریمهای web1 را با VLAN 20 برچسب میزند
node up | eno1 | 47 20 | dot | | پورت فیزیکی میزبان: لینک بالادست آن
node sw | sw1 Gi1/0/5 | 82 20 | switch | good | یک پورت trunk: باید VLAN 20 را عبور دهد
link web br | VLAN 20 | path
link br up | | path
link up sw | trunk 1,20 | path
step پورت VLAN 20 را عبور نمیدهد | کسی VLAN 20 را از trunk برمیدارد، یا web1 به میزبانی میرود که پورتش آن را ندارد. web1 «روشن» است، هایپروایزر سبز نشان میدهد و هیچ چیزی به آن نمیرسد.
link up sw | down | trunk 1,30
node sw | bad
node web | bad
```
ترافیک یک ماشین مجازی اینطور میرود: **ماشین مجازی ← سوئیچ مجازی ← لینک بالادست میزبان ← یک پورت سوئیچ فیزیکی**. در این راه معمولاً با یک شمارهٔ **VLAN** برچسب میخورد تا شبکهها از هم جدا بمانند. گام آخر جایی است که دردسر پنهان است: یک پورت **trunk** فقط VLANهای فهرست مجازش را عبور میدهد. هایپروایزر آن فهرست را نمیبیند و سوئیچ ماشین مجازی را نمیبیند.
## ۳. کجا خراب میشود
```diagram
type: cards
title: پنج مشکلی که تقریباً هر سایت مجازیسازیشده دارد
---
👥 | دو تیم، دو نگاه | تیم شبکه MAC و پورت میبیند، تیم مجازیسازی نام ماشینها را. «erp-db از کدام پورت میرود؟» یک جلسه طول میکشد | warn
🚚 | ماشینها جابهجا میشوند، پیکربندی سوئیچ نه | پس از جابهجایی زنده یا HA شاید پورت میزبان تازه VLAN را نداشته باشد | bad
🔌 | افزونگیای که نیست | دو کابل در یک bond، هر دو به یک سوئیچ: یک راهاندازی دوباره همهٔ ماشینها را از کار میاندازد | bad
📈 | غافلگیریهای ظرفیت | دیسکهای thin و حافظهٔ بیشتخصیصیافته هر روز کمی بیشتر پر میشوند | warn
🧩 | مهاجرت بینقشه | جابهجایی ماشینها بیآنکه بدانید چه کسی با چه کسی حرف میزند برنامهها را دو تکه میکند | warn
```
هیچکدام از اینها در کنسول هایپروایزر پیدا نیست، چون هر کدام **میان** هایپروایزر و شبکه است. Zaryn همین فاصله را پر میکند.
## ۴. آنچه Zaryn و zev میدهند
```diagram
type: graph
title: دو نیمه، به هم وصل
alt: جمعآوریکننده با ورودهای فقطخواندنی APIهای هایپروایزرها و پیکربندی و همسایههای سوئیچها را میخواند، آنها را به هم وصل میکند و نتیجه را به Zaryn میفرستد؛ شما هر ماشین مجازی را با پورت سوئیچش و بررسیها میبینید
legend: path=HTTPS خروجی؛ ghost=فقطخواندنی
height: 48
---
box سایت شما | 2 2 62 44 | good
node hv | هایپروایزرها | 12 12 | host | | از راه APIشان با ورودی که فقط میتواند ببیند خوانده میشوند
node sw | سوئیچها | 12 36 | switch | | پیکربندی و LLDP/CDP: کدام پورت میزبان به کدام پورت سوئیچ وصل است و چه VLANهایی را عبور میدهد
node col | جمعآوریکنندهٔ zev | 46 24 | collector | accent | یک ماشین لینوکسی با zev: گذرواژهها را نگه میدارد و ماشینها را به پورتهای سوئیچ وصل میکند
node z | Zaryn | 80 12 | cloud | accent | بررسیها را انجام میدهد: رسیدن VLAN، جابهجایی، افزونگی، ذخیرهسازی
node you | شما | 80 38 | user | good | زبانهٔ Virtual machines، و هشدار برای آنچه رسیدگی میخواهد
link hv col | فقطخواندنی | ghost
link sw col | فقطخواندنی | ghost
link col z | HTTPS خروجی | path
link z you | | path2
```
**zev** برنامهای روی جمعآوریکنندهٔ شماست: میخواند، به هم وصل میکند و میفرستد. **Zaryn** تاریخچه را نگه میدارد و پاسخها را درمیآورد:
```diagram
type: cards
---
🔗 | راه بیرون هر ماشین | `net0 → vmbr0 VLAN 20 → bond0 → eno1 → sw1 Gi1/0/5 ✓` | accent
🚦 | رسیدن VLAN | هر پورتی که ترافیک یک ماشین از آن میگذرد VLANش را عبور میدهد، یا چرا نه | good
🧭 | ماشین کجا میتواند برود | کدام میزبانها شبکه و دیسکهایش را سالم نگه میدارند | good
💥 | اگر یک سوئیچ از کار بیفتد | میزبانهایی که جدا میشوند و ماشینهایی که خاموش میشوند | warn
💾 | ذخیرهسازی | میزان پری، دیسکهای thin بیش از ظرفیت، «حدود ۹ روز تا پر شدن» | warn
🌊 | موجهای مهاجرت | گروههایی از ماشینها که با هم حرف میزنند، با هم جابهجا میشوند | accent
```
## ۵. آنچه انجام نمیدهد
```diagram
type: cards
title: محدودیتهای صادقانه، از همان اول
---
👁 | فقط میخواند | Zaryn هرگز ماشینی را روشن، خاموش یا جابهجا نمیکند. ورودها فقط میتوانند ببینند | good
🔎 | بررسی سوئیچ LLDP یا CDP میخواهد | بدون آنها لینکهای بالادست یک میزبان `?` نشان داده میشود و Zaryn حدس نمیزند | warn
🧱 | فهرست VLAN از Cisco و Huawei | بررسی VLANهای مجاز سوئیچهای دیگر نامعلوم میماند | warn
📏 | تا ۲٬۰۰۰ مهمان برای هر هایپروایزر | برای هر دستگاهی که اضافه میکنید: برای محیطهای بزرگتر دستگاه بیشتری اضافه کنید |
⏳ | پیشبینی یک روز زمان میخواهد | روند ذخیرهسازی پس از حدود یک روز نمونهبرداری ساعتی شروع میشود |
```
نسخههای دقیق هر سکو در [محدودیتها](/docs/fa/virtualization#محدودیتها) آمده است. همهٔ این آموزش روی طرح رایگان کار میکند: یک سایت تا ۱۰ دستگاه نگه میدارد و کل یک کلاستر یک دستگاه حساب میشود.
## ۶. یک سایت بسازید و جمعآوریکننده را راه بیندازید
```diagram
type: flow
title: ده دقیقه تا یک جمعآوریکنندهٔ فعال
---
ساختن سایت | zaryn.xyz/sites ← سایت تازه، مثلاً `hq` | | 🏢
~ Collector and settings
پیوستن | `zev site join zsite_…` روی ماشین جمعآوریکننده | accent | 🔑
~ sudo zev site install
در حال کار | یک سرویس: هر ۳۰ ثانیه سر میزند، هر ۱۵ دقیقه میخواند | good | ▶
```
1. در [zaryn.xyz/sites](https://zaryn.xyz/sites) یک سایت بسازید، مثلاً `hq`.
2. یک ماشین لینوکسی در سایت انتخاب کنید که به هایپروایزرها و سوئیچها برسد ([zev را رویش نصب کنید](/docs/fa/installation)).
3. در زبانهٔ **Collector and settings** سایت، **Set up the collector** را بزنید و توکن را کپی کنید. سپس:
```bash
zev site join zsite_… --server https://api.zaryn.xyz
sudo zev site install
```
جمعآوریکننده فقط اتصال **خروجی** میسازد: لازم نیست پورتی به سوی آن باز کنید. بیشتر در [سایتهای شبکه](/docs/fa/network-sites#۲-جمعآوریکننده-را-راه-بیندازید).
## ۷. یک ورود فقطخواندنی بدهید
همهٔ سکوها یکجور کار میکنند: ورودی که فقط میتواند ببیند، روی جمعآوریکننده نگه داشته میشود، یک بار آزموده میشود و سپس به صورت یک دستگاه اضافه میشود. با Proxmox VE:
```bash
# on a Proxmox node: a user with the built-in read-only role, and a token
pveum user add zev@pve
pveum acl modify / --users zev@pve --roles PVEAuditor
pveum user token add zev@pve zaryn --privsep 0
# on the collector: keep the token, and try it
zev site cred add pve --user 'zev@pve!zaryn' --password-stdin
zev site test 10.0.0.11 --cred pve --vendor proxmox
```
سپس در زبانهٔ **Devices** سایت، آدرس یکی از نودها را با سازندهٔ **Proxmox VE** و اعتبارنامهٔ `pve` اضافه کنید. یک دستگاه کل کلاستر است.
```diagram
type: cards
title: ورود هر سکو
---
🟧 | Proxmox VE | توکن API با PVEAuditor، پورت 8006 |
🟦 | vSphere | یک نقش فقطخواندنی در vCenter، پورت 443 |
🐧 | KVM | یک کاربر SSH؛ فقط `virsh -r` |
🪟 | Hyper-V | یک کاربر SSH در گروه Hyper-V Administrators |
🔶 | oVirt / OLVM | ReadOnlyAdmin روی engine |
🟩 | Nutanix | Prism Viewer روی Prism Central، پورت 9440 |
☁️ | OpenStack | نقش reader در Keystone، پورت 5000 |
```
گامهای دقیق هر سکو: [افزودن یک هایپروایزر](/docs/fa/virtualization#افزودن-یک-هایپروایزر). راز هرگز از جمعآوریکننده بیرون نمیرود و [هر درخواستی که میفرستد](/docs/fa/virtualization#آنچه-جمعآوریکننده-میفرستد) فهرست شده است.
## ۸. بگذارید سوئیچها میزبانها را ببینند
```diagram
type: flow
title: چه کسی به چه کسی وصل است
---
میزبان اعلام میکند | LLDP روی هر میزبان: «من pve1 هستم، پورت eno1» | | 📣
~ سوئیچ میشنود
سوئیچ ثبت میکند | پشت sw1 Gi1/0/5، pve1 eno1 است | | 📋
~ جمعآوریکننده میخواند
وصلشده | web1 → … → eno1 → sw1 Gi1/0/5، با VLANهای بررسیشده | good | 🔗
```
سوئیچهایتان را هم (با ورود فقطخواندنی خودشان) به سایت اضافه کنید و هر جا LLDP خاموش است روشنش کنید:
```bash
apt install lldpd # Proxmox, KVM, oVirt and OpenStack hosts
```
روی ESXi، LLDP یا CDP را روی vSwitch یا distributed switch روشن کنید. روی ویندوز: `Install-WindowsFeature Data-Center-Bridging` و سپس `Enable-NetLldpAgent`.
## ۹. نخستین نگاه
چند دقیقه پس از افزودن هایپروایزر، سایت یک زبانهٔ **Virtual machines** میگیرد:
```diagram
type: stats
title: بالای زبانه، در یک نگاه
---
3 | میزبان | pve1، pve2، pve3 | |
48 | مهمان روشن | از ۵۲ | 92 | good
2.4 : 1 | vCPU برای هر پردازندهٔ فیزیکی | بیشتخصیص | 60 | warn
71% | حافظهٔ دادهشده | به مهمانهای روشن | 71 |
```
```diagram
type: cards
---
⚠️ | آنچه رسیدگی میخواهد | هر خطر، بدترین اول. هدف این است که خالی باشد | warn
🖥 | میزبانها | پردازنده، حافظه، مهمانها، لینکهای بالادست و نشان افزونگی |
📦 | مهمانها | هر ماشین با میزبان، آدرسها و VLANها؛ یکی را باز کنید تا راه بیرونش را ببینید | accent
💾 | ذخیرهسازی | میزان پری و پیشبینیها |
```
یک ماشین را باز کنید تا کل مسیر هر کارت شبکهاش را ببینید، مثلاً `net0 → vmbr0 VLAN 20 → bond0 → eno1 → sw1 Gi1/0/5 ✓`. همین یک خط جواب آن جلسهٔ فصل ۳ است.
## ۱۰. پیش از جابهجا کردن یک ماشین
```diagram
type: graph
title: erp-db کجا میتواند برود؟
alt: erp-db روی pve1 است؛ pve2 مقصد امنی است؛ pve3 نه، چون پورت سوئیچش VLAN 20 را ندارد و ذخیرهسازی Ceph را نمیبیند
legend: new=امن؛ down=خراب میکند
height: 40
---
node vm | erp-db | 12 20 | vm | accent | VLAN 20، دیسکها روی Ceph
node p1 | pve1 (اکنون) | 40 20 | host | |
node p2 | pve2 | 80 8 | host | good | همان پل، VLAN 20 روی پورت سوئیچش، Ceph را میبیند: ✓
node p3 | pve3 | 80 32 | host | bad | ✗ VLAN 20 روی sw1 Gi1/0/6 نیست؛ ceph روی pve3 نیست
link vm p1 | روی آن است | path
link p1 p2 | ✓ امن | new
link p1 p3 | ✗ خراب میکند | down
```
برای هر ماشین، Zaryn هر میزبان دیگر کلاستر را طوری بررسی میکند که انگار ماشین همین حالا به آنجا رفته: **شبکه** (همان پل، و هر پورت سوئیچ که VLANهایش را عبور دهد) و **دیسکها** (ذخیرهسازی مشترک دیده شود، یا برای دیسکهای محلی جا باشد). جواب ✓ است، یا ✗ با دلیلها، یا `?` وقتی چیزی معلوم نیست. پیش از یک پنجرهٔ نگهداری یا پیش از روشن کردن DRS یا HA اجرایش کنید. [با جزئیات](/docs/fa/virtualization#یک-ماشین-مجازی-کجا-میتواند-برود).
## ۱۱. اگر یک سوئیچ از کار بیفتد
```diagram
type: graph
title: شعاع آسیب، پیش از راهاندازی دوباره
alt: میزبان A به هر سوئیچ یک کابل دارد و کار میکند؛ میزبان B دو کابل به sw1 دارد و وقتی sw1 دوباره راهاندازی شود خاموش میشود
legend: new=افزونه؛ warn=یک سوئیچ؛ down=قطع
start: امروز
height: 52
---
node sw1 | sw1 | 30 10 | switch | | راهاندازی دوبارهٔ برنامهریزیشده برای ارتقا
node sw2 | sw2 | 70 10 | switch
node a | میزبان A | 20 40 | host | good | یک کابل به هر سوئیچ
node b | میزبان B | 60 40 | host | warn | دو کابل، هر دو به sw1
link a sw1 | | new
link a sw2 | | new
link b sw1 | | warn
link b sw1 | | warn
step sw1 دوباره راهاندازی میشود | میزبان A از راه sw2 کار میکند. میزبان B با همهٔ ماشینهایش جدا میشود. Zaryn همین را برای هر سوئیچ فهرست میکند، پس هیئت تغییر در چند ثانیه جوابش را میگیرد.
node sw1 | bad
link a sw1 | down
link b sw1 | down
node b | bad
```
لینکهای بالادست هر میزبان یک حکم میگیرند: **افزونه**، **یک سوئیچ**، **یک پورت** یا **نامعلوم**. **If a switch goes down** برای هر سوئیچ میزبانهایی را که جدا میکند و ماشینهای روشنی که با آنها میروند فهرست میکند. [با جزئیات](/docs/fa/virtualization#اگر-یک-سوئیچ-از-کار-بیفتد).
## ۱۲. ذخیرهسازیای که پر میشود
```diagram
type: stats
title: یک datastore، آنطور که Zaryn نشان میدهد
---
76% | پر | ds-ssd، ۶ ترابایت | 76 | warn
26 days | تا پر شدن | با ۶۰ گیگابایت در روز | | bad
300% | از اندازهاش به دیسکها داده شده | دیسکهای thin: تا وقتی پر نشدهاند مشکلی نیست | | warn
```
Zaryn تقریباً هر ساعت از هر ذخیرهسازی نمونه میگیرد و ۳۰ روز آخر را برازش میدهد، پس میتواند بگوید **حدود N روز تا پر شدن**، و کدام ماشینها سریعتر پرش میکنند. دیسکهای thin بیش از اندازهٔ ذخیرهسازی پیش از آنکه همه با هم پر شوند علامت میخورند. [با جزئیات](/docs/fa/virtualization#پیشبینی-ذخیرهسازی).
## ۱۳. چه کسی با چه کسی حرف میزند
```diagram
type: flow
title: از ترافیک تا نقشهٔ وابستگی
---
صادر کردن | سوئیچها و میزبانها NetFlow، IPFIX یا sFlow میفرستند | | 📡
~ به جمعآوریکننده
خلاصه | `zev site flows on`: گفتوگوها، نه بستهها | accent | 📊
~ به Zaryn
نقشه | «با چه کسی حرف میزند» برای هر ماشین، و زبانهٔ Dependencies سایت | good | 🕸
```
```bash
sudo zev site flows on # NetFlow/IPFIX on UDP 2055, sFlow on UDP 6343
sudo systemctl restart zev-site
```
صادرات جریان روترها یا میزبانها را به جمعآوریکننده بفرستید (`softflowd -i eth0 -n <collector>:2055 -v 10` روی یک میزبان لینوکسی). ببینید: [جریانها و وابستگیها](/docs/fa/network-flows).
## ۱۴. مهاجرت را در موجها برنامهریزی کنید
```diagram
type: flow
title: ترک یک سکو بیآنکه برنامهها دو تکه شوند
loop: هر موج را پیش از بعدی بررسی کنید
---
جریانها | یک هفته از اینکه چه کسی با چه کسی حرف زد | | 📊
~ گروهبندی
گروهها | مجموعههای «با هم بمانند»، سپس پرحرفترین جفتها | accent | 🔗
~ چیدن
موجها | هر کدام حداکثر N ماشین، کمترافیکترین اول | warn | 🌊
~ یکییکی
آزمایشی | جابهجا کنید، بسنجید، نگه دارید | good | ✓
```
**Plan a migration** در پایین زبانهٔ Virtual machines یک هفته جریان را به موجها تبدیل میکند. هر موج شبکههایی را که مقصد باید از پیش داشته باشد، ترافیکی که در حین جابهجایی دو تکه میماند و آنچه بیرون از هایپروایزر لازم دارد فهرست میکند. **Download as Markdown** سندی برای تیکت تغییر میدهد. [با جزئیات](/docs/fa/virtualization#برنامهریزی-یک-مهاجرت-در-موجها).
## ۱۵. تاریخچه، هشدارها و عاملهای هوش مصنوعی
```diagram
type: cards
---
🕰 | هر پیکربندی، نسخهدار | پیکربندی هر ماشین و میزبان مثل یک روتر نگه داشته میشود: دیف و انحراف | accent
🔔 | تغییرها | ماشینی پیدا میشود، جابهجا میشود (vMotion، HA)، روشن یا خاموش میشود؛ میزبانی از دسترس میرود |
🤖 | عاملهای هوش مصنوعی | `zaryn_site_virtual` در `zev mcp`: ماشینها، VLANها و پورتهای سوئیچ، با توکن کم | good
🗺 | روی نقشه | هایپروایزرها کنار سوئیچهایی که به آنها وصلاند |
```
از «ماشین مجازی چیست» تا برنامهریزی یک مهاجرت آمدید. از اینجا، مرجع [مجازیسازی](/docs/fa/virtualization) هر بررسی را با جزئیات دارد و [دوقلوی دیجیتال](/docs/fa/network-twin) یک تغییر سوئیچ را پیش از انجام، در برابر ماشینهای مجازیتان میآزماید.
این آموزش شما را از همان آغاز تا امکانات پیشرفته، فصل به فصل، پیش میبرد. مرحلهٔ اول خود مجازیسازی را توضیح میدهد؛ اگر آن را میدانید جلو بروید: نقشهٔ راه بالا شما را به هر فصلی میبرد و نوار بالای صفحه میگوید کجا هستید. مرجع کامل در مجازیسازی است.
هایپروایزر یک سرور فیزیکی (یک میزبان) را به چندین ماشین مجازی جدا از هم تبدیل میکند که هر کدام سیستمعامل، پردازندههای مجازی، حافظه، دیسک و کارت شبکهٔ خود را دارند. کانتینرها همین کار را سبکتر انجام میدهند. چند میزبان یک کلاستر میسازند تا یک ماشین مجازی در حال کار به میزبان دیگری برود (جابهجایی زنده) یا وقتی میزبانش از کار افتاد آنجا دوباره روشن شود (HA).
سکوهایی که Zaryn میخواند
🟧
Proxmox VE
متنباز، KVM و LXC؛ پرطرفدار از زمان تغییر مجوزهای VMware
ترافیک یک ماشین مجازی اینطور میرود: ماشین مجازی ← سوئیچ مجازی ← لینک بالادست میزبان ← یک پورت سوئیچ فیزیکی. در این راه معمولاً با یک شمارهٔ VLAN برچسب میخورد تا شبکهها از هم جدا بمانند. گام آخر جایی است که دردسر پنهان است: یک پورت trunk فقط VLANهای فهرست مجازش را عبور میدهد. هایپروایزر آن فهرست را نمیبیند و سوئیچ ماشین مجازی را نمیبیند.
Zaryn هرگز ماشینی را روشن، خاموش یا جابهجا نمیکند. ورودها فقط میتوانند ببینند
🔎
بررسی سوئیچ LLDP یا CDP میخواهد
بدون آنها لینکهای بالادست یک میزبان ? نشان داده میشود و Zaryn حدس نمیزند
🧱
فهرست VLAN از Cisco و Huawei
بررسی VLANهای مجاز سوئیچهای دیگر نامعلوم میماند
📏
تا ۲٬۰۰۰ مهمان برای هر هایپروایزر
برای هر دستگاهی که اضافه میکنید: برای محیطهای بزرگتر دستگاه بیشتری اضافه کنید
⏳
پیشبینی یک روز زمان میخواهد
روند ذخیرهسازی پس از حدود یک روز نمونهبرداری ساعتی شروع میشود
نسخههای دقیق هر سکو در محدودیتها آمده است. همهٔ این آموزش روی طرح رایگان کار میکند: یک سایت تا ۱۰ دستگاه نگه میدارد و کل یک کلاستر یک دستگاه حساب میشود.
همهٔ سکوها یکجور کار میکنند: ورودی که فقط میتواند ببیند، روی جمعآوریکننده نگه داشته میشود، یک بار آزموده میشود و سپس به صورت یک دستگاه اضافه میشود. با Proxmox VE:
Terminal
# on a Proxmox node: a user with the built-in read-only role, and a tokenpveum user add zev@pvepveum acl modify / --users zev@pve --roles PVEAuditorpveum user token add zev@pve zaryn --privsep 0# on the collector: keep the token, and try itzev site cred add pve --user 'zev@pve!zaryn' --password-stdinzev site test 10.0.0.11 --cred pve --vendor proxmox
سپس در زبانهٔ Devices سایت، آدرس یکی از نودها را با سازندهٔ Proxmox VE و اعتبارنامهٔ pve اضافه کنید. یک دستگاه کل کلاستر است.
سوئیچهایتان را هم (با ورود فقطخواندنی خودشان) به سایت اضافه کنید و هر جا LLDP خاموش است روشنش کنید:
Terminal
apt install lldpd # Proxmox, KVM, oVirt and OpenStack hosts
روی ESXi، LLDP یا CDP را روی vSwitch یا distributed switch روشن کنید. روی ویندوز: Install-WindowsFeature Data-Center-Bridging و سپس Enable-NetLldpAgent.
چند دقیقه پس از افزودن هایپروایزر، سایت یک زبانهٔ Virtual machines میگیرد:
بالای زبانه، در یک نگاه
3
میزبان
pve1، pve2، pve3
48
مهمان روشن
از ۵۲
2.4 : 1
vCPU برای هر پردازندهٔ فیزیکی
بیشتخصیص
71%
حافظهٔ دادهشده
به مهمانهای روشن
⚠️
آنچه رسیدگی میخواهد
هر خطر، بدترین اول. هدف این است که خالی باشد
🖥
میزبانها
پردازنده، حافظه، مهمانها، لینکهای بالادست و نشان افزونگی
📦
مهمانها
هر ماشین با میزبان، آدرسها و VLANها؛ یکی را باز کنید تا راه بیرونش را ببینید
💾
ذخیرهسازی
میزان پری و پیشبینیها
یک ماشین را باز کنید تا کل مسیر هر کارت شبکهاش را ببینید، مثلاً net0 → vmbr0 VLAN 20 → bond0 → eno1 → sw1 Gi1/0/5 ✓. همین یک خط جواب آن جلسهٔ فصل ۳ است.
برای هر ماشین، Zaryn هر میزبان دیگر کلاستر را طوری بررسی میکند که انگار ماشین همین حالا به آنجا رفته: شبکه (همان پل، و هر پورت سوئیچ که VLANهایش را عبور دهد) و دیسکها (ذخیرهسازی مشترک دیده شود، یا برای دیسکهای محلی جا باشد). جواب ✓ است، یا ✗ با دلیلها، یا ? وقتی چیزی معلوم نیست. پیش از یک پنجرهٔ نگهداری یا پیش از روشن کردن DRS یا HA اجرایش کنید. با جزئیات.
لینکهای بالادست هر میزبان یک حکم میگیرند: افزونه، یک سوئیچ، یک پورت یا نامعلوم. If a switch goes down برای هر سوئیچ میزبانهایی را که جدا میکند و ماشینهای روشنی که با آنها میروند فهرست میکند. با جزئیات.
Zaryn تقریباً هر ساعت از هر ذخیرهسازی نمونه میگیرد و ۳۰ روز آخر را برازش میدهد، پس میتواند بگوید حدود N روز تا پر شدن، و کدام ماشینها سریعتر پرش میکنند. دیسکهای thin بیش از اندازهٔ ذخیرهسازی پیش از آنکه همه با هم پر شوند علامت میخورند. با جزئیات.
سوئیچها و میزبانها NetFlow، IPFIX یا sFlow میفرستند
به جمعآوریکننده
📊
خلاصه
zev site flows on: گفتوگوها، نه بستهها
به Zaryn
🕸
نقشه
«با چه کسی حرف میزند» برای هر ماشین، و زبانهٔ Dependencies سایت
Terminal
sudo zev site flows on # NetFlow/IPFIX on UDP 2055, sFlow on UDP 6343sudo systemctl restart zev-site
صادرات جریان روترها یا میزبانها را به جمعآوریکننده بفرستید (softflowd -i eth0 -n <collector>:2055 -v 10 روی یک میزبان لینوکسی). ببینید: جریانها و وابستگیها.
Plan a migration در پایین زبانهٔ Virtual machines یک هفته جریان را به موجها تبدیل میکند. هر موج شبکههایی را که مقصد باید از پیش داشته باشد، ترافیکی که در حین جابهجایی دو تکه میماند و آنچه بیرون از هایپروایزر لازم دارد فهرست میکند. Download as Markdown سندی برای تیکت تغییر میدهد. با جزئیات.
پیکربندی هر ماشین و میزبان مثل یک روتر نگه داشته میشود: دیف و انحراف
🔔
تغییرها
ماشینی پیدا میشود، جابهجا میشود (vMotion، HA)، روشن یا خاموش میشود؛ میزبانی از دسترس میرود
🤖
عاملهای هوش مصنوعی
zaryn_site_virtual در zev mcp: ماشینها، VLANها و پورتهای سوئیچ، با توکن کم
🗺
روی نقشه
هایپروایزرها کنار سوئیچهایی که به آنها وصلاند
از «ماشین مجازی چیست» تا برنامهریزی یک مهاجرت آمدید. از اینجا، مرجع مجازیسازی هر بررسی را با جزئیات دارد و دوقلوی دیجیتال یک تغییر سوئیچ را پیش از انجام، در برابر ماشینهای مجازیتان میآزماید.