Зачем же нужна виртуализация? Описание продуктов VMware. Программы виртуализации серверов

Детские товары 19.04.2019
Детские товары

Концепция виртуальной среды

Новое направление виртуализации, которое дает общую целостную картину всей инфраструктуры сети с помощью техники агрегации.

Типы виртуализации

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

Программная виртуализация

Динамическая трансляция

При динамической трансляции (бинарной трансляции ) проблемные команды гостевой OC перехватываются гипервизором . После того как эти команды заменяются на безопасные, происходит возврат управления гостевой ОС.

Паравиртуализация

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

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

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

Впервые термин возник в проекте Denali.

Встроенная виртуализация

Преимущества:

  • Совместное использование ресурсов обеими ОС (каталоги, принтеры и т.д.).
  • Удобство интерфейса для окон приложений из разных систем (перекрывающиеся окна приложений, одинаковая минимизация окон, как в хост-системе)
  • При тонкой настройке на аппаратную платформу производительность мало отличается от оригинальной нативной ОС. Быстрое переключение между системами (менее 1 сек.)
  • Простая процедура обновления гостевой ОС.
  • Двухсторонняя виртуализация (приложения одной системы запускаются в другой и наоборот)

Реализации:

Аппаратная виртуализация

Преимущества:

  • Упрощение разработки программных платформ виртуализации за счет предоставления аппаратных интерфейсов управления и поддержки виртуальных гостевых систем. Это уменьшает трудоемкость и время на разработку систем виртуализации.
  • Возможность увеличения быстродействия платформ виртуализации. Управление виртуальными гостевыми системами осуществляет напрямую небольшой промежуточный слой программного обеспечения, гипервизор, что дает увеличение быстродействия.
  • Улучшается защищённость, появляется возможность переключения между несколькими запущенными независимыми платформами виртуализации на аппаратном уровне. Каждая из виртуальных машин может работать независимо, в своем пространстве аппаратных ресурсов, полностью изолированно друг от друга. Это позволяет устранить потери быстродействия на поддержание хостовой платформы и увеличить защищенность.
  • Гостевая система становится не привязана к архитектуре хостовой платформы и к реализации платформы виртуализации. Технология аппаратной виртуализации делает возможным запуск 64-битных гостевых систем на 32-битных хостовых системах (с 32-битными средами виртуализации на хостах).

Примеры применения:

  • тестовые лаборатории и обучение: Тестированию в виртуальных машинах удобно подвергать приложения, влияющие на настройки операционных систем, например инсталляционные приложения. За счёт простоты в развёртывании виртуальных машин, они часто используются для обучения новым продуктам и технологиям.
  • распространение предустановленного ПО: многие разработчики программных продуктов создают готовые образы виртуальных машин с предустановленными продуктами и предоставляют их на бесплатной или коммерческой основе. Такие услуги предоставляют Vmware VMTN или Parallels PTN

Виртуализация серверов

  1. размещение нескольких логических серверов в рамках одного физического (консолидация)
  2. объединение нескольких физических серверов в один логический для решения определенной задачи. Пример: Oracle Real Application Cluster , grid-технология , кластеры высокой производительности.
  • SVISTA
  • twoOStwo
  • Red Hat Enterprise Virtualization for Servers
  • PowerVM

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

Виртуализация рабочих станций

Виртуализация ресурсов

  • Разделение ресурсов (partitioning). Виртуализация ресурсов может быть представлена как разделение одного физического сервера на несколько частей, каждая из которых видна для владельца в качестве отдельного сервера. Не является технологией виртуальных машин, осуществляется на уровне ядра ОС.

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

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

Например, к реализации разделения ресурсов можно отнести (Проект Crossbow), позволяющий создавать несколько виртуальных сетевых интерфейсов на основе одного физического.

  • Агрегация, распределение или добавление множества ресурсов в большие ресурсы или объединение ресурсов. Например, симметричные мультипроцессорные системы объединяют множество процессоров; RAID и дисковые менеджеры объединяют множество дисков в один большой логический диск; RAID и сетевое оборудование использует множество каналов, объединённых так, чтобы они представлялись, как единый широкополосный канал. На мета-уровне компьютерные кластеры делают все вышеперечисленное. Иногда сюда же относят сетевые файловые системы абстрагированные от хранилищ данных на которых они построены, например, Vmware VMFS, Solaris /OpenSolaris ZFS , NetApp WAFL

