Як віртуалізація може бути ефективною?


6

Як я розумію, віртуальна машина та гостьова ОС подвоюють кількість шарів абстракції (які є обчислювальними) між інтерфейсом користувача та чистою потужністю апаратного забезпечення. Деякі з згаданих шарів абстракції є (емульованими) апаратними засобами, драйверами, інтерфейсами вводу-виводу і т.д.

Першокласні рішення для віртуалізації, такі як Xen, ймовірно, усунуть деякі з цих складностей, але я все ще дивуюся, як досягається ефективність у цих середовищах; і чи дійсно варто керувати хмарними серверами.


Я думаю, що пестика просить це пояснити різницю між повним емуляції, де більше викликів буде перекладено і апаратної віртуалізації (як з набором інструкцій VT), де вони більше просто ізольовані, а не перекладені. Я міг би відповісти на це, але я не знаю достатньо деталей щодо того, як це зроблено, щоб дати гарне пояснення.
deltaray

Відповіді:


4

Відповідь на ваше запитання дуже проста: віртуалізація не є ефективною (поки що). Віртуальні машини працюють досить добре (особливо на аналогічному апаратному забезпеченні) і є рішенням, але вони ніколи не досягнуть такої ж продуктивності, як реальні фізичні машини. У моїй компанії ми багато разів зобов'язані пояснювати клієнтам, коли настав час перенести віртуальну машину на фізичну.

Як ви очікуєте, що декілька віртуальних операційних систем ефективно співпрацюватимуть, коли ніхто з них навіть не знає, що він є віртуальним? Як би ви очікували, що будь-який з драйверів приймає розумні рішення про черги та пріоритети, коли вони не зможуть навіть побачити відповідну чергу в інших віртуальних машинах. Чорт, вони навіть не бачать реального фізичного апаратного забезпечення, спираючись на всі рішення на віртуальні фантази.

Наприклад, кожна безневинна віртуальна машина перериває процесор щонайменше 1000 разів на секунду для того, щоб просунути свій годинник. Покласти n віртуальні машини на одному фізичному, і ви будете мати (n + 1) * 1000 перериває секунду! Не кажучи вже про те, що переривання - це найнижча робота процесора.

Я вірю, що в майбутньому ми побачимо нові операційні системи, які будуть ефективно працювати як гості з господарем. Тенденція полягає в тому, щоб придумати віртуальні апаратні пристрої з невеликими тривіальними драйверами, які залишають всі рішення реальній фізичній машині. Але нас ще немає.

Джон Т пояснив всі переваги і зручність віртуалізації. Я просто відновлю, кажучи, що вони просто використовуються через зручність і економічність. Їх так легко переміщати, і в корпорації, яка має багато мало використовуваних серверів, що засмічують свої ІТ-центри, дуже спокусливо втиснути декілька з них в одну фізичну машину і забути про все. Не кажучи вже про те, що наявність менших фізичних коробок спрощує обслуговування.


Мені не було важливо, чому я повинен вибирати віртуальну машину над виділеною машиною, але ви були єдиними, хто пояснив що-небудь, крім цього.
pestaa

Неймовірно, що деякі люди голосують за цю відповідь. Здається, досить часто використовуються віртуальні машини без реального розуміння теми.
harrymc

"коли ніхто з них навіть не знає, що він віртуальний?" Паравіртуальні системи, такі як Xen (про що він просив), знають це, тому що вони повинні були спеціально модифіковані для роботи в якості гостей.
Ken

"вони ніколи не досягнуть такої ж продуктивності, як реальні фізичні машини" Я пам'ятаю, коли програмісти мови асемблера говорили про компілятори. :-)
Ken

@Ken: Ні один інтерпретатор ніколи не може бути настільки ефективним, як реальний. Віртуальні машини можуть підходити, але ніколи не рівні.
harrymc

5

Існує багато переваг віртуалізації. Ефективність залежить від того, як ви його визначаєте.

Замість того, щоб мати декілька машин у серверній кімнаті, можна використовувати віртуалізацію для:

  • Економія місця
  • Заощаджуйте на електроенергії
  • Ефективніше використовуйте обладнання
  • Скорочення витрат на обладнання
  • Консолідація управління
  • Спростити резервні копії (залежно від налаштувань)
  • Зменшіть час простою (ще раз, залежно від налаштувань - високі можливості доступності тощо)
  • Спростіть оновлення програмного забезпечення та можливі проблеми з функціональністю знімка
  • Значно зменшити час проекту за допомогою віртуальних шаблонів

І список продовжується. Звичайно, віртуалізація має свої застереження, але з особистого досвіду плюси сильно переважають мінуси. У корпоративному середовищі ви, безперечно, захочете перейти на платформу віртуалізації з найменшою абстракцією, щоб можна було наблизитися до металу. Віртуалізація - це (у її нинішній точці зору) шлях майбутнього.


5

Віртуалізація ефективна, головним чином тому, що в більшості серверних середовищ багато апаратних засобів простоюють. Віртуалізація дозволяє мати більше одного віртуального гостя на фізичному хості, щоб скористатися перевагою цієї бездіяльної потужності. Це має численні переваги для ефективності, з точки зору потужності, продуктивності, вартості та кількості персоналу:

  • Об'єднання декількох серверів до однієї машини виключає витрати енергії на живлення основного обладнання на кожній додатковій машині. Є тепер менше речей, таких як вентилятори і диски, які продовжують крутитися.
  • Ваша стратегія купівлі тепер може враховувати це, оскільки ви шукаєте менше, більше, потужніших серверів загального призначення, а не менших, одноразових серверів. Це дозволяє консолідувати сервери ще більше, збільшуючи економію з попередньої точки ще більше. З часом це також допоможе підштовхнути економію масштабу до цих серверів, які раніше вважалися високим рівнем, роблячи їх більш доступними для всіх, і заощаджуючи на таких речах, як виробництво та накладні витрати.
  • Виробництво апаратних і операційних систем тепер враховує віртуалізацію в своїх проектах (в основному через реалізацію і підтримку VT-x ), що дозволяє обмінюватися ресурсами між машинами. Наприклад, якщо у вашому RAM на одному і тому ж фізичному комп'ютері завантажено 3 екземпляри точно такої ж операційної системи, що й віртуальні гості, деякі частини кожної операційної системи, які залишаться незмінними, можуть бути розділені серед усіх трьох, що дозволяє більше працювати з одного й того ж обладнання і консолідуватися ще далі.
  • Віртуальні машини легше керувати і підтримувати, оскільки у вас є стандартне віртуальне апаратне середовище. Потрібно видалити старий сервер і перенести його на новий? Нічого страшного - просто скопіюйте віртуальні жорсткі диски, змініть кілька параметрів, щоб вказати на нове місце, і ви готові піти. Самі операційні системи не знають, що вони були переміщені, виводячи половину роботи з процесу. Така перевага має потенціал для створення величезної ефективності з точки зору ІТ-персоналу.
  • Вся ця консолідація ще більше знижує потребу в ІТ-персоналі, оскільки зараз набагато менше фізичних серверів для управління.

Я знаю, що багато чого з цього звучить, як це може допомогти тільки в магазинах з великою кількістю серверів, але як менший приклад, коли я працюю на початку минулого року, у нас було 14 фізичних серверів, а до кінця наступного року я Сподіваємося, що у нас буде тільки 5. Це включає в себе 3 приклади речей, які не роблять завжди, а також віртуалізовані: шлюз пристрою, SQL Server, і контролер домену. Це означає, що я консолідував 11 серверів, які я мав керувати до 2 (з огляду на додавання третьої, щоб забезпечити більше місця і резервування).

Будь-хто, хто потребує щонайменше 3 серверів (і між контролером домену / аутентифікацією / основними мережевими послугами, файлами, друком, електронною поштою, базами даних і програмами, більшість бізнесменів будь-якого розміру), має побачити певну користь від консолідації до 2 - хоч я завжди зберігаю принаймні 2 причини для надмірності - якщо ви йдете вниз, то залишився сервер може вагатися, несучи повне навантаження, хоч і повільно, поки ви не зможете повернути іншу назад.

Оновити:
Я смілив одну з моїх точок, тому що це той, який, на мою думку, пропустив ОС, і пояснює, як віртуальні машини також призводять до підвищення продуктивності.


2

Дві відповіді (поки що), які кажуть, що це ефективна віртуалізація адрес в масштабі компанії. Він також ефективний (для певних визначень ефективних) для особистого користування. У мене є 1 ноутбук, але 5 операційних систем. Я можу протестувати своє програмне забезпечення на "чистому" ОС, знаючи, що від попередніх установок і т.д.

І, звичайно, для чіткого визначення ефективності процесора, це не так добре, як виділене обладнання.


Я хотів би зрозуміти більше "не так добре, як присвячений".
pestaa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.