در سال 2012 یک دیدگاه ازجانب شرکت VMware به نام software-defined datacenter (SDDC) معرفی شد که شامل Private Cloud و Public Cloud می شد، همچنین تمامی مباحث مربوط به Network, Storage, Compute را در بر می گرفت. شرکت VMware برای بخش Storage نرم افزار vSAN را در سال 2014 با هدف ارائه راه حل ذخیره سازی دارای خاصیت ارتجاعی و Scale-out معرفی کرد.
در زیر به بخشی از نکات فنی در مورد راه اندازی سرویس آورده شده است:
- vSAN نسخه 6.0 می تواند تعداد 64 سرور ESXi را در یک کلاستر ساپورت کن
به طور کلی VMware برای تمامی سناریو ها حداقل رم 32 گیگابایت را پیشنهاد می دهد اما میزان دقیق آن بستگی به تعداد دیسک ها و نوع تنظیمات دارد
برای اطلاعات دقیق میزان مصرف رم توسط vSAN به این لیک مراجعه شود، اما به صورت تقریبی میزان vSAN بین 4 درصد از حافظه host را تا ماکزیمم 1 گیگابایت برای Client Cache اختصاص می دهد که برای cache کردن اطلاعات یک vm روی همان host است
VMware knowledgebase article 2113954
الزامات و پیش نیازهای vSAN
نصب ESXi
- ESXi می تواند برروی USB Stick یا SD Card نصب شود فعلا تا نسخه 6.7 قابلیت Stateless booting ساپورت نمی شود.
- با نصب روی SD card یا USB Stick می توان فضای بیشتری را برای محیط عملیاتی به جای گذاشت ولی از بدی های آن می توان به کمبود فضای لاگ اشاره کرد
- این موضوع برای سرورهای که کمتر از 512 GB رم دارند ساپورت می شود و به خوبی ESXi روی آن نصب شده و مشکلی ندارد اما برای رم های بیشتر از این مقدار باید به فکر این باشیم که در صورتی که سرور با مشکل PSOD مواجه شد بتواند فایل های مربوط به Memory dumping را ذخیره کند ولی برای سرورهای بیشتر از این رم یکم مشکل ایجاد می کند. برای اطلاعات بیشتر به این لینک مراجعه کنید :https://kb.vmware.com/s/article/2147881
- اگر از یک دیسک استفاده کردیم دیگر نمی توانیم آن را در محیط vSAN یا بهتر بگم در دیتا استور هایی که روی آن میسازیم، استفاده کنیم
- حتما قبل از نصب چک کنید که محیط شما سازگار با vSAN می باشد http://vmwa.re/vsanhcl.
در مورد Storage Controller ها
- بهتر است که Storage Controller ها قابلیت JBOD/HBA/pass-through را داشته باشند، یعنی بتوانند بدون اینکه لایه از RAID را روی دیسک بگذارند بتوانند دیسک را در اختیار vSAN قرار بدهند، این باعث می شود که ESXi به صورت مستقیم روی دیسک ها اطلاعات را بنویسد و وقفه ای از جانب کنترلر به عملیات آن وارد نشود اگر این قابلیت وجود نداشت حتما باید از RAID-0 استفاده شود.
- بهتره اگر یک سری از دیسک ها را برای vSAN به صورت pass-through تعریف کردید، برخی دیگه رو برای کارهای Non-vSAN به صورت RAID تعریف نکنید همه رو به صورت یکسان تعریف کنید. اگر دو تا کنترلر مجزا دارین می توانید این کار را انجام بدین ولی در غیر این صورت بهتره این کار انجام نشه(منبع KB 2129050) اگر مجبور شدین این کار رو بکنید یعنی vSAN Disk رو با Non vSAN دیسک به صورت تلفیقی استفاده کنید روی Non-vSAN Disk ها ماشین مجازی قرار ندین و اجازه بدین فقط برای ESXi و لاگ ها استفاده بشه
- هیچ وقت Non-vSAN Disk هارو روی ماشین مجازی به صورت RDM استفاده نکنید.
- گاهی اوقات ممکنه که یک دیسک SSD رو در کنترلر به صورت RAID تنظیم کنیم ولی ESXi نفهمه که این دیسک SSD هست ولی می تونیم داخل ESXi اون رو به صورت SSD تنظیم کنیم.البته عکس زیر حالت برعکس رو نشون میده که می توان دیسک ها را به حالت HDD معمولی برگرداند.لازم به ذکره که این حالت زمانی که به صورت Pass-through تعریف می شود اتفاق نمی افتد.بدی حالتی که به صورت RAID تعریف می شود این است که اگر دیسکی فیل شود باید ادمین به صورت جداگانه RAID را از اول بسازد.
- بسیاری از مطالب استفاده از NVMe رو پیشنهاد می کنند چون روی خودش یک کنترلر مجزا دارد.
- پیشنهاد می شود در موقع تمظیم RAID روی دیسک حتماwrite-cache را غیر فعال کنید.چون vSAN این قابلیت رو تو خودش داره.اگر نشد روی کنترل غیر فعالش کنیم باید کش رو 100 درصد به Read اختصاص بدیم.
- امکان اینکه دیسک های SATA و SAS رو باهم ترکیب کنید روی vSAN هست ولی باید توجه داشت که همیشه بازدهی به اون دیسکی که بازدهی کمتری داره محدود میشه
Disk Groups
در ساختار vSAN دو گروه از دیسک ها رو داریم : Capacity Tier و Caching Tier
- دو حالت برای تنظیم این دو وجود دارد 1. All flash و 2.Hybrid در All Flash هر دو گروه از دیسک ها SSD هستند و در دومی در گروه Caching Tier از SSD استفاده می شود و در Capacity Tier از دیسک های غیر SSD. در هر دو حالت یک دیسک SSD در لایه Caching قرار می گیرد و یک یا بیشتر از یک دیسک در لایه Capacity قرار می گیرد. در لایه Capacity می توان تا 7 دیسک را به هر گروه اضافه کرد.
- همیشه سعی شود که به جای اینکه یک دیسک گروه پر از دیسک داشته باشیم چندین دیسک گروه با هارد های کمتر داشته باشیم، چون اگر یک دیسک از یک گروه خراب شود دیگه ماشینی روی آن ذیره نمی شود و عملا تمام دیسک های آن تا زمان Rebuild شدن ان گروه بلا استفاده می ماند. بنابر این اگر مثلا 6 دیسک در لایه Capacity موجود است بهتر است آن را به دو دیسک گروه 3 تایی تقسیم کنیم البته بدی این حالت اینه که باید برای هر گروه یک Flash Disk در لایه Caching قرار بدیم.
- سعی شود از دو کنترلر در سرور استفاده شود زیرا اگر کنترلر خراب شود کلیه گروه های پشت آن نیز تحت تاثیر قرار می گیرند. از لحاظ بازدهی نیز افزایش تعداد کنترلرها نیز مفید است.
نکته: شاید بعد از مدتی کلاستر vSAN شما لازم باشد که Scaleup شود یا دیسکی بعد از چند سال خراب بشه و دیگر نتوان دیسک های قدیمی که استفاده کردین رو پیدا کنید، اما نگران نباشید vSAN از این ساختار پشتیبانی می کنه و می تونید دیسک های مختلف در گروهتون استفاده کنید.
- اگر دیسکی به 80 درصد از ظرفیتش رسید، vSAN سعی میکند component های مختلف ماشین مجازی روی اون دیسک را به دیسک های دیگه داخل آن گروه یا گروه های دیگه منتقل بکنه.این کار برای جلوگیری از پر شدن ظرفیت یک دیسک انجام میشه.
- vSAN در حالت Hybrid Configuration به مقدار 70 درصد read cache و 30 درصد write cache دارد.ولی اگر All flash باشد 100 درصد write cache دارد.
- هر هاست می تواند تا 5 دیسک گروپ داشته باشد.
- در vSAN می توان از Consumer grade SSD ها استفاده کرد ولی طول عمر کمتری دارند و شاید با یک برق رفتن مشکلی برایش پیش بیاید بخاطر همین VMware آن را در HCL قرار نداده.
نیازمندی های شبکه
- هر سرور فیزیکی ESXi باید دارای حداقل یک 1GbE برای عبور ترافیک vSAN باشد. برای حالت All Flash این مقدار به 10GbE می رسد.هر چند که VMware این مقدار 10GbE رو برای هر دو Configuration پیشنهاد می دهد ولی در بازار نیز 25GbE یا 40GbE نیز موجود است که هر دوی آنها ساپورت می شوند.
- سویچ مجازی VSS و vDS برای vSAN ساپورت می شود با این تفاوت که روی vDS قابلیت های بیشتر داریم و می توانیم بار را به خوبی روی کارت های فیزیکی تقسیم کنیم
- در ورژن 6.6 به بعد استفاده از Multicast در ساختار vSAN حذف شده است و تنها از Unicast استفاده می شود
- یک VMkernel اختصاصی برای ترافیک vSAN ساخته می شود و از آن برای ترافیک بین نودها و همچنین زمانی که یک سرورفیزیکی ماشینی را میزبانی میکند و آن ماشین می خواهد با دیگر اجزای خود که روی سرورهای فیزیکی دیگر قرار دارد، صحبت کند استفاده می شود.
- برای ترافیک بین کلاستری vSAN از یک پروتکل به نام RDT یا Reliable Datagram Transport
برای ارتباط خودش استفاده می کند.
انواع ترافیک در شبکه vSAN
- Multicast heartbeats :برای ورژن قبل از 6.6 برای discover کردن هاست های دیگه داخل کلاستر از Multicast استفاده می شد و تعداد کمی از این مدل اینجاد می شد اما برای ورژن های بعد از 6.6 به کلی این نوع ترافیک استفاده نمی شود.
- Multicast and unicast packets from the clustering service (CMMDS) شامل بروز رسانی Metadata مثل سیاست جایگذاری، آمار است.در نسخه 6.6 به بعد این ترافیک فقط به صورت unicast ارسال می شود.
- Storage traffic (e.g., reads, writes): این ترافیک بیشترین سهم از ترافیک کل را دارد و ارتباط بین سرورهای فیزیکی داخل کلاسترها را شامل می شود.
- vSAN همچنین Jumbo frame را ساپورت می کند هر چند که خیلی در بازدهی تاثیری نمی گذارد.
NIC Teaming
در وهله اول NIC Teaming میزان دسترس پذیری را بالا می برد تا اینکه یک راه حل برای بالا بردن بازدهی باشد، اما در میان الگوریتم های بسیاری که برای NIC Teaming به منظور تقسیم لود وجود دارد استفاده از LACP می تواند شانس تقسیم بار در تمامی کارت های شبکه را افزایش دهد.
اجباری برای اینکه کارت های شبکه به صورت اختصاصی برای VMkernel مربوط به vSAN Traffic کار کند نیست، می توان تمام ترافیک را به صورت اشتراکی از Interface ها عبور داد (البته با در نظر گرفتن اینکه هر ترافیک VMkernel مجزا و یک VLAN جداگانه داشته باشد)
Everyone loves what you guys are usually up too. This sort of clever work and exposure!
Keep up the excellent works guys I’ve included you guys to blogroll.