Виртуализация приложений

Достоинства:

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

См. также

Ссылки

  • Обзор методов, архитектур и реализаций виртуализации (Linux) , www.ibm.com
  • Виртуальные машины 2007.Наталия Елманова, Сергей Пахомов , КомпьютерПресс 9’2007
Виртуализация серверов
  • Виртуализация серверов. Нейл Макаллистер , InfoWorld
  • Виртуализация серверов стандартной архитектуры. Леонид Черняк , Открытые системы
  • Альтернативы лидерам в канале 2009 г , 17 августа 2009
Аппаратная виртуализация
  • Технологии аппаратной виртуализации , ixbt.com
  • Спирали аппаратной виртуализации. Александр Александров , Открытые системы

Примечания


Wikimedia Foundation . 2010 .

Смотреть что такое "Виртуализация" в других словарях:

    виртуализация - В трудах ассоциации SNIA дается следующее общее определение. "Виртуализация — это действие (act) по объединению нескольких устройств, служб или функций внутренней составляющей инфрастуктуры (back end) с дополнительной внешней (front… …

    виртуализация - Разделение физического уровня сети (расположение и соединения устройств) от ее логического уровня (рабочие группы и пользователи). Настройка конфигурации сети по логическим критериям вместо физических. … Справочник технического переводчика

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

В рамках данной лекции будут рассмотрены следующие вопросы: Особенности виртуализации серверов. Виртуальные машины. Гипервизоры. Определения. Типы. Список материалов для самостоятельного изучения.

  • Особенности виртуализации серверов
  • Виртуальные машины
  • Гипервизоры
  • Термины
  • Краткие итоги

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

Примечание. Материал лекции основан на разделе "Server Virtualization" книги "Understanding Microsoft Virtualizations Solutions" M. Tulloch (Chapter 2).

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

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

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

Особенности виртуализации серверов

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

Иными словами, виртуализация серверов позволяет:

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

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

Виртуальные машины

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

Виртуальная машина

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

С учетом особенностей виртуальных машин, серверная виртуализация должна отвечать следующим требованиям:

  • Наличие интерфейса управления. Виртуализация серверов требует наличия управляющих интерфейсов для создания, настройки и мониторинга виртуальных машин (в т.ч. осуществлять все эти действия удаленно), функционирующих на компьютере.
  • Управление памятью. Виртуализация серверов требует наличия решения, которое гарантирует, что каждая виртуальная машина получит необходимое количество ресурсов памяти и то, что данные ресурсы изолированы от других виртуальных машин.
  • Наличие планировщика ресурсов. Необходимо наличие решения управления доступом виртуальных машин к аппаратным ресурсам. Администратор должен иметь возможность задавать приоритет доступа к ресурсам для каждой виртуальной машины.
  • Контроль состояния виртуальной машины. Виртуализация серверов требует наличия решения для отслеживания информации о текущем состоянии всех виртуальных машин на компьютере и управления переходами от одного состояния к другому.
  • Системы хранения и сетевого доступа. Серверная виртуализация требует наличия функционала, обеспечивающего представление аппаратных ресурсов таким образом, чтобы каждая виртуальная машина имела дело только со "своими" жесткими дисками и сетевым адаптером. Кроме того должна обеспечиваться возможность мультиплексного доступа к физическому оборудованию таким образом, чтобы ресурсы виртуальных машин были изолированы друг от друга.
  • Виртуальные устройства. Серверная виртуализация требует наличия виртуальных устройств, которые могут быть использованы операционной системой виртуальной машины, как логическое представление устройств определенно типа. К примеру, если виртуальная операционная система пытается получить доступ к физическому устройству, то она получает его через связанное виртуальное устройство, функционирующее аналогично физическому.
  • Драйверы виртуальных устройств. Серверная виртуализация требует наличия соответствующих драйверов виртуальных устройств в рамках операционной системы виртуальной машины, использующей эти устройства. Эти драйверы обеспечивают взаимодействие приложений с виртуальным представлением аппаратного обеспечения.

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

Гипервизоры

Понимание виртуализации серверов и виртуальных машин будет неполным без представления о гипервизоре.

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

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

Выделяют несколько типов гипервизоров.

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

Рис. 5.1. Гипервизор 1го типа

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

Гипервизоры первого типа используются в следующих решениях:

  • Microsoft Hyper - V.
  • VMware ESX Server.
  • Citrix XenServer.

Гипервизор второго типа выполняется в рамках хостовой операционной системы. Гостевые операционные системы виртуальных машин располагаются уровнем выше.

Рис. 5.2. Гипервизор 2го типа

Данный тип гипервизоров обеспечивает худшую производительность, по сравнению с первым типом.

Гипервизоры второго типа используются в следующих решениях:

Следующим типом гипервизора является монолитный. В состав монолитного гипервизора включены драйверы аппаратных устройств.

Рис. 5.3. Монолитный гипервизор

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

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

Монолитный гипервизор используется в решении VMware ESX.

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

Рис. 5.4. Микроядерный гипервизор

Данный тип гипервизоров обладает рядом преимуществ по сравнению с монолитными:

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

Примером использования данного типа гипервизора является Microsoft Hyper - V.

Термины

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

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

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

Краткие итоги

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

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


Платформа Microsoft Application Virtualization (App-V) , как и MED-V является частью Microsoft Desktop Optimization Pack и используется для преобразования приложений в виртуальные службы с централизованным управлением. Иными словами, приложение при этом функционирует в изолированной виртуальной среде.

Подобный подход, в числе прочего, позволяет:

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

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

Принципы работы

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

Виртуальная среда содержит все необходимое для запуска приложения и запускается в рамках клиентского программного обеспечения App-V.

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

Рассмотрим более подробно механизмы работы App-V.

Сегодня, говоря о технологиях виртуализации, как правило, подразумевают виртуализацию серверов, так как последняя становится наиболее популярным решением на рынке IT. Виртуализация серверов подразумевает запуск на одном физическом сервере нескольких виртуальных серверов. Виртуальные машины или сервера представляют собой приложения, запущенные на хостовой операционной системе, которые эмулируют физические устройства сервера. На каждой виртуальной машине может быть установлена операционная система, на которую могут быть установлены приложения и службы. Типичные представители это продукты VmWare (ESX, Server, Workstation) и Microsoft (Hyper-V, Virtual Server, Virtual PC).


Рис. 2.3.

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

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

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

Не так давно появились модели последнего поколения процессоров в архитектуре x86 корпораций AMD и Intel, где производители впервые добавили технологии аппаратной поддержки виртуализации. До этого виртуализация поддерживалась программно, что естественно приводила к большим накладным расходам производительности.

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

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

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

Использование средств x86-виртуализации началось в конце 90-х с рабочих станций: одновременно с увеличением числа версий клиентских ОС постоянно росло и количество людей (разработчиков ПО, специалистов по технической поддержке, экспертов), которым нужно было на одном ПК иметь сразу несколько копий различных ОС.

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

  • поддержка неоднородных операционных сред (в том числе, для работы унаследованных приложений). Этот случай наиболее часто встречается в рамках корпоративных информационных систем. Технически проблема решается путем одновременной работы на одном компьютере нескольких виртуальных машин, каждая из которых включает экземпляр операционной системы. Но реализация этого режима выполнялась с помощью двух принципиально разных подходов: полной виртуализации и паравиртуализации ;
  • поддержка однородных вычислительных сред подразумевает изоляцию служб в рамках одного экземпляра ядра операционной системы (виртуализация на уровне ОС ), что наиболее характерно для хостинга приложений провайдерами услуг. Конечно, тут можно использовать и вариант виртуальных машин, но гораздо эффективнее создание изолированных контейнеров на базе одного ядра одной ОС.

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

