معماری Horizon
قسمت دوم
- 21 خرداد |
- مهسا محمودی راد |
- مجازی سازی(Virtualization)

مقیاسپذیری و در دسترس بودن (Scalability and Availability)
یک نکته قابلتوجه در طراحی این است که sinstant-clone VMsingle points of failure را در پیادهسازی حذف کنیم.
Connection Server
هر single Connection Server حداکثر 4000 session را پشتیبانی میکند. اگرچه 2000 تا session بعنوان best practice توصیه میشود . پیشنهاد می گردد که در مجموع به ازای هر pod ، 12000، بالاتر از هفت Connection Servers به ازای هر پاد، active sessions داشته باشیم. برای برطرف کردن شرایط راهحلی که مطرح شده است و میتواند handle failure انجام دهد، یک سرور بیشتر از مقدار مورد نیاز برای تعداد اتصالات (n+1) ، deploy کنید.
vCenter Server
VCenter server ها از resource block جدا هستند. تعداد پیشنهاد شده VMهایی که سرور vCenter میتواند میزبانی کند، به Horizon VMs مورد استفاده بستگی دارد. محدودیتهای ذیل بررسی شده است:
12.000 instant-clone VMs
4.000 full-clone VMs
صرفاً به این دلیل که VMwareبالاترین ظرفیت configuration را publish میکند به این معنی نیست که شما لزوماً باید بالاترین حد آنها را طراحی کنید. استفاده از یکvCenter Server تنها یک (نقطهی آسیبپذیر مرکزی) single point of failure را نشان میدهد که میتواند بر درصد زیادی از ماشینهای مجازی در محیط شما تأثیر بگذارد. بنابراین، اندازة size of the failure domain و تأثیر آن در صورت در دسترس نبودن vCenter Server را با دقت در نظر بگیرید.
یک vCenter Server ممکن است به تنهایی از کل محیط شما پشتیبانی کند اما برای اینکه ریسک و خطا را به حداقل برسانید میتوانیدvCenter Server دیگری را در طراحی خود قرار دهید. با استفاده از VMware vSphere® High Availability (HA)، شما میتوانید vCenter Server دیگری راهاندازی کنید که در صورت قطع شدنvCenter Server VM ، vSphere را مجدداً راهاندازی کند.
با vCenter High Availability همچنین میتوانید از active-passive که از خانواده vCenter Server است، استفاده کنید و باید مزیتهایش را به نسبت پیچیدگی مدیریتی در نظر بگیرید.
Sizing همچنین میتواند معانی مختلف داشته باشد اگر تعداد زیادی ازtask ها به طور همزمان اجرا شوند ممکن است bottleneck ایجاد کند. در این صورت نه تنها برای normal operations همه جوانب را باید در نظر بگیرید بلکه impact of provisioning tasks و frequency را نیز باید درک کنید.
بعنوان مثال درنظر داشته باشید ممکن است کاربران، دسکتاپهایی به صورت non–persistent ، parent-based ، instant-clone داشته باشند، که پس ازlogoff نمودن Delete میشوند و در صورت نیاز به کاربر دیگری ارائه میشوند. اگرچه یک floating desktop pool و non-persistent را میتوان از قبل باspare desktop پر کرد، ولی مهم این است که بدانیم چند وقت یکبار vm ها ایجاد میشوند و چه زمانی این اتفاق رخ میدهد. همچنین باید بدانیم چه زمانی جابجایی VMs باید اتفاق بیفتد.
آیا logoff و درخواست new desktops spread کاربر در طول روز اتفاق میافتد؟ اگر این رویدادها clustered شده باشند، spare desktops میتوانند درخواست ما را آماده داشته باشد یا نیاز به فراهم کردن جایگزینی دارد. درک provisioning tasks، به درک درخواست اعمال شده بررویvCenter Server کمک میکند و بهتر این است که به جای افزایش مقیاس، آن را کاهش دهیم.
Horizon Cloud Connector
Horizon Cloud Connector به عنوان یک virtual appliance از VMware vSphere® Web Client، پیادهسازی شده و با یکی از Connection Servers درPod جفت (pair) میشود.
بعنوان بخشی از پروسه (فرآیند) pairing (جفتسازی)، Horizon Cloud Connector virtual appliance را به Horizon Cloud Service متصل میکند تا license را مدیریت کند. با مجوز لایسنس هورایزن، شما برای فعالسازی Horizon product ، احتیاج به بازیابی یا وارد کردن لایسنس به صورت دستی ندارید. با این حالlicense keys برای پشتیبانی تجهیزات (components) هنوز ضروری هستند که شامل vSphere , vSAN, و vCenter Serverمیباشند. این کلیدها برای VMware Customer Connect contact ایمیل میشود.
برای خرید مجوز VMware از سایت https://customerconnect.vmware.com/ شما باید یک حساب فعال در VMware Customer Connect داشته باشید. سپس یک ایمیل با لینک دانلود ازHorizon Cloud Connector دریافت میکنید که یک فایل OVA (Open Virtual Appliance) است. به ازای هرpod یک دستگاه مجازی Horizon Cloud Connector اولیه (Primary) و فعال ساپورت میشود. برای پشتیبانی از تحمل خطا در service-level، با افزودن worker node در کلاستر که شامل primary node است میتوانید یک two-node Horizon Cloud Connector cluster ایجاد کنید. worker nodeشامل یک نسخه از Horizon Cloud Connector application است. برای اطلاعات بیشتر در موردHorizon Cloud Connector Cluster و درک اینکه کدام سرویسها در حال حاضر قابل محافظت هستند، به Horizon Cloud Connector 2.0 and Later – Horizon Cloud Connector Clusters, Node-Level High Availability, and Service-Level Fault Tolerance مراجعه کنید.
برای آموزش و نحوة پیادهسازی second worker node ، به Horizon Cloud Connector 2.0 and Later – Add a Worker Node to a Horizon Cloud Connector Cluster مراجعه نمایید. همچنین High availability برای Cloud Connector node توسط vSphere HA ارائه میشود، که در صورت قطع شدن برق Cloud Connector VM توسطvSphere ریستارت میشوند.
نکته:
دو Cloud Connectors به ازای هر Pod، در شبکه داخلیdeploy شدند. یکی از Cloud Connector، primary node است. در حالی که دومیworker node است. در این محیط از یک subscription licensing استفاده میشود. Horizon Universal Broker با multi-cloud کار میکند. دومین Cloud Connector node یک worker node است و انعطافپذیری را برای سرویسهایی که در Cloud Connector در حالا اجرا هستند، فراهم میکند.
Load Balancing Connection Servers
برای high availability، مقیاسپذیری همچنین متعادلنمودن بار ترافیکی، VMware توصیه میکند که چندین Connection Servers در یک load-balanced replication cluster پیادهسازی شوند. این امر تضمین میکند که Load (بار) به طور یکنواخت یا مساوی در تمامی سرورهای موجود تقسیم میشوند و single namespace (واحد) توسط کاربران مورد استفاده قرار میگیرد. استفاده ازLoad balancer ، این امکان را به IT administrators میدهد که عملیاتی مانند maintenance, upgrades, and configuration changes را تسهیل کند و در عین حال تأثیر آن بر کاربران را به حداقل میرساند.
Connection Servers broker client connections, authenticate usersو direct incoming بهcorrect agent resource (agent resource صحیح) درخواست میدهند. هرچند که connection server برای authentication به یک connection server کمک میکند، اما معمولاً بعنوان بخشی از مسیرData بعد از برقراری protocol session established شده است و دیگر کاری انجام نمیدهد.
لود بالانسر بعنوان central aggregation point برای جریان ترافیک بینClient ها، ارسال Connection Servers، بهترینperformance و در دسترسترینconnection ها سرویس میدهد. همچنین استفاده از یک Load balancer با چندینConnection Servers ، بیشترین انعطافپذیری را با امکاندادن به IT administrators برای perform maintenance, upgrades, and changes in the configuration بدون تأثیر برروی کاربران تسهیل میکند. برای اطمینان از اینکهload balancer به یک point of failure تبدیل نشود، اکثرload balancer ها اجازه راهاندازی چندینNode در HA یا active/passive را ندارند.

