خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
بررسی VMware Transparent Page Sharing یا TPS در VMware
امروز به مبحث مدیریت مموری در VMware vSphere به نام VMware Transparent Page Sharing یا TPS می پردازیم و حتما در مقالات آتی به سایر آیتم ها در مدیریت حافظه در VMWare خواهیم پرداخت. هایپروایزر VMware ESXi قادر است مموری Page های یکسان را در درون VM ها با سیستم عامل های مشابه ردیابی و تشخیص دهد. ESXi یک مقدار Hash به Page ها اختصاص می دهد و آنها را با جزئیات و بیت به بیت(یا ذره ذره) مقایسه می کند. بنابراین وقتی ESXi یکسری Page های برابر و یکسان را در چندین VM روی یک هاست پیدا کند، میتواند آنها را از طریق اشارهگرها به مموری Page های فیزیکی بین ماشینهای مجازی به اشتراک بگذارد.
فرض کنید، 30 نسخه از یک بخش مموری در بین ماشین های مجازی مختلف با سیستم عامل بصورت یکسان است. یعنی این 30 بخش بین برخی VM ها یا همه VM ها که روی یک هاست قرار دارند، بصورت یکسان است. ESXi فقط یکی را نگه می دارد و بقیه فقط به این یک قسما اشاره می کنند. این vmkernel است که به طور خودکار Page های یکسان Virtual Memory را شناسایی کرده و آنها را در یک Page در حافظه فیزیکی قرار می دهد. در نتیجه، کل مصرف مموری هاست کاهش مییابد و میتوانیم مموری بیشتری را به ماشینهای مجازی خود اختصاص دهیم (تا بیش از حد مجاز یا overcommit شود).
طرز کار VMware TPS در شکل زیر نشان داده شده است که در VMware vSphere بدان Memory Resource Management هم گفته می شود.
با شروع vSphere 6، مفهومی از intra-VM TPS و inter-VM TPS مطرح شد. intra-VM TPS به طور پیشفرض فعال بوده ولی inter-VM TPS به دلیل برخی نگرانیهای امنیتی بهطور پیشفرض غیرفعال است.
منظور از Intra-VM و Inter-VM در Transparent Page Sharing چیست؟
Intra-VM - TPS در واقع Page های یکسان مموری را در یک ماشین مجازی حذف می کند، اما Page ها را با هیچ ماشین مجازی دیگری به اشتراک نمی گذارد.
Inter-VM - TPS در واقع Page های یکسان مموری را در یک ماشین مجازی حذف می کند و همچنین موارد تکراری را با یک یا چند ماشین مجازی دیگر با محتوای مشابه به اشتراک می گذارد. که در اینصورت امنیت در معرض خطر قرار می گیرد.
مقالات آکادمیک منتشر شده نشان داده اند که با اجباری کردن و reload کردن cache حافظه اندازه گیری زمان بندی مموری برای تلاش به منظور تعیین یک کلید رمزگذاری AES در حال استفاده در vm دیگری که روی همان پردازنده فیزیکی هاست اجرا می شود، در صورتی که Transparent Page Sharing بین دو vm باشد، امکان پذیر است.
بیانیه VMware:
به دلیل نگرانیهای امنیتی، transparent page sharing بین ماشین مجازی یا inter-virtual machine یا Inter-VM به طور پیشفرض غیرفعال است و page sharing به intra-virtual machine memory sharing محدود شده است. این بدان معناست که page sharing بین ماشینهای مجازی اتفاق نمیافتد و فقط در داخل ماشین مجازی رخ میدهد. مفهوم salting برای کمک به رفع نگرانی هایی که ادمین ها شاید به پیامدهای امنیتی ناشی از transparent page sharing داشته باشند، معرفی شده است. Salting میتواند برای مدیریت دقیقتر VM ها که در transparent page sharing شرکت میکنند، نسبت به قبل استفاده شود. با تنظیمات جدید salting، ماشینهای مجازی تنها در صورتی میتوانند Page ها را به اشتراک بگذارند که مقدار Salt و محتوای Page ها یکسان باشد. گزینه جدیدی در host config با نام Mem.ShareForceSalting را می توان برای فعال یا غیرفعال کردن salting پیکربندی کرد.
یک نکته در مورد مفهوم نمک(salting) در TPS، که در آن از مقدار salt در تولید هش استفاده می شود. به این معنی که با تنظیمات پیشرفته VM sched.mem.pshare.salt، می توانید به گروهی از ماشین های مجازی اجازه دهید تا حافظه خود را با یکدیگر به اشتراک بگذارند. این می تواند جالب باشد اگر مجموعه ای از VM های تشنه مموری دارید که هدف مشابهی دارند.
اما این تنظیمات چیست و کجا باید آنها را تنظیم کرد؟
اینجا اوضاع کمی پیچیده می شود زیرا دو مقدار برای تنظیم وجود دارد. یکی در سطح هاست با نام Mem.ShareForceSalting و دیگری در یک فایل VMX با نام sched.mem.pshare.salt برای ماشین های مجازی مربوطه است.
شما باید مقدار هر هاست را جداگانه تغییر دهید.
در Vcenter Server Web Client به مسیر زیر بروید:
Mem.ShareForceSalting را سرچ کرده و آن را انتخاب کنید. سپس دکمه Edit را بزنید. سپس "0" را در فیلد وارد کرده و ok کنید(مقدار پیشفرض برابر با 2 است).
2 برابر با مقدار پیشفرض و بدون Intra-VM TPS است. sched.mem.pshare.salt مقدار درون فایل VMX، در فایل پیکربندی ماشین مجازی وجود ندارد و بنابراین مقدار salt ماشین مجازی روی مقدار Unique تنظیم می شود.
0 Inter-VM TPS همانطور که انتظار می رود کار می کند مقدار گزینه sched.mem.pshare.salt در فایلVMX نادیده گرفته می شود(حتی اگر مقدار داشته باشد) که ما این گزینه را استفاده کردیم.
همچنین میتوانید از دستورات PowerCLI برای تغییر این مقادیر برای VMware Transparent Page Sharing استفاده کنید.
آخرین مرحله از Transparent Page Sharing:
لازم نیست هاست های ESXI را Reboot کنید اما:
ماشین های مجازی را به هاست دیگری در همان Cluster انتقال یا Vmotion کنید و دوباره آنها به جای اولشان که همین هاست باشد، برگردانید و یا VM ها را ریستارت کنید.
در تصویر زیر یک نما از اتصال با SSH به هاست esxi را مشاهده می کنید که توجه داشته باشید که هاست دارای 64 رم بوده و سیستم در حالت memory overcommitting نیست. با این حال، برخی از memory pages shared و مقدار savings را می توانید مشاهده کنید.
با ابزاری مانند Putty به ESXI هاست مورد نظرتان لاگین کنید و سپس دستور esxtop را وارد و Enter کنید و سپس کلید m را فشار دهید تا متریک های مربوط به مموری به شما نشان داده شود.
فرض کنید، 30 نسخه از یک بخش مموری در بین ماشین های مجازی مختلف با سیستم عامل بصورت یکسان است. یعنی این 30 بخش بین برخی VM ها یا همه VM ها که روی یک هاست قرار دارند، بصورت یکسان است. ESXi فقط یکی را نگه می دارد و بقیه فقط به این یک قسما اشاره می کنند. این vmkernel است که به طور خودکار Page های یکسان Virtual Memory را شناسایی کرده و آنها را در یک Page در حافظه فیزیکی قرار می دهد. در نتیجه، کل مصرف مموری هاست کاهش مییابد و میتوانیم مموری بیشتری را به ماشینهای مجازی خود اختصاص دهیم (تا بیش از حد مجاز یا overcommit شود).
طرز کار VMware TPS در شکل زیر نشان داده شده است که در VMware vSphere بدان Memory Resource Management هم گفته می شود.
با شروع vSphere 6، مفهومی از intra-VM TPS و inter-VM TPS مطرح شد. intra-VM TPS به طور پیشفرض فعال بوده ولی inter-VM TPS به دلیل برخی نگرانیهای امنیتی بهطور پیشفرض غیرفعال است.
منظور از Intra-VM و Inter-VM در Transparent Page Sharing چیست؟
Intra-VM - TPS در واقع Page های یکسان مموری را در یک ماشین مجازی حذف می کند، اما Page ها را با هیچ ماشین مجازی دیگری به اشتراک نمی گذارد.
Inter-VM - TPS در واقع Page های یکسان مموری را در یک ماشین مجازی حذف می کند و همچنین موارد تکراری را با یک یا چند ماشین مجازی دیگر با محتوای مشابه به اشتراک می گذارد. که در اینصورت امنیت در معرض خطر قرار می گیرد.
مقالات آکادمیک منتشر شده نشان داده اند که با اجباری کردن و reload کردن cache حافظه اندازه گیری زمان بندی مموری برای تلاش به منظور تعیین یک کلید رمزگذاری AES در حال استفاده در vm دیگری که روی همان پردازنده فیزیکی هاست اجرا می شود، در صورتی که Transparent Page Sharing بین دو vm باشد، امکان پذیر است.
بیانیه VMware:
به دلیل نگرانیهای امنیتی، transparent page sharing بین ماشین مجازی یا inter-virtual machine یا Inter-VM به طور پیشفرض غیرفعال است و page sharing به intra-virtual machine memory sharing محدود شده است. این بدان معناست که page sharing بین ماشینهای مجازی اتفاق نمیافتد و فقط در داخل ماشین مجازی رخ میدهد. مفهوم salting برای کمک به رفع نگرانی هایی که ادمین ها شاید به پیامدهای امنیتی ناشی از transparent page sharing داشته باشند، معرفی شده است. Salting میتواند برای مدیریت دقیقتر VM ها که در transparent page sharing شرکت میکنند، نسبت به قبل استفاده شود. با تنظیمات جدید salting، ماشینهای مجازی تنها در صورتی میتوانند Page ها را به اشتراک بگذارند که مقدار Salt و محتوای Page ها یکسان باشد. گزینه جدیدی در host config با نام Mem.ShareForceSalting را می توان برای فعال یا غیرفعال کردن salting پیکربندی کرد.
یک نکته در مورد مفهوم نمک(salting) در TPS، که در آن از مقدار salt در تولید هش استفاده می شود. به این معنی که با تنظیمات پیشرفته VM sched.mem.pshare.salt، می توانید به گروهی از ماشین های مجازی اجازه دهید تا حافظه خود را با یکدیگر به اشتراک بگذارند. این می تواند جالب باشد اگر مجموعه ای از VM های تشنه مموری دارید که هدف مشابهی دارند.
اما این تنظیمات چیست و کجا باید آنها را تنظیم کرد؟
اینجا اوضاع کمی پیچیده می شود زیرا دو مقدار برای تنظیم وجود دارد. یکی در سطح هاست با نام Mem.ShareForceSalting و دیگری در یک فایل VMX با نام sched.mem.pshare.salt برای ماشین های مجازی مربوطه است.
شما باید مقدار هر هاست را جداگانه تغییر دهید.
در Vcenter Server Web Client به مسیر زیر بروید:
vSphere Web client > Select Host > Configure > System > Advanced System Settings
Mem.ShareForceSalting را سرچ کرده و آن را انتخاب کنید. سپس دکمه Edit را بزنید. سپس "0" را در فیلد وارد کرده و ok کنید(مقدار پیشفرض برابر با 2 است).
2 برابر با مقدار پیشفرض و بدون Intra-VM TPS است. sched.mem.pshare.salt مقدار درون فایل VMX، در فایل پیکربندی ماشین مجازی وجود ندارد و بنابراین مقدار salt ماشین مجازی روی مقدار Unique تنظیم می شود.
0 Inter-VM TPS همانطور که انتظار می رود کار می کند مقدار گزینه sched.mem.pshare.salt در فایلVMX نادیده گرفته می شود(حتی اگر مقدار داشته باشد) که ما این گزینه را استفاده کردیم.
همچنین میتوانید از دستورات PowerCLI برای تغییر این مقادیر برای VMware Transparent Page Sharing استفاده کنید.
آخرین مرحله از Transparent Page Sharing:
لازم نیست هاست های ESXI را Reboot کنید اما:
ماشین های مجازی را به هاست دیگری در همان Cluster انتقال یا Vmotion کنید و دوباره آنها به جای اولشان که همین هاست باشد، برگردانید و یا VM ها را ریستارت کنید.
در تصویر زیر یک نما از اتصال با SSH به هاست esxi را مشاهده می کنید که توجه داشته باشید که هاست دارای 64 رم بوده و سیستم در حالت memory overcommitting نیست. با این حال، برخی از memory pages shared و مقدار savings را می توانید مشاهده کنید.
با ابزاری مانند Putty به ESXI هاست مورد نظرتان لاگین کنید و سپس دستور esxtop را وارد و Enter کنید و سپس کلید m را فشار دهید تا متریک های مربوط به مموری به شما نشان داده شود.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: