[identity profile] nicky-boom.livejournal.com posting in [community profile] engineering_ru
Современный мир информационных технологий немыслим без Виртуализации "всего на свете" - серверов, операционных систем(ОС), сетевых плат(NIC-карт)-(Xsigo), дисковых массивов(NAS,RAID)-(HDS - Hitachi Data Systems).
Однако, мало кто задумывается над тем, что именно привнесла виртуализация в современный IT, и в чём на самом деле её недостатки, а где именно - достоинства.

1

Начать можно с того, что оказывается было нужно, чтобы появился термин паравиртуализация, который ничего специфического не означает, а лишь описывает некоторую подгруппу виртуализации, в которой исходный код гостевых ОС(тех, которые виртуализируются) был изменен таким образом, чтобы по предоставленному API(законченному набору функций) она могла обращаться к главной ОС(так называемой Хостовой) машине в случае наиболее неотложных операций(выделение памяти, страничный обмен, прерывания от внешних устройств, специфические функции отдельных приложений, требующие максимум hardware-ресурсов за короткий промежуток времени).
Паравиртуализация понадобилась неспроста, так как общеизвестно, что любая программа выполняется в виртуальной машине заведомо медленнее, чем на реальной физической hardware машине(сервере). Происходит это потому, что в виртуальной среде имеется дополнительный "слой", через который гостевая машина обращается к хостовой для выпонения любых операций и невозможно каким-либо образом исключить этот "избыточный" слой задержки. Так вот, придумали, что в случае таких "критических" операций на гостевой ОС - они (операции) передаются по прерыванию в главную хостовую машину и выполняются там, что позволяет значительно ускорить гостевую ОС.
3

Кроме того, широко обсуждается "мобильность" целой гостевой ОС, то есть возможность миграции(или переноса) по локальной или глобальной сети целой виртуальной машины(или аналога физического сервера), представленной в случае виртуализации в виде всего одного файла .VMDK, правда размером более чем несколько гигабайт. А что именно даёт такая мобильность?

Кроме достоинств, связанных с DR(Disaster Recovery-восстановление после пожара,стихийного бедствия) и BackUp(восстановление на случай кратковременного сбоя), сопряжена такая мобильность и с риском потери именно той актуальной копии данных, которая может понадобиться в любой момент. Другими словами, можно запутаться где именно что - поскольку копий виртуального сервера стало более одной, неизвестно в чём отличие одной от другой, и где наиболее "свежая".  Тот, кто хоть немного имел дело с виртуальными машинами и их "резервным копированием" - поймет, как это легко - запутаться в их множестве и/или актуальности на определенный момент в прошлом или будущем.

5

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


4

Вообще, сложилось у меня впечатление, что виртуализация может быть оправдана(или обусловлена) лишь наличием legacy-hardware(унаследованное железо) и inherited-software(доставшийся в наследство софт). Причем, серверное программное обеспечение, как правило, менее нуждается в виртуализации, в сравнении с настольным ПО, так как оно легко комбинируется в виде NT-сервиса или Unix-процесса (устанавливается с другими приложениями на одном и том же физическом сервере). Зачем же тогда его виртуализировать, заранее предполагая потерю его производительности, связанную с выполнением в виртуальным домене, в котором всё эмулируется - память, процессор, жёсткий диск, сетевая плата?

Date: 2014-01-31 05:40 pm (UTC)
From: [identity profile] vadim rumyantsev (from livejournal.com)
Именно этим. Раньше несколько мегабаксов за мейнфрейм не каждый мог заплатить, чтобы пользоваться этим благом цивилизации.

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

И кластеризация с виртуализацией – это не противоположные направления, а лучшие друзья :)
Edited Date: 2014-01-31 05:56 pm (UTC)

Date: 2014-01-31 06:04 pm (UTC)
From: [identity profile] 0004769cb704.livejournal.com
Имхо производительность процессоров выросла. Появились программные решения виртуализации. Постепенно развились до более-менее употребимых продуктов. Как раз которые послужили причиной продвижения поддержки на аппаратном уровне.

Date: 2014-01-31 06:31 pm (UTC)
From: [identity profile] ddsh-ripn.livejournal.com
Виртуализация -- это инструмент. Если вы не знаете, как его использовать -- его не надо использовать. Если ваша задача не решается с помощью виртуализации, то её не надо использовать. Если в вашем случае виртуализация неприемлема, то её не надо использовать.

Для ряда задач -- да, это хорошо.

>Однако, в чем проигрвает за счет этого такая виртуальная машина так это в производительности, не так ли?
Процитирую Михаила Давыдова из Яндекса с HTML5camp-2013: "Нам дешевле докупить ещё железяк, чем тратить время сотрудников на перенос кода с технологии на технологию."

>Как например с задачами реального времени, такими как зашитые в память маршрутизаторов и свичей?
А для ряда задач -- нет.

Date: 2014-01-31 07:02 pm (UTC)
From: [identity profile] vadim rumyantsev (from livejournal.com)
> Кластеризация с виртуализацией - термины, означающие антагонистические операции

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

> То есть экономическая составляющая тоже повинна в "широких массах". Получается что только компания Интел определяет когда виртуализации наступить надо, а когда отступить. А кроме Интелла больше никого нет?

Компания Интел определяет, что стоит на столах у широких масс.

> Однако, в чем проигрвает за счет этого такая виртуальная машина так это в производительности, не так ли?

Не обязательно. По-разному может получиться, в зависимости от характера нагрузки. Может в некоторых случаях быть и быстрее на виртуальной машине, чем на том же голом железе.

> Совсем ли хорошо - отказываться от особенностей конкретной железки в угоду универсальности запуска? Для всех ли задач приемлемо? Как например с задачами реального времени, такими как зашитые в память маршрутизаторов и свичей?

Не для всех, конечно.

Profile

engineering_ru: (Default)
Инженерия

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122232425 2627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 8th, 2026 03:56 am
Powered by Dreamwidth Studios