ESXi Architecture
ESXi Architecture
ESXi Architecture
PAPER
Table of Contents Introduction............................................................................................................. 3 Components of ESXi................................................................................................ 3 VMkernel ............................................................................................................. 4 File System........................................................................................................... 4 Users and Groups................................................................................................. 4 User Worlds.......................................................................................................... 4 Direct Console User Interface.............................................................................. 5 Other User World Processes................................................................................ 5 Open Network Ports............................................................................................ 5 System Image Design.............................................................................................. 6 Startup and Operation............................................................................................ 6 Management Model for ESXi................................................................................... 7 State Information................................................................................................. 7 Common Information Model............................................................................... 7 VI API.................................................................................................................... 8 Summary.................................................................................................................. 8 About the Author..................................................................................................... 9
Components of ESXi
The VMware ESXi architecture comprises the underlying operating system, called VMkernel, and processes that run on top of it. VMkernel provides means for running all processes on the system, including management applications and agents as well as virtual machines. It has control of all hardware devices on the server, and manages resources for the applications. The main processes that run on top of VMkernel are: Direct Console User Interface (DCUI) the low-level configuration and management interface, accessible through the console of the server, used primarily for initial basic configuration. The virtual machine monitor, which is the process that provides the execution environment for a virtual machine, as well as a helper process known as VMX. Each running virtual machine has its own VMM and VMX process. Various agents used to enable high-level VMware Infrastructure management from remote applications. The Common Information Model (CIM) system: CIM is the interface that enables hardware-level management from remote applications via a set of standard APIs. Figure 1 shows a diagram of the overall ESXi architecture. The following sections provide a closer examination of each of these components.
vp x a h o std
VM
VM M
VM
VM M
VM
VM M
U ser wo rld A P I R es o u rc e sch e d u lin g D istrib u te d V M le sys tem S to ra g e sta ck V irtu al Ethernet adapter and sw itch N etw o rk stac k
V M kern el
Figure 1: The streamlined architecture of VMware ESXi eliminates the need for a service console.
D e vice drivers
VMkernel
VMkernel is a POSIX-like operating system developed by VMware and provides certain functionality similar to that found in other operating systems, such as process creation and control, signals, file system, and process threads. It is designed specifically to support running multiple virtual machines and provides such core functionality as: Resource scheduling I/O stacks Device drivers Some of the more pertinent aspects of the VMkernel are presented in the following sections.
File System
VMkernel uses a simple in-memory file system to hold the ESXi configuration files, log files, and staged patches. For familiarity, the structure of the file system is designed to be the same as that used in the service console of ESX. For example, ESXi configuration files are found in /etc/vmware and log files are found in /var/log/vmware. Staged patches are uploaded to /tmp. This file system is independent of the VMware VMFS file system used to store virtual machines. Just as with ESX, a VMware VMFS datastore may be created on a local disk in the host system or on shared storage. If the only VMFS data stores used by the host are on external shared storage, the ESXi system does not actually require a local hard drive. By running diskless setups, you can increase reliability by avoiding hard drive failures and reduce power and cooling consumption. Remote command line interfaces provide file management capabilities for both the in-memory file system and the VMware VMFS datastores. Access to the file system is implemented via HTTPS get and put Access is authenticated via users and groups configured locally on the server and is controlled by local privileges. Because the in-memory file system does not persist when the power is shut down, log files do not survive a reboot. ESXi has the ability to configure a remote syslog server, enabling you to save all log information on an external system.
User Worlds
The term user world refers to a process running in the VMkernel operating system. The environment in which a user world runs is limited compared to what would be found in a general-purpose POSIX-compliant operating system such as Linux. For example: The set of available signals is limited. The system API is a subset of POSIX. The /proc file system is very limited. A single swap file is available for all user world processes. If a local disk exists, the swap file is created automatically in a small VFAT partition. Otherwise, the user is free to set up a swap file on one of the attached VMFS datastores. In short, a user world is not intended as a general-purpose mechanism to run arbitrary applications but provides only enough of a framework for processes that need to run in the hypervisor environment. Several important process run in user worlds. These can be thought of as native VMkernel applications and are described in the following sections.
responding to the hypervisor versions in the two boot banks. The specific version to use is determined by which boot bank is currently active. The core hypervisor code also can contain custom code provided by server vendors (OEMs) that provides additional functionality, such as hardware monitoring and support information. These customizations would be present, for example, if ESXi had been obtained in embedded form from the server manufacturer or if a custom version of ESXi was installed onto the hard drive. Any update to an existing ESXi installation automatically incorporates the proper update to this custom code.
Alt boot bank partition Initially empty 750MB Store paron partition [540MB]
In addition, you can manage ESXi using VirtualCenter, just as you would any ESX 3 system. You can have a mixed environment of ESX 3 and ESXi systems. VirtualCenter presents both types of systems in the VI Client user interface in essentially the same way; certain features unique to ESXi management appear for hosts equipped with that version.
State Information
The state of an ESXi system is fully described by a handful of configuration files. These files control such functions as configuration of virtual networking and storage, SSL keys, server network settings, and local user information Although these configuration files are all found in the in-memory file system, they are also periodically copied to persistent storage. For example, in ESXi Embedded, there is a small part of the server firmware that is designated as read-write. In case of sudden power loss, you can reboot the server and it is restored to the exact configuration of the last copy. Nothing else is required to maintain state, so the internal hard disk can even be eliminated from the server. You can also download a backup file that contains all the state information. This allows you to replicate the state of an ESXi system onto another similar system. You can create backups of your server configuration, and if a server fails catastrophically, you can easily replace it with an identical unit, then bring that new unit to the same state by restoring the backup file.
CIM broker
VMkernel VMkernel
VMware providers
Partner providers
Hardware
Memory Memory
Network Network
Storage Storage
VI API
The VMware Virtual Infrastructure API provides a powerful interface for developing applications to integrate with the VMware Infrastructure. The VI API enables your program or framework to invoke VirtualCenter Web Service interface functions on VirtualCenter to manage and control ESX/ESXi. The VI SDK provides developers with a full environment for creating applications that interact with ESXi in a variety of programming languages. The VI API is actually what is used by the management clients provided by VMware, such as the VI Client and remote command line interfaces. Furthermore, this API works for VirtualCenter as well as ESX/ESXi. The only difference is that certain functions that affect multiple hosts, such as VMotion, are implemented only in VirtualCenter. Figure 4 depicts how the VI API is used with VMware Infrastructure. Together, the VI API and the CIM standard provide a comprehensive way to manage an ESXi system from a remote or central location. The advantage of this model is that, instead of relying upon locally installed agents, which must be adjusted whenever the underlying platform changes and reinstalled and managed as they are updated, all software related to monitoring and management of a system can exist on an external and centralized system. It becomes much easier to maintain this software, as opposed to managing multiple distributed agents. This approach to management also further enables the ESXi host to become a stateless entity, because there is nothing to install locally on the host. Eliminating agents from running locally also means that all the compute resources are available for running virtual machines.
Summary
The ESXi architecture offers a variety of advantages over other virtualization platforms, including:: Little state information An ESXi system can be treated for practical purposes as a stateless compute node, with all the state information easily uploaded from a saved configuration file. Better security With a small footprint and minimal interfaces, an ESXi system has a lower overall attack surface. Hardware-like reliability When it is integrated into firmware, software is much less likely to become corrupted than when it is stored on disk. The option of eliminating the local disk drive can provide even greater system reliability. Table 1 summarizes the architectural differences between ESX 3 and ESXi
VMware ESXi On-disk footprint Bootstrap Direct management interaction Hardware monitoring agents Other agents Scripts, automation and troubleshooting Other software 32MB Direct from boot loader DCUI CIM plug-in modules Implemented via VI SDK only DCUI, remote command line interfaces, and VI SDK Moved to outside environment VMware ESX 3 2GB Service console driven Service console shell session Full applications in service console Full applications in service console Service console shell and VI SDK Resident in service console
ESXi
ESX 3
Figure 4: Using the VMware Virtual Infrastructure API in a VMware Infrastructure environment
Acknowledgements
The author would like to thank Olivier Cremel and John Gilmartin for their invaluable help in producing this document.
VMware, Inc. 3401 Hillview Ave. Palo Alto CA 94304 USA Tel 650-475-5000 Fax 650-475-5001 www.vmware.com
2007 VMware, Inc. All rights reserved. Protected by one or more of U.S. Patent Nos. 6,397,242, 6,496,847, 6,704,925, 6,711,672, 6,725,289, 6,735,601, 6,785,886, 6,789,156, 6,795,966, 6,880,022, 6,961,941, 6,961,806, 6,944,699, 7,069,413; 7,082,598, 7,089,377, 7,111,086, 7,111,145, 7,117,481, 7,149, 843, 7,155,558, 7,222,221, 7,260,815, 7,260,820, 7,269,683, 7,275,136, 7,277,998, 7,277,999, 7,278,030, and 7,281,102; patents pending. VMware, the VMware boxes logo and design, Virtual SMP and VMotion are registered trademarks or trademarks of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.