СПОСОБ УСТАНОВКИ, НАСТРОЙКИ, АДМИНИСТРИРОВАНИЯ И РЕЗЕРВНОГО КОПИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
METHOD OF SOFTWARE INSTALLATION, SET-UP, ADMINISTRATION AND BACK-UP

Данное изобретение относится к системам управления программным обеспечением инфраструктуры информационных технологий предприятия (далее - ИТ-инфраструктуры). Такие системы решают задачи установки операционных систем и приложений, обновления программ, устранения последствий сбоев, ошибочных действий пользователей и действия вредоносных программ, резервного копирования программ и данных. Изобретение может быть использовано на любом предприятии, которое в своей хозяйственной деятельности использует информационные технологии, включая аппаратные средства, такие как персональные компьютеры и серверы, компьютерные сети, и программные средства, такие как операционные системы, приложения, информационные системы, в том числе распределенные информационные системы.
Производители программного обеспечения, как правило, поставляют свои продукты в виде дистрибутивов. Дистрибутивы программного обеспечения включают дистрибутивы операционных систем, пакетов приложений, а также отдельных приложений. Дистрибутив программного обеспечения содержит файлы, составляющие программное обеспечение, и специальную программу-установщик. Перед началом использования программного обеспечения следует этап установки дистрибутива на целевой компьютер. В процессе установки дистрибутива программа-установщик осуществляет копирование файлов дистрибутива на постоянный носитель информации (как правило, жесткий диск) целевого компьютера, создание дополнительных папок и файлов на постоянном носителе информации целевого компьютера, настройку устанавливаемого программного обеспечения путем создания или модификации конфигурационных файлов.
В отличие от приложений, операционная система содержит аппаратно-зависимую и аппаратно-независимую части. К аппаратно-зависимой части относятся драйверы устройств и конфигурационные файлы, состав и содержание которых изменяются в зависимости от архитектуры и набора аппаратных устройств целевого компьютера. В некоторых операционных системах (таких как Linux или Solaris) вся аппаратно-зависимая конфигурационная информация распределена по множеству текстовых файлов на постоянном носителе информации. В операционных системах семейства Windows аппаратно-зависимая конфигурационная информация находится в специальном хранилище - реестре, состоящем из множества иерархически вложенных ячеек информации - ключей. В большинстве случаев аппаратно-зависимая конфигурационная информация изначально формируется программой-установщиком дистрибутива операционной системы в процессе установки. С этой целью дистрибутив содержит набор драйверов устройств и сценарии обнаружения устройств и настройки конфигурационной информации в зависимости от найденного оборудования. Процесс установки дистрибутива обычно инициируется системным администратором, однако, может быть инициирован автоматически, например, посредством сетевой загрузки компьютеров, оборудованных расширением РХЕ (Preboot Execution Environment) базовой системы ввода-вывода.
До заявленного изобретения установка, настройка и администрирование программного обеспечения ИТ-инфраструктуры предприятий, как правило, осуществлялись системными администраторами непосредственно на территории предприятия. При этом системным администраторам приходится поддерживать одновременно множество различающихся систем, что снижает производительность труда системного администратора и соответственно повышает стоимость его услуг либо снижает рентабельность его деятельности.
В процессе администрирования программного обеспечения компьютера в ИТ-инфраструктуре предприятия системные администраторы создают различные конфигурации программного обеспечения. Конфигурация включает использованный дистрибутив операционной системы, модифицированные системным администратором конфигурационные файлы, установленные системным администратором приложения. В целом конфигурация определяется дистрибутивом операционной системы и набором файлов, измененных на целевом компьютере с момента установки дистрибутива операционной системы. В настоящее время существуют системы контроля ревизий программного обеспечения, которые позволяют сохранять историю изменений набора файлов, однако, до заявленного изобретения системы контроля ревизий применялись, в основном, в проектах по разработке программного обеспечения. Системы контроля ревизий сохраняют информацию в репозиториях, структура которых позволяет хранить не только текущее состояние файлов, но и историю их изменения. Распределенные системы контроля ревизий, такие как Mercurial или Git, имеют преимущество перед централизованными, такими как CVS или Subversion, так как позволяют создавать множество репозиториев и синхронизировать изменения между репозиториями. Особенностью системы Mercurial является подсистема Mercurial Queues, дающая возможность создавать последовательности снимков изменений (патчей). Снимок изменений формируется путем сравнения файлов, находящихся в текущей рабочей папке и какой-либо ревизии из репозитория. После формирования снимок изменений может быть автоматически применен к рабочей папке либо его применение может быть автоматически отменено.
В настоящее время технологии установки, настройки, администрирования и резервного копирования программного обеспечения ИТ-инфраструктуры предприятий развиваются в сторону виртуализации и аутсорсинга (вынесения за пределы обслуживаемого предприятия) услуг поддержки и администрирования. Виртуализация позволяет повысить качество управления ИТ-инфраструктурой за счет создания и повторного использования готовых образов виртуальных машин, применения автоматизированных средств управления виртуальными машинами, администрирования и обновления программного обеспечения, резервного копирования программного обеспечения и данных. При этом образ виртуальной машины, включающий файловую систему, содержащую гостевую операционную систему, установленные приложения и данные, запускается под управлением хостовой операционной системы реальной машины. Для изоляции систем и отделения программного обеспечения от реальных аппаратных ресурсов используется дополнительный слой программного обеспечения - монитор виртуальных машин или гипервизор. В настоящее время существует множество вариантов мониторов виртуальных машин, такие как VmWare ESXi или Xen. В настоящее время виртуализация становится одним из важнейших инструментов аутсорсинга услуг поддержки и администрирования ИТ-инфраструктуры, что позволяет возложить эти обязанности на специализированные предприятия, обладающие необходимыми технологиями и кадрами. Однако эффективность деятельности таких вынесенных системных администраторов существенно зависит от наличия технических средств установки, настройки, администрирования и резервного копирования программного обеспечения на компьютерах обслуживаемого предприятия.
Известен способ установки программного обеспечения, в котором изначально создаются образы виртуальных машин, которые затем автоматически конфигурируются и переносятся на компьютеры предприятия (Патент США №7577722). МПК G06F 15/177; G06F 15/173; G06F 9/00; G06F 9/455. Опубликовано 18.08.2009. Способ состоит в установке на каждом целевом компьютере монитора виртуальной машины, после чего конфигурационная информация виртуальной машины и ее образ могут быть перенесены с сервера доставки на целевой компьютер либо посредством компьютерной сети, либо через переносной носитель информации.
Недостатком указанного способа является необходимость установки на каждом целевом компьютере монитора виртуальной машины и запуска программного обеспечения под его управлением. Использование монитора виртуальной машины снижает эффективность работы системы, так как монитор является промежуточным звеном в каждом обращении программного обеспечения к аппаратным ресурсам компьютера. Кроме того, виртуальная машина работает не с реальными устройствами компьютера, а с их виртуальными заменителями, эмулируемыми монитором виртуальной машины. В некоторых случаях виртуальные заменители устройств могут ограничивать их функциональность.
Известен способ резервного копирования (архивирования) данных в виртуальном прикладном окружении (заявка на патент РФ №2008105764 МПК G06F 9/455. Опубликовано 20.08.2009, патент США №7434218) МПК G06F 9/455; G06F 12/00; G06F 9/45; G06F 9/46. Опубликовано 07.10.2008), заключающийся в том, что формируют виртуальное прикладное окружение, причем это виртуальное прикладное окружение включает в себя данные, прикладную программу, подходящую для работы с этими данными, и операционную систему, затем сохраняют виртуальное прикладное окружение на накопителе информации. Недостатками данного способа является недостаточно высокая эффективность за счет того, что виртуальное прикладное окружение необходимо формировать каждый раз при выполнении резервного копирования, а также за счет того, что способ не использует средств управления множеством снимков (ревизий) одних и тех же данных.
Известен способ создания образов машин, включающих операционную систему, прикладное программное обеспечение и данные пользователя, и переноса указанных образов между физическими компьютерами, а также между виртуальными машинами и физическими компьютерами (Патент США №7356679) МПК G06F 15/177. Опубликовано 08.04.2008). Основной технической проблемой, решаемой данным способом, является сохранение работоспособности программного обеспечения при смене аппаратной конфигурации компьютера. Упомянутый известный способ заключается в модификации образов машин при их переносе с одной аппаратной платформы на другую, для чего анализируется состав аппаратных ресурсов исходного и целевого компьютера и в образе машины производятся изменения в соответствии со сменой конфигурации до запуска операционной системы. По своей технической сущности данный способ является наиболее близким аналогом к заявленному изобретению и принят в качестве прототипа.
Недостатком указанного способа является сильная зависимость от конкретной операционной системы, входящей в состав машины. Аппаратно-зависимая информация в каждой операционной системе представлена по-разному, что вынуждает создавать специализированные программные средства модификации образов для каждой возможной операционной системы. Кроме того, данный способ может не учитывать недокументированные возможности операционных систем.
Указанный способ также включает этапы, состоящие в том, что создают снимки изменений файловой системы для переноса конфигурационной информации и установленных приложений между образами машин. Такой подход позволяет создать базовые образы машин и затем повторно использовать инженерные решения, применяя снимки изменений к базовым образам машин и получая таким образом различные конфигурации программного обеспечения. Однако недостатком известного способа является отсутствие эффективного механизма создания, хранения и управления снимками изменений, в том числе и поддержания истории изменений самих снимков.
Указанные недостатки устраняются заявленным способом установки, настройки, администрирования и резервного копирования программного обеспечения.
Основной задачей данного изобретения является создание методов установки, настройки, администрирования и резервного копирования программного обеспечения ИТ-инфраструктуры предприятия, не зависящих от типа используемой операционной системы и аппаратных средств целевого компьютера, которые позволили бы автоматизировать множество рутинных действий системных администраторов, обеспечить более высокий уровень унификации и повторного использования инженерных решений, их надежность и модифицируемость.
Основной технический результат заявленного изобретения заключается в повышении эффективности установки, настройки и администрирования программного обеспечения за счет создания повторно используемых образов программного обеспечения компьютеров ИТ-инфраструктуры предприятия, обеспечения переносимости указанных образов между компьютерами с различными аппаратными средствами, устранения зависимости процедур переноса указанных образов от используемой операционной системы, а также в повышении эффективности создания, хранения и управления снимками изменений файловой системы указанных образов. Данный технический результат достигается заявленным способом установки, настройки и администрирования программного обеспечения ИТ-инфраструктуры предприятия, включающей, по меньшей мере, один целевой компьютер, причем ИТ-инфраструктура предприятия соединена посредством глобальной сети с ИТ-инфраструктурой поставщика услуг, включающей, по меньшей мере, один или несколько серверов виртуальных машин, сервер управления, хранилище образов виртуальных машин. Заявленный способ включает следующие этапы:
- создают образ виртуальной машины, включающий файловую систему и установленную гостевую операционную систему,
- создают репозиторий распределенной системы контроля ревизий, включающий все или часть файлов упомянутой гостевой операционной системы,
- устанавливают на виртуальную машину требуемое программное обеспечение, выполняют настройку программного обеспечения, при этом после каждого значимого этапа (настройки отдельной подсистемы или установки отдельного приложения) формируют снимок изменений с помощью системы контроля ревизий и сохраняют его в упомянутом репозитории,
- формируют первый переносной носитель информации, на котором размещают дистрибутив упомянутой гостевой операционной системы,
- формируют второй переносной носитель информации, на котором размещают копию упомянутого репозитория,
- выполняют установку целевой операционной системы на целевой компьютер предприятия с использованием дистрибутива операционной системы на первом переносном носителе информации,
- копируют упомянутый репозиторий со второго переносного носителя на постоянный носитель целевого компьютера,
- последовательно применяют снимки изменений из копии упомянутого репозитория к файловой системе целевого компьютера с использованием системы контроля ревизий.
В отличие от прототипа, заявленный способ не зависит от используемой операционной системы, так как не требует наличия специальных средств модификации аппаратно-зависимой части операционной системы. Данную роль выполняет стандартная программа-установщик дистрибутива операционной системы. При этом независимость от состава аппаратных средств компьютера достигается заявленным способом за счет того, что репозиторий системы контроля ревизий создается после установки дистрибутива операционной системы и не включает изменений аппаратно-зависимой части операционной системы; применение снимков изменений к файловой системе целевого компьютера осуществляется также после установки дистрибутива операционной системы, когда сформирована аппаратно-зависимая часть операционной системы.
В частном случае реализации заявленного способа для создания упомянутого образа виртуальной машины создают пустую файловую систему и устанавливают на указанную файловую систему гостевую операционную систему, используя дистрибутив операционной системы.
В другом частном случае реализации заявленного способа для создания упомянутого образа виртуальной машины копируют готовый образ виртуальной машины с уже установленной гостевой операционной системой, сохраненный ранее в хранилище образов виртуальных машин.
Согласно одному варианту реализации заявленного способа, используя упомянутый образ виртуальной машины, запускают виртуальную машину на сервере виртуальных машин посредством системы управления мониторами виртуальных машин; используя удаленный доступ, устанавливают программы распределенной системы контроля ревизий непосредственно внутри файловой системы образа виртуальной машины; используют удаленный доступ для этапа установки и настройки программного обеспечения и формирования последовательности снимков изменений под управлением гостевой операционной системы; сохраняют образ виртуальной машины и содержащийся в нем репозиторий в хранилище образов виртуальных машин средствами сохранения текущего состояния образа виртуальной машины, входящими в состав системы управления мониторами виртуальных машин.
В частных случаях реализации упомянутого варианта удаленный доступ к виртуальной машине на сервере виртуальных машин может осуществляться посредством удаленного терминала или удаленного рабочего стола.
Согласно другому варианту реализации заявленного способа устанавливают программы распределенной системы контроля ревизий в файловую систему хостовой машины, под управлением хостовой операционной системы монтируют упомянутый образ виртуальной машины с помощью петлевого (loopback) драйвера файловой системы, осуществляют этап установки и настройки программного обеспечения и формирования последовательности снимков изменений под управлением хостовой операционной системы, сохраняют образ виртуальной машины и содержащийся в нем репозиторий в хранилище образов виртуальных машин.
В частном случае реализации заявленного способа на втором переносном носителе информации дополнительно размещают загрузочный образ вспомогательной операционной системы и программы системы контроля ревизий, после установки целевой операционной системы на целевой компьютер загружают вспомогательную операционную систему, используют систему контроля ревизий под управлением вспомогательной операционной системы для применения последовательности снимков изменений, загружают целевую операционную систему.
В указанном частном случае дополнительно при необходимости осуществляют администрирование программного обеспечения целевого компьютера, для этого вносят изменения в упомянутый образ виртуальной машины, создают и сохраняют в упомянутом репозитории последовательность снимков изменений с использованием системы контроля ревизий, формируют переносной носитель информации, на котором размещают загрузочный образ вспомогательной операционной системы, программы системы контроля ревизий и копию упомянутого репозитория системы контроля ревизий, загружают вспомогательную операционную систему на целевом компьютере, используют систему контроля ревизий под управлением вспомогательной операционной системы для применения последовательности снимков изменений, загружают целевую операционную систему.
В другом частном случае реализации заявленного способа на втором переносном носителе информации дополнительно размещают дистрибутив системы контроля ревизий, после установки целевой операционной системы устанавливают программы системы контроля ревизий на постоянный носитель целевого компьютера, используют систему контроля ревизий под управлением целевой операционной системы для применения последовательности снимков изменений.
В указанном частном случае дополнительно при необходимости осуществляют администрирование программного обеспечения целевого компьютера, для этого вносят изменения в упомянутый образ виртуальной машины, создают и сохраняют в упомянутом репозитории последовательность снимков изменений с использованием системы контроля ревизий, формируют переносной носитель информации, на котором размещают копию упомянутого репозитория системы контроля ревизий, подключают переносной носитель информации к целевому компьютеру, используют систему контроля ревизий под управлением целевой операционной системы для синхронизации репозиториев и применения последовательности снимков изменений.
В указанном частном случае при необходимости осуществляют удаленное администрирование программного обеспечения целевого компьютера, для этого вносят изменения в упомянутый образ виртуальной машины, создают и сохраняют в упомянутом репозитории последовательность снимков изменений с использованием системы контроля ревизий, устанавливают сетевое соединение между целевым компьютером и хранилищем образов виртуальных машин, используют систему контроля ревизий под управлением целевой операционной системы для сетевой синхронизации репозиториев и применения последовательности снимков изменений.
В частном случае реализации заявленного способа в качестве первого переносного носителя информации используют сетевой файловый сервер, при этом начальную загрузку целевого компьютера осуществляют, по меньшей мере, одним из следующих способов: с использованием загрузочного диска, содержащего сетевую программу-установщик дистрибутива целевой операционной системы; с использованием сетевой загрузки с получением загрузочного образа с сетевого сервера загрузки, при этом в загрузочный образ включают сетевую программу-установщик дистрибутива целевой операционной системы.
Также в частном случае реализации заявленного способа в качестве второго переносного носителя информации используют сетевой файловый сервер.
Также в частном случае реализации заявленного способа первый и второй переносной носитель информации размещают на одном физическом носителе информации.
Также в частном случае реализации заявленного способа вместо одного или нескольких снимков изменений используют сценарий или программу, осуществляющую необходимое изменение файловой системы, сохраняют такой сценарий или программу в специально созданной папке в файловой системе образа виртуальной машины и также помещают в упомянутый репозиторий системы контроля ревизий.
Второй технический результат заявленного изобретения заключается в обеспечении резервного копирования и повышении коэффициента доступности программного обеспечения компьютеров ИТ-инфраструктуры предприятия. Данный технический результат достигается заявленным способом резервного копирования программного обеспечения ИТ-инфраструктуры предприятия, заключающимся в том, что программное обеспечение целевого компьютера устанавливают и настраивают в соответствии с заявленным способом установки, настройки и администрирования программного обеспечения, причем на втором переносном носителе информации дополнительно размещают дистрибутив системы контроля ревизий и после установки целевой операционной системы устанавливают программы системы контроля ревизий на постоянный носитель целевого компьютера, затем в процессе эксплуатации целевого компьютера осуществляют периодическую синхронизацию изменений между файлами целевого компьютера и хранимым образом виртуальной машины, отличающимся тем, что с помощью системы контроля ревизий формируют снимок изменений в локальном репозитории целевого компьютера, распространяют снимок изменений в репозитории в хранимом образе виртуальной машины и применяют снимок изменений к образу виртуальной машины; в случае отказа или сбоя программного или аппаратного обеспечения целевого компьютера предприятия осуществляют запуск соответствующего хранимого образа виртуальной машины на сервере виртуальных машин в ИТ-инфраструктуре поставщика услуг посредством системы управления мониторами виртуальных машин и обеспечивают удаленный доступ к виртуальной машине посредством глобальной компьютерной сети.
В частном случае реализации заявленного способа распространение снимка изменений осуществляют посредством глобальной компьютерной сети, для чего устанавливают сетевое соединение между целевым компьютером и хранилищем образов виртуальных машин, и распространяют снимок изменений в репозиторий в хранимом образе виртуальной машины с помощью средств сетевой синхронизации репозиториев распределенной системы контроля ревизий.
В варианте реализации указанного частного случая, используя хранимый образ виртуальной машины, посредством системы управления мониторами виртуальных машин запускают виртуальную машину на сервере виртуальных машин, устанавливают сетевое соединение между целевым компьютером и виртуальной машиной, распространяют снимок изменений в репозиторий в образе виртуальной машины с помощью средств сетевой синхронизации репозиториев распределенной системы контроля ревизий и сохраняют образ виртуальной машины и содержащийся в нем репозиторий в хранилище образов виртуальных машин средствами сохранения текущего состояния образа виртуальной машины, входящими в состав системы управления мониторами виртуальных машин.
В другом частном случае реализации заявленного способа распространение снимка изменений осуществляют с использованием переносного носителя информации, для чего сохраняют копию упомянутого локального репозитория системы контроля ревизий на переносном носителе информации, подключают переносной носитель информации к хранилищу образов виртуальных машин и распространяют снимок изменений в репозиторий в хранимом образе виртуальной машины с помощью средств синхронизации репозиториев распределенной системы контроля ревизий.
В варианте реализации указанного частного случая, используя хранимый образ виртуальной машины, посредством системы управления мониторами виртуальных машин запускают виртуальную машину на сервере виртуальных машин, подключают переносной носитель информации к виртуальной машине, распространяют снимок изменений в репозиторий в образе виртуальной машины с помощью средств синхронизации репозиториев распределенной системы контроля ревизий и сохраняют образ виртуальной машины и содержащийся в нем репозиторий в хранилище образов виртуальных машин средствами сохранения текущего состояния образа виртуальной машины, входящими в состав системы управления мониторами виртуальных машин.
Таким образом, данное изобретение позволяет использовать ИТ-инфраструктуру поставщика услуг как средство обслуживания программного обеспечения ИТ-инфраструктуры предприятия, повышающее эффективность деятельности ИТ-специалистов за счет унификации и повторного использования инженерных решений, а также за счет создания, хранения и управления снимками изменений в системе контроля ревизий. При этом образы виртуальных машин создаются, настраиваются и администрируются в вынесенной ИТ-инфраструктуре поставщика услуг и затем переносятся на целевые компьютеры в ИТ-инфраструктуре предприятия. Образ виртуальной машины аналогичен образу программного обеспечения целевого компьютера, за исключением аппаратно-зависимой части операционной системы, в процессе эксплуатации это соответствие поддерживается периодическим резервным копированием посредством распределенной системы контроля ревизий.
Сущность заявленного изобретения поясняется рисунками, на которых представлены: блок-схема предпочтительной реализации системы для установки, настройки, администрирования и резервного копирования программного обеспечения ИТ-инфраструктуры предприятия в соответствии с заявленным способом (фиг.1), структура программного обеспечения сервера виртуальных машин (фиг.2).
Предпочтительная реализация системы для осуществления заявленного изобретения представлена на фиг.1.
Для осуществления заявленного изобретения в различных вариантах используются следующие известные средства:
- система управления виртуальной ИТ-инфраструктурой Eucalyptus (http://eucalyptus.com/);
- платформа для виртуальной ИТ-инфраструктуры VmWare vSphere
(http://www.vmware.com/ru/products/vsphere/):
- система управления виртуальной ИТ-инфраструктурой VmWare vCenter Server (http://www.vmware.com/products/vcenter-server/):
- мониторы виртуальных машин VmWare ESXi
(http://www.vmware.com/products/esxi/), Xen (http://www.xen.org/);
- распределенная система контроля ревизий Mercurial (http://mercurial.selenic.com/).
Система включает ИТ-инфраструктуру поставщика услуг 111 и ИТ-инфраструктуру предприятия 112.
ИТ-инфраструктура поставщика услуг содержит по меньшей мере, один компьютер 101, называемый сервером управления поставщика услуг. Сервер управления содержит программы системы управления пользователями, служащие для регистрации и создания учетных записей пользователей, аутентификации и авторизации пользователей, учета принадлежащих пользователям образов виртуальных машин. Система управления пользователями имеет web-интерфейс, с помощью которого пользователи могут обращаться к ней с любого компьютера, подключенного к глобальной сети. Примером такой системы управления пользователями является компонент Cloud controller системы Eucalyptus. Кроме того, сервер управления содержит программы системы управления мониторами виртуальных машин, служащие для выполнения операций создания, запуска и управления виртуальными машинами, причем данные операции могут выполняться как автоматически, так и по командам пользователей. Система управления мониторами виртуальных машин имеет web-интерфейс, с помощью которого пользователи могут обращаться к ней с любого компьютера, подключенного к глобальной сети. Примерами системы управления мониторами виртуальных машин могут являться компоненты VmWare vCenter Server и Eucalyptus Cluster Controller.
В некоторых вариантах реализации программное обеспечение сервера управления поставщика услуг может быть распределено по двум или более компьютерам в ИТ-инфраструктуре поставщика услуг.
ИТ-инфраструктура поставщика услуг также содержит кластер, в котором находится, по меньшей мере, один компьютер 102 с установленным монитором виртуальных машин и программным агентом системы управления монитором виртуальных машин, называемый сервером виртуальных машин. В качестве мониторов виртуальных машин могут использоваться существующие на рынке программные продукты, такие как Xen или VmWare ESXi. Агент системы управления мониторами виртуальных машин предоставляет возможности запуска, останова, перезагрузки, подключения пользовательских данных и управления виртуальными машинами по командам, получаемым от сервера управления 101 по внутренней компьютерной сети поставщика услуг. Примером агента системы управления мониторами виртуальных машин является Eucalyptus Node Controller.
http://aws.amazon.com/ec2/
В различных вариантах реализации кластер серверов виртуальных машин может находиться в ИТ-инфраструктуре поставщика услуг, быть арендованным у стороннего поставщика вычислительных мощностей или комбинировать данные варианты. В частности, система Eucalyptus содержит внешний прикладной программный интерфейс (Application Programming Interface, API) для создания, запуска и управления виртуальными машинами в кластере виртуальных машин, совместимый с известным интерфейсом Amazon EC2 (). Кроме того, используются совместимые образы виртуальных машин Amazon Machine Image (AMI). Благодаря этому реализация заявленного способа с использованием системы Eucalyptus позволяет прозрачно комбинировать варианты собственного и арендованного кластера виртуальных машин.
Структура программного обеспечения сервера виртуальных машин 102 представлена на фиг.2. Сервер содержит хостовую операционную систему 201, монитор виртуальных машин 202, агента системы управления монитором виртуальных машин 203, и один или несколько запущенных образов виртуальных машин 204. Каждый образ виртуальной машины 204 содержит гостевую операционную систему 205; одно или несколько приложений 206.
В зависимости от варианта реализации образ виртуальной машины может также содержать программы распределенной системы управления ревизиями 207.
http://aws.amazon.com/s3/
ИТ-инфраструктура поставщика услуг также содержит хранилище образов виртуальных машин 103. Хранилище 103 содержит готовые базовые образы виртуальных машин, служащие для быстрого создания новых образов, и специализированные образы виртуальных машин, созданные пользователями. Хранилище 103 соединено с сервером управления поставщика услуг 101 и серверами виртуальных машин 102 посредством внутренней компьютерной сети поставщика услуг. В частности, система Eucalyptus содержит сервис Walrus, реализующий хранилище образов виртуальных машин и совместимый с сервисом Amazon S3 (). В варианте реализации с арендой кластера серверов виртуальных машин у стороннего поставщика вычислительных мощностей хранилище образов виртуальных машин 103 может также находиться у стороннего поставщика.
ИТ-инфраструктура поставщика услуг также содержит хранилище программного обеспечения 104. Хранилище 104 содержит дистрибутивы операционных систем и приложений. Хранилище программного обеспечения 104 соединено с сервером управления поставщика услуг 101 и серверами виртуальных машин 102 по внутренней компьютерной сети поставщика услуг, а в отдельных вариантах реализации также и с компьютерами предприятия 107 посредством глобальной сети. Доступ к хранилищу 104 осуществляется посредством стандартного протокола файловых серверов, такого как HTTP, FTP или CIFS. Для реализации такого доступа могут использоваться различные известные программные средства, такие как сервер Apache или сервер ProFTPD.
В частных случаях реализации ИТ-инфраструктура поставщика услуг может не содержать хранилища программного обеспечения 104, либо хранилище 104 может не содержать все используемые дистрибутивы операционных систем и приложений. В этом случае соответствующие дистрибутивы могут быть доступны посредством глобальной сети с файловых серверов поставщиков программного обеспечения либо данные дистрибутивы могут быть получены посредством переносных носителей информации.
ИТ-инфраструктура предприятия содержит целевые компьютеры предприятия 107. Каждый целевой компьютер предприятия 107 содержит целевую операционную систему 108, соответствующую гостевой операционной системе ассоциированной виртуальной машины; одно или несколько приложений 109. Компьютер предприятия может также содержать программы распределенной системы управления ревизиями 110.
Связь между ИТ-инфраструктурой поставщика услуг и ИТ-инфраструктурой предприятия осуществляется посредством глобальной компьютерной сети 106 и коммутаторов 105. В альтернативных реализациях глобальная компьютерная сеть 106 может быть заменена на выделенный цифровой канал связи, либо беспроводной канал связи, либо их комбинацию. Коммутаторы 105 могут быть заменены на машрутизаторы или комбинацию коммутаторов и маршрутизаторов при условии, что такая комбинация обеспечивает возможность передачи данных, по меньшей мере, между сервером управления поставщика услуг 101 и компьютерами предприятия 107. В случае реализации варианта доставки дистрибутивов программного обеспечения по сети из хранилища программного обеспечения 104 необходимо обеспечить также возможность передачи данных между хранилищем 104 и компьютерами предприятия 107.
Предпочтительный вариант осуществления заявленного способа установки, настройки и администрирования программного обеспечения ИТ-инфраструктуры предприятия раскрывается следующим примером. Для доступа к серверу управления поставщика услуг пользователь осуществляет регистрацию в системе управления пользователями на сервере управления поставщика услуг 101. В результате регистрации создается учетная запись пользователя, которая содержит, по меньшей мере, идентификатор пользователя, аутентификационную информацию, в качестве которой может выступать пароль или любой другой известный вид аутентификационной информации, данные об образах виртуальных машин, принадлежащих пользователю. Данные учетной записи пользователя сохраняются в базе данных системы управления пользователями. Зарегистрированный пользователь осуществляет аутентификацию для входа в систему, для чего указывает известные ему идентификатор пользователя и аутентификационную информацию. Доступ пользователя к серверу управления и создание сеанса пользователя разрешается только в случае совпадения его аутентификационной информации с данными в учетной записи пользователя. В рамках работы с сервером управления пользователь может открывать множество сеансов, при этом в начале каждого сеанса повторяется этап аутентификации пользователя.
Далее пользователь посредством системы управления мониторами виртуальных машин осуществляет выбор аппаратной конфигурации виртуальной машины, включающей архитектуру и тип процессора, число процессоров, объем оперативной памяти, количество и объем дисковых накопителей, состав, параметры и количество периферийных устройств. Пользователь выбирает устройства из списка доступных виртуальных устройств, который предоставляет ему сервер управления поставщика услуг.При использовании системы Eucalyptus выбирают только тип и число процессоров, а также размер оперативной памяти. В случае использования VmWare vSphere и vCenter Server также выбирают виртуальные аппаратные устройства, эмулируемые монитором виртуальных машин VmWare ESXi.
Далее пользователь осуществляет выбор и установку дистрибутива операционной системы в виртуальную машину. Пользователь выбирает дистрибутив из числа доступных дистрибутивов, которые находятся в хранилище программного обеспечения 104, либо использует иной дистрибутив, доступный посредством глобальной сети или переносного носителя. В случае использование монитора виртуальных машин VmWare может использоваться программа VmWare Workstation для создания новой виртуальной машины и установки в нее операционной системы с использованием стандартного дистрибутива. В случае использования монитора виртуальных машин Xen необходимо создать образ диска виртуальной машины. Например, в операционной системе Linux Debian, для этого создают пустой образ диска с помощью утилиты dd, затем создают на нем файловую систему Ext3 с помощью утилиты mkfs, затем осуществляют монтирование созданной файловой системы в одну из папок корневой файловой системы, используя петлевой (loopback) драйвер файловой системы и утилиту mount, после этого осуществляют установку операционной системы с использованием утилиты debootstrap.
В одном из вариантов реализации заявленного способа пользователь осуществляет запуск образа виртуальной машины на одном из серверов виртуальных машин 102 средствами системы управления мониторами виртуальных машин. Система управления мониторами виртуальных машин предоставляет возможность запуска программного обеспечения из образа виртуальной машины в выделенном виртуальном пространстве, включающем процессор, запоминающее устройство, дисковые накопители и виртуальные периферийные устройства, выбранные пользователем. При необходимости система управления мониторами виртуальных машин может запускать множество виртуальных машин на одном сервере.
Дальнейший доступ пользователя к образу виртуальной машины 204 осуществляют средствами удаленного доступа, входящими в операционную систему, например эмуляция удаленного терминала ssh или удаленный рабочий стол Virtual Network Computing (VNC) в операционной системе Linux или Remote Desktop Protocol (RDP) в операционных системах семейства Windows. Используя удаленный доступ, пользователь устанавливает программы распределенной системы контроля ревизий 207 в образ виртуальной машины, после чего на основе файловой системы образа виртуальной машины пользователь создает исходный репозиторий системы контроля ревизий. Например, при использовании системы Mercurial это осуществляют командой hg init. Как результат выполнения данной операции в каждой папке файловой системы формируется скрытая подпапка. hg, в которой хранится история изменений. Добавление снимка текущей системы в репозиторий осуществляют командами hg add, hg commit. Таким образом, репозиторий системы контроля ревизий с историей изменений хранится внутри образа виртуальной машины. Ряд систем управления мониторами виртуальных машин и, в частности, система VmWare vSphere, имеют средства сохранения текущего состояния образа виртуальной машины, посредством которых пользователь сохраняет образ и содержащийся в нем репозиторий в хранилище образов виртуальных машин 103.
В альтернативном варианте реализации запуск виртуальной машины не осуществляется, а формирование репозитория системы контроля ревизий пользователь осуществляет под управлением хостовой операционной системы, в которой смонтирован образ виртуальной машины с помощью петлевого драйвера файловой системы, используя упомянутые выше команды системы контроля ревизий. Данный вариант не требует средств сохранения состояния виртуальной машины и может быть использован совместно с системой Eucalyptus, в которой такие средства отсутствуют. Созданный образ виртуальной машины, содержащий репозиторий системы контроля ревизий, в данном варианте пользователь также сохраняет в хранилище образов виртуальных машин 103. Дополнительным преимуществом данного способа является отсутствие проблемы открытых и заблокированных файлов. Такие файлы могут появляться в процессе работы операционной системы, которая в ряде случаев может отказывать системе контроля ревизий в доступе к таким файлам и тем самым препятствовать созданию снимка изменений. При работе с образом без запуска виртуальной машины такие ограничения доступа возникать не могут.
Далее пользователь последовательно осуществляет модификацию конфигурационных файлов операционной системы, установку и настройку приложений. Для формирования снимков изменений перед началом каждого смыслового шага (настройки отдельной подсистемы или установки отдельного приложения) пользователь вызывает команду hg qnew системы Mercurial, а после окончания соответствующего шага - команду hg qrefresh. В результате репозиторий системы контроля ревизий содержит серию снимков изменений, каждый из которых может быть в отдельности применен или отменен средствами системы контроля ревизий.
В некоторых частных случаях реализации изменение конфигурации системы может затронуть также аппаратно-зависимую часть операционной системы. В этом случае дальнейшее применение снимка изменений на другой аппаратной платформе может вызвать конфликтные изменения файлов. В этом случае помимо или вместо снимка изменений, пользователь создает сценарий или программу, выполняющие соответствующее изменение конфигурации. Такие сценарий или программу пользователь сохраняет в специально созданной папке в файловой системе образа виртуальной машины и также помещает в репозиторий системы контроля ревизий.
Некоторые файлы операционной системы содержат временную переменную информацию, такую как протоколы работы системных служб. Например, в операционной системе Linux такие файлы, как правило, располагаются в папке /var/ log. Поскольку хранение истории таких файлов не требуется и может быть неэффективным, в частных случаях реализации заявленного способа возможно отключить контроль ревизий для таких файлов и папок. В частности, в системе Mercurial для этого достаточно удалить соответствующие файл или папку из репозитория командой hg remove.
Некоторые операционные системы, такие как Microsoft Windows, используют для хранения конфигурационной информации не текстовые файлы, а специальное хранилище - реестр, состоящий из множества ирерархически вложенных ячеек информации - ключей. Для эффективного хранения истории изменений реестра в частных случаях реализации заявленного способа можно использовать экспорт реестра в текстовое представление с помощью команды reg export. Результатом экспорта является текстовый файл, содержащий всю информацию реестра. Данный текстовый файл затем сохраняется в репозитории системы контроля ревизий. Затем, после применения снимков изменений из репозитория необходимо импортировать измененный текстовый файл в реестр с помощью команды reg import.
Далее пользователь осуществляет формирование установочного образа машины. С этой целью он копирует на первый переносной носитель дистрибутив операционной системы. В качестве первого переносного носителя может также использоваться готовый носитель, созданный поставщиком операционной системы и распространяемый им. Далее пользователь создает на втором переносном носителе загрузочный диск вспомогательной операционной системы. Средства создания таких загрузочных дисков присутствуют во многих операционных системах, в частности операционная система Linux Mandriva Flash устанавливается на внешний накопитель типа Flash и запускается непосредственно с данного накопителя. Далее пользователь устанавливает на второй переносной носитель программы системы контроля ревизий и копирует репозиторий системы контроля ревизий.
В качестве альтернативного варианта реализации пользователь не создает на втором переносном носителе информации загрузочного диска вспомогательной операционной системы, а вместо установки программ системы контроля ревизий пользователь записывает на второй переносной носитель дистрибутив системы контроля ревизий,
Повторно используемый образ виртуальной машины создан. Далее пользователь может многократно осуществлять перенос готового образа виртуальной машины на целевые компьютеры в ИТ-инфраструктуре предприятия. С этой целью пользователь вначале осуществляет загрузку целевого компьютера с первого переносного носителя информации и запускает программу-установщик, входящую в дистрибутив операционной системы. Такие программы-установщики в настоящее время включаются в дистрибутив любой операционной системы. Программа-установщик осуществляет форматирование постоянного носителя информации целевого компьютера, копирование необходимых файлов операционной системы на постоянный носитель информации, настройку аппаратно-зависимой части операционной системы, установку входящих в дистрибутив приложений и, возможно, некоторые другие процедуры начального конфигурирования операционной системы. Существующие программы-установщики позволяют выполнять установку как в интерактивном режиме, запрашивая у пользователя необходимую для настройки информацию, так и в автоматическом режиме. В последнем случае необходимая информация должна быть записана непосредственно на первом переносном носителе в виде конфигурационного файла или сценария. После окончания установки и настройки аппаратно-зависимой части операционной системы пользователь осуществляет загрузку вспомогательной операционной системы со второго переносного носителя информации. Затем пользователь копирует репозиторий системы контроля ревизий на постоянный носитель целевого компьютера. В случае использования системы Mercurial для этого необходимо скопировать содержимое всех специальных подпапок. hg в репозитории системы контроля ревизий в соответствующие папки на постоянном носителе. Затем пользователь последовательно применяет снимки изменений из репозитория с помощью команды hg qpush.
В случае реализации, когда вспомогательная операционная система не помещена на второй переносной носитель информации, после установки и загрузки основной операционной системы на целевом компьютере пользователь монтирует второй переносной носитель и запускает программу-установщик системы контроля ревизий. Поставщики систем контроля ревизий предоставляют различные формы программы-установщика в зависимости от типа основной операционной системы. В частности, это может быть исполняемая программа или специально оформленный программный пакет, например DEB в Linux Debian или RPM в Linux Mandriva. Программа-установщик осуществляет копирование необходимых программ на постоянный носитель. Затем пользователь копирует репозиторий системы контроля ревизий на постоянный носитель целевого компьютера. В случае использования системы Mercurial для этого необходимо скопировать содержимое всех специальных подпапок. hg в соответствующие папки на постоянном носителе. Затем последовательно применяют снимки изменений из репозитория с помощью команды hg qpush.
В частных случаях реализации вместо, по меньшей мере, одного из переносных носителей информации пользователь может использовать сетевые хранилища информации, включая хранилище программного обеспечения 104 или файловые серверы поставщиков программного обеспечения. В случае если источником дистрибутива операционной системы является файловый сервер, начальную загрузку целевого компьютера осуществляют одним из следующих способов: с использованием загрузочного диска, содержащего сетевую программу-установщик дистрибутива операционной системы; с использованием сетевой загрузки (например, расширения РХЕ базовой системы ввода-вывода) с получением загрузочного образа с сетевого сервера загрузки, при этом в загрузочный образ включают сетевую программу-установщик дистрибутива операционной системы.
В другом частном случае реализации вместо первого и второго переносного носителя информации может использоваться один физический носитель информации.
В случае если очередной снимок изменений затрагивает аппаратно-зависимые файлы операционной системы, применение снимка может оказаться неудачным, о чем система контроля ревизий выдаст соответствующее сообщение. В этом случае вместо применения снимка изменений исполняют сценарий, сохраненный в специальной папке в репозитории системы контроля ревизий. Если такой сценарий отсутствует, вручную осуществляют действия, аналогичные тем, которые были произведены над виртуальной машиной для выполнения соответствующего шага изменения конфигурации, после чего возвращаются к автоматической процедуре применения снимков изменений.
После применения всех снимков изменений целевой компьютер готов к работе. В подавляющем большинстве случаев действия пользователя по установке повторно используемого образа виртуальной машины на целевой компьютер могут быть выполнены существенно быстрее, чем установка системы заново. Это достигается благодаря тому, что повторно используемый образ уже содержит все необходимые инженерные решения в виде последовательности снимков изменений и сценариев. Действия пользователя по установке повторно используемого образа во многом являются механическими и легко могут быть автоматизированы путем создания соответствующих сценариев и программ.
Следующий пример раскрывает вариант осуществления заявленного способа резервного копирования программного обеспечения ИТ-инфраструктуры предприятия.
Резервное копирование позволяет поддерживать соответствие программного обеспечения и данных между целевым компьютером в ИТ-инфраструктуре предприятия и образом виртуальной машины в ИТ-инфраструктуре поставщика услуг в течение всего срока эксплуатации целевого компьютера. С этой целью образ виртуальной машины сохраняют в хранилище образов виртуальных машин 103 в течение всего срока функционирования целевого компьютера.
Для синхронизации изменений используется распределенная система контроля ревизий. Существующие распределенные системы контроля ревизий способны обмениваться информацией между репозиториями через компьютерную сеть. В частности, система Mercurial позволяет обмениваться информацией посредством защищенного протокола ssh.
Изначально программное обеспечение целевого компьютера должно быть установлено из повторно используемого образа виртуальной машины в соответствии с заявленным способом. Дополнительно при формировании повторно используемого образа учитывается, что в файловой системе целевого компьютера должны быть установлены программы системы контроля ревизий.
В ИТ-инфраструктуре поставщика услуг системный администратор предварительно организует возможность удаленного подключения по защищенному протоколу ssh. Например, администратор может настроить такой доступ на сервер управления поставщика услуг, используя программный пакет OpenSSH в операционной системе Linux. Для аутентификации удаленных клиентов может использоваться пара ключей асимметричного алгоритма шифрования (например, RSA). При этом один ключ, называемый приватным, хранится на сервере управления поставщика услуг, а второй ключ, называемый публичным, передается на целевой компьютер и сохраняется на нем.
Периодически используя подсистему запуска повторяющихся заданий (например, cron в операционной системе Linux), на целевом компьютере автоматически формируется снимок изменений, например, командами hg qnew и hg qrefresh системы Mercurial. При этом снимок изменений сохраняется в локальном репозитории системы контроля ревизий.
Далее сценарий на целевом компьютере устанавливает соединение по протоколу ssh, например, с помощью команды ssh в операционной системе Linux, используя заранее сохраненный ключ асимметричного алгоритма шифрования RSA для аутентификации. Затем на сервере управления поставщика услуг осуществляется монтирование требуемого образа виртуальной машины. В частности, при использовании хранилища Walrus, входящего в систему Eucalyptus, для указанного монтирования может использоваться драйвер АТА over Ethernet (АоЕ). Выбор образа виртуальной машины для подключения осуществляется по уникальному ключу, выданному образу при создании сервером управления поставщика услуг и сохраненному на целевом компьютере. Смонтированный образ виртуальной машины содержит удаленный репозиторий системы контроля ревизий.
В качестве варианта реализации соединение по протоколу ssh может быть установлено не с сервером управления, а непосредственно с виртуальной машиной. Для этого может быть автоматически осуществлен запуск образа виртуальной машины на одном из серверов виртуальных машин 102 средствами системы управления мониторами виртуальных машин.
Для переноса снимка изменений в удаленный репозиторий используется команда hg pull на удаленной машине или hg push на локальной машине с указанием адреса удаленного репозитория. После этого применяют снимок изменения на удаленной машине посредством команды hg qpush.
После завершения синхронизации осуществляется отключение образа виртуальной машины и разрыв соединения ssh.
В альтернативной реализации распространение снимка изменений осуществляют с использованием переносного носителя информации, для чего сохраняют копию упомянутого локального репозитория системы контроля ревизий на переносном носителе информации. Далее подключают переносной носитель информации к хранилищу образов виртуальных машин, для чего монтируют переносной носитель к серверу управления, затем на сервере управления осуществляют монтирование требуемого образа виртуальной машины. В частности, при использовании хранилища Walrus, входящего в систему Eucalyptus, может использоваться драйвер АТА over Ethernet (АоЕ). Выбор образа виртуальной машины для подключения осуществляется по уникальному ключу, выданному образу при создании сервером управления поставщика услуг. Смонтированный образ виртуальной машины содержит удаленный репозиторий системы контроля ревизий.
В качестве варианта реализации переносной носитель информации может быть смонтирован непосредственно в виртуальную машину. Для этого пользователь осуществляет запуск образа виртуальной машины на одном из серверов виртуальных машин 102 и осуществляет монтирование переносного носителя средствами системы управления мониторами виртуальных машин.
Далее пользователь распространяет снимок изменений в репозиторий в хранимом образе виртуальной машины с помощью команды hg pull распределенной системы контроля ревизий.
В случае отказа или сбоя программного или аппаратного обеспечения целевого компьютера предприятия осуществляют запуск соответствующего хранимого образа виртуальной машины на одном из серверов виртуальных машин 102 в ИТ-инфраструктуре поставщика услуг. Для запуска образа виртуальной машины используется система управления мониторами виртуальных машин. Далее обеспечивают удаленный доступ к виртуальной машине посредством глобальной компьютерной сети. Удаленный доступ осуществляют средствами удаленного доступа, входящими в операционную систему, например эмуляция удаленного терминала ssh или удаленный рабочий стол Virtual Network Computing (VNC) в операционной системе Linux или Remote Desktop Protocol (RDP) в операционных системах семейства Windows.