Технологические приемы выгрузки объекта назначения виртуального хранилища

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обработки запросов ввода/вывода за счет предоставления переносимой службы для управления запросами ввода/вывода в отношении виртуальных жестких дисков. Система для эксплуатации службы хранения содержит схемы для реализации переносимой службы хранения, при этом переносимая служба хранения выполнена с возможностью управления относящимися к виртуальному жесткому диску запросами ввода/вывода для дочернего раздела, причем дочерний раздел представляет собой среду исполнения, при этом переносимой службе хранения назначается уникальный сетевой идентификатор для сети; схемы для переноса переносимой службы хранения в, по меньшей мере, другой раздел; и схемы для конфигурирования переносимой службы хранения в качестве целевого хранилища в сети. 2 н. и 13 з.п. ф-лы, 13 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

Технология виртуальной машины может быть использована для упаковки полезной нагрузки и перемещения ее в центр обработки данных. Эта способность перемещать полезную нагрузку из одного физического хоста на другой является огромной пользой для пользователей, потому что это дает возможность динамической консолидации машин, которая приводит к гораздо меньшим затратам на аппаратное обеспечение и административным затратам. Виртуальные машины типично осуществляют доступ к хранилищу посредством модуля, который обслуживает виртуализацию хранилища, размещенного внутри гипервизора, раздела управления или их комбинации. В этой модели, виртуальные машины типично отправляют запросы I/O хранилища в данный модуль через программный канал связи такой как шина связи между разделами, наподобие примерной шины раздела описанной в заявке США № 11/128647, озаглавленной "Partition Bus", содержимое которой включено в настоящий документ в посредством ссылки в полном объеме. Осуществление связи между виртуальной машиной и гипервизором (или разделом управления) влечет затраты циклов CPU из-за запуска канала связи и каких-либо переключений контекста, которые могут происходить при передаче сообщений. Следовательно, желательны технологические приемы для увеличения эффективности обслуживания запросов I/O посредством уменьшения затрат CPU.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Примерный вариант осуществления настоящего раскрытия описывает способ. В этом примере, способ включает в себя, но не ограничен приведением в исполнение переносимой службы хранения, в котором переносимая служба хранения выполнен с возможностью управления запросами ввода/вывода виртуального жесткого диска на дочерний раздел, в котором переносимой службе хранения назначают уникальный сетевой идентификатор для сети; и конфигурированием переносимой службы хранения как объекта назначения хранилища в сети. К дополнение к вышеуказанному, другие аспекты описаны в формуле изобретения, чертежах и тексте, образующем часть настоящего раскрытия.

Примерный вариант осуществления настоящего раскрытия описывает способ. В этом примере, способ включает в себя, но не ограничен прикреплением первого уникального сетевого идентификатора для сетевого адаптера к службе хранения, выполненному с возможностью управления запросами ввода/вывода диска виртуального накопителя на жестком диске для дочернего раздела; и прикреплением виртуальной функции, приводимой в исполнение сетевым адаптером, к дочернему разделу, в котором виртуальная функция включает в себя второй уникальный сетевой идентификатор. К дополнение к вышеуказанному, другие аспекты описаны в формуле изобретения, чертежах и тексте, образующем часть настоящего раскрытия.

Примерный вариант осуществления настоящего раскрытия описывает способ. В этом примере, способ включает в себя, но не ограничен исполнением службы хранения в дочернем разделе, в котором служба хранения выполнена с возможностью управления запросами ввода/вывода диска виртуального накопителя на жестком диске для второго дочернего раздела, в котором устройству хранения назначают уникальный сетевой идентификатор в сети. К дополнение к вышеуказанному, другие аспекты описаны в формуле изобретения, чертежах и тексте, образующем часть настоящего раскрытия.

Специалист в данной области техники должен осознать, что один или более различных аспектов данного раскрытия могут включать в себя, но не ограничены компоновкой схем и/или программированием для осуществления упоминаемых в настоящем документе аспектов настоящего раскрытия; компоновка схем и/или программирование может быть виртуально любой комбинацией аппаратного обеспечения, программного обеспечения и/или программно-аппаратных средств, выполненной с возможностью осуществления упоминаемых в настоящем документе аспектов в зависимости от проектных решений проектировщика системы.

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

На Фиг. 1 изображена примерная компьютерная система, в которой могут быть реализованы аспекты настоящего раскрытия.

На Фиг. 2 изображена операционная среда для применения на практике аспектов настоящего раскрытия.

На Фиг. 3 изображена операционная среда для применения на практике аспектов настоящего раскрытия.

На Фиг. 4 проиллюстрирована компьютерная система, включающая в себя SR-IOV-совместимое сетевое устройство.

На Фиг. 5 проиллюстрирована взаимосвязь между памятью в виртуализированной среде.

На Фиг. 6 изображен вариант осуществления настоящего раскрытия.

На Фиг. 7 изображена операционная среда для иллюстрации аспектов настоящего раскрытия.

На Фиг. 8 изображена операционная процедура для применения на практике аспектов настоящего раскрытия.

На Фиг. 9 изображен альтернативный вариант осуществления операционной процедуры с Фиг. 8.

На Фиг. 10 изображена операционная процедура для применения на практике аспектов настоящего раскрытия.

На Фиг. 11 изображен альтернативный вариант осуществления операционной процедуры с Фиг. 10.

На Фиг. 12 изображена операционная процедура для применения на практике аспектов настоящего раскрытия.

На Фиг. 13 изображен альтернативный вариант осуществления операционной процедуры с Фиг. 12.

ПОДРОБНОЕ ОПИСАНИЕ

Варианты осуществления могут исполнять на одной или более компьютерных системах. Фиг. 1 и следующее рассмотрение предназначены для предоставления краткого общего описания подходящей компьютерной среды, в которой данное раскрытие может быть реализовано.

Термин "компоновка схем", использованный во всем раскрытии, может включать в себя аппаратные компоненты, такие как аппаратные контроллеры прерываний, накопители на жестких дисках, сетевые адаптеры, графические процессоры, основанные на аппаратном обеспечении видео/аудиокодеки и программно-аппаратные средства, используемые для оперирования таким аппаратным обеспечением. Термин "компоновка схем" может также включать в себя микропроцессоры, специализированные на приложении интегральные микросхемы и/или один или более логических процессоров, например, одно или более ядер многоядерного блока общей обработки, выполненных посредством программно-аппаратных средств и/или программного обеспечения. Логический процессор(ы) может быть выполнен посредством инструкций, осуществляющих логическую часть, пригодную для выполнения функции(й), которые загружены из памяти, например, RAM, ROM, программно-аппаратных средств и/или хранилища большой емкости. В примерном варианте осуществления, где компоновка схем включает в себя комбинацию аппаратного обеспечения и программного обеспечения, конструктор может писать исходный код, осуществляющий логическую часть, который в последствии компилируют в считываемый машиной код, который может быть исполнен логическим процессором. Так как специалист в данной области техники должен осознавать, что состояние данной области техники развилось до точки, где существует небольшая разница между аппаратно реализованными функциями или программно реализованными функциями, выбор из аппаратного обеспечения и программного обеспечения для осуществления описанных в настоящем документе функций является всего лишь проектным решением. Иначе говоря, так как специалист в данной области техники должен осознавать, что программный процесс может быть преобразован в эквивалент аппаратной структуры, и аппаратная структура, сама по себе может быть преобразована в эквивалент программного процесса, выбор из аппаратной реализации и программной реализации оставляют конструктору.

Ссылаясь теперь на Фиг. 1, изображена примерная вычислительная система 100. Компьютерная система 100 может включать в себя логический процессор 102, например, гиперпоток исполнительного ядра. В то время как проиллюстрирован один логический процессор 102, в других вариантах осуществления компьютерная система 100 может иметь множество логических процессоров, например, множество исполнительных ядер на подложке процессора и/или множество подложек процессоров, каждая из которых может иметь множество исполнительных ядер. Как показано на Фигуре, различные считываемые компьютером носители 110 информации могут быть взаимосоединены посредством одной или более системных шин, которые связывают различные компоненты системы с логическим процессором 102. Системные шины могут быть любыми из нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, шину периферийных устройств и локальную шину, использующие любую из множества архитектур шин. В примерных вариантах осуществления считываемые компьютером носители 110 информации могут включать в себя, например, оперативную память (RAM) 104, устройство 106 хранения, например, электромеханический накопитель на жестких дисках, твердотельный накопитель и т.д., программно-аппаратные средства 108, например, FLASH RAM или ROM, съемные устройства хранения 118, такие как, например, CD-ROM, гибкие магнитные диски, DVD, FLASH-накопители, внешние устройства хранения и т.д. Специалистам в данной области техники следует осознавать, что могут быть использованы другие типы считываемых компьютером носителей информации, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли.

Считываемые компьютером носители 110 информации могут предоставить энергонезависимое и энергозависимое хранилище исполняемых процессором инструкций 122, структур данных, программных модулей и других данных для компьютера 100. Базовая система ввода-вывода (BIOS) 120, содержащая базовые стандартные программы, которые помогают передавать информацию между элементами внутри компьютерной системы во время старта, может храниться в программно-аппаратных средствах 108. Некоторое число программ может храниться в программно-аппаратных средствах 108, устройстве 106 хранения, RAM 104 и/или съемных устройствах 118 хранения, и исполняться логическим процессором 102, в том числе операционная система и/или прикладные программы.

Команды и информация могут быть приняты компьютером 100 посредством устройств 116 ввода, которые могут включать в себя, но не ограничены этим, клавиатуру и указывающее устройство. Другие устройства ввода могут включать в себя микрофон, джойстик, игровой контроллер, сканер или тому подобное. Эти и другие устройства ввода могут быть присоединены к логическому процессору 102 посредством интерфейса последовательного порта, который связан с системной шиной, и часто присоединены посредством других интерфейсов, таких как порты универсальной последовательной шины (USB). Дисплей или другой тип устройства отображения может быть также присоединен к системной шине через интерфейс, такой как видеоадаптер, который может быть частью, или присоединенным к, графического процессора 112. В дополнение к дисплею, компьютеры типично включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры. Примерная система с Фиг. 1 может также включать в себя хост-адаптер, шину интерфейса малых компьютерных систем (SCSI) и внешнее устройство хранения, присоединенное к шине SCSI.

Компьютерная система 100 может работать в сетевой среде, используя логические соединения с удаленными компьютерами. Удаленный компьютер может быть другим компьютером, сервером, маршрутизатором, сетевым PC, равноправным устройством или другим общим сетевым узлом, и типично может включать в себя много или все из элементов, описанных выше относительно компьютерной системы 100.

При использовании в сетевой среде LAN или WAN, компьютерная система 100 может быть присоединена к LAN или WAN посредством платы сетевого интерфейса (NIC) 114. NIC 114, которая может быть внутренней или внешней, может быть присоединена к логическому процессору. В сетевой среде, программные модули, изображенные относительно компьютерной системы 100, или их части, могут храниться в удаленном запоминающем устройстве. Следует осознавать, что сетевые соединения, описанные здесь, являются примерными и могут быть использованы другие средства установления линии связи между компьютерами. Более того, тогда как предусмотрено, что многочисленные варианты осуществления настоящего раскрытия особенно хорошо подходят для компьютерных систем, ничто в этом документе не предназначено для ограничения данного раскрытия такими вариантами осуществления.