Connection Server ها به Load balancer نیاز دارند تا یکSession تداوم داشته باشند. این موضوع گاهی اوقات به تداوم ارتباطات برمیگردد و باید مطمئن شویم کهData ها مستقیم به connection Server وصل میشوند. میتوان از یک load balancer یا یک مدل جدید مانند VMware NSX Advanced ad Balancer که قبلاً Avi Vantage نام داشت استفاده کرد.
دسترسی خارجی (External Access)
برای یوزرهایی که به منابع دسترسی دارند، دسترسی ایمن و external از طریقUnified Access Gateway (UAG) appliances فراهم میشود. ما همچنین از load balancersبرای فراهمکردن scalability و redundancy استفاده میکنیم. یک Unified Access Gateway appliance در مقابل connection server ها قرار دارد و دسترسی را برایHorizon desktops و applicationsهای publish شده فراهم میکند.
معماری دسترسی خارجی (External Access Architecture)
زمانیکه از Unified Access Gateway استفاده میکنیم تا external access را برای Horizon فراهم کنیم از همانconnection server ها میتوانیم برای external و همچنین internal connectionsاستفاده نماییم. با معماری ترجیح داده شده برای traffic flow وload balancing، از Unified Access Gateways و Connection Servers، load balancer به صورت خطی (inline) نمیتواند بین Unified Access Gateways و Connection Servers قرار بگیرد. این معماری طراحی را ساده و عیبیابی آن را آسانتر میکند.

