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

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

Info

Publication number
RU2562436C2
RU2562436C2 RU2012130056/08A RU2012130056A RU2562436C2 RU 2562436 C2 RU2562436 C2 RU 2562436C2 RU 2012130056/08 A RU2012130056/08 A RU 2012130056/08A RU 2012130056 A RU2012130056 A RU 2012130056A RU 2562436 C2 RU2562436 C2 RU 2562436C2
Authority
RU
Russia
Prior art keywords
storage service
virtual
portable storage
virtual machine
child partition
Prior art date
Application number
RU2012130056/08A
Other languages
English (en)
Other versions
RU2012130056A (ru
Inventor
Джейкоб ОШИНС
Дастин Л. ГРИН
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2012130056A publication Critical patent/RU2012130056A/ru
Application granted granted Critical
Publication of RU2562436C2 publication Critical patent/RU2562436C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

УРОВЕНЬ ТЕХНИКИ
Технология виртуальной машины может быть использована для упаковки полезной нагрузки и перемещения ее в центр обработки данных. Эта способность перемещать полезную нагрузку из одного физического хоста на другой является огромной пользой для пользователей, потому что это дает возможность динамической консолидации машин, которая приводит к гораздо меньшим затратам на аппаратное обеспечение и административным затратам. Виртуальные машины типично осуществляют доступ к хранилищу посредством модуля, который обслуживает виртуализацию хранилища, размещенного внутри гипервизора, раздела управления или их комбинации. В этой модели, виртуальные машины типично отправляют запросы 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 может затем скопировать данные из внутреннего отправляющего буфера во внутренний принимающий буфер или наоборот.
Вышеприведенное подробное описание излагает различные варианты осуществления систем и/или процессов посредством примеров и/или операционных схем. Поскольку блок-схемы и/или примеры содержат одну или более функций и/или операций, специалисты в данной области технике поймут, что каждая функция или операция внутри таких блок-схем, или примеров, может быть реализована, индивидуально или совместно, посредством широкого диапазона аппаратного обеспечения, программного обеспечения, программно-аппаратных средств или виртуально любыми их комбинациями.
Тогда как конкретные аспекты настоящего объекта изобретения, описанные в настоящем документе, были показаны и описаны, специалистам в данной области техники следует осознавать, что на основе идей в настоящем документе, изменения и модификации могут быть сделаны без отступления от объекта изобретения, описанного в настоящем документе, и его широких аспектов и, вследствие этого, прилагающиеся пункты формулы изобретения предназначены охватывать в пределах их объема все такие изменения и модификации как есть в пределах подлинной сущности и объема объекта изобретения, описанного в настоящем документе.

Claims (15)

1. Система для эксплуатации службы хранения, содержащая:
схемы для реализации переносимой службы хранения, при этом переносимая служба хранения выполнена с возможностью управления относящимися к виртуальному жесткому диску запросами ввода/вывода для дочернего раздела, причем дочерний раздел представляет собой среду исполнения, при этом переносимой службе хранения назначается уникальный сетевой идентификатор для сети;
схемы для переноса переносимой службы хранения в, по меньшей мере, другой раздел; и
схемы для конфигурирования переносимой службы хранения в качестве целевого хранилища в сети.
2. Система по п. 1, дополнительно содержащая схемы для переноса переносимой службы хранения в раздел в удаленной компьютерной системе.
3. Система по п. 1, дополнительно содержащая схемы для конфигурирования блока управления памятью для операций ввода/вывода для трансляции гостевых физических адресов, ассоциированных с запросами ввода/вывода для дочернего раздела, в системные физические адреса.
4. Система по п. 1, дополнительно содержащая схемы для приема запроса задания ввода/вывода от дочернего раздела, при этом дочерний раздел привязан к виртуальной функции, которая включает в себя второй уникальный сетевой идентификатор для сети, причем виртуальная функция представляет собой виртуализированный интерфейс к физической функции.
5. Система по п. 1, дополнительно содержащая схемы для исполнения переносимой службы хранения в первом разделе и исполнения службы управления, выполненной с возможностью управления виртуальными машинами, во втором разделе, при этом дочерний раздел является третьим разделом.
6. Система по п. 1, дополнительно содержащая схемы для ассоциирования переносимой службы хранения с виртуальной функцией сетевого адаптера, которая включает в себя уникальный сетевой идентификатор, и привязывания дочернего раздела ко второй виртуальной функции сетевого адаптера.
7. Система по п. 1, дополнительно содержащая схемы для отправки уведомления логическому процессору в ответ на прием запроса задания ввода/вывода от дочернего раздела и определение того, что логический процессор исполняет переносимую службу хранения.
8. Система по п. 1, дополнительно содержащая схемы для определения того, что трафик ввода/вывода является совместимым с политикой безопасности, по мере того как трафик ввода/вывода передается между уникальным сетевым идентификатором и по меньшей мере одним другим уникальным сетевым идентификатором посредством сетевого адаптера.
9. Компьютерно-реализуемый способ эксплуатации службы хранения, содержащий этапы, на которых:
реализуют переносимую службу хранения, выполненную с возможностью управления относящимися к виртуальному жесткому диску запросами ввода/вывода для дочернего раздела, причем дочерний раздел представляет собой среду исполнения;
назначают переносимой службе хранения первый уникальный сетевой идентификатор для сетевого адаптера;
привязывают виртуальную функцию, реализуемую сетевым адаптером, к дочернему разделу, причем виртуальная функция представляет собой виртуализированный интерфейс к физической функции, при этом виртуальная функция включает в себя второй уникальный сетевой идентификатор;
переносят переносимую службу хранения в, по меньшей мере, другой раздел; и
конфигурируют переносимую службу хранения в качестве целевого хранилища в сети.
10. Способ по п. 9, дополнительно содержащий этап, на котором в удаленную компьютерную систему, которая включает в себя второй сетевой адаптер, отправляют запрос конфигурирования второй виртуальной функции для включения первого уникального сетевого идентификатора.
11. Способ по п. 9, дополнительно содержащий этап, на котором переносят службу хранения в дочерний раздел и конфигурируют вторую виртуальную функцию, назначенную дочернему разделу, для использования первого уникального сетевого идентификатора.
12. Способ по п. 9, дополнительно содержащий этап, на котором транслируют посредством блока управления памятью для операций ввода/вывода гостевые физические адреса, ассоциированные с запросами ввода/вывода из дочернего раздела, в системные физические адреса.
13. Способ по п. 9, дополнительно содержащий этап, на котором конфигурируют сетевой адаптер для контроля соблюдения политики безопасности трафика ввода/вывода по мере того, как трафик ввода/вывода передают между первым уникальным сетевым идентификатором и по меньшей мере одним другим уникальным сетевым идентификатором.
14. Способ по п. 9, дополнительно содержащий этап, на котором в удаленную компьютерную систему отправляют запрос - создать экземпляр службы хранения в этой удаленной компьютерной системе, и перенести, и назначить первый уникальный сетевой идентификатор службе хранения в ответ на определение того, что от удаленной компьютерной системы было принято количество запросов ввода/вывода, превышающее заранее определенное пороговое значение.
15. Способ по п. 9, дополнительно содержащий этап, на котором переносят службу хранения в гипервизор и конфигурируют вторую виртуальную функцию для использования первого уникального сетевого идентификатора.
RU2012130056/08A 2009-12-17 2010-11-23 Технологические приемы выгрузки объекта назначения виртуального хранилища RU2562436C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/640,272 US9389895B2 (en) 2009-12-17 2009-12-17 Virtual storage target offload techniques
US12/640,272 2009-12-17
PCT/US2010/057871 WO2011084257A2 (en) 2009-12-17 2010-11-23 Virtual storage target offload techniques

Publications (2)

Publication Number Publication Date
RU2012130056A RU2012130056A (ru) 2014-01-27
RU2562436C2 true RU2562436C2 (ru) 2015-09-10

Family

ID=44152997

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012130056/08A RU2562436C2 (ru) 2009-12-17 2010-11-23 Технологические приемы выгрузки объекта назначения виртуального хранилища

Country Status (7)

Country Link
US (2) US9389895B2 (ru)
EP (1) EP2513784A4 (ru)
JP (1) JP6055310B2 (ru)
KR (1) KR101782342B1 (ru)
CN (1) CN102652305B (ru)
RU (1) RU2562436C2 (ru)
WO (1) WO2011084257A2 (ru)

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8566640B2 (en) * 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US9331963B2 (en) * 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
EP2466486A1 (en) * 2010-12-16 2012-06-20 STMicroelectronics (Grenoble 2) SAS An arrangement
US8447891B2 (en) * 2011-01-11 2013-05-21 International Business Machines Corporation Dynamically assigning virtual functions to client applications
US9043562B2 (en) 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9021475B2 (en) * 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device
FR2977116A1 (fr) * 2011-06-27 2012-12-28 France Telecom Procede de fourniture de service d'execution de logiciel a la demande
US8769533B2 (en) 2011-07-18 2014-07-01 International Business Machines Corporation Check-point based high availability: network packet buffering in hardware
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8756601B2 (en) * 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
US9400722B2 (en) * 2011-11-15 2016-07-26 Ge Aviation Systems Llc Method of providing high integrity processing
US9092274B2 (en) * 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
JP5891900B2 (ja) 2012-03-29 2016-03-23 富士通株式会社 アクセス制御方法、サーバ装置およびストレージ装置
CN102650976B (zh) * 2012-04-01 2014-07-09 中国科学院计算技术研究所 一种支持单根io虚拟化用户级接口控制装置及其方法
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9086929B2 (en) * 2012-04-06 2015-07-21 International Business Machines Corporation Dynamic allocation of a workload across a plurality of clouds
US9071613B2 (en) 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
US9495308B2 (en) 2012-05-22 2016-11-15 Xockets, Inc. Offloading of computation for rack level servers and corresponding methods and systems
US20130318280A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
WO2014100279A1 (en) * 2012-12-18 2014-06-26 Dynavisor, Inc. Dynamic device virtualization
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9473589B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Server communication over fibre channel using a block device access model
US9473590B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9407601B1 (en) 2012-12-21 2016-08-02 Emc Corporation Reliable client transport over fibre channel using a block device access model
US9563423B1 (en) 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9232000B1 (en) 2012-12-21 2016-01-05 Emc Corporation Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US9531765B1 (en) 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9270786B1 (en) 2012-12-21 2016-02-23 Emc Corporation System and method for proxying TCP connections over a SCSI-based transport
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9237057B1 (en) 2012-12-21 2016-01-12 Emc Corporation Reassignment of a virtual connection from a busiest virtual connection or locality domain to a least busy virtual connection or locality domain
US9473591B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Reliable server transport over fibre channel using a block device access model
US9509797B1 (en) * 2012-12-21 2016-11-29 Emc Corporation Client communication over fibre channel using a block device access model
US10311014B2 (en) * 2012-12-28 2019-06-04 Iii Holdings 2, Llc System, method and computer readable medium for offloaded computation of distributed application protocols within a cluster of data processing nodes
US9250954B2 (en) 2013-01-17 2016-02-02 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
US9378161B1 (en) 2013-01-17 2016-06-28 Xockets, Inc. Full bandwidth packet handling with server systems including offload processors
KR101628436B1 (ko) * 2013-02-01 2016-06-09 단국대학교 산학협력단 가상 머신의 데이터 처리 방법
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
US9448830B2 (en) * 2013-03-14 2016-09-20 Google Inc. Service bridges
US9720717B2 (en) * 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
US10051054B2 (en) * 2013-03-15 2018-08-14 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10075470B2 (en) 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
US9229761B2 (en) * 2013-06-03 2016-01-05 Intel Corporation Generating, at least in part, at least one packet indicating, at least in part, at least one command and/or issuing, at least in part, at least one result of execution, at least in part, of the at least one command
US9294391B1 (en) * 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9548888B1 (en) * 2013-06-24 2017-01-17 EMC IP Holding Company LLC Technique for setting WWNN scope for multi-port fibre channel SCSI target deduplication appliances
US10216754B1 (en) 2013-09-26 2019-02-26 EMC IP Holding Company LLC System and method for balancing compression and read performance in a storage system
US10838990B1 (en) 2013-09-26 2020-11-17 EMC IP Holding Company LLC System and method for improving data compression of a storage system using coarse and fine grained similarity
US9305009B1 (en) * 2013-09-30 2016-04-05 Emc Corporation Synchronous replication of virtualized storage processors
US9311044B2 (en) 2013-12-04 2016-04-12 Oracle International Corporation System and method for supporting efficient buffer usage with a single external memory interface
US9104637B2 (en) * 2013-12-04 2015-08-11 Oracle International Corporation System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
KR102209525B1 (ko) * 2014-01-06 2021-01-29 삼성전자주식회사 마이크로 서버, mac 주소 할당 방법 및 컴퓨터 판독가능 기록매체
US9424059B1 (en) * 2014-03-12 2016-08-23 Nutanix, Inc. System and methods for implementing quality of service in a networked virtualization environment for storage management
US9858058B2 (en) * 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
US9483290B1 (en) * 2014-04-29 2016-11-01 Qlogic, Corporation Method and system for virtual machine communication
US20150319250A1 (en) * 2014-04-30 2015-11-05 Anil Vasudevan Technologies for accelerating network virtualization
CN105302641B (zh) * 2014-06-04 2019-03-22 杭州海康威视数字技术股份有限公司 虚拟化集群中进行节点调度的方法及装置
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
US9851998B2 (en) * 2014-07-30 2017-12-26 Microsoft Technology Licensing, Llc Hypervisor-hosted virtual machine forensics
KR102308782B1 (ko) 2014-08-19 2021-10-05 삼성전자주식회사 메모리 컨트롤러, 스토리지 디바이스, 서버 가상화 시스템 및 서버 가상화 시스템에서의 스토리지 디바이스 인식 방법
US9389901B2 (en) 2014-09-09 2016-07-12 Vmware, Inc. Load balancing of cloned virtual machines
EP3195112A4 (en) * 2014-09-18 2018-06-27 Intel Corporation Supporting multiple operating system environments in computing device without contents conversion
CN104461958B (zh) * 2014-10-31 2018-08-21 华为技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
FR3029311B1 (fr) * 2014-11-27 2017-01-06 Thales Sa Procede de gestion d'une architecture et architecture associee
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US10129081B1 (en) * 2015-03-30 2018-11-13 EMC IP Holding Company LLC Dynamic configuration of NPIV virtual ports in a fibre channel network
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US11036533B2 (en) 2015-04-17 2021-06-15 Samsung Electronics Co., Ltd. Mechanism to dynamically allocate physical storage device resources in virtualized environments
US10838852B2 (en) 2015-04-17 2020-11-17 Samsung Electronics Co., Ltd. System and method to extend NVME queues to user space
US9727359B2 (en) * 2015-04-27 2017-08-08 Red Hat Israel, Ltd. Virtual machine function based sub-page base address register access for peripheral component interconnect device assignment
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
CN106302322B (zh) * 2015-05-19 2020-05-26 腾讯科技(深圳)有限公司 一种虚拟机数据流管理方法和系统
US9378043B1 (en) * 2015-05-28 2016-06-28 Altera Corporation Multilayer quality of service (QOS) for network functions virtualization platforms
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
KR102371916B1 (ko) 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
US20170031838A1 (en) * 2015-07-28 2017-02-02 Qualcomm Incorporated Method and apparatus for using context information to protect virtual machine security
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US10852954B1 (en) * 2015-09-23 2020-12-01 EMC IP Holding Company LLC Running an enterprise storage subsystem as a virtual machine
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
CN111831588A (zh) * 2015-10-21 2020-10-27 华为技术有限公司 一种存储设备访问方法、装置和系统
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US11163597B2 (en) * 2016-01-20 2021-11-02 Unisys Corporation Persistent guest and software-defined storage in computing fabric
CN105808167B (zh) * 2016-03-10 2018-12-21 深圳市杉岩数据技术有限公司 一种基于sr-iov的链接克隆的方法、存储设备及系统
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10019288B2 (en) 2016-09-12 2018-07-10 Mediatek, Inc. Fast and stable mechanism for allocating contiguous memory
CN106502721B (zh) * 2016-09-26 2019-11-15 华为技术有限公司 一种命令卸载方法、装置及物理机
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10558250B2 (en) 2016-12-23 2020-02-11 Oracle International Corporation System and method for coordinated link up handling following switch reset in a high performance computing network
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
CN106909443A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种虚拟机的配置方法及装置
US10942758B2 (en) * 2017-04-17 2021-03-09 Hewlett Packard Enterprise Development Lp Migrating virtual host bus adaptors between sets of host bus adaptors of a target device in order to reallocate bandwidth to enable virtual machine migration
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10917496B2 (en) * 2017-09-05 2021-02-09 Amazon Technologies, Inc. Networked storage architecture
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US11693792B2 (en) * 2018-01-04 2023-07-04 Google Llc Infernal storage in cloud disk to support encrypted hard drive and other stateful features
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10802983B2 (en) * 2018-05-31 2020-10-13 Vmware, Inc. Programmable block storage addressing using embedded virtual machines
US10841291B2 (en) * 2018-05-31 2020-11-17 Vmware, Inc. Method for block authentication using embedded virtual machines
US11074013B2 (en) * 2018-08-07 2021-07-27 Marvell Asia Pte, Ltd. Apparatus and methods for providing quality of service over a virtual interface for solid-state storage
US11656775B2 (en) 2018-08-07 2023-05-23 Marvell Asia Pte, Ltd. Virtualizing isolation areas of solid-state storage media
CN112996581B (zh) * 2018-09-27 2023-02-10 迪睿合株式会社 阴离子性絮凝剂、阴离子性絮凝剂的制造方法和处理方法
US11010314B2 (en) 2018-10-30 2021-05-18 Marvell Asia Pte. Ltd. Artificial intelligence-enabled management of storage media access
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11481118B2 (en) 2019-01-11 2022-10-25 Marvell Asia Pte, Ltd. Storage media programming with adaptive write buffer release
GB2594876B (en) * 2019-02-22 2022-11-16 Intel Corp Dynamical switching between EPT and shadow page tables for runtime processor verification
US11106481B2 (en) * 2019-04-19 2021-08-31 Red Hat, Inc. Safe hyper-threading for virtual machines
CN110704163A (zh) * 2019-09-29 2020-01-17 浪潮商用机器有限公司 一种服务器及其虚拟化存储方法和装置
CN114070755B (zh) * 2020-07-29 2023-08-01 中移(苏州)软件技术有限公司 虚拟机网络流量确定方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2006103559A (ru) * 2005-03-08 2007-08-20 Майкрософт Корпорейшн (Us) Способ и система для виртуализиции гостевого физического адреса в среде виртуальной машины
EP2017711A2 (en) * 2007-07-18 2009-01-21 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239647A (en) * 1990-09-07 1993-08-24 International Business Machines Corporation Data storage hierarchy with shared storage level
WO1999026159A2 (en) 1997-11-14 1999-05-27 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6360281B1 (en) 1998-05-29 2002-03-19 3Com Corporation System and method for communicating with a serial communications device using multiple virtual ports
US7756986B2 (en) * 1998-06-30 2010-07-13 Emc Corporation Method and apparatus for providing data management for a storage system coupled to a network
US6845395B1 (en) * 1999-06-30 2005-01-18 Emc Corporation Method and apparatus for identifying network devices on a storage network
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
JP4457184B2 (ja) * 2001-02-13 2010-04-28 ネットアップ,インコーポレイテッド ストレージシステムにおけるフェイルオーバー処理
IL145104A (en) 2001-08-23 2007-02-11 Gregory Bondar A method and system for balancing the load on a computer resource between computers
US6990604B2 (en) 2001-12-28 2006-01-24 Storage Technology Corporation Virtual storage status coalescing with a plurality of physical storage devices
US20030187853A1 (en) * 2002-01-24 2003-10-02 Hensley Roy Austin Distributed data storage system and method
US7403996B2 (en) * 2002-02-21 2008-07-22 Bea Systems, Inc. Systems and methods for migratable services
US7093038B2 (en) * 2002-05-06 2006-08-15 Ivivity, Inc. Application program interface-access to hardware services for storage management applications
JP4100968B2 (ja) 2002-06-06 2008-06-11 株式会社日立製作所 データマッピング管理装置
US7379990B2 (en) 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
US7124320B1 (en) * 2002-08-06 2006-10-17 Novell, Inc. Cluster failover via distributed configuration repository
US7080225B1 (en) 2002-12-10 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a computer system
US7606239B2 (en) * 2003-01-31 2009-10-20 Brocade Communications Systems, Inc. Method and apparatus for providing virtual ports with attached virtual devices in a storage area network
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP4716838B2 (ja) 2005-10-06 2011-07-06 株式会社日立製作所 計算機システム、管理計算機及び管理計算機のボリューム割当変更方法
US7085867B2 (en) * 2003-08-06 2006-08-01 Lsi Logic Corporation Methods and structure for SCSI2 to SCSI3 reservation protocol mapping
US20050080982A1 (en) 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US7437730B2 (en) 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system
US20050198303A1 (en) 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
JP4555036B2 (ja) * 2004-09-16 2010-09-29 株式会社日立製作所 ストレージ装置及びストレージ装置のデバイス切替制御方法
US20060085668A1 (en) * 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups
US20060085530A1 (en) * 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups using web services
US7523286B2 (en) 2004-11-19 2009-04-21 Network Appliance, Inc. System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
US7308551B2 (en) 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7870317B2 (en) * 2005-04-29 2011-01-11 Network Appliance, Inc. Storage processor for handling disparate requests to transmit in a storage appliance
US7299337B2 (en) 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7689800B2 (en) 2005-05-12 2010-03-30 Microsoft Corporation Partition bus
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7525957B2 (en) 2005-09-01 2009-04-28 Emulex Design & Manufacturing Corporation Input/output router for storage networks
JP4852298B2 (ja) 2005-10-28 2012-01-11 株式会社日立製作所 仮想ボリュームを識別する情報を引き継ぐ方法及びその方法を用いたストレージシステム
EP1977571A2 (en) * 2006-01-12 2008-10-08 Broadcom Israel R&D Method and system for protocol offload and direct i/o with i/o sharing in a virtualized network environment
US20070168525A1 (en) 2006-01-18 2007-07-19 Deleon Baltazar Iii Method for improved virtual adapter performance using multiple virtual interrupts
US8230153B2 (en) * 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US7484029B2 (en) 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US9032164B2 (en) * 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US20070260702A1 (en) 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
JP2007328611A (ja) 2006-06-08 2007-12-20 Hitachi Ltd ストレージ仮想化システム及び方法
US8473566B1 (en) * 2006-06-30 2013-06-25 Emc Corporation Methods systems, and computer program products for managing quality-of-service associated with storage shared by computing grids and clusters with a plurality of nodes
US7877760B2 (en) * 2006-09-29 2011-01-25 Microsoft Corporation Distributed hardware state management in virtual machines
US7793101B2 (en) 2006-10-19 2010-09-07 Novell, Inc. Verifiable virtualized storage port assignments for virtual machines
JP4724640B2 (ja) 2006-10-30 2011-07-13 富士通株式会社 ストレージ仮想化スイッチ
US7761612B2 (en) * 2006-12-07 2010-07-20 International Business Machines Corporation Migrating domains from one physical data processing system to another
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US7624262B2 (en) * 2006-12-20 2009-11-24 International Business Machines Corporation Apparatus, system, and method for booting using an external disk through a virtual SCSI connection
US7689862B1 (en) * 2007-01-23 2010-03-30 Emc Corporation Application failover in a cluster environment
US20080186990A1 (en) 2007-02-02 2008-08-07 International Business Machines Corporation Translation module, method and computer program product for providing multiple infiniband address support for vm migration using infiniband address translation
US8176486B2 (en) 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US8458430B2 (en) * 2007-03-26 2013-06-04 Archion, Inc. Configurable and scalable storage system
JP5117748B2 (ja) * 2007-03-29 2013-01-16 株式会社日立製作所 暗号化機能を備えたストレージ仮想化装置
CN101290583B (zh) * 2007-04-19 2011-03-16 国际商业机器公司 为虚拟机供应图像的方法和系统
US20090006537A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services
JP5446076B2 (ja) 2007-07-17 2014-03-19 株式会社ニコン デジタルカメラ
US8239646B2 (en) * 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US8645974B2 (en) 2007-08-02 2014-02-04 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device
US8683110B2 (en) 2007-08-23 2014-03-25 Nec Corporation I/O system and I/O control method
US8161243B1 (en) 2007-09-28 2012-04-17 Intel Corporation Address translation caching and I/O cache performance improvement in virtualized environments
US8191063B2 (en) 2007-09-30 2012-05-29 Symantex Corporation Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US20090089498A1 (en) 2007-10-02 2009-04-02 Michael Cameron Hay Transparently migrating ongoing I/O to virtualized storage
US8949585B2 (en) * 2007-10-09 2015-02-03 Vmware, Inc. In-place conversion of virtual machine state
US8141092B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
JP2009146106A (ja) 2007-12-13 2009-07-02 Hitachi Ltd 物理的な通信ポートに付加される仮想的な通信ポートを移行する機能を有したストレージシステム
US7890504B2 (en) * 2007-12-19 2011-02-15 Netapp, Inc. Using the LUN type for storage allocation
US8560593B2 (en) 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US8392482B1 (en) * 2008-03-31 2013-03-05 Amazon Technologies, Inc. Versioning of database partition maps
US8386540B1 (en) * 2008-03-31 2013-02-26 Amazon Technologies, Inc. Scalable relational database service
JP2009259108A (ja) 2008-04-18 2009-11-05 Toshiba Corp 情報処理装置および情報処理装置の制御方法
US8607020B2 (en) * 2008-06-06 2013-12-10 International Business Machines Corporation Shared memory partition data processing system with hypervisor managed paging
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
US8037280B2 (en) 2008-06-11 2011-10-11 Vmware, Inc. System and method for improving memory locality of virtual machines
US8151032B2 (en) * 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8230155B2 (en) * 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
JP2010009396A (ja) 2008-06-27 2010-01-14 Toshiba Corp 計算機システム、および計算機システムのデバイス制御方法
US20100011368A1 (en) * 2008-07-09 2010-01-14 Hiroshi Arakawa Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms
US8122225B2 (en) * 2008-08-12 2012-02-21 International Business Machines Corporation LUN masking/mapping in a SR-IOV enabled SAS adapter
US8924961B2 (en) * 2008-10-29 2014-12-30 Dell Products L.P. Virtual machine scheduling methods and systems
US9740517B2 (en) * 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
US8117487B1 (en) * 2008-12-29 2012-02-14 Symantec Corporation Method and apparatus for proactively monitoring application health data to achieve workload management and high availability
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8489721B1 (en) * 2008-12-30 2013-07-16 Symantec Corporation Method and apparatus for providing high availabilty to service groups within a datacenter
US8990800B2 (en) * 2009-01-14 2015-03-24 Dell Products L.P. System and method for increased system availability to network storage in virtualized environments
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8443156B2 (en) * 2009-03-27 2013-05-14 Vmware, Inc. Virtualization system using hardware assistance for shadow page table coherence
US8122213B2 (en) * 2009-05-05 2012-02-21 Dell Products L.P. System and method for migration of data
US8054763B2 (en) * 2009-05-15 2011-11-08 Hewlett-Packard Development Company, L.P. Migration of switch in a storage area network
US20100318782A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
US9130903B2 (en) 2009-07-01 2015-09-08 Citrix Systems, Inc. Unified out of band management system for desktop and server sessions
US8613085B2 (en) * 2009-07-22 2013-12-17 Broadcom Corporation Method and system for traffic management via virtual machine migration
US8873375B2 (en) * 2009-07-22 2014-10-28 Broadcom Corporation Method and system for fault tolerance and resilience for virtualized machines in a network
US8402461B2 (en) * 2009-11-15 2013-03-19 Hewlett-Packard Development Company, L. P. Switching between direct mode and indirect mode for virtual machine I/O requests
US8468345B2 (en) * 2009-11-16 2013-06-18 Microsoft Corporation Containerless data for trustworthy computing and data services
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8812799B2 (en) * 2009-12-11 2014-08-19 International Business Machines Corporation Cluster families for cluster selection and cooperative replication
US8850426B2 (en) * 2009-12-13 2014-09-30 International Business Machines Corporation Managing remote deployment of a virtual machine and service request to be processed by the virtual machines based on network bandwith and storage connectivity
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US10146566B2 (en) 2009-12-21 2018-12-04 Microsoft Technology Licensing, Llc Enabling virtual desktop connections to remote clients

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2006103559A (ru) * 2005-03-08 2007-08-20 Майкрософт Корпорейшн (Us) Способ и система для виртуализиции гостевого физического адреса в среде виртуальной машины
EP2017711A2 (en) * 2007-07-18 2009-01-21 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems

Also Published As

Publication number Publication date
US20110154318A1 (en) 2011-06-23
EP2513784A2 (en) 2012-10-24
US10248334B2 (en) 2019-04-02
CN102652305A (zh) 2012-08-29
JP2013514588A (ja) 2013-04-25
EP2513784A4 (en) 2014-03-12
CN102652305B (zh) 2015-10-07
RU2012130056A (ru) 2014-01-27
KR101782342B1 (ko) 2017-09-27
WO2011084257A3 (en) 2011-11-17
US20170017422A1 (en) 2017-01-19
KR20120115519A (ko) 2012-10-18
WO2011084257A2 (en) 2011-07-14
JP6055310B2 (ja) 2016-12-27
US9389895B2 (en) 2016-07-12

Similar Documents

Publication Publication Date Title
RU2562436C2 (ru) Технологические приемы выгрузки объекта назначения виртуального хранилища
US20110153715A1 (en) Lightweight service migration
US9984648B2 (en) Delivering GPU resources to a migrating virtual machine
US9928091B2 (en) Techniques for streaming virtual machines from a server to a host
US9588807B2 (en) Live logical partition migration with stateful offload connections using context extraction and insertion
KR101602519B1 (ko) 가상화된 저장소 할당 방법
US9317314B2 (en) Techniques for migrating a virtual machine using shared storage
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
US10708232B2 (en) Techniques for communication in hybrid cloud system
US10740133B2 (en) Automated data migration of services of a virtual machine to containers
US20070061441A1 (en) Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US11016817B2 (en) Multi root I/O virtualization system
EP3794807A1 (en) Apparatuses and methods for zero touch computing node initialization
CN113939803A (zh) 用于专用主机的管理计算资源放置即服务
US10079895B2 (en) Auto detecting remote session protocol for remote access
US10313190B2 (en) Techniques of preserving and restoring customized configurations of thin client at restore time points
US11829792B1 (en) In-place live migration of compute instances for efficient host domain patching
Ellrod Optimizing Citrix® XenDesktop® for High Performance

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant