ТЕХНОЛОГИЧЕСКИЕ ПРИЕМЫ ВЫГРУЗКИ ОБЪЕКТА НАЗНАЧЕНИЯ ВИРТУАЛЬНОГО ХРАНИЛИЩА
TECHNIQUES FOR DOWNLOADING TARGET OBJECT OF VIRTUAL STORAGE

УРОВЕНЬ ТЕХНИКИ
Технология виртуальной машины может быть использована для упаковки полезной нагрузки и перемещения ее в центр обработки данных. Эта способность перемещать полезную нагрузку из одного физического хоста на другой является огромной пользой для пользователей, потому что это дает возможность динамической консолидации машин, которая приводит к гораздо меньшим затратам на аппаратное обеспечение и административным затратам. Виртуальные машины типично осуществляют доступ к хранилищу посредством модуля, который обслуживает виртуализацию хранилища, размещенного внутри гипервизора, раздела управления или их комбинации. В этой модели, виртуальные машины типично отправляют запросы 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 может быть выполнен с возможностью использования уникального идентификатора в дополнение к любым другим уже используемым уникальным идентификаторам.
Продолжая с описанием Фиг. 8, операция 804 показывает конфигурирование переносимой службы хранения в качестве объекта назначения хранилища в сети. Например, в варианте осуществления настоящего раскрытия, служба 602 хранения виртуальной машины может быть выполнена с возможностью быть объектом назначения хранилища в центре обработки данных. Аналогично описанному выше, служба 602 хранения виртуальной машины может быть прикреплена к уникальному сетевому идентификатору в сети и обнаружена гостевая OS 220 как объект назначения хранилища. Сеанс связи может быть открыт между гостевой OS 220 и службой 602 хранения виртуальной машины, и гостевая OS 220 может обнаружить виртуальный жесткий диск(и), предоставленный службой 602 хранения виртуальной машины, и использовать виртуальные диски так, как если бы они были локальными накопителями на жестких дисках. В конкретном примере, служба 602 хранения виртуальной машины могла бы эмулировать объект назначения iSCSI как описано выше. В этом примере, служба 602 хранения виртуальной машины может предоставлять виртуальные диски вместо физических дисков, и обслуживать I/O от виртуальных машин посредством чтения или записи в LUN или физические диски.
Возвращаясь к Фиг. 9, на нем проиллюстрирован альтернативный вариант осуществления операционной процедуры с Фиг. 8. Операция 906 показывает перенос переносимой службы хранения в удаленную компьютерную систему. Например, и возвращаясь к Фиг. 6, в варианте осуществления, переносимая служба хранения, например, служба 602 хранения виртуальной машины, может быть перенесена на удаленную компьютерную систему в центре обработки данных. Например, в варианте осуществления, удаленная компьютерная система может иметь большую доступную полосу пропускания I/O, чем компьютерная система, фактически размещающая у себя службу 602 хранения виртуальной машины, и может быть принято решение переместить службу 602 хранения. В этом примере, логический процессор может запускать менеджер 250 и извлекать уникальный идентификатор, который назначен службе 602 хранения, и отправлять его на удаленный компьютер. Впоследствии, менеджер 250 удаленного компьютера может прикреплять уникальный идентификатор к экземпляру службы 602 хранения.
В конкретном примере, и возвращаясь к Фиг. 7, служба 602 хранения виртуальной машины может быть перенесена из дочернего раздела 246 в родительский раздел 712. В этом конкретном примере, менеджер 250 компьютерной системы может извлекать уникальный идентификатор, прикрепленный к службе 602 хранения виртуальной машины, и отправлять его в компьютерную систему 702. Менеджер 250 компьютерной системы 702 может запускать на логическом процессоре и прикреплять уникальный идентификатор к экземпляру службы 602 хранения виртуальной машины, запущенному в родительском разделе 712. В этом примере служба 602 виртуального хранилища может использовать уникальный идентификатор при отправке/приеме I/O от клиентов, которые были обслужены службой 602 хранения виртуальной машины, в дочернем разделе 246 с использованием или без использования виртуальной функции 708.
В этом конкретном примере, информация о состоянии для службы 602 хранения виртуальной машины и стека протоколов может быть отправлена в компьютерную систему 702, так что служба I/O может быть непрерывной. Например, достаточная информация для обеспечения возможности менеджеру 250 компьютерной системы 702 конфигурировать стек протоколов для отражения, по меньшей мере, функционального эквивалентного состояния стека протоколов компьютерной системы 700 может быть отправлена в компьютерную систему 702. Информация о состоянии может включать в себя номер следующего пакета, который будет отправлен, номер сокета, который используется, максимальный размер буфера, номер порта сервера, номер порта клиента и т.д. Информация о состоянии может также включать в себя информацию, такую как информация о высокоуровневом протоколе. Другие примеры могут быть информацией, относящейся к шифрованию используемых протоколов.
В этом примерном варианте осуществления служба для клиентов будет работать непрерывно, потому что с точки зрения клиента соединение было приостановлено, а не сброшено. Например, когда служба 602 хранения виртуальной машины перенесена, стек протоколов может закончить текущие операции, которые от выполняет, например, завершив или отменив их, опционально отправить сообщение о прекращении протоколу, привязанному к клиенту 604 хранилища виртуальной машины, запрашивающее, чтобы протокол воздержался от отправки информации на короткий период времени. Когда конкретизируется стек протоколов на компьютерной системе 702, он может иметь эквивалентное состояние как стек протоколов на компьютерной системе 700 и может осуществлять связь с сетью с уникальным идентификатором, который был ранее ассоциирован с компьютерной системой 700. Вновь сконфигурированный стек протоколов на компьютерной системе 702 может быть выполнен с возможностью опциональной отправки сообщение о возобновлении, и протокол, обслуживающий клиент 604 хранилища виртуальной машины, может возобновить отправку I/O. Коммутатор 704 может преобразовывать маршрутизацию так, что сообщения протокола отправляют службу 602 хранения виртуальной машины на компьютерной системе 702.
Продолжая с описанием Фиг. 9, операция 908 показывает конфигурирование блока управления памятью для операций ввода/вывода для трансляции гостевых физических адресов, ассоциированных с запросами ввода/вывода для дочернего раздела, в системные физические адреса. Например, и ссылаясь на Фиг. 7, в варианте осуществления настоящего раскрытия блок 426 управления памятью для операций ввода/вывода компьютерной системы 700 может быть использован для конвертирования гостевого физического адреса в системные физические адреса. Например, когда гостевая операционная система 220 инициирует операцию I/O, например, чтение или запись, гостевая операционная система 220, генерирует команду, которая заключает в себе гостевые физические адреса, которые может быть нужно транслировать в системные физические адреса. В примерном варианте осуществления, эти трансляции могут происходить в I/O-MMU 426 вместо MMU. Посредством выгрузки трансляций памяти в I/O-MMU 426 уменьшают нагрузку на гипервизор 202 и/или родительский раздел 204. Например, гостевая OS 220 может выдавать операцию чтения, которая включает в себя запрос на внесение сдвига диска в адрес гостевой памяти. В этом примере, блок 426 управления памятью для операций ввода/вывода может использовать таблицу, которая увязывает адреса гостевой памяти дочернего раздела 248 с системными адресами и конвертирует адрес гостевой памяти в системный адрес, который физически подкрепляет адрес гостевой памяти, по которому гость хочет произвести внесение. Служба 602 хранения виртуальной машины может принимать запрос и получать информацию, которую запрашивает клиент, и предоставлять ответное сообщение, включающее в себя ранее запрошенные данные. Ответ может быть предоставлен в буфер, указанный как адрес гостевой памяти, в случае чего адаптер 402 и I/O-MMU 426 могут транслировать предоставленный адрес гостевой памяти в системный физический адрес, и адаптер 402 может затем скопировать данные ответа из буфера ответа в буфер запроса для удовлетворения запроса клиента.
Этот технологический прием подобен операции прямого доступа к памяти (DMA) память-память, выполняемой периферийным устройством, когда клиент находится на том же физическом компьютере, что и служба 602 хранения виртуальной машины. В этом примерном варианте осуществления операция I/O может быть подобной операции DMA память-память, потому что сетевой адаптер 402 осуществляет выборку информации из одного блока системного физического адреса и перемещает ее в другой блок системного физического адреса от имени клиента 604 хранилища виртуальной машины или службы 602 хранения виртуальной машины. Конкретный пример может включать в себя операцию чтения, выданную клиентом хранилища виртуальной машины. В этом примере клиент 604 хранилища виртуальной машины может выдавать операцию чтения, которая указывает страницы данных хранилища, которые он хочет внести в страницы памяти, которые он контролирует. В этом примере страницы данных становятся скопированными в страницы, используемые службой 602 хранения виртуальной машины для удовлетворения запроса, и затем копирует данные в страницы памяти, указанные клиентом 604 хранилища виртуальной машины.
Продолжая с описанием Фиг. 9, операция 910 показывает прием запроса задания ввода/вывода от дочернего раздела, в котором дочерний раздел прикреплен к виртуальной функции, которая включает в себя второй уникальный сетевой идентификатор для сети. Например, как показано на Фиг. 6, в варианте осуществления, дочерний раздел 248 может включать в себя виртуальную функцию 406. В этом примере дочерний раздел 248 может исключительно взаимодействовать с SR-IOV адаптером 402 посредством виртуальной функции 406 и может отправлять запрос I/O. Адаптер 402 может определять, что команда адресована уникальному идентификатору, ассоциированному со службой 602 хранения виртуальной машины, и может отправлять ему команду. В этом случае команда I/O от дочернего раздела 248 может быть отправлена службе 602 хранения виртуальной машины без отправки запроса посредством гипервизора 202 или посредством коммуникационный интерфейса раздел-раздел. Кроме того, адаптер 402 может использовать уникальные идентификаторы клиента 604 и службы 602 хранения виртуальной машины при определении того, какие страницы памяти использовать в качестве буферов, и следовательно, между какими пространствами адресов копировать данные.
В конкретном примере, запрос I/O может быть операцией записи, указывающей размещение данных (в гостевых физических адресах) и размещение на виртуальном накопителе на жестком диске тех данных, что должны быть записаны. В этом примере клиент 604 виртуализации хранилища может помещать запрос в один или более пакетов информации, адресованных уникальному идентификатору службы 602 хранения виртуальной машины. В этом примере адаптер 402 может принимать запрос и отправлять его службе 602 хранения виртуальной машины. Адаптер 402 может дополнительно перемещать данные из гостевых физических адресов дочернего раздела в системные физические адреса, распределенные службе 602 хранения виртуальной машины. То есть, адаптер 402 и I/O MMU 426 могут быть выполнены с возможностью трансляции как отправляющих, так и принимающих буферов из гостевых физических адресов в системные физические адреса, адаптер 402 может затем скопировать данные из внутреннего отправляющего буфера в принимающий буфер внутренне на основании системных физических адресов. Служба 602 хранения виртуальной машины может затем сохранить данные в предназначенное размещение в соответствии с его реализацией виртуального накопителя на жестком диске. Как следует осознавать специалисту в данной области техники, это может заключать в себе использование файла виртуального накопителя на жестком диске, это может заключать в себе хранение данных на LUN, или это может заключать в себе другие технологические приемы и размещения для хранения данных, возможно с резервированием.
Продолжая с описанием Фиг. 9, операция 912 показывает исполнение переносимой службы хранения в первом разделе, исполнение службы управления выполненного с возможностью управления виртуальными машинами во втором разделе, и в которой дочерний раздел является третьим разделом. Например, в варианте осуществления, служба 602 хранения виртуальной машины может исполняться в первом разделе, таком как дочерний раздел 246, родительский раздел 204 может запускать службу управления, и клиент 604 хранилища виртуальной машины может запускаться в разделе 248. В этом примерном варианте осуществления, служба 602 хранения виртуальной машины находится в отдельном от процессов управления разделе. При этой конфигурации дочерний раздел 246 может эффективно действовать как выделенный раздел хранилища, действуя как объект назначения SAN. Эта конфигурация может уменьшить нагрузку на гипервизор 202 и родительский раздел. Например, посредством отделения службы хранения от родительского раздела блокировка внутренней операционной системы может быть уменьшена. Более того, посредством конфигурирования компьютерной системы таким образом нагрузку на планировщик гипервизора уменьшают за счет уменьшения числа сообщений, которые необходимо отправить между разделами.
Продолжая с описанием Фиг. 9, операция 914 показывает ассоциирование переносимого службы хранения с виртуальной функцией сетевого адаптера, которая включает в себя уникальный сетевой идентификатор, и прикрепление дочернего раздела ко второй виртуальной функции сетевого адаптера. Например, и возвращаясь к Фиг. 7, в варианте осуществления, служба 602 хранения виртуальной машины, может быть ассоциирована с виртуальной функцией, такой как виртуальная функция 404. В случае, где служба 602 хранения виртуальной машины запускается в дочернем разделе 246, виртуальная функция 404 может быть использована так, что она осуществляет доступ к адаптеру 402 контролируемым образом, т.е. таким образом, что гарантируется, что любые процессы в дочернем разделе 246 не осуществляют доступ к данным, которые находятся за пределами ее раздела. К тому же, операцию снимка виртуальной машины следует использовать для переноса службы 602 хранения виртуальной машины.
Продолжая с описанием на Фиг. 9, операция 916 показывает отправку уведомления логическому процессору в ответ на прием запроса задания ввода/вывода от дочернего раздела и определение того, что логический процессор исполняет переносимую службу хранения. Например, в варианте осуществления, когда задание I/O нуждается в программной обработке, гипервизор 202 может принять прерывание и запуск. Гипервизор 202 может идентифицировать логический процессор, который запускает или запланирован для запуска службы 602 хранения виртуальной машины, и может уведомить этот логический процессор, т.е. посредством отправки прерывания или облегченного уведомления. Если служба 602 хранения виртуальной машины расположена в дочернем разделе, прерывание может быть отправлено логическому процессору без необходимости будить раздел управления для обслуживания сообщения. Если служба 602 хранения виртуальной машины исполняется в текущий момент, переключение контекста на службу 602 хранения виртуальной машины не должно происходить и не должно прерываться, так как взамен следует использовать облегченное уведомление.
Продолжая с описанием Фиг. 9, операция 918 показывает определение того, что трафик ввода/вывода является совместимым с политикой безопасности, по мере того как трафик ввода/вывода передают между уникальным сетевым идентификатором и по меньшей мере одним другим уникальным сетевым идентификатором посредством сетевого адаптера. Например, в варианте осуществления, адаптер 402 может включать в себя политику безопасности для сетевого трафика. В этом примерном варианте осуществления, адаптер 402 может быть выполнен с возможностью определения того, что трафик ввода/вывода, отправленный между службой 602 хранения виртуальной машины и другим уникальным идентификатором, например, тем который прикреплен к виртуальной машине, соответствует политике безопасности. В конкретном примере, политика безопасности может требовать, чтобы весь трафик ввода/вывода был зашифрован. В этом примере, адаптер 402 может быть выполнен с возможностью определения того, осуществляются ли операции записи на виртуальный накопитель на жестком диске открытым текстом или зашифрованы. В другом примере, политика безопасности может требовать, чтобы виртуальные локальные сети держались полностью отдельно, без позволения трафика данных между конечными точками в разных виртуальных локальных сетях.
Возвращаясь теперь к Фиг. 10, на нем проиллюстрирована операционная процедура для применения на практике аспектов настоящего раскрытия, включающая в себя операции 1000, 1002 и 1004. Операция 1000 начинает операционную процедуру, а операция 1002 показывает прикрепление первого уникального сетевого идентификатора для сетевого адаптера к службе хранения, выполненной с возможностью управления запросами ввода/вывода виртуального жесткого диска для дочернего раздела. Например, и возвращаясь к Фиг. 6, в варианте осуществления настоящего раскрытия, SR-IOV адаптер 402 может приводить в исполнение множество сетевых идентификатором и назначать один из них службе 602 хранения виртуальной машины. В примере с fibre channel, fibre channel адаптер главной шины может использовать виртуализацию N_Port ID или (NPIV) для обеспечения возможности использования множества уникальных идентификаторов на одном и том же порте. В этом примере с fibre channel, служба 602 хранения виртуальной машины должна использовать исключительно назначенный NPIV-адрес для осуществления связи в коммуникационной матрице.
Продолжая с описанием Фиг. 10, операция 1004 показывает прикрепление виртуальной функции, приводимой в исполнение сетевым адаптером, к дочернему разделу, в котором виртуальная функция включает в себя второй уникальный сетевой идентификатор. Например, ссылаясь опять на Фиг. 6, SR-IOV адаптер 402 может конкретизировать виртуальную функцию 406, включающую в себя уникальный сетевой идентификатор, и прикреплять ее к виртуальной машине. В этом примерном варианте осуществления, адаптер 402 выполнен с возможностью функционирования в качестве коммутатора, который маршрутизирует запросы I/O через адаптер к службе 602 хранения, обходя гипервизор 202 или отдельный механизм связи раздел-раздел. Это в свою очередь уменьшает время исполнения инструкций на логическом процессоре для уведомления и переключения разделов.
Возвращаясь теперь к Фиг. 11, на нем проиллюстрирован альтернативный вариант осуществления операционной процедуры с Фиг. 10, включающий в себя дополнительные операции 1106, 1108, 1110, 1112 и 1114. Операция 1106 показывает отправку запроса для конфигурирования второй виртуальной функции, чтобы включать в себя первый уникальный сетевой идентификатор, в удаленную компьютерную систему, которая включает в себя второй сетевой адаптер. Например, в варианте осуществления, логический процессор может исполнять инструкции в менеджере 250 и может генерировать запрос для конфигурирования виртуальной функции в удаленной компьютерной системе, которая имеет другой адаптер, чтобы включать в себя уникальный сетевой идентификатор, прикрепленный к службе 602 хранения виртуальной машины. Возвращаясь к Фиг. 7, в конкретном примере, менеджер 250 на компьютерной системе 700 может отправить сгенерированный запрос компьютерной системе 702, имеющей адаптер 718. Запрос в этом примере может быть использован менеджером 250 в компьютерной системе 702 для отдачи ему команды конкретизировать виртуальную функцию 710 и включить в нее уникальный идентификатор, ассоциированный с экземпляром службы 602 хранения виртуальной машины.
Продолжая с описанием Фиг. 11, операция 1108 показывает перенос службы хранения в дочерний раздел и конфигурирование второй виртуальной функции, назначенной дочернему разделу, для использования первого уникального сетевого идентификатора. Например, и возвращаясь к Фиг. 7, логический процессор может запустить менеджер 250 и перенести службу 602 хранения виртуальной машины из, например, родительского раздела 204 в дочерний раздел 246. В этом примере, логический процессор может запустить менеджер 250 и извлечь уникальный идентификатор, который ассоциирован со службой 602 хранения виртуальной машины, и отправить его адаптеру 402. Адаптер 402 может конкретизировать виртуальную функцию 404 и прикрепить к ней уникальный идентификатор. Впоследствии, менеджер 250 может прикрепить уникальный идентификатор к экземпляру службы 602 хранения виртуальной машины. В этом примерном варианте осуществления, служба 602 хранения виртуальной машины находится в отдельном от процессов управления разделе и фактически становится выделенным разделом хранилища, действующим как объект назначения iSCSI.
Возвращаясь теперь к операции 1110, она показывает трансляцию, посредством блока управления памятью для операций ввода/вывода, гостевых физических адресов, ассоциированных с запросами ввода/вывода от дочернего раздела, в системные физические адреса. Например, и ссылаясь на Фиг. 7, в варианте осуществления настоящего раскрытия, блок 426 управления памятью для операций ввода/вывода компьютерной системы 700 может быть использован для конвертирования гостевого физического адреса в системные физические адреса. Например, когда гостевая операционная система 220 инициирует операцию I/O, например, чтение или запись, гостевая операционная система 220, генерирует команду, которая заключает в себе гостевые физические адреса. В этом примере, блок 426 управления памятью для операций ввода/вывода может использовать таблицу, которая увязывает адреса гостевой памяти дочернего раздела 246 с системными адресами, используемыми родительским разделом 204. Адаптер 402 и I/O MMU 426 могут быть выполнены с возможностью трансляции как отправляющих, так и принимающих буферов из гостевых физических адресов в системные физические адреса, адаптер 402 может затем скопировать данные из внутреннего отправляющего буфера во внутренний принимающий буфер или наоборот.
Возвращаясь теперь к операции 1112, она показывает конфигурирование сетевого адаптера для осуществления мониторинга соблюдения политики безопасности трафика ввода/вывода, по мере того как трафик ввода/вывода передают между уникальным сетевым идентификатором и вторым уникальным сетевым идентификатором. Например, в варианте осуществления, адаптер 402 может включать в себя политику безопасности для сетевого трафика. В этом примерном варианте осуществления, адаптер 402 может быть выполнен с возможностью определения того, что трафик ввода/вывода, отправленный между службой 602 хранения виртуальной машины и другим уникальным идентификатором, например, тем который прикреплен к виртуальной машине, соответствует политике безопасности. Конкретный пример может включать в себя политику безопасности, которая требует, чтобы определенные виртуальные машины отправляли I/O, используя определенный уникальный идентификатор в сети. Адаптер 402 в этом примере может осуществлять мониторинг пакетов информации из виртуальных машин и определять, являются ли они совместимыми с политикой безопасности.
Возвращаясь теперь к операции 1114, она показывает отправку запроса на удаленную компьютерную систему для конкретизирования службы хранения и назначения службе хранения первого уникального сетевого идентификатора в ответ на определение того, что от удаленной компьютерной системы было принято количество запросов выше заранее определенного порогового значения. Например, в варианте осуществления настоящего раскрытия, логический процессор может запустить инструкции, указывающие на менеджер 250, и отправить запрос, дающий распоряжение удаленной компьютерной системе, такой как компьютерная система 702, конкретизировать экземпляр службы 602 хранения виртуальной машины и прикрепить его к уникальному идентификатору. Логический процессор может сгенерировать этот запрос после осуществления мониторинга уникальных идентификаторов, ассоциированных с входящими запросами I/O, и определения того, что от компьютерной системы 702 было принято число запросов выше порогового значения. В конкретном примере, менеджер 250 должен определить, что 60% запросов I/O за последние 30 минут были приняты от уникальных идентификаторов, ассоциированных в данный момент с компьютерной системой 702. В этом случае, менеджер 250 может определить, что производительность центра обработки данных может быть увеличена, если службу 602 хранения виртуальной машины исполняют локально на компьютерной системе 702, и перенести его.
Возвращаясь теперь к Фиг. 12, на нем проиллюстрирована операционная процедура, включающая в себя операции 1200 и 1202. Операция 1200 начинает операционную процедуру, и операция 1202 показывает исполнение службы хранения в дочернем разделе, в котором служба хранения выполнена с возможностью управления запросами ввода/вывода диска виртуального накопителя на жестком диске для второй дочернего раздела, в котором службе хранения назначают уникальный сетевой идентификатор в сети. Например, в варианте осуществления, службу 602 хранения виртуальной машины могут приводить в исполнение в дочернем разделе, например, дочернем разделе 246, и назначать уникальный идентификатор в сети, например, всемирное имя. Дочерним разделом 246 в этом примерном варианте осуществления могут управлять посредством гипервизора 202 и/или родительского раздела 204. При этой конфигурации, дочерний раздел 246 может фактически стать выделенным разделом хранилища, действующим как объект назначения iSCSI.
Возвращаясь теперь к Фиг. 13, на нем проиллюстрирован альтернативный вариант осуществления операционной процедуры с Фиг. 12, включающий в себя операции 1304, 1306, 1308, 1310 и 1312. Возвращаясь к операции 1304, она показывает отправку запроса на удаленную компьютерную систему для конкретизирования службы хранения и назначения службе хранения первого уникального сетевого идентификатора в ответ на определение того, что от удаленной компьютерной системы было принято количество запросов выше заранее определенного порогового значения. Например, в варианте осуществления настоящего раскрытия, логический процессор может запустить инструкции, указывающие на менеджер 250, и отправить запрос, дающий распоряжение удаленной компьютерной системе, такой как компьютерная система 702, конкретизировать экземпляр службы 602 хранения виртуальной машины и прикрепить его к уникальному идентификатору. Логический процессор может сгенерировать этот запрос после осуществления мониторинга уникальных идентификаторов, ассоциированных с входящими запросами I/O, и определения того, что от компьютерной системы 702 было принято число запросов выше порогового значения. В конкретном примере, менеджер 250 должен определить, что 60% запросов I/O за последние 30 минут были приняты от уникальных идентификаторов, ассоциированных в данный момент с компьютерной системой 702. В этом случае, менеджер 250 может определить, что производительность центра обработки данных может быть увеличена, если служба 602 хранения виртуальной машины исполняют локально на компьютерной системе 702, и перенести его.
Продолжая с описанием Фиг. 13, операция 1306 показывает перенос службы хранения в гипервизор. Например, и возвращаясь к Фиг. 7, в варианте осуществления, служба 602 хранения виртуальной машины может быть перенесена в гипервизор 202. В этом примерном варианте осуществления компьютерная система 702 может иметь архитектуру, подобную той, что изображена на Фиг. 3, и может быть принято решение переместить службу 602 хранения из дочернего раздела 246 в гипервизор 202. В этом примере, логический процессор может запустить менеджер 250 и извлечь уникальный идентификатор, который ассоциирован со службой 602 хранения виртуальной машины, и гипервизор 202 может прикрепить его к экземпляру службы 602 хранения виртуальной машины. В примерном варианте осуществления, так как гипервизор 202 контролирует аппаратное обеспечение, он может быть выполнен с возможностью осуществления доступа к физической функции адаптера 402. В примерной реализации fibre channel, fibre channel контроллер главной шины может использовать NPIV, чтобы использовать уникальный идентификатор для отправки/приема команд I/O посредством адаптера 402.
Продолжая с описанием Фиг. 13, операция 1308 показывает перенос службы хранения в родительский раздел. Например, и возвращаясь к Фиг. 7, в варианте осуществления, служба 602 хранения виртуальной машины может быть перенесена из дочернего раздела 246 в родительский раздел 204 или 712. В этом примере, логический процессор может запустить менеджер 250 и извлечь уникальный идентификатор, который ассоциирован со службой 602 хранения виртуальной машины, и либо отправить его удаленному компьютеру, либо в родительский раздел 204 в локальной компьютерной системе. Впоследствии, уникальный идентификатор может быть прикреплен к экземпляру службы 602 хранения.
Продолжая с описанием Фиг. 13, операция 1310 показывает назначение службы хранения гипервизору. В этом примерном варианте осуществления, виртуальная функция 406 может быть прикреплена к дочернему разделу 248, и она может иметь второй уникальный сетевой идентификатор в сети. Как показано на Фигуре, в этом примерном варианте осуществления, оба дочерних раздела 246 и 248 могут быть прикреплены к одному и тому же SR-IOV адаптеру 402. Таким образом, в этом примерном варианте осуществления запросы I/O могут быть пропущены через SR-IOV адаптер 402, а не через гипервизор 202 или через механизмы связи раздел-раздел, и без необходимости отправлять I/O через коммуникатор 704.
Продолжая с описанием Фиг. 13, операция 1312 показывает конфигурирование блок управления памятью для операций ввода/вывода для трансляции гостевых физических адресов, ассоциированных с запросами ввода/вывода для дочернего раздела, в системные физические адреса. Например, и ссылаясь на Фиг. 7, в варианте осуществления настоящего раскрытия, блок 426 управления памятью для операций ввода/вывода компьютерной системы 700 может быть использован для конвертирования гостевого физического адреса в системные физические адреса. Например, когда гостевая операционная система 220 инициирует операцию I/O, например, чтение или запись, гостевая операционная система 220, генерирует команду, которая заключает в себе гостевые физические адреса. В этом примере, блок 426 управления памятью для операций ввода/вывода может использовать таблицу, которая увязывает адреса гостевой памяти дочернего раздела 248 с системными адресами, используемыми родительским разделом. Адаптер 402 и I/O MMU 426 могут быть выполнены с возможностью трансляции как отправляющих, так и принимающих буферов из гостевых физических адресов в системные физические адреса, адаптер 402 может затем скопировать данные из внутреннего отправляющего буфера во внутренний принимающий буфер или наоборот.
Вышеприведенное подробное описание излагает различные варианты осуществления систем и/или процессов посредством примеров и/или операционных схем. Поскольку блок-схемы и/или примеры содержат одну или более функций и/или операций, специалисты в данной области технике поймут, что каждая функция или операция внутри таких блок-схем, или примеров, может быть реализована, индивидуально или совместно, посредством широкого диапазона аппаратного обеспечения, программного обеспечения, программно-аппаратных средств или виртуально любыми их комбинациями.
Тогда как конкретные аспекты настоящего объекта изобретения, описанные в настоящем документе, были показаны и описаны, специалистам в данной области техники следует осознавать, что на основе идей в настоящем документе, изменения и модификации могут быть сделаны без отступления от объекта изобретения, описанного в настоящем документе, и его широких аспектов и, вследствие этого, прилагающиеся пункты формулы изобретения предназначены охватывать в пределах их объема все такие изменения и модификации как есть в пределах подлинной сущности и объема объекта изобретения, описанного в настоящем документе.