Input/output command rebalancing in a virtualized computer system
AssigneeRed Hat, Inc.
InventorHuamin Chen
Life of this patent
Estimating the term…
Abstract
The present disclosure provides new methods and systems for input/output command rebalancing in virtualized computer systems. For example, an I/O command may be received by a rebalancer from a virtual queue in a container. The container may be in a first virtual machine. A second I/O command may be received from a second virtual queue in a second container which may be located in a second virtual machine. The rebalancer may detect a priority of the first I/O command and a priority of the second I/O command. The rebalancer may then assign an updated priority each I/O command based on a quantity of virtual queues in the virtual machine of origin and a quantity of I/O commands in the virtual queue of origin. The rebalancer may dispatch the I/O commands to a physical queue.
Claims20
A method of queuing I/O commands, comprising:
- receiving a first I/O command having a first priority selected from the group consisting of a first application priority, a first command priority, and combinations thereof, from a first virtual queue in at least one of a first container and a first application;
- receiving a second I/O command having a second priority selected from the group consisting of a second application priority and a second command priority, and combinations thereof, from a second virtual queue in at least one of a second container and a second application;
- detecting the first priority of the first I/O command and the second priority of the second I/O command;
- assigning, at a rebalancer, a first updated priority to the first I/O command and a second updated priority to the second I/O command, wherein the rebalancer assigns the first updated priority based on a first quantity of virtual queues and a first quantity of I/O commands in the first virtual queue, and the rebalancer assigns the second updated priority based on a second quantity of virtual queues and a second quantity of I/O commands in the second virtual queue;
- and
- dispatching the first I/O command to a first physical queue and the second I/O command to a second physical queue.
A system for queuing I/O commands comprising:
- a processor;
- a memory;
- and
- a rebalancer,
- wherein the rebalancer:
- receives a first I/O command having a first priority selected from the group consisting of a first application priority, a first command priority, and combinations thereof, from a first virtual queue in at least one of a first container and a first application;
- receives a second I/O command having a second priority selected from the group consisting of a second application priority and a second command priority, and combinations thereof, from a second virtual queue in one of a second container and a second application;
- detects the first priority of the first I/O command and the second priority of the second I/O command;
- assigns a first updated priority to the first I/O command and a second updated priority to the second I/O command, wherein the first updated priority is based on a first quantity of virtual queues and a first quantity of I/O commands in the first virtual queue, and the second updated priority is based on a second quantity of virtual queues and a second quantity of I/O commands in the second virtual queue;
- and
- dispatches the first I/O command to a first physical queue and the second I/O command to a second physical queue.
A non-transitory computer readable medium storing instructions, which when executed, cause a rebalancer to:
- receive a first I/O command from a first virtual queue in at least one of a first container and a first application;
- receive a second I/O command from a second virtual queue in at least one of a second container and second application;
- detect a first priority of the first I/O command and a second priority of the second I/O command;
- assign a first updated priority to the first I/O command and a second updated priority to the second I/O command, wherein the first updated priority is based on a first quantity of virtual queues and a first quantity of I/O commands in the first virtual queue, and wherein the second updated priority is based on a second quantity of virtual queues and a second quantity of I/O commands in the second virtual queue;
- and
- dispatch the first I/O command to a first physical queue and the second I/O command to a second physical queue.
Dependencies are inferred from the claim text.