В основе облачных решений лежит технология виртуализации. Она позволяет разделить один физический сервер на несколько виртуальных машин (ВМ), каждая из которых работает автономно. Подробнее о том, как это работает, а также об истории развития виртуализации читайте в этой статье.
Виртуализация – это технология, которая позволяет предоставлять изолированные наборы вычислительных мощностей, абстрагировано от физического оборудования. Иными словами, с её помощью можно создавать отдельные, независимые друг от друга среды, которые используют мощности одного физического компьютера/сервера. Виртуальная машина может иметь любые характеристики (значения памяти, частоту процессора и др.), но в рамках ресурсов физического устройства. При этом она будет запускаться наподобие программы внутри основной операционной системы (она называется хост-система).
Виртуализация осуществляется с помощью специальной программы, которая называется гипервизор. С её помощью можно создавать и управлять виртуальными машинами. Количество ВМ, которые можно запустить, неограниченно. Самая важная особенность виртуализации в том, что гостевая операционная система думает, что работает на «аппаратной» платформе.
История виртуальных машин
Началом эпохи ВМ можно считать 70-е годы, когда появились мейнфреймы, например, IBM 360/67.
Тогда сервера ещё не были мобильными, но доступные и качественные телефонные линии, а также появление сетевых технологий позволили обеспечить виртуальное присутствие мейнфреймов в формате терминалов доступа (обычно буквенно-цифровых).
В 1985 году появились микропроцессоры. Встроенная в них опция виртуализации (как через гипервизоры, так и с реализацией на уровне ОС) была крайне важна для производительности вычислительных ресурсов, так как способствовала захвату процессорных тактов, которые терялись в процессе использования современных высокопроизводительных процессоров 3+ ГГц.
ВМ также дают дополнительную безопасность, целостность и удобство, потому что для их создания не требуются большие вычислительные затраты. Можно также расширить возможности виртуальных машин, внедрив опции эмулятора для интерпретаторов типа виртуальной машины Java, и даже функции полных симуляторов. Например, сделать возможным запуск Windows под MacOS или программ для Commodore 64 на современном компьютере под Windows.
Разделение времени
Если ещё больше углубиться в историю, то корни виртуализации можно обнаружить ещё в 1960-х, когда появилась концепция разделения времени. Она позволила сделать потребление ресурсов более эффективным за счет того, что машина выполняла вычисления одного пользователя, пока другой вводил данные. Таким образом сокращалось время простоя. Однако эта система сложная и не самая удобная. Намного практичнее оказалась пакетная обработка. Она позволила сократить время между запуском программ.
Однако все эти наработки сильно отличались от виртуализации, которая стала принципиально новым решением. Процессы каждого пользователя должны были храниться в машине и быстро заменяться при необходимости. Для подобного переключения требовалось ощутимое количество процессорных тактов. Для старых компьютеров это было проблемой, но устройства быстро совершенствовались. Сейчас облачные провайдеры и появление высокоскоростного интернета сделали использование виртуальных машин из общего пула удаленных ресурсов прекрасной альтернативой приобретению физического оборудования.
Виртуализация памяти
В 1960-х память на магнитных сердечниках стоила очень дорого. А мейнфреймы, встроенная память которых превосходила бы 1 Мбайт, встречались редко. Всё это способствовало развитию концепции виртуальной памяти, которая активируется небольшими дополнениями к аппаратной части благодаря набору инструкций. Выделяют страничную и сегментную организацию виртуальной памяти.
Страничная организация виртуальной памяти
Именно этот вариант характерен для современных ОС. Здесь оперативка делится на области (страницы) фиксированного размера. Пользовательский поток, исполняемый процессором, обращается к памяти через адрес виртуальной памяти, разделённый на номер страницы и смещение внутри неё.
С помощью буфера ассоциативной трансляции (TLB) номер виртуальной страницы преобразуется процессором в адрес соответствующей ей физической страницы. Если не получается это выполнить, понадобится дозаполнение буфера через обращения к таблице страниц (Page Walk). Это может осуществить либо сам процессор, либо ОС. Если страницу выгрузили из оперативной памяти, подкачка страницы выполняется с жёсткого диска в процессе обработки события Page fault. Когда происходит запрос на выделение памяти, ОС переносит страницы, к которым долго не обращались, на жёсткий диск. При этом критические данные остаются в оперативной памяти.
Сегментная организация
При таком варианте организации виртуальной памяти пространство делится на сегменты любого размера. За счёт этого можно разбить данные процесса на логические блоки. Для каждого сегмента назначаются права доступа пользователям и его процессам. Когда начинает загружаться процесс, часть сегментов отправляется в оперативную память, а другая часть – в дисковую.
В процессе загрузки системы создаётся таблица сегментов процесса, где для каждого сегмента указывается начальный физический адрес в оперативной памяти, размер, права доступа, признак модификации, признак обращения к этому сегменту за последний промежуток времени и прочие данные. Если один и тот же сегмент входит в виртуальные адресные нескольких процессов, в таблице окажутся ссылки на один и тот же участок оперативной памяти, куда данный сегмент загружен в единственном экземпляре.
Система с сегментной организацией работает примерно так же, как страничная: периодически случаются прерывания из-за отсутствия нужных сегментов в памяти, если требуется освободить память, часть сегментов выгружается, каждый раз, когда происходит обращение к оперативной памяти, происходит преобразование виртуального адреса в физический. При этом проверяется, разрешен ли доступ к сегменту.
В случае сегментной организации памяти виртуальный адрес представляется парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес образуется сложением начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.
Недостаток данного метода распределения памяти – фрагментация на уровне сегментов и более медленное, если сравнивать со страничной, преобразование адреса.
Технология виртуализации памяти позволила 1мБайту ОЗУ на IBM 360/67 поддерживать полноценное 24-битное адресное пространство (16 МБ), входящее в компьютерную архитектуру, а каждая ВМ могла получить свой набор виртуальной памяти.
Благодаря этому аппаратное обеспечение, созданное для работы одной программы или одной ОС стало доступно сразу для нескольких пользователей. Но из-за того, что оперативная память превосходит по скорости жесткие диски, быстродействие может быть снижено. Чтобы такого не происходило, в облаке Cloud4Y все ресурсы являются выделенными. То есть на каждую ВМ выделяются только свободные мощности, которые не будут использоваться другими машинами.
Появление виртуальных рабочих столов
Это следующий этап – виртуализация рабочего стола. Здесь следует вспомнить идею разделения времени, о которой говорилось ранее. На сервере моделируется рабочий стол, к которому пользователи могут подключаться через по сетевому соединению через клиентское ПО. Обычно оно является недорогим и его поддерживает любая ОС с обширным спектром дополнительных аппаратных и программных продуктов, в том числе VDI.
Виртуальное хранилище
Дальнейшее развитие касается виртуализации процессоров, хранилищ и приложений в облаке. Возможность быстро наращивать мощности без привлечения IT-специалистов, экономия за счет снижения капитальных затрат, освобождения физического пространства, на техническом обслуживании, простоях. Получение дополнительных сервисов, доступных только благодаря облачным технологиям.
Массовое внедрение облачного хранилища (как для бэкапов, так и в качестве основного хранилища) стало возможным благодаря тому, что скорость передачи данных проводных и беспроводных сетей достигает 1 Гбит/с и выше.
Виртуальные сети
«Сеть как услуга» (NaaS) набирает популярность и имеет тенденции к развитию благодаря дальнейшему внедрению виртуализации сетевых функций (NFV). Сетевая виртуализация даст возможность мобильным операторам расширить спектр услуг и поднять пропускную способность. Возможно, в ближайшие годы многие организации будут самостоятельно применять NFV в гибридных сетях.
Виртуализация снижает затраты
Это происходит благодаря тому, что капитальные затраты на инфраструктуру переходят в операционные расходы. Иными словами, вместо приобретения нового оборудования, найма персонала для его обслуживания и тому подобных затрат, остаётся только оплата работы поставщиков услуг.
Кроме того, благодаря совершенствованию систем и архитектурных решений, скачку производительности локальных сетей и сетей WAN (в том числе беспроводных), большая часть элементов IT-системы может быть виртуализирована.
Что даёт виртуализация:
- делает IT-процессы более гибкими, эффективными, удобными и производительными благодаря обширному набору функций.
- Является лучшей альтернативой физическим серверам, которая даёт ощутимые экономические преимущества.
- Способствует активной разработке программного обеспечения под виртуализированные среды.
- Внимание с «железа» переключилось на работу с данными из любого места в любое время.
Виртуализация становится основной стратегией развития IT-сферы. Мало какая другая инновация оказала столь большое влияние, как появление облачной инфраструктуры. И это влияние будет только расти.