Ссылаясь теперь на Фиг. 2 и 3, на них изображены высокоуровневые блок-схемы компьютерных систем 200 и 300, выполненных с возможностью приведения в исполнение виртуальных машин. В примерных вариантах осуществления настоящего раскрытия компьютерные системы 200 и 300 могут включать в себя элементы, описанные на Фиг. 1, и компоненты, функционирующие с возможностью приведения в исполнение виртуальных машин. Возвращаясь к Фиг. 2, одним таким компонентом является гипервизор 202, который может быть также назван в данной области техники как монитор виртуальной машины. Гипервизор 202 в изображенном варианте осуществления может быть выполнен с возможностью контроля и осуществления арбитража доступа к аппаратному обеспечению компьютерной системы 100. В широком смысле, гипервизор 202 может генерировать среды исполнения, называемые разделами, например, виртуальные машины. В вариантах осуществления, дочерний раздел может считаться базовым блоком изоляции, поддерживаемым гипервизором 202. То есть, каждый дочерний раздел (246 и 248) могут быть увязаны с набором аппаратных ресурсов, например, памятью, устройствами, циклами логического процессора и т.д., который находится под контролем гипервизора 202, и/или родительский раздел и гипервизор 202 могут изолировать процессы в одном разделе от доступа к ресурсам другого раздела, например, гостевая операционная система в одном разделе может быть изолирована от памяти другого раздела. В вариантах осуществления гипервизор 202 может быть автономным программным продуктом, частью операционной системы, осуществленной внутри программно-аппаратных средств материнской платы, специализированных интегральных микросхемах или их комбинации.

В изображенном примере, компьютерная система 100 включает в себя родительский раздел 204, который может быть также представлен подобно домену 0 в сообществе программного обеспечения с открытым исходным кодом. Родительский раздел 204 может быть выполнен с возможностью предоставления ресурсов гостевым операционным системам, исполняющимся в дочерних разделах, посредством использования провайдеров 228 служб виртуализации (VSP), которые типично называют внутренние (back-end) драйверы в сообществе программного обеспечения с открытым исходным кодом. При этой примерной архитектуре, родительский раздел 204 может регулировать доступ к нижележащему аппаратному обеспечению. В широком смысле, VSP 228 могут быть использованы для мультиплексирования интерфейсов с аппаратными ресурсами посредством клиентов службы виртуализации (VSC) (типично называемые front-end драйверы в сообществе программного обеспечения с открытым исходным кодом). Каждый дочерний раздел может включать в себя один или более виртуальных процессоров, таких как виртуальные процессоры с 230 по 232, которые могут управлять гостевыми операционными системами с 220 по 222 и планировать потоки для исполнения на них. В общем, виртуальные процессоры с 230 по 232 являются исполняемыми инструкциями и ассоциированной информацией о состоянии, которые предоставляют представление физического процессора с конкретной архитектурой. Например, один дочерний раздел может иметь виртуальный процессор, имеющий характеристики процессора Intel x86, в котором другой виртуальный процессор может иметь характеристики процессора PowerPC. Виртуальные процессоры в этом примере могут быть могут быть увязаны с логическими процессорами компьютерной системы, так что исполнение виртуальным процессором инструкций подкреплено логическими процессорами. Таким образом, в этих примерных вариантах осуществления, множество виртуальных процессоров могут одновременно исполняться пока, например, другой логический процессор выполняет инструкции гипервизора. Комбинация виртуальных процессоров, различных VSC и памяти в разделе может считаться виртуальной машиной.

Гостевые операционные системы с 220 по 222 могут включать в себя любую операционную систему, такую как, например, операционные системы от Microsoft®, Apple®, сообщество программного обеспечения с открытым исходным кодом и т.д. Гостевые операционные системы могут использовать пользовательский режим работы/привилегированный режим работы (режим ядра) операционной системы и могут иметь ядра операционной системы, которые включают в себя планировщики, менеджеры памяти и т.д. Каждая гостевая операционная система с 220 по 222 может иметь ассоциированные файловые системы, которые могут иметь приложения, хранящиеся в них, такие как серверы терминала, серверы электронной коммерции, серверы электронной почты и т.д., и сами гостевые операционные системы. Гостевые операционные системы 220-222 могут планировать потоки для исполнения на виртуальных процессорах 230-232 и экземпляры таких приложений могут быть приведены в исполнение.