این در حالی است که نمودار قبلی مسیردهی (mapping)، Unified Access GatewayبهConnection Server ، به صورت یک به یک است، ممکن است مسیردهی به صورت N به1 باشد که در آن بیش از یک Unified Access Gateway به Connection Server متصل میشود.
قابلیت دسترسی بالا (High availability) با داشتن حداقل دو Unified Access Gateways و حصول اطمینان از اینکه آنها Connection Server های مختلف، بعنوان هدفهایی برای Connection Server URL نگهداری میشوند. یک Unified Access Gateway توانایی تشخیص عدم دریافت پاسخ از سوی connection server مقصد دارد که external load balancer و عدم توانایی در برقراری هر ارتباط جدیدی را بهload balancer خارجی اعلام میکند.
توجه داشته باشید اینها همچنان یک معماری متغیر هستند و برای داشتن یک load balancer inline بین Unified Access Gateways و Connection Servers ساپورت میشوند. هنگامیکه Load balancer بین این دو قرار میگیرد،Unified Access Gateway نمیتواند تشخیص دهد این connection server ، down شده است.
محیط Single DMZ
برای قرار دادن Horizon در data center یک سازمان، متداول است کهUnified Access Gateway appliances که یک لایه ایزوله Network بین اینترنت و data center مشتری را فراهم می کند، در DMZ نصب شود.

Unified Access Gateway مکانیسم امنیتی برای همه Horizon protocols است تا اطمینان حاصل شود که تنها ترافیکی که وارد Network مرکز دادهها میشود، ترافیک از طرف یک کاربر تأیید شده است. هرگونه ترافیک احراز هویت نشده در DMZ (discarded) حذف میشود.
محیط Double DMZ
برخی از سازمانها دارای دو DMZs (اغلب double DMZ یا double hop DMZ نامیده میشوند) هستند که گاهی اوقات برای فراهمکردن یک لایه امنیتی اضافی (security protection) بین اینترنت و شبکه داخلی استفاده میشود. در یک double DMZ، ترافیک از میان یک specific reverse proxy در هر لایه DMZ عبور میکند و ترافیک نمیتواند به راحتی ازDMZ عبور کند.
توجه داشته باشید که در پیادهسازی Horizon، یکdouble DMZ مورد نیاز نیست، اما برای محیطهایی که مورد استفاده قرار میگیرد، یک Unified Access Gateway applianceاضافی بعنوان یک Web Reverse Proxy پیادهسازی میشود.

