СПОСОБ И УСТРОЙСТВО ДЛЯ РЕГУЛИРОВКИ КАНАЛА I/О НА ВИРТУАЛЬНОЙ ПЛАТФОРМЕ
METHOD AND APPARATUS FOR ADJUSTING I/O CHANNEL ON VIRTUAL PLATFORM

Эта заявка испрашивает приоритет по китайской патентной заявке номер 201310027312.7, поданной в китайское патентное ведомство 24 января 2013 и озаглавленной "METHOD AND APPARATUS FOR ADJUSTING I/O CHANNEL ON VIRTUAL PLATFORM", которая включается сюда по ссылке во всей полноте.
Область техники, к которой относится изобретение
Настоящее изобретение относится к области виртуальных технологий, в частности к способу и устройству для регулировки канала I/O на виртуальной платформе.
Уровень техники
Виртуализация абстрагирует и преобразует компьютерные физические ресурсы, такие как сервер, сеть, память и хранилище, и представляет их, так что пользователь может использовать эти ресурсы лучшим образом, чем в исходной конфигурации. Новая виртуальная часть этих ресурсов не ограничена типами архитектуры, местоположениями или физическими конфигурациями исходных ресурсов. Множество виртуальных машин (VM) работает на хосте, который существует физически. Хост управляет всеми физическими аппаратными устройствами и ресурсами и виртуализует одиночное устройство в множество виртуальных устройств для одновременного использования множеством пользовательских потоков. Устройство, которое каждый пользователь может видеть, является виртуальным устройством, и физические аппаратные устройства являются прозрачными для пользователя.
В виртуальной среде, VM не имеет возможности напрямую осуществлять доступ к аппаратному устройству, и хост обеспечивает для VM канал данных для соединения с аппаратным устройством, а именно канал I/O. В настоящем изобретении канал включает в себя канал данных между внешним устройством машины VM и внутренним устройством машины VM и канал данных между внутренним устройством машины VM и реальным устройством хоста; при этом внешнее устройство машины VM является устройством, видимым в виртуальной машине, и является фактически устройством, симулируемым посредством хоста для VM, внутреннее устройство машины VM является устройством программной симуляции, соединенным с внешним устройством машины VM в операционной системе хоста, и реальное устройство хоста является физическим устройством хоста.
Фиг. 1 описывает простую технологию с множеством каналов I/O на виртуальной платформе в предшествующем уровне техники, и в качестве примера используются две виртуальные машины VM1 и VM2, где имеется множество каналов I/O (на фиг. 1 в качестве примера используются два канала I/O) между внешним устройством и внутренним устройством машины VM. Модуль обработки данных является мостом между внешним устройством и внутренним устройством машины VM, используется для копирования данных, фильтрации данных или других служб обработки данных и включает в себя множество рабочих потоков (на фиг. 1 в качестве примера используются два рабочих потока); количество рабочих потоков равняется количеству каналов I/O между внешним устройством машины VM и внутренним устройством машины VM, и каждый канал I/O соответствует одному рабочему потоку. Одиночный канал существует между внутренним устройством машины VM и мостом и между мостом и реальным устройством, и внутреннее устройство машины VM передает данные в реальное устройство через одиночный канал.
Вышеупомянутый предшествующий уровень техники имеет, по меньшей мере, следующие технические проблемы: количество каналов I/O между внешним устройством машины VM и внутренним устройством машины VM определяется, когда машина VM создается, количество каналов I/O не может изменяться в течение работы машины VM, и поэтому ресурсы каналов, занятые каналами I/O между внешним устройством машины VM и внутренним устройством машины VM, не могут изменяться. Когда производительность I/O между внешним устройством машины VM и внутренним устройством машины VM изменяется, ресурсы каналов I/O не могут регулироваться; когда производительность I/O уменьшается, незанятые ресурсы каналов I/O не могут освобождаться, что дает в результате растрату ресурсов каналов I/O; когда производительность I/O увеличивается, ресурсы каналов I/O не могут увеличиваться, что дает в результате неспособность улучшать способность передачи данных каналов I/O и ухудшенную эффективность системы.
Сущность изобретения
Варианты осуществления настоящего изобретения обеспечивают способ регулировки канала I/O на виртуальной платформе и устройство регулировки хоста, чтобы динамически регулировать распределение ресурсов каналов I/O между внешними устройствами и внутренними устройствами множества машин VM, тем самым, повышая эффективность системы.
Согласно первому аспекту настоящее изобретение обеспечивает способ регулировки канала I/O на виртуальной платформе, и способ включает в себя:
вычисление, посредством хоста, текущей средней производительности I/O множества виртуальных машин VM, работающих на хосте; увеличение, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочий поток увеличивается; или уменьшение, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение; и отдельную регулировку, посредством хоста, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношения сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношения сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
В первом возможном варианте осуществления, со ссылкой на первый аспект, если текущая средняя производительность I/O больше, чем первое пороговое значение, до увеличения, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, способ дополнительно включает в себя:
сравнение, посредством хоста, увеличения в использовании CPU и увеличения в производительности I/O, результирующих из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM; и если увеличение в производительности I/O больше, чем увеличение в использовании CPU, выполнение этапа увеличения, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM.
Во втором возможном варианте осуществления, со ссылкой на первый аспект, если текущая средняя производительность I/O меньше, чем второе пороговое значение, до уменьшения, посредством хоста, рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, способ дополнительно включает в себя:
определение, посредством хоста, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM, если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, выполнение этапа уменьшения, посредством хоста, рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM.
В третьем возможном варианте осуществления, со ссылкой на первый аспект, или первый или второй возможный вариант осуществления первого аспекта, отдельная регулировка, посредством хоста, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношения сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношения сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM включает в себя:
когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения меньше, чем количество машин VM, работающих на хосте, сопоставление, посредством хоста, каждого рабочего потока очереди во внешнем устройстве каждой машины VM и очереди во внутреннем устройстве каждой машины VM; или когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения больше или равно количеству машин VM, работающих на хосте, сопоставление, посредством хоста, эксклюзивно используемого рабочего потока очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM, сопоставление совместно используемого рабочего потока очередям, которые находятся во внешних устройствах и внутренних устройствах, по меньшей мере, двух машин VM и не соответствуют эксклюзивно используемому рабочему потоку, где рабочие потоки для обработки машин VM включают в себя эксклюзивно используемый рабочий поток и совместно используемый рабочий поток.
В четвертом возможном варианте осуществления, со ссылкой на первый аспект, или первый, второй, или третий возможный вариант осуществления первого аспекта, после отдельной регулировки, посредством хоста, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношения сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношения сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, способ дополнительно включает в себя:
регулировку, посредством хоста, отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, так что между внутренними устройствами множества машин VM и реальным устройством формируется множество каналов передачи данных.
Согласно второму аспекту настоящее изобретение обеспечивает устройство хоста для регулировки канала I/O на виртуальной платформе, и хост включает в себя:
модуль вычисления, сконфигурированный с возможностью вычислять текущую среднюю производительность I/O множества виртуальных машин VM, работающих на хосте; модуль обработки, который соединен с модулем вычисления, сконфигурированный с возможностью увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля вычисления, больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля вычисления, меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение; и первый модуль регулировки, который соединен с модулем обработки, сконфигурированный с возможностью отдельно регулировать, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения посредством модуля обработки, отношения сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношения сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
В первом возможном варианте осуществления, со ссылкой на первый аспект, устройство регулировки дополнительно включает в себя:
модуль определения, сконфигурированный с возможностью сравнивать увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля вычисления, больше, чем первое пороговое значение; модуль обработки дополнительно сконфигурирован с возможностью увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, если увеличение в производительности I/O больше, чем увеличение в использовании CPU, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются.
Во втором возможном варианте осуществления, со ссылкой на первый аспект, устройство регулировки дополнительно включает в себя:
модуль определения, сконфигурированный с возможностью определять, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля вычисления, меньше, чем второе пороговое значение; модуль обработки дополнительно сконфигурирован с возможностью уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются.
В третьем возможном варианте осуществления, со ссылкой на первый аспект, или первый, или второй возможный вариант осуществления первого аспекта, первый модуль регулировки конкретно сконфигурирован с возможностью:
сопоставлять каждый рабочий поток очереди во внешнем устройстве каждой машины VM и очереди во внутреннем устройстве каждой машины VM, когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения меньше, чем количество машин VM, работающих на хосте, или сопоставлять эксклюзивно используемый рабочий поток очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM и сопоставлять совместно используемый рабочий поток очередям, которые находятся во внешних устройствах и внутренних устройствах, по меньшей мере, двух машин VM и не соответствуют эксклюзивно используемому рабочему потоку, когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения больше или равно количеству машин VM, работающих на хосте, где рабочие потоки для обработки машин VM включают в себя эксклюзивно используемый рабочий поток и совместно используемый рабочий поток.
В четвертом возможном варианте осуществления, со ссылкой на первый аспект, или первый, второй, или третий возможный вариант осуществления первого аспекта, устройство регулировки дополнительно включает в себя:
второй модуль регулировки, сконфигурированный с возможностью регулировать отношение сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, так что между внутренними устройствами множества машин VM и реальным устройством формируется множество каналов передачи данных.
Согласно третьему аспекту настоящее изобретение обеспечивает хост, и хост включает в себя: реальное устройство, внешние устройства и внутренние устройства множества виртуальных машин VM, работающих на реальном устройстве, и модуль обработки данных между внешними устройствами и внутренними устройствами множества машин VM, где
модуль обработки данных сконфигурирован с возможностью:
вычислять текущую среднюю производительность I/O множества машин VM; увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение; и отдельно регулировать отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
В первом возможном варианте осуществления, со ссылкой на третий аспект, модуль обработки данных дополнительно сконфигурирован с возможностью:
сравнивать увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM; и если увеличение в производительности I/O больше, чем увеличение в использовании CPU, увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются.
Во втором возможном варианте осуществления, со ссылкой на третий аспект, модуль обработки данных дополнительно сконфигурирован с возможностью:
определять, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM, и уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются.
Можно видеть, что в варианте осуществления настоящего изобретения то, увеличивать ли или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, определяется согласно текущей средней производительности I/O множества машин VM. Когда текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, рабочие потоки для обработки машин VM увеличиваются, то есть ресурсы каналов I/O увеличиваются, чтобы улучшать способность передачи данных канала I/O; и, когда текущая средняя производительность I/O множества машин VM меньше, чем второе пороговое значение, рабочие потоки для обработки машин VM уменьшаются, то есть ресурсы каналов I/O уменьшаются, чтобы избежать растраты ресурсов каналов I/O.
Дополнительно, хост формирует множество каналов передачи данных между внутренними устройствами множества машин VM и реальным устройством посредством регулировки отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста. Это обеспечивает множество каналов I/O между внешними устройствами множества машин VM и реальным устройством хоста и улучшает способность передачи данных между внешними устройствами множества машин VM и реальным устройством хоста.
Краткое описание чертежей
Чтобы описывать технические решения в вариантах осуществления настоящего изобретения или в предшествующем уровне техники более ясно, последующее кратко вводит сопровождающие чертежи, требуемые для описания вариантов осуществления или предшествующего уровня техники. Должно быть ясно, что сопровождающие чертежи в последующем описании показывают всего лишь некоторые варианты осуществления настоящего изобретения, и специалисты в данной области техники могут выводить еще другие чертежи из этих сопровождающих чертежей без созидательных усилий.
Фиг. 1 является схемой архитектуры простой технологии с множеством каналов I/O на виртуальной платформе в предшествующем уровне техники;
Фиг. 2 является блок-схемой последовательности операций способа регулировки канала I/O на виртуальной платформе согласно одному варианту осуществления настоящего изобретения;
Фиг. 3 является схемой архитектуры, когда рабочий режим для I/O между внешними устройствами и внутренними устройствами множества машин VM на виртуальной платформе является режимом совместного использования согласно настоящему изобретению;
Фиг. 4 является схемой архитектуры, когда рабочий режим для I/O между внешними устройствами и внутренними устройствами множества машин VM на виртуальной платформе является гибридным режимом согласно настоящему изобретению;
Фиг. 5 является схематическим изображением структурной схемы устройства для регулировки канала I/O на виртуальной платформе согласно одному варианту осуществления настоящего изобретения;
Фиг. 6 является схематическим изображением структурной схемы устройства для регулировки канала I/O на виртуальной платформе согласно другому варианту осуществления настоящего изобретения; и
Фиг. 7 является схематическим изображением структурной схемы хоста согласно одному варианту осуществления настоящего изобретения.
Описание вариантов осуществления
Чтобы сделать цели, технические решения и преимущества настоящего изобретения более понятными, последующее ясно и полностью описывает технические решения в вариантах осуществления настоящего изобретения со ссылкой на сопровождающие чертежи в вариантах осуществления настоящего изобретения. Должно быть ясно, что описанные варианты осуществления являются всего лишь частью, нежели всеми вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистами в данной области техники на основе вариантов осуществления настоящего изобретения без созидательных усилий, должны попадать в пределы объема защиты настоящего изобретения.
Некоторые элементы, введенные в описании вариантов осуществления настоящего изобретения, введены здесь в первую очередь для облегчения понимания вариантов осуществления настоящего изобретения.
Хост: функционирует как слой управления и используется, чтобы управлять и назначать аппаратные ресурсы; представляет виртуальную аппаратную платформу для виртуальной машины, где виртуальная аппаратная платформа обеспечивает различные аппаратные ресурсы для всех виртуальных машин, работающих на виртуальной аппаратной платформе, например, обеспечивает виртуальный процессор (например, VCPU), виртуальную память, виртуальный магнитный диск, виртуальный сетевой адаптер и подобное. Виртуальный магнитный диск может соответствовать файлу или логическому блочному устройству хоста. Виртуальная машина работает на виртуальной аппаратной платформе, подготовленной посредством хоста, на которой работают одна или более виртуальных машин.
Виртуальная машина VM: симулирует один или более виртуальных компьютеров на физическом компьютере посредством использования программного обеспечения виртуальной машины, эти виртуальные машины работают как реальный компьютер, операционная система и прикладная программа могут устанавливаться на виртуальную машину, и виртуальная машина также может осуществлять доступ к сетевому ресурсу. Для прикладной программы, работающей на виртуальной машине, виртуальная машина работает как реальный компьютер.
Модуль обработки данных: в настоящем изобретении, модуль обработки данных введен между внешним устройством и внутренним устройством машины VM и сконфигурирован с возможностью обрабатывать передачу данных между внешним устройством и внутренним устройством машины VM и обрабатывать данные в очереди во внешнем устройстве и внутреннем устройстве машины VM посредством использования рабочего потока. Модуль обработки данных обычно осуществляется посредством использования программного обеспечения, то есть процессор считывает инструкцию программного кода со специальной функцией, чтобы осуществлять модуль обработки данных.
Реальное устройство: аппаратная платформа, на которой работает виртуальная среда. Реальное устройство может включать в себя множество типов аппаратного обеспечения, например, реальное устройство некоторого вычислительного узла может включать в себя процессор (например, CPU), память и может дополнительно включать в себя высокоскоростные/низкоскоростные устройства ввода/вывода (I/O), такие как сетевой адаптер и память.
Мост: сетевое устройство или программное обеспечение между внутренним устройством машины VM и реальным устройством хоста для осуществления сетевого соединения между внутренним устройством машины VM и реальным устройством хоста и передачи кадра данных.
Фиг. 2 описывает обработку способа регулировки канала I/O на виртуальной платформе согласно одному варианту осуществления настоящего изобретения, где обработка конкретно включает в себя следующие этапы:
S201. Хост вычисляет текущую среднюю производительность I/O множества виртуальных машин VM, работающих на хосте.
Конкретно, хост получает текущую среднюю производительность I/O множества машин VM посредством сначала вычисления текущей полной производительности I/O множества машин VM, работающих на хосте, и разделения полной производительности I/O на количество машин VM, работающих на хосте.
S202. Хост увеличивает рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O больше, чем первое пороговое значение, или уменьшает рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O меньше, чем второе пороговое значение.
Рабочие потоки для обработки машин VM увеличиваются между внешними устройствами и внутренними устройствами множества машин VM, так что средняя производительность I/O множества машин VM больше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или рабочие потоки для обработки машин VM уменьшаются между внешними устройствами и внутренними устройствами множества машин VM, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочий поток уменьшается. Первое пороговое значение больше, чем второе пороговое значение, первое пороговое значение используется, чтобы показывать верхнее пороговое значение средней производительности I/O множества машин VM, и второе пороговое значение используется, чтобы показывать нижнее пороговое значение средней производительности I/O множества машин VM, то есть первое пороговое значение показывает верхнее пороговое значение производительности I/O для машины VM и второе пороговое значение показывает нижнее пороговое значение производительности I/O для машины VM.
Дополнительно, если текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, до этапа увеличения, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, способ дополнительно включает в себя:
Хост сравнивает увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM; и если увеличение в производительности I/O больше, чем увеличение в использовании CPU, выполняет этап увеличения, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM.
Увеличение в использовании CPU является увеличенным использованием CPU, результирующим из увеличения рабочих потоков для обработки машин VM, по сравнению с отсутствием увеличения рабочих потоков для обработки машин VM, и может выражаться посредством величины увеличения использования CPU и/или скорости увеличения использования CPU; увеличение в производительности I/O является увеличенной производительностью I/O, результирующей из увеличения рабочих потоков для обработки машин VM, по сравнению с отсутствием увеличения рабочих потоков для обработки машин VM, и может выражаться посредством величины увеличения производительности I/O и/или скорости увеличения производительности I/O. Следует отметить, что настоящее изобретение не ограничивает то, как сравнивать увеличение в использовании CPU и увеличение в производительности I/O, два способа измерения обеспечиваются здесь только для цели иллюстрации. Если величина увеличения производительности I/O больше, чем величина увеличения использования CPU, или скорость увеличения производительности I/O больше, чем скорость увеличения использования CPU, определяется, что рабочие потоки для обработки машин VM должны увеличиваться.
Дополнительно, если текущая средняя производительность I/O меньше, чем второе пороговое значение, до этапа уменьшения, посредством хоста, рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, способ дополнительно включает в себя:
Хост определяет, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM; если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, выполняет этап уменьшения, посредством хоста, рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, то есть, если результирующее уменьшение в использовании CPU ведет к неспособности реагировать на производительность множества машин VM, рабочие потоки не уменьшаются.
Необязательно, для множества машин VM могут устанавливаться приоритеты, так что машина VM с высоким приоритетом поддерживает эксклюзивное занятие рабочего потока и имеет выделенный канал I/O, и ресурс канала I/O, эксклюзивно занимаемый упомянутой машиной VM с высоким приоритетом, не затрагивается независимо от всей загрузки I/O хоста; и для машин VM с одним и тем же приоритетом, для увеличения или уменьшения рабочих потоков может использоваться для обработки вышеупомянутый способ.
Следует отметить, что ресурс канала I/O включает в себя рабочий поток для обработки машины VM и очередь во внешнем устройстве и внутреннем устройстве машины VM.
S203. Согласно рабочим потокам для обработки машин VM после увеличения или уменьшения хост отдельно регулирует отношение сопоставления между очередями во внешних устройствах и внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM.
Отношение сопоставления включает в себя: отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM. Хост отдельно регулирует отношение сопоставления, так что между внешними устройствами множества машин VM и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
Конкретно, обработка, на которой хост отдельно регулирует, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, включает в себя:
Когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения меньше, чем количество машин VM, работающих на хосте, хост сопоставляет каждый рабочий поток очереди во внешнем устройстве каждой машины VM и очереди во внутреннем устройстве каждой машины VM, или когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения больше или равно количеству машин VM, работающих на хосте, хост сопоставляет эксклюзивно используемый рабочий поток очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM, сопоставляет совместно используемый рабочий поток очередям, которые находятся во внешних устройствах и внутренних устройствах, по меньшей мере, двух машин VM и не соответствуют эксклюзивно используемому рабочему потоку, где рабочие потоки для обработки машин VM включают в себя эксклюзивно используемый рабочий поток и совместно используемый рабочий поток. Следует отметить, что вышеупомянутые режимы регулировки соответственно соответствуют режиму совместного использования и гибридному режиму, и совместно используемый и гибридный режимы описываются конкретно на фиг. 3 и фиг. 4.
Дополнительно, после того, как хост отдельно регулирует, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношение сопоставления между очередями во внешних устройствах и внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, способ регулировки канала I/O на виртуальной платформе дополнительно включает в себя:
хост регулирует отношение сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, так что между внутренними устройствами множества машин VM и реальным устройством формируется множество каналов передачи данных.
Конкретно, в предшествующем уровне техники, реальное устройство может иметь множество очередей, данные во внутреннем устройстве машины VM выбирают очередь при осуществлении доступа к реальному устройству, чтобы передавать данные посредством использования разных очередей. Эта технология может осуществляться посредством аппаратного драйвера в реальном устройстве. При условии, что внутреннее устройство машины VM в настоящем изобретении также имеет множество очередей, множество очередей во внутреннем устройстве машины VM также может выбираться, когда реальное устройство посылает данные во внутреннее устройство машины VM через мост, так что между внутренним устройством машины VM и реальным устройством формируется множество каналов передачи данных. Поэтому регулировка отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста фактически состоит в том, как выбирать очереди во внутреннем устройстве машины VM, когда реальное устройство посылает данные во внутреннее устройство машины VM через мост.
Обработка того, как выбираются очереди во внутреннем устройстве машины VM, может состоять в том, что, согласно отношению сопоставления между очередями, когда очереди в реальном устройстве принимают данные, посланные посредством очередей во внутреннем устройстве машины VM, очереди во внутреннем устройстве машины VM выбираются обратным образом, так что каналы для передачи данных между очередями во внутреннем устройстве машины VM и очередями в реальном устройстве являются совместимыми; или реальное устройство заново выбирает разные очереди во внутреннем устройстве машины VM согласно атрибуту (например, от одной и той же оконечной точки-источника, или согласно другому атрибуту) потока данных. Настоящее изобретение осуществляет регулировку отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста посредством использования вышеупомянутых способов выбора.
Так как между внутренними устройствами множества машин VM и реальным устройством множество каналов передачи данных формируется посредством регулировки отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, множество каналов I/O реализуется между внутренними устройствами множества машин VM и реальным устройством хоста, улучшая способность передачи данных между множеством машин VM и реальным устройством хоста.
Из вышеупомянутого варианта осуществления можно видеть, что хост определяет то, увеличивать ли или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM согласно текущей средней производительности I/O множества машин VM; когда текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, увеличивает рабочие потоки для обработки машин VM, то есть увеличивает ресурсы каналов I/O, чтобы улучшать способность передачи данных канала I/O; и когда текущая средняя производительность I/O множества машин VM меньше, чем второе пороговое значение, уменьшает рабочие потоки для обработки машин VM, то есть уменьшает ресурсы каналов I/O, чтобы избежать растраты ресурсов каналов I/O.
Рассматривая ограничение ресурсов каналов I/O после увеличения или уменьшения согласно текущей средней производительности I/O, особенно ограничение рабочих потоков в ресурсах каналов I/O, настоящее изобретение устанавливает два рабочих режима I/O, а именно, режим совместного использования и гибридный режим согласно количеству рабочих потоков в ресурсах каналов I/O и количеству машин VM, работающих на хосте, где упомянутые два режима могут переключаться друг на друга, один рабочий режим может переключаться на другой рабочий режим, когда удовлетворяется некоторое условие.
Для режима совместного использования, когда количество рабочих потоков для обработки машин VM меньше, чем количество машин VM, работающих на хосте, хост регулирует рабочий режим I/O между внешними устройствами и внутренними устройствами множества машин VM посредством установки режима совместного использования, то есть рабочие потоки в модуле обработки данных обрабатывают данные в очередях во внешних устройствах и внутренних устройствах множества машин VM посредством применения режима совместного использования, в частности, рабочие потоки в модуле обработки данных соответственно соответствуют очереди во внешнем устройстве каждой машины VM, работающей на хосте, и очереди во внутреннем устройстве каждой машины VM.
Фиг. 3 является схематической диаграммой, когда рабочий режим I/O между внешним устройством и внутренним устройством машины VM является режимом совместного использования, как показано на фиг. 3, машины VM, работающие на хосте, являются соответственно VM1, VM2 и VM3, рабочие потоки в модуле обработки данных являются соответственно рабочим потоком 1 и рабочим потоком 2, где рабочий поток 1 отдельно обрабатывает очередь 1 во внешнем устройстве и внутреннем устройстве машин VM1, VM2 и VM3 и рабочий поток 2 отдельно обрабатывает очередь 2 во внешнем устройстве и внутреннем устройстве машин VM1, VM2 и VM3.
Для гибридного режима, когда количество рабочих потоков для обработки машин VM больше или равно количеству машин VM, работающих на хосте, хост регулирует рабочий режим I/O между внешними устройствами и внутренними устройствами множества машин VM посредством установки гибридного режима, то есть рабочие потоки в модуле обработки данных обрабатывают данные в очередях внешних устройств и внутренних устройств множества машин VM посредством применения гибридного режима, в частности, рабочие потоки в модуле обработки данных могут быть классифицированы на два типа: эксклюзивно используемый рабочий поток и совместно используемый рабочий поток, где эксклюзивно используемый рабочий поток используется, чтобы отдельно обрабатывать данные в очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM, и совместно используемый рабочий поток используется, чтобы обрабатывать данные, которые не обрабатываются посредством эксклюзивно используемого рабочего потока в очередях внешних устройств и внутренних устройств, по меньшей мере, двух машин VM.
Фиг. 4 является схематической диаграммой, когда рабочий режим I/O между внешним устройством и внутренним устройством машины VM является гибридным режимом, и, как показано на фиг. 4, машины VM, работающие на хосте, являются соответственно VM1, VM2 и VM3, и имеется четыре рабочих потока в модуле обработки данных, включающих в себя эксклюзивно используемый рабочий поток 1, эксклюзивно используемый рабочий поток 2, эксклюзивно используемый рабочий поток 3 и совместно используемый рабочий поток 1. Эксклюзивно используемый рабочий поток 1 отдельно обрабатывает данные в очереди 1 во внешнем устройстве и внутреннем устройстве машины VM1, эксклюзивно используемый рабочий поток 2 отдельно обрабатывает данные в очереди 1 внешнего устройства и внутреннего устройства машины VM2, эксклюзивно используемый рабочий поток 3 отдельно обрабатывает данные в очереди 1 внешнего устройства и внутреннего устройства машины VM3, и совместно используемый рабочий поток обрабатывает данные в очереди 2 внешнего устройства и внутреннего устройства каждой машины VM из VM1, VM2 и VM3. Фиг. 4 показывает только сценарий, в котором совместно используемый рабочий поток обрабатывает данные в очередях во внешнем устройстве и внутреннем устройстве каждой машины VM, по меньшей мере, двух машин VM. Совместно используемый рабочий поток может дополнительно обрабатывать данные в множестве очередей в другом сценарии, который не ограничен настоящим изобретением.
Дополнительно, из фиг. 3 и фиг. 4 можно видеть, что, в дополнение к формированию множества каналов I/O между внешними устройствами и внутренними устройствами множества машин VM, хост также может формировать множество каналов передачи данных между внутренними устройствами множества машин VM и реальным устройством посредством регулировки отношения сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста. Это обеспечивает множество каналов I/O между внешними устройствами множества машин VM и реальным устройством хоста и улучшает способность передачи данных между внешними устройствами множества машин VM и реальным устройством хоста.
В отношении способа регулировки канала I/O на виртуальной платформе, следующий вариант осуществления настоящего изобретения обеспечивает структуру устройства для регулировки канала I/O на виртуальной платформе.
Фиг. 5 описывает структуру устройства 500 для регулировки канала I/O на виртуальной платформе согласно одному варианту осуществления настоящего изобретения; и устройство 500 регулировки конкретно включает в себя:
модуль 501 вычисления, сконфигурированный с возможностью вычислять текущую среднюю производительность I/O множества виртуальных машин VM, работающих на хосте;
модуль 502 обработки, который соединен с модулем 501 вычисления, сконфигурированный с возможностью увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля 501 вычисления, больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля 501 вычисления, меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение;
и первый модуль 503 регулировки, который соединен с модулем 502 обработки, сконфигурированный с возможностью отдельно регулировать, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения посредством модуля 502 обработки, отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM, и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
Необязательно, устройство 500 регулировки дополнительно включает в себя:
модуль 504 определения, сконфигурированный с возможностью сравнивать увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля 501 вычисления, больше, чем первое пороговое значение;
модуль 502 обработки дополнительно сконфигурирован с возможностью увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, если модуль 504 определения определяет, что увеличение в производительности I/O больше, чем увеличение в использовании CPU, так что средняя производительность I/O множества машин VM меньше, чем первый порог, после того, как рабочие потоки увеличиваются.
Необязательно, устройство 500 регулировки дополнительно включает в себя:
модуль 504 определения, сконфигурированный с возможностью определять, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM, когда текущая средняя производительность I/O, вычисленная посредством модуля 501 вычисления, меньше, чем второе пороговое значение;
модуль 502 обработки дополнительно сконфигурирован с возможностью уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, если модуль 504 определения определяет, что уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются.
Дополнительно, первый модуль 503 регулировки конкретно сконфигурирован с возможностью:
сопоставлять каждый рабочий поток очереди во внешнем устройстве каждой машины VM и очереди во внутреннем устройстве каждой машины VM, когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения меньше, чем количество машин VM, работающих на хосте, или сопоставлять эксклюзивно используемый рабочий поток очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM, сопоставлять совместно используемый рабочий поток очередям, которые находятся во внешних устройствах и внутренних устройствах, по меньшей мере, двух машин VM и не соответствуют эксклюзивно используемому рабочему потоку, когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения больше или равно количеству машин VM, работающих на хосте, где рабочие потоки для обработки машин VM включают в себя эксклюзивно используемый рабочий поток и совместно используемый рабочий поток.
Дополнительно, устройство 500 регулировки дополнительно включает в себя второй модуль 505 регулировки, сконфигурированный с возможностью регулировать отношение сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, так что между внутренними устройствами множества машин VM и реальным устройством формируется множество каналов передачи данных.
Так как второй модуль 505 регулировки формирует множество каналов передачи данных между внутренними устройствами множества машин VM и реальным устройством, множество каналов I/O формируются между внешними устройствами множества машин VM и реальным устройством хоста и между множеством машин VM и реальным устройством хоста способность передачи данных улучшается.
Как можно видеть из вышеупомянутого варианта осуществления, устройство для регулировки канала I/O на виртуальной платформе определяет, увеличивать ли или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM согласно текущей средней производительности I/O множества машин VM; когда текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, увеличивает рабочие потоки для обработки машин VM, то есть увеличивает ресурсы каналов I/O, чтобы улучшать способность передачи данных канала I/O; и когда текущая средняя производительность I/O множества машин VM меньше, чем второе пороговое значение, уменьшает рабочие потоки для обработки машин VM, то есть уменьшает ресурсы каналов I/O, чтобы избежать растраты ресурсов каналов I/O.
Фиг. 6 описывает структуру устройства 600 для регулировки канала I/O на виртуальной платформе согласно другому варианту осуществления настоящего изобретения, и устройство 600 регулировки включает в себя: по меньшей мере, один процессор 601, например, CPU, по меньшей мере, один сетевой интерфейс 604 или другой пользовательский интерфейс 603, память 605, и, по меньшей мере, шину 602 передачи данных. Шина 602 передачи данных сконфигурирована с возможностью осуществлять соединение и передачу данных между этими компонентами. Пользовательский интерфейс 603, необязательно включенный в устройство 600 регулировки, включает в себя дисплей, клавиатуру или указательное устройство (например, мышь, шаровой указатель, сенсорную панель, или сенсорный отображающий экран). Память 605 может включать в себя высокоскоростную память RAM и может также включать в себя энергонезависимую память, например, по меньшей мере, одну память магнитного диска. Память 605 может необязательно включать в себя, по меньшей мере, одно устройство памяти, находящееся далеко от процессора 601. В некоторых вариантах осуществления, память 605 может дополнительно включать в себя операционную систему 606 и множество программ, чтобы реализовать различные базовые службы и задачи обработки на основе аппаратного обеспечения.
Процессор 601 конкретно сконфигурирован с возможностью:
вычислять текущую среднюю производительность I/O множества виртуальных машин VM, работающих на хосте;
увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение; и
отдельно регулировать, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
Дополнительно, если текущая средняя производительность I/O больше, чем первое пороговое значение, до выполнения этапа увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, процессор 601 дополнительно сконфигурирован с возможностью: сравнивать увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM; и если увеличение в производительности I/O больше, чем увеличение в использовании CPU, выполнять этап увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM.
Если текущая средняя производительность I/O меньше, чем второе пороговое значение, до выполнения этапа уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, процессор 601 дополнительно сконфигурирован с возможностью: определять, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM; если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, выполнять этап уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM.
Дополнительно, то, что процессор 601 сконфигурирован с возможностью отдельно регулировать, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношение сопоставления между очередями во внешних устройствах и внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, включает в себя:
когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения меньше, чем количество машин VM, работающих на хосте, сопоставление каждого рабочего потока очереди во внешнем устройстве каждой машины VM и очереди во внутреннем устройстве каждой машины VM, или когда количество рабочих потоков для обработки машин VM после увеличения или уменьшения больше или равно количеству машин VM, работающих на хосте, сопоставление эксклюзивно используемого рабочего потока очереди во внешнем устройстве и очереди во внутреннем устройстве машины VM и сопоставление совместно используемого рабочего потока очередям, которые находятся во внешних устройствах и внутренних устройствах, по меньшей мере, двух машин VM и не соответствуют эксклюзивно используемому рабочему потоку, где рабочие потоки для обработки машин VM включают в себя эксклюзивно используемый рабочий поток и совместно используемый рабочий поток.
Дополнительно, процессор 601 дополнительно сконфигурирован с возможностью регулировать отношение сопоставления между очередями во внутренних устройствах множества машин VM и очередями в реальном устройстве хоста, так что между внутренними устройствами множества машин VM и реальным устройством формируется множество каналов передачи данных.
Из вышеупомянутого варианта осуществления можно видеть, что устройство для регулировки канала I/O на виртуальной платформе определяет, увеличивать ли или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, согласно текущей средней производительности I/O множества машин VM; когда текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, увеличивает рабочие потоки для обработки машин VM, то есть увеличивает ресурсы каналов I/O, чтобы улучшать способность передачи данных канала I/O; и когда текущая средняя производительность I/O множества машин VM меньше, чем второе пороговое значение, уменьшает рабочие потоки для обработки машин VM, то есть уменьшает ресурсы каналов I/O, чтобы избежать растраты ресурсов каналов I/O.
Следует отметить, что способ, раскрытый посредством вариантов осуществления настоящего изобретения, может применяться к процессору 601, или другими словами, может осуществляться посредством процессора 601. Процессор 601 может быть кристаллом интегральной схемы и имеет способность исполнения инструкций и данных и способность обработки сигналов. В процессе реализации, этапы в способах могут осуществляться посредством использования аппаратной интегрированной логической схемы в процессоре 601, или инструкции в форме программного обеспечения. Процессор может быть центральным обрабатывающим устройством (CPU), цифровым сигнальным процессором (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA), другим программируемым логическим компонентом, дискретным логическим элементом или транзисторным логическим устройством и обособленным аппаратным компонентом и может осуществлять или выполнять все способы, этапы и логическую блочную диаграмму, раскрытые посредством вариантов осуществления настоящего изобретения. Процессор общего назначения может быть микропроцессором, или любым стандартным процессором, или подобным. Этапы в способе, раскрытом посредством вариантов осуществления настоящего изобретения, могут напрямую осуществляться посредством аппаратного процессора, или могут осуществляться посредством комбинирования аппаратных и программных модулей в процессоре. Программный модуль может располагаться в запоминающем носителе, известном в данной области техники, таком как оперативное запоминающее устройство, флэш-память, постоянное запоминающее устройство, программируемое постоянное запоминающее устройство, электрически стираемая программируемая память и регистр. Запоминающий носитель располагается в процессоре 605, и процессор считывает информацию в памяти 605 и осуществляет вышеупомянутые этапы со ссылкой на аппаратное обеспечение процессора.
Фиг. 7 описывает структуру хоста 700, обеспеченного согласно одному варианту осуществления настоящего изобретения, и хост включает в себя: реальное устройство 705, внешние устройства и внутренние устройства в множестве виртуальных машин VM, работающих в реальном устройстве 705, и модуль 702 обработки данных, который располагается между внешними устройствами и внутренними устройствами множества машин VM, и мост 704, который располагается между внутренними устройствами множества машин VM и реальным устройством 705.
Внешние устройства множества машин VM включают в себя внешнее устройство 7011 машины VM1 и внешнее устройство 7012 машины VM2; внутренние устройства множества машин VM включают в себя внутреннее устройство 7031 машины VM1 и внутреннее устройство 7032 машины VM2; мост 704 является сетевым устройством или программным обеспечением, расположенным между внутренним устройством машины VM и реальным устройством хоста, осуществляет сетевое соединение между внутренним устройством машины VM и реальным устройством хоста и передает кадр данных; реальное устройство 705 является аппаратной платформой, на которой работает виртуальная среда и может включать в себя множество аппаратного обеспечения, например, реальное устройство вычислительного узла может включать в себя процессор (например, CPU) и память и может дополнительно включать в себя высокоскоростное/низкоскоростное устройство ввода/вывода (I/O), такое как сетевой адаптер, память.
Модуль 702 обработки данных сконфигурирован с возможностью:
вычислять текущую среднюю производительность I/O множества машин VM;
увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O больше, чем первое пороговое значение, так что средняя производительность I/O множества машин VM больше, чем первое пороговое значение после того, как рабочие потоки увеличиваются; или уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, когда текущая средняя производительность I/O меньше, чем второе пороговое значение, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки уменьшаются, где первое пороговое значение больше, чем второе пороговое значение; и
отдельно регулировать, согласно рабочим потокам для обработки машин VM после увеличения или уменьшения, отношение сопоставления между очередями во внешних устройствах множества машин VM и рабочими потоками для обработки машин VM и отношение сопоставления между очередями во внутренних устройствах множества машин VM и рабочими потоками для обработки машин VM, так что между внешними устройствами и внутренними устройствами множества машин VM формируется множество каналов передачи данных.
Необязательно, модуль 702 обработки данных дополнительно сконфигурирован с возможностью:
сравнивать увеличение в использовании CPU и увеличение в производительности I/O, результирующие из увеличения рабочих потоков для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM; и если увеличение в производительности I/O больше, чем увеличение в использовании CPU, увеличивать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM, так что средняя производительность I/O множества машин VM меньше, чем первое пороговое значение после того, как рабочие потоки увеличиваются.
Необязательно, модуль 702 обработки данных дополнительно сконфигурирован с возможностью:
определять, ведет ли уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, к неспособности реагировать на производительность множества машин VM; уменьшать рабочие потоки между внешними устройствами и внутренними устройствами множества машин VM, если уменьшение в использовании CPU, результирующее из уменьшения рабочих потоков между внешними устройствами и внутренними устройствами множества машин VM, не ведет к неспособности реагировать на производительность множества машин VM, так что средняя производительность I/O множества машин VM больше, чем второе пороговое значение после того, как рабочие потоки увеличиваются.
Следует отметить, что модуль 702 обработки данных может осуществлять способ, раскрытый в варианте 1 осуществления, который здесь снова не описывается, и не должен интерпретироваться как ограничение на способ, раскрытый в варианте 1 осуществления; модуль 702 обработки данных, в общем, реализуется посредством программного обеспечения, то есть реализуется посредством считывания, посредством процессора, инструкции программного кода со специальной функцией. То, что модуль 702 обработки данных осуществляется посредством программного обеспечения, является только предпочтительным решением осуществления, специалисты в данной области техники также могут осуществлять программный способ блока 702 обработки данных с помощью логики аппаратного обеспечения, такой как процессор (например, CPU, DSP), которая не ограничена настоящим изобретением.
Из вышеупомянутого варианта осуществления можно видеть, что хост определяет, увеличивать ли или уменьшать рабочие потоки для обработки машин VM между внешними устройствами и внутренними устройствами множества машин VM согласно текущей средней производительности I/O множества машин VM; когда текущая средняя производительность I/O множества машин VM больше, чем первое пороговое значение, увеличивает рабочие потоки для обработки машин VM, то есть увеличивает ресурсы каналов I/O, чтобы улучшать способность передачи данных канала I/O; и когда текущая средняя производительность I/O множества машин VM меньше, чем второе пороговое значение уменьшает рабочие потоки для обработки машин VM, то есть уменьшает ресурсы каналов I/O, чтобы избежать растраты ресурсов каналов I/O.
В заключение, следует отметить, что вышеупомянутые варианты осуществления предназначены всего лишь для описания технических решений настоящего изобретения, не ограничивающих настоящее изобретение. Хотя настоящее изобретение описано подробно со ссылкой на вышеупомянутые варианты осуществления, специалисты в данной области техники должны понимать, что они все еще могут осуществлять модификации с техническими решениями, описанными в вышеупомянутых вариантах осуществления, или осуществлять эквивалентные замены для некоторых или всех их технических признаков, без отступления от сущности и объема технических решений вариантов осуществления настоящего изобретения.