ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.03.2024
Просмотров: 9
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
5
Лекция
Технология виртуализации
Технологии виртуализации сейчас применяются во многих сферах ИТ, как в произ- водственной среде, так и домашними пользователями для самых разных задач. Несколько одновременно запущенных виртуальных систем на одной физической машине существен- но повышают гибкость ИТ-инфраструктуры и увеличивают эффективность использования аппаратных ресурсов. Тестирование программного обеспечения — один из самых распро- страненных вариантов использования для платформ виртуализации. Неудивительно, ведь виртуальные машины обладают множеством полезных свойств, благодаря которым значи- тельно сокращается время разработки и тестирования и повышается эффективность этих процессов.
При разработке программного обеспечения программистам приходится тестиро- вать программный продукт на одной платформе на протяжении практически всего време- ни разработки, и лишь в конце проводить его тестирование в различных ОС
и пользова- тельских средах
(так называемое
тестирование конфигураций
).
К тому же, в распоряжении сотрудников отделов тестирования и разработчиков на- ходится не так много физических компьютеров, а на одной машине, в одной операцион- ной системе, нельзя, например, поставить одновременно несколько версий одного про- граммного продукта, с которым должна взаимодействовать разрабатываемая программа.
Вследствие этого, в программном обеспечении, встречаются ошибки, связанные с особен- ностями пользовательских конфигураций.
Одной из самых серьезных проблем при разработке ПО является тот факт, что на ранних этапах разработки, сборки программного продукта в процессе своей работы могут причинить непоправимый вред системе (например, различные драйвера устройств). По- этому приходится планировать восстановление операционных систем и их настроек после сбоев из резервных копий и тратить значительное время на их восстановление.
Особенности работы некоторых программных продуктов требуют проверки их ра- боты при определенных условиях (различный объем оперативной памяти, пропускная способность канала связи, частота процессора и прочее). В этом случае в распоряжении команды тестировщиков может не оказаться необходимой аппаратной конфигурации. При выяснении системных требований продукта к таким факторам эта необходимость может оказаться критичной.
Проблемы, встречающиеся в процессе разработки и тестирования программных продуктов:
6
- необходимость испытаний программного обеспечения в количестве пользова- тельских конфигураций большем, чем в распоряжении для тестирования физических ком- пьютеров;
- большие временные затраты на развертывание и настройку тестовых стендов, со- держащих множество различных компонентов, между которыми обеспечивается сетевое взаимодействие;
- большие временные затраты на создание резервных копий систем и их конфигу- раций, а также восстановление после сбоя вследствие нестабильной работы сборок про- граммного продукта;
- невозможность воспроизведения дефекта, найденного тестировщиком, на машине разработчика и потеря времени на его поиск, исправление;
- необходимость в испытаниях программы в условиях аппаратной среды, которой нет в распоряжении команды тестирования;
- необходимость тестирования программного продукта в условиях, требующих бы- строго переключения между пользовательскими конфигурациями.
Для решения этих проблем может использоваться
технология виртуализации
Технологии виртуализации, грамотно примененные в процессе разработки и тести- рования, могут существенно снизить трудозатраты и значительно повысить эффектив- ность процесса, что положительно скажется на качестве выпущенного программного про- дукта. Так конкретно виртуализация позволяет это сделать:
- тестировщики в процессе работы с виртуальными машинами могут создавать не- ограниченное количество пользовательских конфигураций на своей физической машине, запуская, по необходимости, наиболее подходящую в данный момент;
- созданные однажды многомашинные конфигурации могут быть настроены с по- мощью инструментов платформ виртуализации и просто перенесены на другое оборудо- вание, при этом их повторная настройка не требуется;
- резервная копия виртуальной машины может быть создана путем копирования папки или создания мгновенного снимка состояния («скриншота»);
- после нахождения ошибки тестировщиком, виртуальная машина с повторяющим- ся дефектом может быть передана разработчику, при этом высвобождаются ресурсы на дальнейшее тестирование;
- необходимые условия для тестирования могут быть быстро созданы за счет гиб- кой настройки параметров аппаратной среды виртуальной машины (объем оперативной памяти, число виртуальных процессоров, ограничение ресурсов);
7
- возможность быстрого отката к сохраненному состоянию виртуальной машины с необходимой конфигурацией или переключение между несколькими одновременно рабо- тающими гостевыми системами уменьшает время на тестирование;
Виртуальная машина
с установленным в ней программным обеспечением пред- ставляет собой весьма гибкий объект, который может быть как быстро развернут на
кли-
ентских машинах
из централизованного хранилища шаблонов пользовательских конфигу- раций, так и максимально гибко настроен в отношении параметров гостевой системы и ее окружения. Легкая переносимость на другое оборудование и независимость от аппаратной платформы – ключевое достоинство виртуальных машин.
Таким образом,
технология виртуализации может быть использоваться для тес-
тирования профессионального программного обеспечения
1.1 Определение и общие понятия технологии виртуализации
В широком смысле, понятие виртуализации представляет собой сокрытие настоя- щей реализации какого-либо процесса или объекта от истинного его представления для того, кто им пользуется. Продуктом виртуализации является нечто удобное для использо- вания, на самом деле, имеющее более сложную или совсем иную структуру, отличную от той, которая воспринимается при работе с объектом. Иными словами, происходит отделе- ние представления от реализации чего-либо.
В компьютерных технологиях под термином «
виртуализация
» обычно понимается абстракция вычислительных ресурсов и предоставление пользователю системы, которая
«инкапсулирует» (скрывает в себе) собственную реализацию. Проще говоря, пользователь работает с удобным для себя представлением объекта, и для него не имеет значения, как объект устроен в действительности.
Виртуализация
представляет собой возможность запуска на физическом компью- тере несколько изолированных друг от друга виртуальных машин, каждая из которых представляет собой полноценный компьютер, работающий на отдельном физическом компьютере.
Виртуальная машина
представляет собой набор программных средств, имитирую- щих работу реального компьютера. По сути, работа с виртуальной машиной ничем не от- личается от работы с реальной, и в связи с этим создается полная иллюзия работы с ре- альным компьютером.
8
Виртуальные машины используются для:
- работы в режиме «без угрозы» - для системы можно запускать потенциально не- желательные программы;
- исследования работы ПО в разных операционных системах (ОС);
- эмуляции различных архитектур (например, эмулятор игровой приставки);
- разграничения и оптимизации использования ресурсов мощных компьютеров;
- эмуляции компьютерной сети с помощью нескольких виртуальных машин;
- упрощения управления данными — виртуальные машины могут просто мигриро- вать с одного ПК на другой.
- тестирования и отладки системного ПО;
- запуска «устаревших» версий программ.
Виртуальная машина имеет свой BIOS, оперативную память, жесткий диск (выде- ленные из реального компьютера) и способна эмулировать периферийные.
Прежде всего, виртуальная машина представляет собой папку с файлами; в зависи- мости от конкретной реализации их набор и количество могут меняться, но в основе лю- бой виртуальной машины лежит один и тот же минимальный набор файлов. Это, прежде всего, файл с конфигурацией виртуальной машины и виртуальный жесткий диск.
Виртуальный жесткий диск виртуальной машины представляет собой файл, содер- жащий образ диска виртуальной машины. Он схож по структуре и содержанию с жестким диском реального компьютера. Виртуальный жесткий диск представляет наибольшую ценность, потому что его потеря равносильна отказу работы жесткого диска реального компьютера.
Следующим по важности файлом является конфигурация виртуальной машины, которая содержит описание эмулируемой аппаратной части виртуальной машины и выде- ленных ей ресурсов реального компьютера. К таким ресурсам можно отнести виртуаль-
9 ную оперативную память, которая является выделенной областью оперативной памяти реального компьютера.
Количество виртуальных машин на реальном компьютере ограничено размерами жесткого диска, а количество одновременно запущенных виртуальных машин ограничи- вается в основном количеством доступной оперативной памяти.
Операционную систему физического компьютера относительно операционной сис- темы виртуальной машины принято называть
основной
или
«хостовой»
операционной системой, а систему, установленную на виртуальную машину, принято называть
«госте- вой»
операционной системой.
На рисунке 1 показано, как «гостевая» и «хостовая» операционные системы отно- сятся друг к другу.
Рисунок 1.1 — Архитектура системы виртуальных машин
На самом деле виртуальная машина не имеет доступа к физическим ресурсам ре- ального компьютера.
«Хостовая» операционная система и монитор виртуальных машин разделяют меж- ду собой права на управление аппаратными компонентами компьютера, при этом «хосто- вая» операционная система занимается распределением ресурсов аппаратных компонен- тов между собственными приложениями, включая и монитор виртуальных машин.
«Гостевые» операционные системы в пределах выделенных им ресурсов управляют работой «своих» приложений.
10
«Гостевые» системы и «хостовая» операционная система работают одновременно, обмениваются данными и участвуют в сетевом взаимодействии не только с «хостовой» операционной системой, но и с внешней по отношению к физическому компьютеру се- тью.
Виртуальная машина позволяет запускать отдельное приложение в своей собствен- ной изолированной среде. Использование виртуальных машин решает проблему безопас- ности: приложение, запущенное в виртуальной машине, не способно нанести вред реаль- ной операционной системе и другим приложениям. Таким образом, реальный компьютер огражден от возможных непреднамеренных действий пользователей.
Виртуальные машины позволяют запускать одновременно на одном реальном ком- пьютере несколько различных операционных систем или конфликтующих друг с другом приложений.
На реальном компьютере может быть несколько виртуальных машин, каждая из которых имеет свою собственную аппаратную конфигурацию, например, количество про- цессоров, объем оперативной памяти и жесткого диска, наличие сетевых плат и других аппаратных компонентов. Эти ресурсы резервируются виртуальной машиной за счет фи- зических ресурсов аппаратного обеспечения компьютера.
Возможности виртуальных машин достаточно широки:
- возможность использования программ, которые не поддерживаются «хостовой» операционной системой реального компьютера;
- защищенность информации на реальном компьютере, так как виртуальная маши- на работает изолированно от реального компьютера всевозможные вирусы и вредоносное программное обеспечение сможет лишь повредить «гостевую» операционную систему виртуальной машины, не затронув реальную систему;
- возможность экспериментирования с системой. Например, изменение параметров реестра с целью их изучения. Любые изменения в «гостевой» операционной системе вир- туальной машине не нанесет вреда «хостовой» операционной системе реального компью- тера;
- большие возможности обучения работе с различными операционными системами и программами. Например, можно создать несколько виртуальных машин с различными операционными системами, и учиться работе с ними;
- эмуляция компьютерной сети с помощью нескольких виртуальных машин;
11
- простота создания резервной копии операционной системы. Не придется созда- вать образы диска, всего лишь требуется скопировать папку с файлами виртуальной ма- шины;
1.2 Обзор программных средств наиболее известных виртуальных
машин
Виртуальных машин, или иначе платформ виртуализации, имеется множество.
На рынке программного обеспечения имеется ряд программных средств для ис- пользования виртуальных машин:
- VMware;
- VMware Player;
- VirtualBox;
- VM Microsoft;
- Virtual PC;
- Parallels.
VMware. Это решение в случае, когда необходимо проверить какой-либо про- граммный продукт на работоспособность в различных операционных системах и их кон- фигурациях. Огромным преимуществом данной системы является возможность создания мгновенных снимков, или «снапшотов» (snapshot, снимок файловой системы), операцион- ной системы и дисков, которые впоследствии могут быть использованы для отката со- стояния операционной системы и содержимого дисков. Также этот продукт поддерживает создание деревьев «снапшотов», что невероятно полезно при конфигурировании системы с различными надстройками (к примеру, различными версиями браузера Internet Explorer).
VMware Player — как видно из его названия это «проигрыватель» виртуальных машин. Предназначен для использования виртуальных машин, заранее подготовленных в какой-либо из систем виртуализации VMware (например, Workstation). В нём может быть запущено не более одной виртуальной машины (но таких проигрывателей может быть за- пущено несколько). Также есть возможность создания «снапшотов». Однако он бесплатен, что является большим плюсом.
VirtualBox . Одна из самых распространенных программ для виртуализации являет- ся VirtualBox. Над созданием этого приложения трудилась не одна группа разработчиков, и далеко не одна IT- компания (рисунок 1.2).