Compute
The compute resources of a cloud service provider are a combination of:
- The number of CPUs
- The amount of RAM memory
These compute resources are managed and allocated on a per-guest OS and/or a per-host basis within a resource cluster.
The use of reservations, limits, and shares provides the contextual ability for an administrator to allocate the compute resources of a host.
Reservations: A reservation creates a guaranteed minimum resource allocation per VM, which must be met by the host with physical compute resources to allow a guest to power on and operate.
Limits: A limit creates a maximum resource allocation per VM. This ceiling may be fixed or expandable, allowing for the acquisition of more compute resources through a “borrowing” scheme from the CSP.
Shares: The concept of shares is used to arbitrate the issues associated with compute resource contention situations. Resource contention implies that there are too many requests for resources based on the actual available amount of resources currently in the system. If resource contention takes place, share values are used to prioritize compute resource access for all guests assigned a certain ratio of shares. The shares are weighed and used as a percentage against all outstanding shares assigned and in use by all powered-on guests to calculate the amount of resources each individual guest will be given access to. The higher the share value assigned to a guest, the larger the percentage of the remaining resources that guest will be given access to during the contention period.
Storage
Storage Area Network (SAN)
A storage area network (SAN) is a network that provides access to consolidated, block-level data storage. SANs are primarily used to enhance storage devices, such as disk arrays, tape libraries, and optical jukeboxes, accessible to servers so that the devices appear to the operating system as locally attached devices. A SAN typically has its own network of storage devices that are generally not accessible through the local area network (LAN) by other devices. The cost and complexity of SANs dropped in the early 2000s to levels allowing wider adoption across both enterprise and small- to medium-size business environments.
A SAN does not provide file abstraction, only block-level operations. However, file systems built on top of SANs do provide file-level access and are known as shared-disk file systems.
Network-attached Storage (NAS)
Network-attached storage (NAS) is a file-level computer data storage server connected to a computer network providing data access to a heterogeneous group of clients. NAS is often manufactured as a computer appliance, a purpose-built specialized computer that serves files using its hardware, software, or configuration. NAS systems are networked appliances that contain one or more storage drives, often arranged into logical, redundant storage containers or redundant array of independent disks (RAID).
NAS removes the responsibility of file serving from other servers on the network. It typically provides access to files using network file sharing protocols such as NFS, SMB/CIFS, or AFP. From the mid-1990s, NAS devices began gaining popularity as a convenient method of sharing files among multiple computers. Potential benefits of dedicated NAS compared to general-purpose servers also serving files include faster data access, easier administration, and simple configuration.
Cloud Storage
On a technical level, persistent mass storage in cloud computing typically consists either of spinning hard disk drives or solid-state drives (SSDs).
For reliability purposes, disk drives are often grouped to provide redundancy. The typical approach is a redundant array of inexpensive disks (RAID), which is actually a group of techniques. RAID groups have redundant disks configured in ways so that the disk controller can still retrieve the data when one of the disks fails. An average disk drive has a three to five percent failure rate per year. Very roughly speaking, on 5,000 installed disks, you can expect a failure every day. RAID techniques differ in the percentage of redundant disks and in the aggregate performance they can deliver.
Part of the storage functionality is to slice and group disks into logical volumes of arbitrary size (alternatively called logical unit number [LUN], virtual hard disk, volume storage, elastic block storage, Amazon EBS, Rackspace Cloud Block Storage, etc.).
These storage volumes have no file system. The file system structure is applied by the operating system on the virtual machine instance to which they are provisioned.
Object Storage
Alternatively, the cloud provider can provide a file system–like abstraction to its customers. This is mostly called object storage, where objects (files) are stored with additional metadata (content type, redundancy required, creation date, etc.). These objects are accessible through interfaces (APIs) and potentially through a web user interface. Commercial examples include Amazon S3 and Rackspace Cloud Files.
Object storage is typically the way to store operating system images, which the hypervisor will boot into running instances. Technically, object storage can implement redundancy to improve resilience by “dispersing” data by fragmenting and duplicating it across multiple object-storage servers. This can increase resilience and performance and may reduce data leakage risks.
Volume Storage
Volume storage is a virtual hard drive that can be attached to a virtual machine instance and be used to host data within a file system. Storage is written to committed blocks of data. Volumes attached to IaaS instances behave just like a physical drive or an array does. Examples include VMware VMFS, Amazon EBS, Rackspace RAID, and OpenStack Cinder.
Hyperconverged Infrastructure
Hyperconverged Infrastructure (HCI) is an amalgam of storage, compute, and networking located in a data center that abstracts and centralizes control and corresponding consumption for high efficiency. HCI is formed by clustering multiple storages, compute, and networking nodes into a common technology switching fabric to perform high availability, load balancing, and centralized management.
Related article – Cloud Computing: Virtualization and Management Plane