Q. What is the Nitro Hypervisor?
The launch of C5 instances introduced
a new hypervisor for Amazon EC2, the Nitro Hypervisor. As a component of the
Nitro system, the Nitro Hypervisor primarily provides CPU and memory isolation
for EC2 instances. VPC networking and EBS storage resources are implemented by
dedicated hardware components, Nitro Cards that are part of all current
generation EC2 instance families. The Nitro Hypervisor is built on core Linux
Kernel-based Virtual Machine (KVM) technology, but does not include
general-purpose operating system components.
Q. How does the Nitro Hypervisor
benefit customers?
The Nitro Hypervisor provides
consistent performance and increased compute and memory resources for EC2
virtualized instances by removing host system software components. It allows
AWS to offer larger instance sizes (like c5.18xlarge) that provide practically
all of the resources from the server to customers. Previously, C3 and C4
instances each eliminated software components by moving VPC and EBS
functionality to hardware designed and built by AWS. This hardware enables the
Nitro Hypervisor to be very small and uninvolved in data processing tasks for
networking and storage.
Q. Will all EC2 instances use the
Nitro Hypervisor?
Eventually all new instance types
will use the Nitro Hypervisor, but in the near term, some new instance types
will use Xen depending on the requirements of the platform.
Q. Will AWS continue to invest in its
Xen-based hypervisor?
Yes. As AWS expands its global cloud
infrastructure, EC2’s use of its Xen-based hypervisor will also continue to
grow. Xen will remain a core component of EC2 instances for the foreseeable
future. AWS is a founding member of the Xen Project since its establishment as
a Linux Foundation Collaborative Project and remains an active participant on
its Advisory Board. As AWS expands its global cloud infrastructure, EC2’s
Xen-based hypervisor also continues to grow. Therefore EC2’s investment in Xen
continues to grow, not shrink
Q. How many EBS volumes and Elastic Network Interfaces (ENIs) can be attached to instances running on the Nitro Hypervisor?
Q. How many EBS volumes and Elastic Network Interfaces (ENIs) can be attached to instances running on the Nitro Hypervisor?
Instances running on the Nitro
Hypervisor support a maximum of 27 additional PCI devices for EBS volumes and
VPC ENIs. Each EBS volume or VPC ENI uses a PCI device. For example, if you
attach 3 additional network interfaces to an instance that uses the Nitro
Hypervisor, you can attach up to 24 EBS volumes to that instance.
Q. Will the Nitro Hypervisor change
the APIs used to interact with EC2 instances?
No, all the public facing APIs for
interacting with EC2 instances that run using the Nitro Hypervisor will remain
the same. For example, the “hypervisor” field of the DescribeInstances
response, which will continue to report “xen” for all EC2 instances, even those
running under the Nitro Hypervisor. This field may be removed in a future
revision of the EC2 API.
Q. Which AMIs are supported on
instances that use the Nitro Hypervisor?
EBS backed HVM AMIs with support for
ENA networking and booting from NVMe storage can be used with instances that
run under the Nitro Hypervisor. The latest Amazon Linux AMI and Windows AMIs
provided by Amazon are supported, as are the latest AMI of Ubuntu, Debian, Red
Hat Enterprise Linux, SUSE Enterprise Linux, CentOS, and FreeBSD.
Q. Will I notice any difference
between instances using Xen hypervisor and those using the Nitro Hypervisor?
Yes. For example, instances running
under the Nitro Hypervisor boot from EBS volumes using an NVMe interface.
Instances running under Xen boot from an emulated IDE hard drive, and switch to
the Xen paravirtualized block device drivers.
Operating systems can identify when
they are running under a hypervisor. Some software assumes that EC2 instances
will run under the Xen hypervisor and rely on this detection. Operating systems
will detect they are running under KVM when an instance uses the Nitro
Hypervisor, so the process to identify EC2 instances should be used to identify
EC2 instances that run under both hypervisors.
All the features of EC2 such as
Instance Metadata Service work the same way on instances running under both Xen
and the Nitro Hypervisor. The majority of applications will function the same
way under both Xen and the Nitro Hypervisor as long as the operating system has
the needed support for ENA networking and NVMe storage.
Q. How are instance reboot and
termination EC2 API requests implemented by the Nitro Hypervisor?
The Nitro Hypervisor signals the
operating system running in the instance that it should shut down cleanly by
industry standard ACPI methods. For Linux instances, this requires that acpid
be installed and functioning correctly. If acpid is not functioning in the
instance, termination events will be delayed by multiple minutes and will then
execute as a hard reset or power off.
Q. How do EBS volumes behave when
accessed by NVMe interfaces?
There are some important differences
in how operating system NVMe drivers behave compared to Xen paravirtual (PV)
block drivers.
First, the NVMe device names used by
Linux based operating systems will be different than the parameters for EBS
volume attachment requests and block device mapping entries such as /dev/xvda
and /dev/xvdf. NVMe devices are enumerated by the operating system as
/dev/nvme0n1, /dev/nvme1n1, and so on. The NVMe device names are not persistent
mappings to volumes, therefore other methods like file system UUIDs or labels
should be used when configuring the automatic mounting of file systems or other
startup activities. When EBS volumes are accessed via the NVMe interface, the
EBS volume ID is available via the controller serial number and the device name
specified in EC2 API requests is provided by an NVMe vendor extension to the
Identify Controller command. This enables backward compatible symbolic links to
be created by a utility script. For more information see the EC2 documentation
on device naming and NVMe based EBS volumes.
Second, by default the NVMe drivers
included in most operating systems implement an I/O timeout. If an I/O does not
complete in an implementation specific amount of time, usually tens of seconds,
the driver will attempt to cancel the I/O, retry it, or return an error to the
component that issued the I/O. The Xen PV block device interface does not time
out I/O, which can result in processes that cannot be terminated if it is
waiting for I/O. The Linux NVMe driver behavior can be modified by specifying a
higher value for the nvme.io timeout kernel module parameter.
Third, the NVMe interface can transfer much larger
amounts of data per I/O, and in some cases may be able to support more
outstanding I/O requests, compared to the Xen PV block interface. This can
cause higher I/O latency if very large I/Os or a large number of I/O requests
are issued to volumes designed to support throughput workloads like EBS
Throughput Optimized HDD (st1) and Cold HDD (sc1) volumes. This I/O latency is
normal for throughput optimized volumes in these scenarios, but may cause I/O
timeouts in NVMe drivers. The I/O timeout can be adjusted in the Linux driver
by specifying a larger value for the nvme_core.io_timeout kernel module parameter.
It is really a great work and the way in which you are sharing the knowledge is excellent.
ReplyDeleteamazon cloud computing in india
i think there must be something like qemu,let's call it qemuX. So does qemuX run on mainboard cpu or in Nitro Controller Card ?
ReplyDeleteAnd how does Nitro Controller Card communicate with Nitro Hypervisor? Using DMA?