Ссылаясь теперь на Фиг. 3, на нем проиллюстрирована архитектура, альтернативная той, что описана выше на Фиг. 2. На Фиг. 3 изображены компоненты, подобные компонентам с Фиг. 2; однако в этом примерном варианте осуществления, гипервизор 202 может включать в себя провайдеры служб виртуализации 228 и драйверы 224 устройств, и родительский раздел 204 может содержать конфигурационные утилиты 236. В этой архитектуре, гипервизор 202 может выполнять такие же или подобные функции, как и гипервизор 202 с Фиг. 2. Гипервизор 202 с Фиг. 3 может быть автономным программным продуктом, частью операционной системы, осуществленной внутри программно-аппаратных средств материнской платы, или часть гипервизора 202 может быть приведена в исполнение специализированными интегральными микросхемами. В этом примере родительский раздел 204 может иметь инструкции, которые могут быть использованы для конфигурирования гипервизора 202, однако, запросы доступа к аппаратному обеспечению могут быть обслужены гипервизором 202 вместо того, чтобы быть пропущенными в родительский раздел 204.

В вариантах осуществления настоящего раскрытия сетевой адаптер, соответствующий "Single Root Input/Output Virtualization specification" редакции 1.0, в настоящем документе явным образом включенной посредством ссылки в полном объеме, может быть установлен в компьютерные системы, такие как компьютерные системы, описанные на Фигурах. Примерным адаптером мог бы быть "Gigabit ET Dual Port Server Adapter" от Intel®. Допускающие SR-IOV сетевые устройства являются аппаратными устройствами, которые могут совместно использовать адаптер I/O между, например, виртуальными машинами, или любым другим процессом посредством виртуализации интерфейса до физической функции. Каждый виртуализированный интерфейс, также известный как виртуальная функция (VF), приближенно кажется как отдельная сетевая интерфейсная карта на шине PCI-express компьютерной системы. Например, каждая виртуальная функция может иметь пространство конфигураций эмулированной PCI и уникальный сетевой идентификатор, например, адрес управления доступом к среде передачи данных (MAC-адрес), всемирное имя и т.д. Таким образом, каждая виртуальная функция может поддерживать уникально адресованный и чрезвычайно разделенный отдельный канал для осуществления доступа к физической функции.

Возвращаясь к Фиг. 4, на нем проиллюстрирована компьютерная система 400, которая включает в себя SR-IOV-совместимый адаптер 402 ("адаптер"). Подобно вышеизложенной компьютерной системе, компьютерная система 400 может включать в себя компоненты, подобные вышеуказанным компонентам по отношению к Фиг. 1-3. Адаптер 402 может включать в себя физическую функцию 410, которая может соответствовать порту, который может быть присоединен к сети и внутреннему маршрутизатору 412. Внутренний маршрутизатор 412 может быть выполнен с возможностью маршрутизации данных к и от сетевых идентификаторов 420-424 адаптера 402, таких как те, что назначены виртуальным функциям 404 или 406, например, виртуальные адаптеры, каждый с виртуальным портом.

В примерном варианте осуществления сетевой адаптер 402 может быть Ethernet адаптером, и виртуальная функция может быть виртуальным Ethernet адаптером. В этом примере уникальным идентификатором виртуальной функции будет Ethernet MAC-адрес. В примере с Fibre Channel, адаптер 402 может быть fibre channel адаптером главной шины, и виртуальная функция может быть виртуальным fibre channel адаптером главной шины, имеющим всемирное имя, включающее в себя всемирное имя узла и всемирное имя порта. В примере с Infiniband, виртуальная функция может быть виртуальной конечной точкой Infiniband, имеющей глобальный идентификатор.

Сетевой идентификатор 424 показан пунктирными линиями, которые указывают, что определенные сетевые адаптеры, такие как fibre channel адаптеры главной шины или Ethernet адаптеры, могут дать возможность множеству уникальных идентификаторов совместно использовать один физический порт. В fibre channel эту способность называют виртуализацией N_Port ID или NPIV, а в Ethernet адаптер может работать в, что называется, смешанном режиме, включать в себя встроенный виртуальный коммутатор, или фильтр, и маршрутизировать данные, адресованные для конкретного MAC-адреса, в отдельные буферы памяти.

