Статья о виртуализации

аналогия:

Один автобус может перевозить 30 пассажиров, но машины теперь настолько дешевы, что мы все путешествуем на машине. Есть даже 30 автомобилей, которые требуют обслуживания, а не только один.

Если вы можете оборудовать автобус всеми удобствами, имеющимися в автомобилях (например, креслами в стиле авиакомпании со всей встроенной электроникой для развлечений и связи), мы все можем вернуться к общественному транспорту, свободным дорогам и заключить договоры на обслуживание.

Если бы только!

Тем не менее, это гораздо более достижимо в компьютерном мире. Один «большой» компьютер, полностью оборудованный и «разбитый на разделы», может одновременно запускать приложения, которые в противном случае потребовали бы нескольких отдельных компьютеров, но со значительно сниженными затратами на обслуживание и обновление.

Введение:

Забавно, что этот процесс начался с компьютеров, чьи ограниченные ресурсы вызывали проблемы. Например, небольшие компьютеры и системы ноутбуков имели физическое пространство только для одного жесткого диска, но разбиение позволяло обрабатывать его так, как если бы это было два или более устройств; когда появились новые, более крупные жесткие диски, разделение стало единственным способом для старых систем MSDOS занять все пространство.

Это затем привело к RAM-диску, что невозможно без разметки. Диск ОЗУ обеспечивает приложения ОЗУ, которого на самом деле не существует, занимая место на жестком диске. Эта виртуальная память стала настолько распространенной, потому что она обеспечивает преимущества при очень низкой стоимости. Приложения эмуляции, способные имитировать компьютерные платформы или программы на другой платформе или программе, существуют с момента необходимости миграции.

Эти примеры помогают решить проблемы с ограниченными ресурсами. Однако сейчас стоимость оборудования снизилась, такой экономической необходимости нет, а количество устройств растет. Необходима другая экономика, потому что каждое реальное устройство представляет собой отдельную задачу управления, и стоимость обслуживания всего этого оборудования становится проблемой.

Разбиение эффективно создает набор виртуальных жестких дисков, который позволяет создавать несколько файловых систем на одном жестком диске; Эти логические разделы на жестком диске добавляют второй уровень абстракции к способности компьютера хранить информацию.

Результатом является возможность иметь несколько изолированных сред выполнения на одном компьютере. Только один может использоваться одновременно на одном процессоре, хотя двухъядерная технология меняется очень быстро. Это известно как аппаратная виртуальная машина. Здесь у нас есть один физический набор ресурсов, в данном случае это настольный компьютер со многими личностями (например, Double Run на Windows или Linux).

Современное поколение компьютерных приложений обычно требует больше памяти, чем компьютер. Решение этой проблемы состоит в том, чтобы предоставить способы выделения некоторой памяти программам по требованию и освободить их для повторного использования, когда они больше не нужны. Виртуальная память может быть во много раз больше физической памяти в системе.

Виртуальные системы хранения отделяют адреса памяти, используемые процессом, от реальных физических адресов, что позволяет разделять процессы и эффективно увеличивать объем оперативной памяти путем замены дисков. Качество менеджера виртуальной памяти может оказать большое влияние на общую производительность системы.

Управление виртуальной памятью автоматизирует распределение ресурсов памяти и копирует области ОЗУ, которые в последнее время не использовались, на жесткий диск, освобождая пространство для загрузки большего количества приложений, чем физической ОЗУ. Поскольку копирование происходит автоматически, процесс прозрачен как для пользователей, так и для приложений, поскольку блок управления памятью расположен между процессором и шиной памяти, захватывая каждый виртуальный адрес и преобразуя его в физический адрес.

Вышеупомянутая комбинация методов позволяет построить полную модель компьютерной системы без реализации, которая может быть встроена в память одной хост-системы; эта технология может рассматриваться как продвинутая форма эмуляции.

Модельный компьютер может эмулировать все уровни аппаратного и программного обеспечения, необходимые для полной виртуальной машины, включая операционную систему, инструменты и приложения; или просто предоставить интерфейс приложения к операционной системе хоста и любой уровень между этими двумя крайностями. Виртуальная машина Java является примером такой виртуальной машины. Это программное обеспечение эмулирует не встроенную систему, которая позволяет компьютерам запускать программное обеспечение, написанное для другой среды выполнения.

Получающийся внешний интерфейс, по сути, представляет собой более высокий уровень абстракции эмулятора, который скрывает фактическую реализацию системы, создавая дополнительный уровень ресурсов между существующей компьютерной платформой и ее операционной системой.

Виртуализация:

На практике виртуализация может быть достигнута двумя способами, как виртуальная или эмулируемая машина. Оба метода создают дополнительную программную среду, расположенную между компьютерной платформой и основной операционной системой.

Эмуляция полностью обеспечивает функциональность программного обеспечения, в то время как для виртуализации используются как программное обеспечение, так и физические ресурсы хост-системы, которые разделены на множество контекстов, состоящих из изолированных адресных пространств, полностью отделенных от любого процесса Windows, причем все они работают попеременно непосредственно на самом процессоре. ,

Операционная система состоит из слоев; ядро является самым центральным компонентом, который остается в главном хранилище, предоставляя все необходимые службы, такие как управление памятью, управление процессами и задачами, а также управление дисками в других частях операционной системы и приложений.

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

Однако, в отличие от эмулируемой машины, каждая из имитируемых машин, по-видимому, имеет выделенный доступ к базовому необработанному оборудованию, а главная операционная система отказывается от управления центральным блоком посредством мультиплексирования с временным разделением.

У кого все это работает

Оборудование описывает физическое оборудование, соединения и устройства, необходимые для чтения, хранения и выполнения инструкций. В традиционной компьютерной системе механика и электроника управляются операционной системой «Ядро», и приложение работает на самом высоком уровне.

Центральный процессор обрабатывает, декодирует и выполняет инструкции в памяти, все системные устройства управляются инструментами драйвера, которые отображаются в ячейки памяти. Блок управления создает пути для инструкций между соответствующими частями системы через шину данных. Данные отправляются системой через адресную шину.

Такие продукты, как «Виртуальный ПК», эмулируют операционную систему, приложения и базовое оборудование моделируемой системы, размещенные между физическим оборудованием и операционной системой хоста в качестве уровня Virtual Machine Monitor (VMM). Этот интерфейс нарушает обычные домены защиты в архитектуре компьютерной системы и позволяет программам с одним уровнем разрешений получать доступ к ресурсам для программ в другом.

Каждому смоделированному аппаратному ресурсу присваивается адрес в хост-приложении, виртуальные адреса смоделированного аппаратного обеспечения перенаправляются на физические адреса базового оборудования, что позволяет применять аппаратные ресурсы к любому ресурсу, отображенному на шине, включая адресное пространство памяти и адресное пространство ввода-вывода.

В этом случае операционная система хоста управляет физическим компьютером, а уровень Virtual Machine Monitor (VMM) управляет эмулируемыми машинами, которые предоставляют инфраструктуру для эмуляции оборудования.

Гостевая операционная система работает на виртуальной машине, как если бы она работала на физическом оборудовании, а не на эмулируемом оборудовании. Когда гостевая операционная система работает, ядро ​​VMM управляет процессором и оборудованием во время работы виртуальной машины, создавая изолированную среду, в которой операционная система и приложения работают рядом с оборудованием с максимально возможной производительностью.

Текущее поколение приложений виртуализации машин работает ниже уровня ядра, но не интегрировано с операционной системой хоста. Приложения для виртуальных ПК позволяют настольным системам одновременно запускать операционные системы, а виртуальный сервер позволяет запускать текущие службы одним сервером. Теперь это требует манипулирования доменами внутренней защиты в операционной системе хоста и некоторыми архитектурами процессоров, которые существуют для предотвращения сбоев данных и функциональности, что представляет собой значительный риск.

Архитектуры Intel и AMD следующего поколения («Vanderpool» и «Pacifica» AMD) будут включать прямой доступ к аппаратному обеспечению, что упростит взаимодействие и сделает системы ВМ более надежными, а гостевая операционная система сможет выполнять операции без ущерба для других гостей. или операционная система хоста.

Использование виртуализированных ресурсов:

Возможность одновременного запуска нескольких операционных систем на одном компьютере нашла пользователей среди тестировщиков приложений, которым традиционно требовалась изолированная среда для тестирования новых изменений кода и прямых экспериментов в дополнение к производственной среде. Однако в случае виртуализированной системы как живая система, так и тестовая среда могут сосуществовать в одной системе в полной изоляции. Это также устраняет необходимость для пользователей конкурировать за доступ к тестовой среде, каждая из которых потенциально может иметь выделенную виртуальную тестовую среду.

Студенты традиционно злоупотребляют компьютерными системами в учебных заведениях, таких как университеты, что напрямую связано с необходимостью неограниченного доступа студентов к учебе.

Работа в Интернете с локальными серверами и памятью отчасти необходима для физических ограничений оборудования, которое может быть подключено к общей шине данных. В типичных дата-центрах у вас много устройств. Если какая-либо часть среды выходит из строя, время теряется, а прибыль теряется, когда неисправность диагностируется и отслеживается с помощью кабельного супа спагетти. Физический каркас сетевых устройств может быть заменен одним физическим блоком, а все остальное является цифровой версией этих устройств, разделенных в памяти.