برای اطلاعات بیشتر به Unified Access Gateway Double DMZ Deployment for Horizon مراجعه کنید.
برای اطلاعات در موردscaling و طراحی Unified Access Gateway به Unified Access Gateway Architecture مراجعه کنید.

نکته:
- پنج Unified Access Gateway appliances با اندازه استاندارد بعنوان قسمتی از راهحلHorizon پیادهسازی شد.
- UAG امکان دسترسی خارجی به کامپیوترهای میزبان را فراهم میکند و برنامههای کاربردی را تضمین میکند.
- یک UAG به طور استاندارد برای بالای 2000،connection همزمان توصیه میشود.
- برای رسیدگی کردن به 8000 یوزر چهار ابزار UAG مورد نیاز است.
- پنجمین UAG، redundancy و availability (n+1) را فراهم میکند.
- لودبالانسر (Load Balancing) Unified Access Gateway
Load Balancing Unified Access Gateway
اکیداً توصیه میشود که کاربران با استفاده از load – balanced virtual IP ( VIP ) بهUnified Access Gateway متصل شوند و با این کار این قابلیت Loadرا بهطور یکنواخت بر رویUnified Access Gateway appliances پخش میکنند. همچنین انعطافپذیری بیشتری را برایIT administrator ها با قابلیتهای maintenance, upgrades, and configuration changes فراهم میکند و با این حال کمترین تأثیر را برای کاربران دارد.
هنگامیکه load balancing Horizon چندین ترافیک را در چندین UAG پخش میکند، initial XML-API به (authentication, authorization, and session) نیاز دارد تا اینکهLoad balance شود.secondary Horizon protocols به ازای هرprimary Horizon XML-API protocol باید به همانUAG appliance ، بطور یکسان Route شود و بهUAG این اجازه را میدهد که authorize کند با توجه به اینکه درsecondary protocols اساس و پایه آن authentication های user session است.
اگر secondary protocol session به یک Unified Access Gateway appliance دیگری متصل شود Session مجاز نخواهد بود. بنابراین session در DMZ ، Drop و ارتباط قطع میشود. این مشکلات زمانی اتفاق میافتد که secondary protocol sessions به درستی config نشده باشند.
load balancer affinity باید مطمئن شود که اتصال XML – API برای تمامیsession ها برقرار میباشد (با حداکثر 10 ساعت پیش فرض) و بعد از اطمینان، به سمتUAG ،route میشود.
دسترسی به منابع خارجی به صورتSecure فراهم میشود و برای متصل شدن به Horizon Serverها، به single namespace نیاز نیست. این به این معنا است که نیاز به پشتیبانی load balancer VIP در مقابل Connection Server ها نداریم.
اگر چه secondary protocol session باید در همان Unified Access Gateway appliance، route شود که این برای برقراری ارتباط با primary XML-API استفاده میشود. از اینکه از load balancer جهت secondary protocol session استفاده شود یا نه میتوان انتخاب کرد که ازload balancer ، بعنوان secondary protocol session، route شود یا نه و این به توانمندیLoad balancer بستگی دارد.
از یک existing load balancer یا یک new one such as the VMware NSX Advanced Load balancer (پیشتر Avi Vantage) میتواند برای پیادهسازی استفاده کند.
قابلیت High Availability
به عنوان یک external load balancer, Unified Access Gateway provides و out-of-the-box از یک راهحلhigh – availability برای سرویس Unified Access Gateway edge استفاده میشود. اینSolution تا 10,000 concurrent connections را در یک high availability (HA) cluster ، با سادهشدن HA deployment و configuration of the services پشتیبانی میکند.
Display Protocol
Horizon یک Multi protocol است و در هنگام انتشار یا پابلیش desktop pools یاRDSH-published applications از سه پروتکل Blast Extreme، PCoIP و RDP استفاده میکند.
ادامه مطلب را در معماری Horizon – قسمت سوم مشاهده بفرمایید.