Каждый сетевой идентификатор может быть ассоциирован с программным стеком протоколов (414-418), который выполнен с возможностью форматирования информации, так чтобы она могла быть отправлена по сети. В характерном для TCP/IP примере, процесс может привязываться к экземпляру прикладному уровню стека TCP/IP посредством порта прикладного уровня. В итоге, информация, которая обработана разными функциями стека протоколов, может быть обработана группой функций, которая находится в том, что называется уровнем управления доступом к среде передачи данных, который руководит сборкой кадров данных, которые могут быть отправлены через коммуникационную матрицу. Этот уровень стека протоколов добавляет адрес управления доступом к среде передачи данных для виртуальной функции к кадрам, которые отправляют по сети. Затем, стек протоколов пропускает собранные кадры на физический уровень, который выполнен с возможностью конвертирования информации в кадре в электрические сигналы и отправлять данные кадры в сеть.

Блок 426 управления памятью для операций ввода/вывода (I/O-MMU) может быть использован для связывания межсоединения I/O, которое может выполнять операции прямого доступа к памяти, такое как межсоединение PCI-express, с RAM. В варианте осуществления настоящего раскрытия I/O-MMU 426 может включать в себя таблицы страниц из гипервизора 202, которые транслируют гостевые физические адреса из разделов в системные физические адреса. I/O-MMU 426 показан пунктирными линиями, которые указывают, что он может существовать во множественных размещениях в компьютерной системе 400. Например, I/O-MMU может быть чипом на материнской плате или компонентом логического процессора.

На Фиг. 5 проиллюстрирована взаимосвязь между гостевыми физическими адресами и системными физическими адресами в варианте осуществления настоящего раскрытия. Гостевая память является видом памяти, которая контролируется гипервизором 202. Гостевая память может быть назначать гостевым операционным системам и управлять посредством их менеджеров памяти. Гостевой физический адрес может быть подкреплен системным физическим адресом (SPA), например, память физической компьютерной системы, управляемая гипервизором 202. Как показано на Фигуре, в варианте осуществления, GPA и SPA могут быть скомпонованы в блоки памяти, например, одну или более страниц памяти. Взаимосвязь между GPA и SPA может быть может быть обеспечена таблицей теневых страниц, такой как та, что описана в принадлежащей одному и тому же правообладателю патентной заявке США № 11/128665, озаглавленной "Enhanced Shadow Page Table Algorithms", содержимое которой включено в настоящий документ посредством ссылки в полном объеме. При операции, когда гостевая операционная система сохраняет данные в блоке 1 GPA, данные фактически могут быть сохранены в другом SPA, таком как блок 6 в системе. В варианте осуществления настоящего раскрытия I/O-MMU 426 может выполнять трансляции во время операций I/O для перемещения данных хранилища напрямую из одного пространства GPA в другое пространство GPA. В этом варианте осуществления можно сберечь циклы логического процессора за счет отсутствия необходимости запускать инструкции гипервизора для приведения в исполнение этих трансляций.

На Фиг. 6 проиллюстрирована высокоуровневая операционная среда для описания технологических приемов выгрузки объекта назначения виртуального хранилища. На Фиг. 6 показана служба 602 хранения виртуальной машины, осуществляющий связь с клиентом 604 виртуализации хранилища посредством SR-IOV сетевого адаптера 402 и его виртуальной функции 406. Как показано на Фигуре, в этом варианте осуществления настоящего раскрытия, SR-IOV сетевой адаптер 402 может быть использован для передачи I/O между виртуальными машинами и службами хранения виртуальных машин посредством обхода программных каналов связи. Это в свою очередь уменьшает количество циклов CPU, используемых для выполнения I/O для виртуальной машины, увеличивает способность переноса службы 602 хранения, и потенциально уменьшает нагрузку на хостовую операционную систему, исполняющуюся в родительском разделе, и/или нагрузку на гипервизор 202.