Многие трудности и проблемы разработки технологий виртуализации связаны с преодолением унаследованных особенностей программно-аппаратной архитектуры x86. Для этого существует несколько базовых методов:

(Full, Native Virtualization). Используются не модифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система. Такая технология применяется, в частности, в VMware Workstation, VMware Server (бывший GSX Server), Parallels Desktop, Parallels Server, MS Virtual PC, MS Virtual Server, Virtual Iron. К достоинствам данного подхода можно причислить относительную простоту реализации, универсальность и надежность решения; все функции управления берет на себя хост-ОС. Недостатки - высокие дополнительные накладные расходы на используемые аппаратные ресурсы, отсутствие учета особенностей гостевых ОС, меньшая, чем нужно, гибкость в использовании аппаратных средств.


Рис. 2.4.

(paravirtualization). Модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами. При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора ( hypervisor ). Именно этот вариант является сегодня наиболее актуальным направлением развития серверных технологий виртуализации и применяется в VMware ESX Server, Xen (и решениях других поставщиков на базе этой технологии), Microsoft Hyper-V. Достоинства данной технологии заключаются в отсутствии потребности в хостовой ОС – ВМ, устанавливаются фактически на "голое железо", а аппаратные ресурсы используются эффективно. Недостатки - в сложности реализации подхода и необходимости создания специализированной ОС-гипервизора.


Рис. 2.5.

Виртуализация на уровне ядра ОС (operating system-level virtualization). Этот вариант подразумевает использование одного ядра хостовой ОС для создания независимых параллельно работающих операционных сред. Для гостевого ПО создается только собственное сетевое и аппаратное окружение. Такой вариант используется в Virtuozzo (для Linux и Windows), OpenVZ (бесплатный вариант Virtuozzo) и Solaris Containers. Достоинства - высокая эффективность использования аппаратных ресурсов, низкие накладные технические расходы, отличная управляемость, минимизация расходов на приобретение лицензий. Недостатки - реализация только однородных вычислительных сред.


Рис. 2.6.

Подразумевает применение модели сильной изоляции прикладных программ с управляемым взаимодействием с ОС, при которой виртуализируется каждый экземпляр приложений, все его основные компоненты: файлы (включая системные), реестр, шрифты, INI-файлы, COM-объекты, службы. Приложение исполняется без процедуры инсталляции в традиционном ее понимании и может запускаться прямо с внешних носителей (например, с флэш-карт или из сетевых папок). С точки зрения ИТ-отдела, такой подход имеет очевидные преимущества: ускорение развертывания настольных систем и возможность управления ими, сведение к минимуму не только конфликтов между приложениями, но и потребности в тестировании приложений на совместимость. Данная технология позволяет использовать на одном компьютере, а точнее в одной и той же операционной системе несколько несовместимых между собой приложений одновременно. Виртуализация приложений позволяет пользователям запускать одно и то же заранее сконфигурированное приложение или группу приложений с сервера. При этом приложения будут работать независимо друг от друга, не внося никаких изменений в операционную систему. Фактически именно такой вариант виртуализации используется в Sun Java Virtual Machine , Microsoft Application Virtualization (ранее называлось Softgrid), Thinstall (в начале 2008 г. вошла в состав VMware), Symantec/Altiris.


Рис. 2.7.

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


Рис. 2.8.

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

Вместе с тем, с ростом масштабов организаций, использование в ИТ-инфраструктуре пользовательских ПК вызывает ряд сложностей:

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

Уйти от этих сложностей и сократить издержки, связанные с их решением, возможно благодаря применению технологии виртуализации рабочих мест сотрудников на базе инфраструктуры виртуальных ПК – Virtual Desktop Infrastructure ( VDI ). VDI позволяет отделить пользовательское ПО от аппаратной части – персонального компьютера, - и осуществлять доступ к клиентским приложениям через терминальные устройства.

VDI - комбинация соединений с удаленным рабочим столом и виртуализации. На обслуживающих серверах работает множество виртуальных машин, с такими клиентскими операционными системами, как Windows 7, Windows Vista и Windows XP или Linux операционными системами. Пользователи дистанционно подключаются к виртуальной машине своей настольной среды. На локальных компьютерах пользователей в качестве удаленного настольного клиента могут применяться терминальные клиенты, старое оборудование с Microsoft Windows Fundamentals или дистрибутив Linux.

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

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

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

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


