(→TODO) |
|||
Line 28: | Line 28: | ||
Guest virtual machines can currently use SAN storage and multipath devices, but administrators must do the storage configuration manually using separate tools from libvirt. This feature will permit administrators to discover storage and present it to virtual machines using libvirt. | Guest virtual machines can currently use SAN storage and multipath devices, but administrators must do the storage configuration manually using separate tools from libvirt. This feature will permit administrators to discover storage and present it to virtual machines using libvirt. | ||
Datacenter operations are usually split along functional lines: the | |||
facilities management team, the server administration team, the SAN | |||
administration team, and others (network, etc.) not relevant to this | |||
discussion. Within the server admin group, there are often sub-groups | |||
for each OS. | |||
When a new application is deployed, whoever is driving the deployment | |||
typically makes three parallel requests, one to the facilities team to | |||
get the hardware racked and wired, one to the server admins for the OS | |||
installation, and one to the SAN admins for storage provisioning. The | |||
server request blocks until the hardware is available and the storage | |||
allocation request completes. When the storage is available, the SAN | |||
admins notify whichever OS team is responsible for the server to | |||
proceed with the OS install. | |||
Although it's inaccurate and more than a little dangerous, the common | |||
message after storage provisioning is, "I've provisioned the LUNs, and | |||
you should be able to see them now. I gave you LUNs 27, 28, 29 and | |||
53." The server admin may not know what targets or hosts the new | |||
storage is accessible through, but a rescan of all host adapters will | |||
show up new logical units with numbers 27, 28, 29 and 53 on some | |||
target on some host, and the server admin assumes that's the new | |||
storage. | |||
The functionality described here does not attempt to address the many | |||
possible failures that can result from the communication between the | |||
storage admins and the server admins described above. What we are | |||
doing is providing a framework to make the described process work | |||
within its limitations. Perhaps more importantly, we create a | |||
foundation for work that will make it possible for admins, using only | |||
libvirt's APIs, to identify storage precisely and validate that the | |||
storage intended is actually used. | |||
When the new server is virtual, the entire process becomes an exercise | |||
in software configuration. Instead of making a request of the | |||
facilities team to buy, rack and wire a new box, whoever is driving | |||
the process requests creation of a new VM. With the right management | |||
tools, the OS team who will be installing the server can be given | |||
rights to create VMs and the number of teams involved can be reduced | |||
to two: the OS admins and the SAN admins. That level of organization | |||
requires that the tool used to manage the VMs be capable of | |||
discovering and presenting SAN storage to VMs. | |||
While libvirt is currently capable of using SAN storage, it lacks the | |||
ability to trigger scans for new storage, create virtual host adapters | |||
using NPIV and manage multipath devices. The OS admin team that | |||
manages the VM host must get involved to get the VM host to recognize | |||
the new storage. Giving libvirt the ability to manage storage allows | |||
the OS admin team responsible for the guest OS to complete the VM | |||
build out itself. | |||
=== Implementation === | === Implementation === |
Revision as of 20:12, 26 February 2009
Summary
Enable VM hosts to discover new SAN storage, issue NPIV operations and do basic configuration of multipath devices.
Owner
- Name: Dave Allan
Current status
- Targeted release: Fedora 11
- Last updated: 2009-02-25
- Percentage of completion: 5%
TODO
- Implement storage discovery
- Implement NPIV operations
- Implement multipath configuration
Completed
- none
Detailed Description
Background
Guest virtual machines can currently use SAN storage and multipath devices, but administrators must do the storage configuration manually using separate tools from libvirt. This feature will permit administrators to discover storage and present it to virtual machines using libvirt.
Datacenter operations are usually split along functional lines: the facilities management team, the server administration team, the SAN administration team, and others (network, etc.) not relevant to this discussion. Within the server admin group, there are often sub-groups for each OS.
When a new application is deployed, whoever is driving the deployment typically makes three parallel requests, one to the facilities team to get the hardware racked and wired, one to the server admins for the OS installation, and one to the SAN admins for storage provisioning. The server request blocks until the hardware is available and the storage allocation request completes. When the storage is available, the SAN admins notify whichever OS team is responsible for the server to proceed with the OS install.
Although it's inaccurate and more than a little dangerous, the common message after storage provisioning is, "I've provisioned the LUNs, and you should be able to see them now. I gave you LUNs 27, 28, 29 and 53." The server admin may not know what targets or hosts the new storage is accessible through, but a rescan of all host adapters will show up new logical units with numbers 27, 28, 29 and 53 on some target on some host, and the server admin assumes that's the new storage.
The functionality described here does not attempt to address the many possible failures that can result from the communication between the storage admins and the server admins described above. What we are doing is providing a framework to make the described process work within its limitations. Perhaps more importantly, we create a foundation for work that will make it possible for admins, using only libvirt's APIs, to identify storage precisely and validate that the storage intended is actually used.
When the new server is virtual, the entire process becomes an exercise in software configuration. Instead of making a request of the facilities team to buy, rack and wire a new box, whoever is driving the process requests creation of a new VM. With the right management tools, the OS team who will be installing the server can be given rights to create VMs and the number of teams involved can be reduced to two: the OS admins and the SAN admins. That level of organization requires that the tool used to manage the VMs be capable of discovering and presenting SAN storage to VMs.
While libvirt is currently capable of using SAN storage, it lacks the ability to trigger scans for new storage, create virtual host adapters using NPIV and manage multipath devices. The OS admin team that manages the VM host must get involved to get the VM host to recognize the new storage. Giving libvirt the ability to manage storage allows the OS admin team responsible for the guest OS to complete the VM build out itself.
Implementation
The libvirt APIs already permit storage discovery and pool creation. These functions will be extended to discover storage on a per-SCSI-host basis and multipath devices. The pool create and destroy functions will be extended to understand multipath and NPIV.
Benefit to Fedora
Administrators will be able to provision storage for VMs from the single set of tools that they are already using to manage the VMs.
Scope
As described above, changes are required in libvirt. Eventually the tools using libvirt will need to be updated to take advantage of the new features, but that is not within the scope of this work.
How To Test
- Use virsh to discover and configure SAN storage.
- Use virsh to issue NPIV operations.
- Use virsh to configure multipath devices.
- Assign SAN and multipath storage to VMs.
User Experience
See the previous section.
Dependencies
None, outside of the implementation efforts detailed above.
Contingency Plan
This functionality is independent of all other features. If it is not ready, administrators can continue to configure storage manually.
Documentation
Release Notes
Fedora 11 adds the ability in libvirt to discover storage on a per-SCSI-host basis, issue NPIV operations and configure multipath devices. This enables administrators to discover, configure and provision storage for virtual machines without having to use multiple tools.