Миргородская 7сессия / Операционные системы / %D0%9E%D0%A1_%D0%A1%D0%93%D0%A2%D0%A3%20v5
.pdfВшироком философско-методическом понимании идея виртуализации
—отделения логического представления процессов от способа их физической реализации — лежит в основе всех ИТ как таковых. В этом плане с формальной точки зрения практически к любому ИТ-продукту (и в первую очередь к опера-
ционным системам) можно применить определение “виртуализационный”.
В узком смысле (уже в рамках ИТ) данное понятие связано с созданием механизма виртуальных машин (ВМ) корпорацией IBM для своих mainframe
в начале 70-х гг. прошлого века. Это было обусловлено необходимостью од-
новременного запуска на одном компьютере нескольких разных ОС. Можно предположить, что решение такой задачи было не очень сложным, поскольку mainframe изначально проектировались как мощные системы коллективного доступа с высоким уровнем виртуализации и изоляции вычислительных ре-
сурсов. Не говоря уже о том, что вся эта аппаратно-программная платформа
(в том числе и разные версии ОС) принадлежала одному разработчику.
Появление компьютеров архитектуры x86 — сначала ПК, а потом и серверов — сделало идею ВМ просто неактуальной: в них был заложен принципиально иной (чем в mainframe) подход: один компьютер — одна ОС.
Однако к концу 90-х, по мере роста мощности х86-систем, значимость задачи запуска нескольких ОС на одном компьютере вновь стала возрастать. Пона-
чалу это касалось преимущественно вопросов разработки и тестирования ПО,
а потом на первый план вышли проблемы консолидации серверов в “боевом” режиме работы информационных систем.
Но в случае x86 поддержка виртуальных сред была весьма непростой задачей. Тут можно выделить несколько аспектов. Во-первых, эта архитектура не была изначально предназначена для подобного применения. Во-вторых,
речь шла не об одном vendor, которому нужно было решать свои внутренние технические проблемы, а о большом ИТ сообществе с непростыми конкурент-
ными отношениями, а также о массовом рынке (разделенном на аппаратные и программные сегменты), а значит — о необходимости поддержки огромного числа унаследованных приложений от десятков тысяч разработчиков.
171
Механизм ВМ понадобился для запуска на одном компьютере несколь-
ких разных ОС. На самом деле многозадачность ОС для x86-архитектуры яв-
ляется весьма и весьма условной. По большому счету, к ним лучше отно-
ситься как к однозадачным системам. Запускать в их среде несколько прило-
жений можно, но с точки зрения надежности и балансировки нагрузки это не нужно. Упрощенно говоря, традиционные ОС не обеспечивают нужного (для бизнес-применения) уровня изоляции приложений, и современные методы виртуализации (тут есть несколько разных подходов) направлены на повы-
шение этого уровня.
Средства виртуализации сегодня являются не самодостаточным видом порграммного обеспечения (альтернативой современных операционных сис-
тем), а некоторым дополнением и расширением традиционных ОС.
Общая тенденция развития ОС будет направлена именно на повышение уровня поддержки многозадачности систем и в том числе более высокой изо-
ляции приложений и к использованию новой модели распределенных вычис-
лений в “облачном” стиле (Cloud Computing). Такой процесс будет эволюци-
онным и весьма долгим. Таким образом, еще долго средства виртуализации будут интегрированы в ОС.
При всех преимуществах виртуализации, функционал нынешних ОС большинство пользователей вполне устраивает. В то же время включение средств виртуализации на уровне ядра ОС может привести к неоправданному
“утяжелению” систем в целом, в частности — негативно отразиться на их производительности. И вот что еще важнее. Прикладные программы создава-
лись и создаются для работы в среде традиционных ОС. Не говоря уже о проблеме поддержки унаследованных приложений, переход на чисто виртуа-
лизационную модель потребует радикального изменения всей схемы разра-
ботки пограммного обеспечения.
Вся эта проблема очень хорошо видна на примере развития технологий нынешнего лидера в области виртуализации — компании VMware. Целью создания ОС нового поколения — ОС для виртуальных дата-центров (virtual
172
datacenter OS, VDC OS) является не замена традиционных ОС, а вносение корректив в общую структуру комплекса програмного обеспечения.
VDC OS может функционировать только при использовании традици-
онных ОС, в то время как сами эти ОС могут применяться и без каких-либо дополнительных средств виртуализации. Иное дело, что обнародованные
VMware намерения обозначили другую ключевую проблему: кто будет иг-
рать лидирующую роль в этой новой структуре ПО (а точнее — всего про-
граммно-аппаратного комплекса)? До сих пор центром такой системы были именно ОС (под них делаются средства виртуализации).
На сегодняшний день в общей структуре виртуализационных средств выделяются три основных слоя:
виртуализация вычислительных сред (ресурсов центрального процессора, включая ОЗУ, и операционной системы);
виртуализация хранилищ данных;
виртуализация сетей.
Именно такая структура просматривается и в VDC OS; при этом видно,
что ключевым и наиболее проработанным на сегодня компонентом системы является слой ВМ. Он фактически уже представлен комплексом Virtual Infrastructure с ядром в виде EXS Server, в то время как остальные две части системы — vNetworks и vStorage — еще только предстоит создать.
В общем случае комплекс средств виртуализации вычислительных сред
(или виртуализации ПО) можно представить в виде нескольких основных технологических подходов, которые приведены в таблице.
Все это хорошо видно на примере развития современных средств виртуа-
лизации. VMware начала свою деятельность в 1999 г. с создания решения для ПК — Workstation. Затем появился вариант этой же технологии для серверов —
GSX Server (сейчас просто VMware Server), и лишь потом вышел качественно иной вариант специально для серверов — ESX Server. В такой же последова-
тельности двигалась и Microsoft: Virtual PC, на основе которой был разработан
Virtual Server, и уже емуна сменупришел качественно новый Hyper-V.
173
Использование виртуальных сред должно дать принципиально новые возможности гибкого управления ИТ-инфраструктурой: ВМ можно легко, без остановки их работы, переносить с одного компьютера на другой, выделять дополнительные вычислительные ресурсы в случае повышения нагрузки и т.
д. Развертывание ИТ-сервисов (в том числе по требованию бизнеса) теперь будет занимать вместо нескольких дней сколько-то часов или даже минут, ИТ-
сотрудники могут забыть о временах, когда приходилось работать в выходные дни или по ночам — профилактические мероприятия и ввод в действие новых сервисов теперь выполняются без остановки работы пользователей.
Сложность задачи управления динамической ИТ-инфраструктурой лег-
ко себе представить, если учесть, что речь идет о сугубо неоднородной сис-
теме, которая имеет дело с несколькими группами поставщиков (оборудова-
ния, ОС, приложений, ПО виртуализации), причем в каждой такой группе есть своя неоднородность (например, могут использоваться виртуальные среды разных разработчиков). Понятно, что в этой ситуации независимые (от конкретных гипервизоров) vendor (такие, как HP, IBM, CA) могут получить определенные преимущества в сфере управления ИТ по сравнению с по-
ставщиками, озабоченными продвижением своих базовых технологий.
4.2. Работа с виртуальной машиной VmWare
Виртуальная машина, или, иначе, VM,- это программа, которая эмули-
рует настоящий физический компьютер, притом таким изощренным образом,
что на этот компьютер можно установить операционную систему и приложе-
ния, которые будут работать, не подозревая о том, что работают они не на
"железе", а в программной среде. При этом виртуальная машина может соз-
давать различные аппаратные конфигурации (в некоторых пределах) - на-
пример, можно определить, сколько памяти получит та или иная виртуальная
174
машина [23]. Сама программа эмуляции, равно как и работающая на ней опе-
рационная система, называется виртуальной машиной, в то время как основ-
ная операционная система и физическая машина называются хост-системой.
Задействованные виртуальной машиной ресурсы или "вырезаются" из основного пула ресурсов (как, например, происходит с оперативной памя-
тью), или раздельно используются и хост, и виртуальной системами - как это происходит с процессором и съемными носителями.
Описываемые виртуальные машины предназначены для работы в каче-
стве хост-системы под Windows и в случае VMWare - под Linux, хотя много-
образие устанавливаемых систем значительно шире. Как правило, VMWare
показывает отличные результаты, но если не удается поставить какую-то систему или возникают сбои, то, как вариант, попробуйте VirtualPC - воз-
можно, она справится с вашими проблемами.
Если ОС корректно работает на архитектуре Intel, то она с максималь-
ной вероятностью установится и станет работать в VMWare. В VMWare хо-
рошо работают все версии DOS, Windows, а также основные дистрибутивы
Linux и QNX.
VMWare при создании виртуальной машины сразу же создает вирту-
альный жесткий диск, после чего можно добавить еще какое-то их количест-
во. Размер этого диска по умолчанию - 4 Гб, но этот размер просто изменить.
С точки зрения аппаратной части, этот диск может быть привязан к любому каналу IDE или SCSI. При необходимости изменитя этих настроек, их нужно изменять это до инсталляции ОС, поскольку впоследствии не все системы правильно поймут перестановку диска с одного шлейфа на другой.
С жесткими дисками связано три возможности. Во-первых, файл жест-
кого диска можно, подобно физическому устройству, "извлечь" из ВМ - то есть сохранить, переписать на другую систему и потом подключить, воссоз-
дав тем самым ВМ в первозданном виде.
Другая возможность - настроить "откат" изменений на диске. Обычно изменения будут храниться на диске так же, как это происходит на обычном
175
компьютере. Режим отката позволяет работать с системой, но после переза-
грузки все изменения на диске будут утеряны. Существует также промежу-
точный вариант, то есть при выключении ВМ будет задан вопрос, сохранить ли изменения.
Наконец, третий вариант - при создании машины сделать не виртуаль-
ный диск в файле, а отвести под диск настоящий раздел. Это несколько тру-
доемкий и не очень эффективный метод. Его назначение - установить ВМ,
настроить систему в виртуальном режиме, после чего перенести жесткий диск с настройками на другой компьютер и запускать систему в собственном режиме.
Несколько другая ситуация со сменными носителями. Самое главное отличие - это то, что под VMWare они могут использоваться одновременно и ВМ, и хостом. При этом несколько виртуальных машин тоже разделяют одно устройство, так что никаких проблем не возникает. Кроме того, в VMWare
есть возможность вместо физического устройства использовать образ диска -
как ISO для CD-ROM, так и образа флоппи-диска для соответствующего юнита.
Под VirtualPC все сделано слабее. Сменные носители монтируются,
подобно тому, как это происходит в Unix. После того как диск примонтиро-
ван, он захватывается ВМ и из других систем не доступен. Если пользователь извлекает носитель, устройство автоматически освобождается - и ВМ теряет его. Для того, чтобы она его нашла нужно щелкнуть правой кнопкой на ма-
ленькой пиктограмме в строке состояния и снова захватить CD ROM.
Настройка видео - ответственный участок в настройке виртуальной машины. По крайней мере, при настройке X-Windows - поскольку тут при-
дется сделать кое-что своими руками. VMWare и VirtualPC решают проблему видео разными путями, а именно: VirtualPC эмулирует видеокарточку S3 Trio 32/64 PCI, и поскольку любая существующая операционная система поддер-
живает эту карточку с вероятностью 99,99%, то таким образом проблема ви-
део решается удовлетворительно.
176
Совершенно другим путем пошла VMWare. Вместо эмуляции какой-то существующей карточки она предлагает собственный драйвер, входящий в пакет vmware-tools, устанавливаемый на виртуальной системе.
Настройка сетевых интерфейсов - это самое важное, поскольку вряд ли кто-то ставит FreeBSD или Linux с иной целью, чем задействовать сетевые возможности последних. Представляемые виртуальные машины имеют не-
сколько принципиально различных методов подключения к вашему компью-
теру и ко внешней сети. Рассмотрим (как более канонический вариант) схемы подключения vmware и потом перечислим отличия в VirtualPC.
Существует три основных режима подключения виртуальной машины
ксети: Bridged mode, NAT и Host Only, схематически показанные на рисунке.
1)Bridged mode дает виртуальной машине непосредственный доступ к внешнему интерфейсу хост-машины, на котором виртуальная машина самостоя-
тельно устанавливает или получает через DHCP собственные сетевые параметры
- такие как IP-адрес, маршрутизатор по умолчанию и тому подобные. Этот вари-
ант подключения нужно использовать для тех случаев, когда на VM устанавли-
ваются серверы, которые должныиметь определенные сетевые адреса.
2) NAT использует трансляцию адресов исходящего трафика. В этом случае адрес виртуальной машины, полученный по встроенному, в NAT DHCP, в момент пересылки на внешний протокол подменяется на адрес хост-
машины. При этом запрос помещается в таблицу запросов. Полученные отве-
ты от удаленных систем сверяются с этой таблицей - и по ряду параметров на-
ходится соответствие, по типу "в ответ на ваше письмо от такого-то какого-то рады вам сообщить…". При пересылке в VM адрес снова подменяется, так чтобы программа, запросившая информацию, получила пакеты на свой порт и адрес. Таким образом, пересылаются запросы и в серверные приложения, к
которым пользователь обычно не обращается напрямую, например DNS. NAT без проблем работает на исходящем трафике, но в случае входя-
щего запроса все запросы приходят на адрес хост-машины, поскольку во
177
внешнем мире все NAT-адреса были представлены одним адресом хост-
системы. Для того чтобы виртуальная машина могла получать входящий трафик, на хост-машине необходимо вручную установить правило ретранс-
ляции, смысл которого примерно следующий: "входящие пакеты на порту таком-то переводить в ВМ такую-то на порт такой-то (порт обычно тот же самый)". То есть доступ к серверу можно осуществлять и через NAT, но это требует дополнительной настройки. Для более подробной инструкции по на-
стройке NAT под VMWare ищите "Understanding NAT" в справочном посо-
бии и изучайте файл C:\WINNT\system32\vmnetnat.conf.
3) Третий режим Host Only представляет дела так, будто у хост-
машины в дополнение к имеющимся сетевым интерфейсам есть еще одна се-
тевая карточка (видимая в системе и без запуска VM), к которой подключает-
ся наша ВМ, образуя с хост-машиной маленькую подсеть. Таким образом,
можно устроить сеть на одном компьютере, что называется, не отходя от до-
ма. При этом совсем не обязательно судьба исходящих пакетов заканчивается на хост-машине - она может выступать как мост между подсетями и перево-
дить пакеты на другой интерфейс, например на модем. Таким образом ВМ может получать доступ к другим подсетям.
Настройка производительности. Несколько приложений, работаю-
щих параллельно, будут работать медленнее, чем по отдельности. В случае с виртуальными машинами процесс усугубляется тем, что все приложения на всех машинах разделяют один процессора. Поскольку виртуальные машины не используют особых средств разделения процессорного времени, кроме системных диспетчеров хост- и виртуальной машин, и учитывая, что наклад-
ные расходы современных диспетчеров составляют не более 1%, то для рас-
чета производительности можно применять обычную арифметику.
Например, для нормальной работы Windows 2000 нужен Pentium II/III 600. Для работы Linux-сервера в терминальном режиме требуется Pentium
178
300. Просто складывая эти числа, получается искомый 1 ГГц, на котором обе системы будут поддерживать прежнюю производительность.
В меню Settings > Preferences на закладке Priority VMWare есть уста-
новка приоритетов, помогающая тонко настроить приоритет виртуальной машины при распределении циклов процессора. Global обозначает настройку для всех виртуальных машин. Локальная настройка относится только к те-
кущей виртуальной машине. Grabbed input соответствует режиму, когда вир-
туальная машина получает управление и захватывает ввод пользователя; Ungrabbed, соответственно,- фоновому режиму виртуальной машины (даже если ее окно и находится на переднем плане).
Особое внимание нужно обратить на память, учитывая, что она выде-
ляется статически, в момент запуска виртуальной машины. Поскольку на хост-системе установлена виртуальная память, можно загрузить несколько виртуальных машин - и под все будет распределена память. Но поскольку вся она (на 90%) будет в файле подкачки, производительность значительно упа-
дет. Для рассчета памяти нужно брать только физическую память. Например,
современные Linux-системы с Gnome для комфортной работы требуют около
128 Мб памяти. Плюс в хост-режиме под NT5 планируется обрабатывать гра-
фику, что тоже требует около 128 Мб. А так же несколько приложений, таких как браузер, почтовый клиент, текстовый редактор. Таким образом, система с
256 Мб будет показывать несколько замедленную реакцию в требовательных к памяти приложениях, а вот установка 256 + 128 Мб обеспечит полный комфорт в работе.
Диспетчером задач позволяет просмотреть фактическую нагрузку на процессор и распределение памяти и показать, сколько требуют те или иные системы при запуске тех или иных приложений. В случае соответсвия ком-
пьютера требованиям VM можно получить максимум производительности и удовольствия от этой технологии. Для выхода виртуальной машины VMWare
нужно нажать левые <Alt + Ctrl>. Эта же комбинация вернут к хост-системе из полноэкранного виртуального режима.
179
5.ЗАЩИТА ОТ СБОЕВ И НЕСАНКЦИОНИРОВАННОГО ДОСТУПА
5.1.Принципы построения систем безопасности
Компьютерная безопасность охватывает вопросы физического и адми-
нистративного контроля, а также автоматических видов контроля. Рис. 56 дает представление о сфере применения автоматизированных средств обеспечения безопасности [3]. Рассмотрим виды угроз, которым подвержены устройства,
обеспечивающие возможности обмена информацией между компьютерами.
Компьютерная система |
||
|
|
(4) Необходимо обеспечение |
|
|
безопасности важных файлов |
|
Данные |
(безопасность файлов) |
|
|
|
|
|
(3) Необходимо |
|
|
обеспечение |
|
|
безопасной пере- |
(1) Необходим |
|
дачи данных по |
контроль доступа к |
|
сети |
данным (защита) |
|
(безопасность |
|
|
сетей) |
|
Процессы, представляющие |
|
|
пользователей |
|
Защита |
|
|
|
(2) Необходим контроль доступа |
|
|
к компьютерным устройствам |
|
|
(аутентификация пользователя) |
Пользователи, делающие запросы
Компьютерная система |
Данные |
Процессы, представляющие |
пользователей |
Защита |
Рис 56 Область охвата системной безопасности К безопасности вычислительной системы выдвигаются такие четыре
требования:
1. Конфиденциальность - информацию от компьютерных систем могут получать только авторизованные лица. Доступ подобного рода включает в себя вывод на печать, на экран и другие формы предоставления инфор-
мации, в том числе само обнаружение существования объекта.
2. Целостность - Предполагает, что свойства компьютерной системы могут изменять только авторизованные лица. Под изменением подразумева-
180