Рис. 2.9.

Одним из наиболее известных тонких клиентов является терминал Sun Ray, для организации работы которого используется программное обеспечение Sun Ray Server Software . Для начала сеанса Sun Ray достаточно лишь вставить в это устройство идентификационную смарт-карту. Применение смарт-карты существенно повышает мобильность пользователя - он может переходить с одного Sun Ray на другой, переставляя между ними свою карточку и сразу продолжать работу со своими приложениями с того места, где он остановился на предыдущем терминале. А отказ от жесткого диска не только обеспечивает мобильность пользователей и повышает безопасность данных, но и существенно снижает энергопотребление по сравнению с обычными ПК, поэтому терминал Sun не имеет вентилятора и работает практически бесшумно. Кроме того, сокращение числа компонентов тонкого терминала уменьшает и риск выхода его из строя, а следовательно, экономит расходы на его обслуживание. Еще одно преимущество Sun Ray - это существенно расширенный по сравнению с обычными ПК жизненный цикл продукта , поскольку в нём нет компонентов, которые могут морально устареть.

Сегодня расскажу, что такое виртуализация, для чего она нужно и что она вам даст при ее внедрении. Рассмотрим понятия гипервизор. Разберем как это организованно у компании VMware на примере ее продукта ESXI 5.5. Основная задача любого бизнеса представленного в интернете это доступность ее сервисов. Сервесы как следует работают на железных серверах, представим ситуацию, что на одном мощном физическом сервере живет 5 разных сервисов. Все они имеют доступ к одной файловой систем, к ресурсам, они работают все хорошо. Проходит время и они начинают мешать друг другу, по разным причинам обновления по или самой ос. В итоге вы получаете что у вас из за одной службы перестаю работать нормально или вообще остальные 4. Виртуализация как раз помогает бизнесу консолидировать ресурсы и сделать каждый сервис не зависимым в рамках одного физического сервера.

Запомните золотое правило один сервер, один сервис

Физическая инфраструктура

Рассмотрим как работает приложение на физическом уровне. В современном мире если рассматривать железо на серверах, в 90 процентов случаем, оно не до загружено, в среднем процентов на 50-60, а это означает низкую утилизацию ресурсов. Примеров не рационального использования может служит служба DHCP , которая по определению легкая и может обслуживать хоть 1000 клиентов, будь она на Windows или Linux. В итоге запустив его на мощном сервере вы плохо его используете, недогружая, тратите лишнюю электро энергию, чем больше у вас таких серверов, тем мощнее нужна система охлаждения, мощнее система резервного электро питания, больше физического пространства в Unit. Короче как вы поняли всего больше, но когда пришла технология виртуализации, все поменялось, но об этом позже. Ниже представлена схема как работает приложение на физическом сервере.

Есть physical host, на котором стоит ОС и уже в ней крутится приложение. К physical host можно подключать ISCSI, NFS, FC системы хранения.

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

Пример из жизни: Есть сервер HP ему 4 года, ку него закончилась гарантия. В один из прекрасных дней на нем стали крошится диски, замена одного из таких стоила 800 баксов. За эти деньги были куплены 3 SSD Samsung evo 850, чувствуете разницу. В итоге на сервере были установлены все ssd и он был превращен в хост виртуализации, где на него переехали все те же виртуалки с теме же сервисами. А если бы был просто физический сервер, то все накрылось бы медным тазом. Виртуализация спасла нас от большого геморроя.

История виртуализации

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

Виртуальная инфраструктура выглядит следующим образом, есть ESXi host , на нем лежит прослойка hepervisor VMware vSphere по верх которого уже лежат виртуальные машины. И все подключения FC, NFS, ISCSI идут только к ESXi host, который отдает все это дело гипервизору, где он уже дальше перераспределяет все ресурсу страждущим.

