در این لحظه ماشین مجازی مورد نظر تنظیم شده تا از طریق شبکه boot شود اما template مزبور اینترفیس شبکهای را برای ماشین مجازی جهت این کار فراهم نکرده است. بنابراین میبایست یک اینترفیس مجازی (VIF) را به ماشین مجازی مورد نظر جهت boot شدن از طریق PXE، attach نماییم. اولین گام برای این منظور بدست آوردن UUID شبکه مناسب برای این ماشین مجازی است.
# xe network-list
# xe network-list
همانطور که شکل فوق مشاهده میکنید، networkی که برای این ماشین مجازی میبایست مورد استفاده قرار گیرد، "Tecmint VM’s" network است و UUID نمایش داده شده نیز جهت attach کردن یک VIF به ماشین مجازی مورد نیاز میباشد. با network UUID موجود یک VIF میتواند توسط دستورات زیر جهت boot شدن ماشین مجازی از طریق PXE به آن اضافه شود.
# xe vif-create network-uuid=ed7e14a1-13d1-4e15-67a9-65369aced236 vm-uuid=b4d92a28-a836-32c5-0ea2-384245a7fdba device=1
# xe vif-list vm-uuid=b4d92a28-a836-32c5-0ea2-384245a7fdba
# xe vif-create network-uuid=ed7e14a1-13d1-4e15-67a9-65369aced236 vm-uuid=b4d92a28-a836-32c5-0ea2-384245a7fdba device=1
# xe vif-list vm-uuid=b4d92a28-a836-32c5-0ea2-384245a7fdba
در این لحظه ماشین مجازی آماده تلاش جهت boot شدن از طریق PXE است، هر چند که کنسول این ماشین مجازی به یک SSH tunnel به XenServer نیاز دارد و xvncviewer نیز جهت اتصال به کنسول بر روی SSH tunnel نیازمند است. بنابراین اولین گام power on کردن ماشین مجازی مورد نظر جهت تعیین دامینی است که میبایست در آن start شود. مجموعه دستورات زیر این کار را بر روی هاست XenServer انجام خواهند داد که نیازمند اطلاعاتی ضروری برای اتصال VNC client هستند.
# xe vm-start vm=Tecmint\ P2V\ VM
# xe vm-list params=dom-id name-label=Tecmint\ P2V\ VM
# xenstore-read /local/domain/1/console/vnc-port
دستور فوق باعث start کردن VM، جستجوی موقعیت دامینی که ماشین مجازی میبایست در آن اجرا شود و سپس استفاده از شماره دامین جهت تعیین VNC port بری اتصال به xvnc client میشوند.
این پروسه میبایست به سرعت بر روی هاست XenServer انجام گیرد. اگر هرگونه مشکلی در boot شدن ماشین مجازی وجود داشته باشد، VM به مدت تقریباً 30 ثانیه shutdown شده و یک session کنسول به guest دیگر وجود نخواهد داشت.
# xe vm-start vm=Tecmint\ P2V\ VM
# xe vm-list params=dom-id name-label=Tecmint\ P2V\ VM
# xenstore-read /local/domain/1/console/vnc-port
دستور فوق باعث start کردن VM، جستجوی موقعیت دامینی که ماشین مجازی میبایست در آن اجرا شود و سپس استفاده از شماره دامین جهت تعیین VNC port بری اتصال به xvnc client میشوند.
این پروسه میبایست به سرعت بر روی هاست XenServer انجام گیرد. اگر هرگونه مشکلی در boot شدن ماشین مجازی وجود داشته باشد، VM به مدت تقریباً 30 ثانیه shutdown شده و یک session کنسول به guest دیگر وجود نخواهد داشت.
حال که اطلاعات ضروری جهت ساخت یک SSH tunnel به هاست XenServer در دسترس است، بنابراین میتوان با استفاده از دستورات زیر اقدام به ایجاد یک SSH tunnel نمود:
# ssh -L <any_random_port>:localhost:<VNC_Port_Above> root@<server> -N
# ssh -L 5902:localhost:5902 root@<server_ip> -N
در ادامه میتوانیم از xvncviewer که توانایی نمایش کنسول برای ماشین مجازی boot شده از طریق PXE را دارد استفاده نماییم:
# xvncviewer localhost:5902
اگر تمامی مراحل را تا به اینجا به درستی انجام داده باشید، در این لحظه میبایست یک پنجره کوچک از session کنسول ماشین مجازی مورد نظر بر روی هاست XenServer همانند شکل 142 نمایش داده شود.
# ssh -L <any_random_port>:localhost:<VNC_Port_Above> root@<server> -N
# ssh -L 5902:localhost:5902 root@<server_ip> -N
در ادامه میتوانیم از xvncviewer که توانایی نمایش کنسول برای ماشین مجازی boot شده از طریق PXE را دارد استفاده نماییم:
# xvncviewer localhost:5902
اگر تمامی مراحل را تا به اینجا به درستی انجام داده باشید، در این لحظه میبایست یک پنجره کوچک از session کنسول ماشین مجازی مورد نظر بر روی هاست XenServer همانند شکل 142 نمایش داده شود.
منظور از Pool Master چیست؟
زمانیکه یک Resource Pool ایجاد میشود، یک Pool Master نیز در پروسه پیکربندی انتخاب میشود. در واقع Pool Master سروری است که در یک Pool به عنوان یک رابط مدیریتی برای سایر hostها ایفای نقش میکند. این سرور (منظور Pool Master) مسئول ارسال تمام دستورات به سایر اعضای Pool میباشد و میبایست از سازگاری پیکربندیها بر روی hostهای Resource Pool خود اطمینان حاصل نماید. بنابراین زمانیکه تغییری در سرور Pool Master شکل میگیرد، فرضاً اگر network جدیدی در آن اضافه شود، این تغییر به تمام سرورهای عضو Pool مزبور replicate خواهد شد.
زمانیکه failure برای سرور Pool Master اتفاق بیفتد، Pool مورد نظر دیگری قابلیت مدیریت نیست، در این حالت انتخابی بین Hostهای عضو Pool برگزار شده و یکی از سرورهای عضو Pool نقش Pool Master را ایفا کرده یا اینکه سرور Pool Master اصلی مجدداً بازگشته و به فعالیت خود ادامه دهد. توجه کنید چنانچه قابلیت HA فعال نباشد، یک Pool Master جدید بصورت دستی از طریق خط فرمان با استفاده از دستور xe pool-designate-new-master میبایست انتخاب شود اما در صورتیکه قابلیت HA فعال باشد، در اینصورت مجدداً پروسه انتخاب بصورت اتوماتیک جهت انتخاب Pool Master جدید برگزار خواهد شد.
زمانیکه یک Resource Pool ایجاد میشود، یک Pool Master نیز در پروسه پیکربندی انتخاب میشود. در واقع Pool Master سروری است که در یک Pool به عنوان یک رابط مدیریتی برای سایر hostها ایفای نقش میکند. این سرور (منظور Pool Master) مسئول ارسال تمام دستورات به سایر اعضای Pool میباشد و میبایست از سازگاری پیکربندیها بر روی hostهای Resource Pool خود اطمینان حاصل نماید. بنابراین زمانیکه تغییری در سرور Pool Master شکل میگیرد، فرضاً اگر network جدیدی در آن اضافه شود، این تغییر به تمام سرورهای عضو Pool مزبور replicate خواهد شد.
زمانیکه failure برای سرور Pool Master اتفاق بیفتد، Pool مورد نظر دیگری قابلیت مدیریت نیست، در این حالت انتخابی بین Hostهای عضو Pool برگزار شده و یکی از سرورهای عضو Pool نقش Pool Master را ایفا کرده یا اینکه سرور Pool Master اصلی مجدداً بازگشته و به فعالیت خود ادامه دهد. توجه کنید چنانچه قابلیت HA فعال نباشد، یک Pool Master جدید بصورت دستی از طریق خط فرمان با استفاده از دستور xe pool-designate-new-master میبایست انتخاب شود اما در صورتیکه قابلیت HA فعال باشد، در اینصورت مجدداً پروسه انتخاب بصورت اتوماتیک جهت انتخاب Pool Master جدید برگزار خواهد شد.
ایجاد یک Resource Pool
برای این منظور میبایست دستورات زیر را به ترتیب اجرا نمایید:
- دستور xe pool-join را بر روی هر سروری که عضو Resource Pool است اجرا کرد. مقدار master-valure آدرس hostیست که به عنوان Pool Master انتخاب شده است.
# xe pool-join master-address=poolmaster_address masterusername=poolmaster_username master-password=poolmaster_password
برای این منظور میبایست دستورات زیر را به ترتیب اجرا نمایید:
- دستور xe pool-join را بر روی هر سروری که عضو Resource Pool است اجرا کرد. مقدار master-valure آدرس hostیست که به عنوان Pool Master انتخاب شده است.
# xe pool-join master-address=poolmaster_address masterusername=poolmaster_username master-password=poolmaster_password
- دستور xe pool-list جهت مشاهده اطلاعات درباره Resource Pool جدید ایجاد شده میتواند مورد استفاده قرار گیرد. این دستور میتواند بر روی هر یک از hostهای موجود در Resoure Pool اجرا شود.
# xe pool-list
شکل 144 اطلاعاتی درباره Resource Pool ایجاد شده را نمایش خواهد داد.
# xe pool-list
شکل 144 اطلاعاتی درباره Resource Pool ایجاد شده را نمایش خواهد داد.
- توجه کنید که بصورت پیشفرض از نام Pool Master به عنوان نام Resource Pool استفاده میشود، بنابراین میبایست این نام جهت جلوگیری از host این نام را با نام خود اشتباه بگیرید، تغییر دهید. برای این منظور میتوان از دستور xe pool-parm-set به شکل زیر جهت تغییر نام Reousrce Pool استفاده نمود:
# xe pool-param-set name-label="pool_name" uuid=pool_uuid
# xe pool-param-set name-label="pool_name" uuid=pool_uuid
اما جهت ایجاد یک Resource Pool با استفاده از ابزار XenCenter بصورت گرافیکی از منوی toolbar این ابزار همانند شکل 146، بر روی دکمه New Pool کلیک کرده تا پنجره Create New Pool ظاهر شود.