Как описано выше, виртуальные среды медленнее, чем их физические аналоги, из-за того, что моделируемое оборудование подвергается физическим ограничениям. В частности, вся дисковая активность значительно медленнее.

При применении к системам уровня предприятия, таким как «виртуализированные» сети, вместо многих традиционных независимых устройств, возможность запуска сотен виртуальных частных серверов на одном физическом сервере может потенциально принести значительную экономию.

Под виртуализацией сети понимается возможность управления трафиком в сети, используемой различными предприятиями. Однако виртуализация сетевой инфраструктуры, называемая виртуализацией серверов, реплицирует изолированные среды выполнения, которые можно найти в любом центре обработки данных. Однако, в отличие от традиционной инфраструктуры, которая устанавливает такие границы, как требования к пространству, системам электропитания и охлаждения, все эти виртуальные серверы работают одновременно на одном хост-компьютере, и их интерфейсы не должны существовать, подключенные к виртуальным сетям. Этот подход обеспечивает динамические, эффективные и доступные вычислительные ресурсы

Сеть хранения данных (SAN) — это гетерогенная совокупность устройств хранения данных, подключенных к локальной сети, к которой доступ и администрирование составляют один центральный пул. Это кластер из множества устройств хранения данных, которые были объединены в более крупную и мощную «виртуальную» систему хранения данных. В этом случае программное обеспечение позволяет создать единую среду хранения, охватывающую несколько устройств хранения, реализация которых «прозрачна» для пользователя. Это называется виртуализацией памяти и является противоположностью виртуализации машин.

После виртуализации ресурсов вы можете легко манипулировать программным обеспечением. В дополнение к снижению постоянных и эксплуатационных расходов, связанных с управлением несколькими устройствами, возможны иные и очень дорогостоящие усовершенствования программного обеспечения и использования машины, а также изменения в режиме реального времени, а также возможность предоставления услуг при гораздо меньших затратах.

Обновления системы требуют изменений или дополнений к системному программированию, чтобы поддерживать функциональность в актуальном состоянии.

Виртуализированная сеть может рассматриваться как угроза безопасности, позволяя хакерам получить доступ ко всем ресурсам для усилий по взлому одного устройства. С другой стороны, защита одного физического ресурса должна быть проще, чем защита многих из-за уменьшенного количества возможных точек входа, хотя в виртуальной сети нет маршрутизаторов, что уменьшает количество физических барьеров доступа. Эту проблему можно сравнить с разницей между уровнем защиты, полученным от программного брандмауэра, работающего на вашем интернет-сервере, и наличия выделенной системы для этой цели.

Способность виртуализировать полные физические системы — это новый способ преодоления проблем, созданных старыми системами. Традиционные решения состоят в поддержании старой системы и поддержании ее в практически неизменном состоянии. Система может быть расширена или частично интегрирована с другим программным или аппаратным обеспечением. Такие решения традиционно воспринимаются как технически неосуществимые или слишком дорогие, что, по-видимому, заставляет выбирать стратегии технического обслуживания.

Нет простого способа установить и поддерживать такие сервисы. Для сравнения, это может быть достигнуто с помощью виртуальных услуг гораздо проще. Современное поколение серверов сложно использовать и поддерживать благодаря нашим существующим приложениям. Новые потоковые сервисы в реальном времени, такие как передача голоса по IP и мультимедийные мгновенные сообщения, потребуют еще более сложной настройки и обслуживания.

Подобно комплексным решениям для небольших офисов, которые объединяют факс, принтер и принтер в одной системе и обеспечивают функции сканера и копировального аппарата, предприятия могут интегрировать свои веб-серверы, электронную почту и FTP в один хост-сервер. Однако только системы «все в одном» в первую очередь снижают физические требования, но значительно увеличивают сложность всего решения.

Традиционно, если один из компонентов фотокопировального устройства выходил из строя, автономный принтер и сканер оставались неизменными, и для замены утраченной функциональности можно было использовать два устройства. Однако тот же сбой в интегрированной системе, скорее всего, приведет к полной потере всех функций при отсутствии резервной копии.

Краткое описание:

Хотя проблемы все еще возникают, внедрение более новой архитектуры процессора и соответствующих операционных систем, которые могут извлечь выгоду из новой архитектуры, быстро исчезает. Вскоре колесо пройдет полный круг, и мы вернемся к временам одного «большого» компьютера. со многими пользователями, подключенными через тупые терминалы.

Или это так — новый набор веб-приложений, например, запущенных Google, может просто потянуть нас всех в совершенно ином направлении!