Ниже представлена картинка как выглядит Physical архитектура и виртуализация vmware. В физической архитектуре, ос функцианирует по верх железного оборудования. Рассматривая виртуализацию vmware, тут уже все немного иначе. Отличие в прослойке гипервизора ESXI (VMware vSphare). VMware vSphare Позволяет запускать экземпляры виртуальных машин, эмулируя для них оборудование. В такой реализации будет другая схема общения с ресурсами. Об этом мы поговорим в будущем.

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

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

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

Слово «виртуализация» в последнее время стало какой-то «модой» в ИТ-среде. Все вендоры железа и ПО, все ИТ-компании в один голос кричат, что виртуализация – это круто, современно, и нужно всем. Но, давайте, вместо того, чтобы идти на поводу у маркетинговых лозунгов (а иногда бывают такими, что сам Геббельс умер бы от зависти), попытаемся посмотреть на это модное слово с точки зрения простых «технарей» и решить, нужно нам это или нет.

Типы виртуализации

Итак, начнем с того, что виртуализация делится на три типа:

  • Виртуализация представлений
  • Виртуализация приложений
  • Виртуализация серверов

С виртуализацией представлений знакомы многие из вас: самый яркий пример – это терминальные службы Windows Server. Терминальный сервер предоставляет свои вычислительные ресурсы клиентам, и клиентское приложение выполняется на сервере, клиент же получает только «картинку», то бишь представление. Такая модель доступа позволяет, во-первых – снизить требования к программно-аппаратному обеспечению на стороне клиента, во-вторых – снижает требования к пропускной способности сети, в-третьих – позволяет повысить безопасность. Что касается оборудования – то в качестве терминальных клиентов могут использоваться даже смартфоны или старые компьютеры вплоть до Pentium 166, не говоря уже о специализированных тонких клиентах. Существуют, к примеру, тонкие клиенты в форм-факторе розетки Legrand , монтируемые в короб. На клиентских рабочих местах достаточно установить только монитор, клавиатуру и мышь – и можно работать. Для работы с терминальным сервером не обязательно иметь высокоскоростное подключение к локальной сети, вполне достаточно даже низкоскоростного подключения с пропускной способностью 15-20 кбит/с, поэтому терминальные решения очень подходят фирмам, имеющим сильно распределенную структуру (к примеру – сети небольших магазинов). Кроме того, при использовании тонких клиентов значительно повышается безопасность, потому что пользователям можно разрешить запускать только ограниченный набор приложений, и запретить устанавливать свои собственные приложения. В принципе, то же самое можно сделать и с полноценными клиентскими рабочими станциями, но с использованием терминальных служб это будет сделать гораздо проще, особенно – не предоставляя доступ целиком к рабочему столу, а лишь публикуя отдельные приложения (возможно в Citrix Metaframe/PS, а так же в Windows Server 2008 и выше). Более того, никакую информацию нельзя будет скопировать на и с внешнего носителя, если это явно не разрешено в настройках терминальных служб. То есть проблема «вирусов на флэшках» отпадает автоматически. Еще одно неоспоримое достоинство – снижение сложности администрирования: упрощается обновление приложений (достаточно обновить их на сервере), и упрощается работа служб поддержки: к терминальной сессии любого пользователя можно подключиться удаленно без установки дополнительного ПО.
Недостатков у таких систем два: во-первых – необходимость покупки более мощных серверов (хотя это может быть дешевле, чем множество клиентских рабочих станций с ТТХ, достаточными для запуска приложений локально), во-вторых – появление единой точки отказа в виде терминального сервера. Эта проблема решается за счет использования кластеров, или ферм серверов, но это приводит к еще большему удорожанию системы.

Виртуализация приложений – достаточно интересное, и относительно новое направление. Рассказывать здесь подробно о нем я не буду, поскольку это тема для целой отдельной статьи. Коротко говоря, виртуализация приложений позволяет запускать отдельное приложение в своей собственной изолированной среде (иногда называется «песочница», sandbox). Такой способ помогает решить множество проблем. Во-первых – опять же безопасность: приложение, запущенное в изолированной среде – не способно нанести вред ОС и другим приложениям. Во-вторых – все виртуализированные приложения можно обновлять централизованно из одного источника. В-третьих – виртуализация приложений позволяет запускать на одном физическом ПК несколько разных приложений, конфликтующих друг с другом, или даже несколько разных версий одного и того же приложения. Более подробно о виртуализации приложений можно посмотреть, к примеру, в этом вебкасте: www.techdays.ru/videos/1325.html Возможно, однажды я даже напишу статью на эту тему.