Служба 602 хранения виртуальной машины может быть выполнена с возможностью осуществления связи с физическими устройствами хранения, как например номера логического устройства (LUN), предоставленные посредством SAN, например, диск, который может быть уже виртуализирован другими технологическими приемами виртуализации хранилища, от имени дочерних разделов. В одном случае, это может включать в себя конфигурирование службы 602 хранения виртуальной машины для приема запросов I/O от виртуальных машин и их маршрутизацию в LUN. В другом случае, где LUN недораспределены, служба 602 хранения виртуальной машины может быть выполнена с возможностью генерирования виртуальных накопителей на жестком диске; предоставлять их виртуальным машинам; и хранить их как файлы виртуального накопителя на жестком диске (VHD) на LUN или на физических накопителях. Файл VHD представляет жесткий диск виртуальной машины, который может быть заключен внутри одного файла. Служба 602 хранения виртуальной машины может анализировать файл и приводить в исполнение диск, который может быть предоставлен гостевой операционной системе 220, как если бы он был физическим хранилищем. Виртуальные жесткие диски, сгенерированные службой 602 хранения виртуальной машины, могут быть представлены шине, которая доступна для гостевых операционных систем таким образом, что кажется, что они являются локальными.

В варианте осуществления настоящего раскрытия служба 602 хранения виртуальной машины может быть выполнена с возможностью быть объектом назначения хранилища, как например объект назначения Fibre channel или объект назначения межсетевого интерфейса малых компьютерных систем (iSCSI), в сети посредством прикрепления уникального сетевого идентификатора к службе 602 хранения виртуальной машины и, например, конфигурирования параметров объекта назначения хранилища, используемых для объявления службы 602 хранения виртуальной машины в качестве объекта назначения хранилища в центре обработки данных. В примерной среде iSCSI, служба 602 хранилища виртуальной машины может реализовать объект назначения iSCSI за счет приведения в исполнение LUN, которые доступны для дочерних разделов по Интернет-протоколу. Клиент 604 хранилища виртуальной машины или гостевая операционная система могут получить адрес службы 602 хранения виртуальной машины и может быть установлено соединение, которое эмулирует соединение с жестким диском SCSI. Клиент 604 хранилища виртуальной машины может рассматривать службу 602 хранения виртуальной машины таким же образом, как если бы она была SCSI или накопителем на жестких дисках, и служба 602 хранения виртуальной машины может подавать виртуальные накопители на жестких дисках в дочерние разделы. В этом примере, клиент 604 хранилища виртуальной машины может создавать и управлять файловыми системами напрямую на виртуальных дисках, предоставленных службой 602 хранения виртуальной машины, без необходимости монтировать удаленные директории, как это было бы сделано в среде сетевой файловой системы. С точки зрения гостевой OS 220, она имеет сетевой адаптер, связанный с сетью, которая связана с одним или более логическими блоками, которые действуют подобным накопителям на жестких дисках образом.

На Фиг. 7 проиллюстрирована примерная операционная среда для применения на практике аспектов настоящего раскрытия. Подобно Фиг. 6, один или более SR-IOV сетевых адаптеров могут быть использованы для передачи I/O между виртуальными машинами и службами хранилищ виртуальных машин, тем самым устраняя необходимость отправления I/O, используя программные каналы связи. Это уменьшает количество циклов CPU, используемых для выполнения I/O для виртуальной машины, увеличивает способность переноса службы 602 хранения, и потенциально уменьшает нагрузку на хостовую операционную систему и/или нагрузку на гипервизор 202.

В этой примерной среде, центр обработки данных, включающий в себя две компьютерные системы 700 и 702, проиллюстрирован присоединенным к коммутатору 704 (тогда как показаны две компьютерные системы, специалист в данной области техники должен осознавать, что центр обработки данных может иметь намного больше компьютерных систем). Компьютерные системы 700 и 702 могут иметь компоненты, подобные тем, что описаны на Фиг. 1-4, и коммутатор 704 может являться целой инфраструктурой из взаимосоединенных коммутаторов и маршрутизаторов. К тому же, компьютерные системы 700 и 702 проиллюстрированы как включающие в себя определенные признаки, чтобы более ясно объяснить раскрытые в настоящем документе технологические приемы, и данное раскрытие не ограничено реализацией в изображенной топологии.