И, наконец, перейдем к виртуализации серверов и остановимся на ней подробно.
Виртуализация серверов – это программная имитация с помощью специального ПО аппаратного обеспечения компьютера: процессор, память, жесткий диск, и т.д. Далее, на такой виртуальный компьютер можно установить операционную систему, и она будет на нем работать точно так же, как и на простом, «железном» компьютере. Самое интересное достоинство этой технологии – это возможность запуска нескольких виртуальных компьютеров внутри одного «железного», при этом все виртуальные компьютеры могут работать независимо друг от друга. Для чего это можно применять?
Первое, что приходит в голову – виртуализацию серверов можно использовать в целях обучения и в тестовых целях. К примеру, новые приложения или ОС можно протестировать перед запуском в промышленную эксплуатацию в виртуальной среде, не покупая специально для этого «железо» и не рискуя парализовать работу ИТ-инфраструктуры, если что-то пойдет не так.

Но кроме этого, виртуализация серверов может использоваться и в продакшн-среде. Причин тому много.
Виртуализация позволяет сократить количество серверов благодаря консолидации, то есть там, где раньше требовалось несколько серверов – теперь можно поставить один сервер, и запустить нужное число гостевых ОС в виртуальной среде. Это позволит сэкономить на стоимости приобретения оборудования, а так же снизить энергопотребление, а значит и тепловыделение системы – и, следовательно, можно использовать менее мощные, и, соответственно – более дешевые системы охлаждения. Но у этой медали есть и обратная сторона, и не одна. Дело в том, что при внедрении решений на базе виртуализации, скорее всего придется покупать новые сервера. Дело в том, что виртуальные сервера используют аппаратные ресурсы физического сервера, и, соответственно – понадобятся более мощные процессоры, большие объемы оперативной памяти, а так же более скоростная дисковая подсистема, и, скорее всего – большего объема. Кроме того, некоторые системы виртуализации (в частности – MS Hyper-V) требуют поддержки процессором аппаратных технологий виртуализации (Intel VT или AMD-V) и некоторых других функций процессора. Многие процессоры, которые выпускались до недавнего времени, в частности – все x86_32bit – этим требованиям не удовлетворяют, и поэтому от старых, хотя и вполне рабочих серверов придется отказаться. Однако же, один более мощный сервер скорее всего будет стоить намного дешевле нескольких менее мощных, да и старые сервера, скорее всего давно пора менять из-за морального устаревания.

Есть еще один очень важный момент: виртуализация северов позволяет до предела упростить администрирование инфраструктуры. Главное преимущество, которое оценят все сисадмины – это возможность удаленного доступа к консоли виртуальных серверов на «аппаратном», точнее – «вирутально-аппаратном» уровне, независимо от установленной гостевой ОС и ее состояния. Так, чтобы перезагрузить «зависший» сервер, теперь не нужно бежать в серверную, или покупать дорогостоящее оборудование типа IP-KVM-переключателей, достаточно просто зайти в консоль виртуального сервера и нажать кнопку «Reset». Помимо этого, виртуальные сервера поддерживают технологию моментальных снимков (о ней см. мою предыдущую статью), а так же бэкап и восстановление виртуальных систем намного легче.

Еще одно неоспоримое преимущество – ОС, запущенная внутри виртуальной машины (гостевая ОС) понятия не имеет, какое оборудование установлено на физическом сервере, внутри которого она работает (хост). Поэтому, при замене железа, при апгрейде или даже переезде на новый сервер необходимо обновить драйверы только на ОС самого хоста (хостовой ОС). Гостевые ОС по будут работать как и раньше, поскольку «видят» только виртуальные устройства.

Так же, хочется напомнить, что в виртуальной среде могут действовать особые правила лицензирования ПО (в частности, покупка лицензии на Microsoft Windows Server 2008 Enterprise позволяет использовать бесплатно четыре копии ОС в качестве гостевой, а Microsoft Windows Server 2008 Datacenter вообще разрешает использовать неограниченное число гостевых ОС при условии полного лицензирования по процессорам).

Еще нельзя не упомянуть о технологиях отказоустойчивости. Физические сервера, на которых запускаются виртуальные машины, могут быть объединены в кластер, и в случае отказа одного из серверов – автоматически «переезжать» на другой. Полной отказоустойчивости добиться не всегда возможно (в частности, в MS Hyper-V такой «внезапный переезд» будет выглядеть так же, и иметь такие же возможные последствия, как внезапное обесточивание сервера), но возможные простои сильно сократятся: «переезд» занимает несколько минут, тогда как ремонт или замена самого сервера может занять часы, а то и дни. Если же «переезд» виртуальных машин происходит в штатном режиме, то он может пройти совершенно незаметно для пользователей. Такие технологии у разных вендоров называются по-разному, к примеру у MS она называется «Live Migration», у VMware – Vmotion. Использование таких технологий позволит проводить работы, связанные с выключением сервера (к примеру – замену некоторых аппаратных компонент, или перезагрузку ОС после установки критических обновлений) в рабочее время и не выгоняя пользователей из их любимых приложений. Кроме этого, если инфраструктура построена соответствующим образом – запущенные виртуальные машины могут автоматически перемещаться на менее нагруженные сервера, или же наоборот «разгружать» наиболее загруженные. В инфраструктуре на базе технологий Microsoft для этого используются System Center Virtual Machine Manager и Operations Manager.

В заключение темы по виртуализации серверов - отмечу, что виртуализация не всегда одинаково полезна. В частности, не всегда будет хорошей идеей переносить в виртуальную среду высоконагруженные сервера, а особенно - высоконагруженные по дисковой подсистеме - это «тяжелые» СУБД, Exchange Server, особенно - роль Mailbox Server, и прочие высоконагруженные приложения. А вот сервера с меньшей нагрузкой (контроллеры доменов AD, WSUS, всевозможные System Center * Manager, веб-сервера) виртуализировать можно и даже нужно. Замечу, кстати, что именно с контроллерами доменов - очень желательно, чтобы хотя бы один из контроллеров был «железным», то есть не виртуальным. Нужно это потому, что для корректной работы всей инфраструктуры желательно, чтобы при запуске всех остальных серверов хотя бы один КД уже был доступен в сети.

Резюме

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

Достоинства такой системы:

  • Снижение требований к «железу» на стороне клиентов
  • Снижение требований к пропускной способности сети
  • Повышение безопасности
  • Значительное упрощение администрирования и поддержки

Недостатки:
  • Повышения требований к серверам, как по производительности, так и по надежности
  • Возможная единая точка отказа

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

Достоинства:

  • Безопасность
  • Простота администрирования - централизованное обновление и разграничение прав на доступ к приложениям

Недостатки:
  • Некоторая сложность в понимании технологий и в практическом внедрении.

Если же вам нужно освободить место в стойке, снизить энергопотребление систем, избавиться от «серверного зоопарка» - то ваше решение – виртуализация серверов.

Достоинства такого решения:

  • Экономия места в стойках
  • Снижение энергопотребления и тепловыделения
  • Упрощение администрирования
  • Широкие возможности по автоматизации развертывания и управления серверами
  • Снижение вынужденных и запланированных простоев системы за счет failover-кластеров и live migration
  • Позволяет (при использовании ОС Microsoft Windows Server) сэкономить на лицензиях на гостевые ОС

Недостатки – в принципе, те же, что и у терминальных решений:

  • Повышение требований к аппаратному обеспечению серверов
  • Возможная единая точка отказа – физический хост и хостовая ОС

Надеюсь, моя статья окажется для кого-то полезной. Благодарность и конструктивную критику, как всегда, можно высказать в комментариях.



Рекомендуем почитать

Наверх