Компьютерная система 700 может включать в себя менеджер 250, выполненный с возможностью переноса службы 602 хранения согласно описанным в настоящем документе технологическим приемам, таким образом службу 602 хранения виртуальной машины показывают пунктирными линиями, чтобы указать, что он может быть перенесен из одного раздела в другой раздел в той же или другой компьютерной системе. Виртуальная функция 706 и 708 показаны пунктирными линиями, чтобы указать, что в определенных вариантах осуществления службы 602 хранения виртуальной машины может напрямую взаимодействовать с SR-IOV адаптером 402 без необходимости осуществления к нему доступа посредством виртуальной функции. В этом примерном варианте осуществления родительские разделы 204 и 712 могут контролировать физическое аппаратное обеспечение, и виртуальная функция будет не нужна.

Продолжая с общим обзором данной Фигуры, служба 602 хранения виртуальной машины может быть перенесена в варианте осуществления настоящего раскрытия посредством извлечения уникального идентификатора, назначенного ему, и перемещения идентификатора в другой раздел, наряду с любой необходимой информацией о состоянии. В одном случае этот процесс мог включать в себя извлечение, посредством логического процессора, запускающего менеджер 250, уникального идентификатора; подачу указания, посредством логического процессора, запускающего менеджер 250, адаптеру (402 или 718) прикреплять уникальный идентификатор к виртуальной функции в другом разделе; и подачу указания, посредством логического процессора, запускающего менеджер 250, экземпляру службы 602 хранения виртуальной машины прикреплять себя к виртуальной функции. В другом случае этот процесс мог включать в себя извлечение, посредством логического процессора, запускающего менеджер 250, уникального идентификатора; подачу указания, посредством логического процессора, запускающего менеджер 250, адаптеру (402 или 718) прикреплять уникальный идентификатор к адаптеру (402 или 718); и подачу указания, посредством логического процессора, запускающего менеджер 250, экземпляру службы 602 хранения виртуальной машины, инициированному в другом разделе, использовать уникальный идентификатор для осуществления связи в коммуникационной матрице.

Следующие являются последовательностями функциональных схем, изображающих операционные процедуры. Для простоты понимания, функциональные схемы организованы так, что первоначальные функциональные схемы представляют реализации посредством общей точки зрения "большой картинки", и последующие функциональные схемы предоставляют дополнительные добавления и/или подробности. К тому же, специалист в данной области техники должен осознавать, что операции, изображенные пунктирными линиями считаются необязательными.

Ссылаясь теперь на Фиг. 8, на нем проиллюстрирована операционная процедура для применения на практике аспектов настоящего раскрытия. Как показано на Фигуре, операция 800 начинает операционную процедуру, и операция 802 показывает приведение в исполнение переносимой службы хранения, в которой переносимая служба хранения выполнена с возможностью управления запросами ввода/вывода виртуального жесткого диска для дочернего раздела, в котором переносимой службе хранения назначают уникальный сетевой идентификатор для сети. Например, и возвращаясь к Фиг. 6, переносимая служба хранения, такая как служба 602 хранения виртуальной машины, может быть приведена в исполнение компьютерной системой. То есть, инструкции, указывающие на службу 602 хранения виртуальной машины, могут быть исполнены логическим процессором. Служба 602 хранения виртуальной машины считается переносимой потому, что она прикреплена к уникальному сетевому идентификатору и может быть перемещена самой собой, т.е. без перемещения других модулей управления, из одного раздела в другой.

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

В конкретном примере, и возвращаясь к Фиг. 7, служба 602 хранения виртуальной машины может быть перенесена из родительского раздела 204 в дочерний раздел 246. В этом конкретном примере, логический процессор может запускать менеджер 250, т.е. логический процессор может запускать инструкции, указывающие на менеджер 250, и извлекать уникальный идентификатор, используемый службой 602 хранения виртуальной машины для осуществления связи в центре обработки данных. Уникальный идентификатор может быть затем отправлен в дочерний раздел 246, а экземпляр службы 602 хранения виртуальной машины может быть запущен. Таблицы маршрутизации в адаптере 402 могут быть обновлены, и запросы I/O могут быть маршрутизированы адаптером 402 в дочерний раздел 246 вместо родительского раздела 204. В этом примере дочерний раздел 246 может быть выполнен с возможностью использования уни