description |
---|
Section 8 |
The conceptual model of the Cloud Infrastructure as a Service is based on the main entities and uses specializations of the Service, Endpoint, Share, Manager and Resource. Further cloud computing related concepts such as ComputingImage, ServicePrice and Benchmark are introduced.
Figure 3 Entities and relationships for the Cloud Compute Service conceptual model.
In this section, we extensively use the concepts of Virtual Machine (VM), Virtual Machine status (halted, pending, running, suspended), Virtual Accelerator and Cloud Middleware, these are defined as follows:
- A Virtual Machine (instance) is a compute environment that runs a software configuration (for example operating system, an application server, and applications) from a given Virtual Machine image. Every VM is a fully functioning virtual computer which can be accessed via the network. The VM has a given set of virtual CPU, RAM and disk resources. The VM has usually one or more virtual network interfaces, to which are assigned public or private IPs.
- A Virtual Machine is in Running state when the VM is actively consuming system resources in terms of RAM, CPU, disk and network. Some of the physical resources may be shared with other VMs or reserved for private VM usage.
- A Virtual Machine is in Suspended state when the VM is not running, but it still has resources reserved on the system. A VM in suspended state usually consumes only disk space for the OS, and optionally additional disk space for RAM snapshot.
- A Virtual Machine is in Pending state when the VM is in the process of gathering resources from the system (ex. acquiring VM OS disk, CPU resources, initializing system). Machines in Pending state uses system resources but are not yet available for users to access.
- A Virtual Machine is in Halted state when the VM has uses no resources in the system, but its template and configuration is still stored into the system (so the machine may be started again, but with a clean configuration).
- A Virtual Machine can be equipped with one or more Virtual Accelerators. A Virtual Accelerator is defined as any kind of computing device that is provided by the virtualization capability of the system to the Virtual Machine.
- A Cloud Middleware is a piece of computer software that relies on virtualization capabilities to provide Virtual Machines on-demand to final users. The Cloud Middleware may provide not only virtual servers (namely Infrastructure as a Service feature), but also storage (Storage as a Service) and other rich services (Platform as a Service, etc…).
Throughout the specification, we also use the concept of Cloud Storage extent to mean the capabilities and management of the various media that exist to store data and allow data retrieval.
In the model, the Cloud service price is represented via separated CloudServicePrice entities associated to single accounted resources (eg. CPU, Memory, Disk, Network IN/OUT, Software Licensing). Each resource price is calculated on consumption or fixed fee basis and targeted to a given user base (eg. commercial, no-profit organizations, research). The total price for a CloudComputingInstance can be obtained by adding all the price elements from the associated CloudComputingImage and CloudComputingInstanceType.
A Cloud Computing service relates directly to a Cloud Infrastructure-as-a-Service (IaaS) system, which allows the user to run on-demand Virtual Appliances for computing purposes. For different Cloud computing services such as Platform-as-a-Service and Software-as-a-Service, the generic Grid platform computing model (GLUE2 Computing entities), described in Chapter 7, may be a better fit.
The CloudComputingService class is a specialization of the Service class for a service offering Cloud Infrastructure as a Service computational capacity. The CloudComputingService entity is the main logical unit, and aggregation point for several entities together modeling a computing infrastructure capability in a Cloud system. A CloudComputingService is capable of executing CloudComputingInstance on its associated resources. The resources behind the CloudComputingService are described via the CloudComputingManager, CloudComputingInstanceType, CloudComputingImage and Benchmark entities. The governing policies and status of the resources are given by the CloudComputingShare elements. The CloudComputingInstance of a CloudComputingService are submitted and controlled via a CloudComputingEndpoint.
Entity | Inerits from | Description | ||
---|---|---|---|---|
CloudComputingService | Service |
An abstracted, logical view of software and hardware components that participate in the creation of a computational capacity in a Cloud environment, in form of Cloud Virtual Machines instances. A Cloud Computing Service exposes zero or more Cloud Computing Endpoints having well-defined interfaces, zero or more Cloud Computing Shares and zero or more Cloud Computing Managers. The computing service is autonomous and denotes a weak aggregation among Computing Endpoints, the underlying Computing Managers and the defined Computing Shares. The Computing Service enables the identification of the whole set of entities providing the computing functionality with a persistent name. |
||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s | The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Capability | Capability_t | * | The provided capability according to the Open Grid Service Architecture (OGSA) architecture [OGF-GFD80] (this is the union of all values assigned to the capability attribute of the endpoints part of this service) | |
Type | ServiceType_t | 1 | The type of service according to a namespace-based classification. Examples are org.openstack or org.opennebula | |
QualityLevel | QualityLevel_t | 1 | Maturity of the service in terms of quality of the software components | |
StatusInfo | URI | * | Web page providing additional information like monitoring aspects | |
Complexity | String | 0..1 | Human-readable summary description of the complexity in terms of the number of endpoint types, shares and resources. The syntax should be: endpointType=X, share=Y, resource=Z. | |
Attribute | Type | Mult | Unit | Desciption |
TotalVM | UInt32 | 0..1 | Total number of VM known to the system (the sum of RunningVM, PendingVM, SuspendedVM and HaltedVM) | |
RunningVM | UInt32 | 0..1 | The number of VM in Running state (VMs actively consuming the system resources) | |
PendingVM | UInt32 | 0..1 | The number of VM in Pending state (VM in preparation to be running on the system) | |
SuspendedVM | UInt32 | 0..1 | The number of VM in Suspended state (VMs not running but with reserved resources on the system) | |
HaltedVM | UInt32 | 0..1 | The number of VM in Halted state (VMs not running on the system with no resources reserved) | |
AUP | URI | 0..1 | Link to the service Acceptable User Policy (AUP) or Terms and Conditions for the usage of the service. This shall be in URL format. | |
Association End | Mult. | Description | ||
CloudComputingEndpoint.ID | * | A CloudComputingService is associated with zero or more endpoints (interfaces) | ||
CloudComputingShare.ID | * | A CloudComputingService offers zero or more computing shares. | ||
CloudComputingManager.ID | * | A CloudComputingService offers zero or more computing manager. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. | ||
Contact.ID | * | A Cloud computing service has zero or more contacts. | ||
Location.ID | 0..1 | A Cloud computing service is primarily located at a location. | ||
Service.ID | * | A Cloud computing service is related to zero or more services. |
The CloudComputingEndpoint is a specialization of the Endpoint class for a service possessing cloud Infrastructure-as-a-Service capability. The class represents an endpoint which is used to create, control and monitor Cloud computing activities. The specific information concerns service status and interface capabilities. This class provides attributes that MAY be used to publish summary information about VM instantiated via a particular Endpoint. Such attributes are optional and may not always be measurable (e.g., in the case of a stateless Endpoint which does not keep information about the VM instantiated through it).
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingEndpoint | Endpoint | A network Endpoint for creating, monitoring, and controlling computational Cloud Activities called Virtual Machines instances. It MAY also be used to expose complementary capabilities (e.g., resource reservation, attached block storage, VM image manipulation). | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s | The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
URL | URI | 1 | Network location of the endpoint to contact the related service | |
Capability | Capability_t | * | The provided capability according to the OGSA architecture | |
Technology | EndpointTechnology_t | 0..1 | Technology used to implement the endpoint | |
InterfaceName | InterfaceName_t | 1 | Identification of the interface | |
InterfaceVersion | String | 0..* | Version of the interface | |
InterfaceExtension | URI | * | Identification of an extension to the interface | |
WSDL | URI | * | URL of the WSDL document describing the offered interface (applies to Web Services endpoint) | |
SupportedProfile | URI | * | URI identifying a supported profile | |
Semantics | URI | * | URI of a document providing a human-readable description of the semantics of the endpoint functionalities | |
Implementor | String | 0..1 | Main organization implementing this software component | |
ImplementationName | String | 0..1 | Name of the implementation | |
ImplementationVersion | String | 0..1 | Version of the implementation (e.g., major version.minor version.patch version) | |
QualityLevel | QualityLevel_t | 1 | Maturity of the endpoint in terms of quality of the software components | |
HealthState | EndpointHealthState_t | 1 | A state representing the health of the endpoint in terms of its capability of properly delivering the functionalities | |
HealthStateInfo | String | 0..1 | Textual explanation of the state endpoint | |
ServingState | ServingState_t | 1 | A state specifying if the endpoint is accepting new requests and if it is serving the already accepted requests | |
StartTime | DateTime_t | 0..1 | The timestamp for the start time of the endpoint | |
Authentication | EndpointAuthentication_t | 0..1 | Name of the authentication method supported by the endpoint. | |
IssuerCA | DN_t | 0..1 | Distinguished name of Certification Authority issuing the certificate for the endpoint | |
TrustedCA | DN_t | * | Distinguished name of the trusted Certification Authority (CA), i.e., certificates issued by the CA are accepted for the authentication process | |
DowntimeAnnounce | DateTime_t | 0..1 | The timestamp for the announcement of the next scheduled downtime | |
DowntimeStart | DateTime_t | 0..1 | The starting timestamp of the next scheduled downtime | |
DowntimeEnd | DateTime_t | 0..1 | The ending timestamp of the next scheduled downtime | |
DowntimeInfo | String | 0..1 | Description of the next scheduled downtime | |
Association End | Mult. | Description | ||
CloudComputingService.ID [redefines Service.ID] |
1 | A Cloud endpoint is part of a Cloud Computing Service. | ||
CloudComputingShare.ID [redefines Share.ID] | * | A Cloud endpoint MAY pass activities to zero or more Cloud computing shares. | ||
CloudComputingInstance.ID [redefines Activity.ID] |
* | An Cloud endpoint has accepted and is managing zero or more Cloud Activities. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. | ||
AccessPolicy.ID | * | A computing endpoint has assocated zero or more AccessPolicies. |
The CloudComputingShare class is the specialization of the main Share class for cloud Infrastructure-as-a-Service. A CloudComputingShare is a high-level concept introduced to model a utilization target for a pool of resources, sometimes referred to as Zones or Sites, defined by a homogeneous set of configuration parameters and characterized by single status information. A CloudComputingShare carries information about "policies" (limits) defined over all or a subset of resources and describes their dynamic status (load).
The CloudComputingShare stores also a set of CloudComputingImage and CloudComputingInstanceType, which are used to define respectively the virtual OS and the virtual hardware resources of the CloudComputingInstance running on the share. Such virtual OS and hardware resources are provided by the Share with a given Service Level Agreement (SLA). In case of the same CloudComputingInstanceType and CloudComputingImage are offered under different SLAs, multiple CloudComputingShares shall be created, one for each SLA.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingShare | Share | A utilization target for a set of Cloud Computing Instance Types and Cloud Computing Images, defined by a set of homogeneous configuration parameters and characterized by single status information. | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Description | String | 0..1 | Description of this share | |
Attribute | Type | Mult. | Unit | Description |
TotalVM | UInt32 | 0..1 | Total number of VM known to this computing share (the sum of RunningVM, PendingVM, SuspendedVM, HaltedVM) | |
RunningVM | UInt32 | 0..1 | The number of VM running into this computing share | |
PendingVM | UInt32 | 0..1 | The number of VM in Pending state (VM in preparation to be running on the system) | |
SuspendedVM | UInt32 | 0..1 | The number of VM in suspended state (VMs not running but with reserved resources on this computing share) | |
HaltedVM | UInt32 | 0..1 | The number of VM in Halted state (VMs not running on the system with no resources reserved on this computing share) | |
MaxVM | UInt32 | 0..1 | The maximum number of VM instances that can run on this share | |
InstanceMaxCPU | UInt32 | 0..1 | The maximum number of Virtual CPU which can be assigned to a single VM for the VM in this share. Virtual CPU refers to CPUs as seen by the VM.. | |
InstanceMaxRAM | UInt32 | 0..1 | MB | The maximum value (in MB) of virtual RAM memory which can be assigned to a single VM for the VM in this share. With virtual RAM memory it is intended the amount of RAM seen by the VM OS, not the physical RAM dedicated to the VM |
NetworkInfo | NetworkInfo_t | * | The type of internal network connection available among the managed Hosts. If many values are published then the various types of network MAY be available only within subsets of the Hosts; the Hosts properties SHOULD publish this information. | |
DefaultNetworkType | NetworkType_t | 0..1 | The default network type that will be setup for an instance (e.g. public, private, private_only…) | |
PublicNetworkName | String | 0..1 | The name of the public network if any. | |
SLA | String | 0..1 | Service Level Agreement for the VMs under this share. This can be an URL to the SLA document or a keyword representing the SLA itself (eg. 99.99% availability, best effort, etc…) | |
ProjectID | String | 0..1 | The native identifier of the corresponding local project to be used for this share (e.g. used by API users to know what is the project_id for OpenStack) | |
Association End | Mult. | Description | ||
CloudComputingEndpoint.ID [redefines Endpoint.ID] |
* | A Cloud computing share MAY be consumed via one or more computing endpoints. | ||
CloudComputingInstanceType.ID [redefines Resource.ID] |
* | A Cloud computing share is defined on one or more computing resources. | ||
CloudComputingService.ID [redefines Service.ID] |
1 | A Cloud computing share participates in a computing service. | ||
CloudComputingInstance.ID [redefines Activity.ID] |
* | A Cloud computing share is being consumed by zero or more computing activities. | ||
CloudComputingImage.ID | * | A Cloud computing share provides zero or more VM Image templates | ||
CloudToStorageService.ID | * | Link to the storage share used to store instances templates, VM images and/or attached disks | ||
CloudComputingShareAccelerator.ID | * | A Cloud computing share provides zero or more sets of information about the usage level of virtual accelerator devices. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. | ||
MappingPolicy.ID | * | A share has zero or more mapping policies. |
The CloudComputingShareAccelerator contains all the information about the usage level of the virtual accelerator device bound to the cloud computing share.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingShareAccelerator | Entity | The usage level of the virtual accelerator device for a given cloud computing share | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Type | AccType_t | 1 | The virtual accelerator architecture type. | |
MaxNumber | UInt32 | 0..1 | The maximum number of virtual accelerators that can be assigned to a single VM for any VM in this share. | |
Association End | Mult. | Description | ||
CloudComputingShare.ID | 1 | A set of virtual accelerator information is related to a cloud computing share. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingManager class is a specialization of the Manager class for the computational capability (Virtual Machines) manager. The CloudComputingManager is responsible for the local control of resources. The CloudComputingManager layer may not be exposed directly to external clients or to the Virtual Machines themselves.
The Virtual Machine manager, also known as Cloud Middleware, normally uses a hypervisor, a piece of software, firmware or hardware which creates, runs and manages Virtual Machines or possibly containers. A Cloud Computing Service will usually have only one Cloud Computing Manager, but MAY have more. The class provides aggregated information on controlled resources, limits and also describes local storage extents accessible to the Virtual Machines.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingManager | Manager | A software component locally managing one or more Cloud Instance Type virtual environments. It MAY also describe aggregated information about the managed resources. The Cloud Computing Manager is also known as Cloud Middleware. | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated. | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant. |
ID [key] | URI | 1 | A global unique ID. | |
Name | String | 0..1 | Human-readable name. | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax. | |
ProductName | String | 1 | Name of the software product adopted as manager. | |
ProductVersion | String | 0..1 | Version of the software product adopted as manager. | |
Attribute | Type | Mult. | Unit | Description |
HypervisorName | String | 0..1 | Name of the underlying hypervisor that creates, runs and manages Virtual Machines. | |
HypervisorVersion | String | 0..1 | Version of the hypervisor. | |
TotalCPUs | UInt32 | 0..1 | Ph.CPU | The total number of physical CPUs cores accessible via any of the available Endpoints and managed by this Cloud Compute Manager. This value SHOULD represent the total installed capacity, i.e. including resources which are temporarily unavailable. |
TotalRAM | UInt32 | 0..1 | MB | The total amount of RAM accessible via any of the available Endpoints and managed by this Cloud Compute Manager. This value SHOULD represent the total installed capacity, i.e. including resources which are temporarily unavailable. |
InstanceMaxCPU | UInt32 | 0..1 | The maximum number of Virtual CPU which can be assigned to a single VM. (Virtual CPU refers tothe CPU cores as seen by the VM OS). | |
InstanceMinCPU | UInt32 | 0..1 | The minimum number of Virtual CPU which can be assigned to a single VM (Virtual CPU refers to the CPU cores as seen by the VM OS) | |
InstanceMaxRAM | UInt32 | 0..1 | MB | The maximum value (in MB) of virtual RAM memory which can be assigned to a single VM (with virtual RAM memory it is intended the amount of RAM seen by the VM OS, not the physical RAM dedicated to the VM). |
InstanceMinRAM | UInt32 | 0..1 | MB | The minimum value (in MB) of virtual RAM memory which can be assigned to a single VM (with virtual RAM memory it is intended the amount of RAM seen by the VM OS, not the physical RAM dedicated to the VM). |
InstanceMaxDedicatedRAM | UInt32 | 0..1 | MB | The maximum value (in MB) of virtual RAM memory which can be dedicated to a VM (i.e. physical host memory, not shared of swapped). |
InstanceMinDedicatedRAM | UInt32 | 0..1 | MB | The minimum value (in MB) of virtual RAM memory which can be dedicated to a VM (i.e. physical host memory, not shared of swapped). |
NetworkVirtualizationType | NetVirtualizationT_t | * | The type of network virtualization performed by the Cloud Computing Manager to segregate VMs VLANs (ex. none, vSwitch, ebtables, etc…). | |
CPUVirtualizationType | CPUVirtualizationT_t | * | The type of CPU virtualization (ex. full/paravirtualization/hardware assisted). | |
VirtualDiskFormat | DiskVirtualizationT_t | * | The format of virtual disk images supported (ex. qcow2, raw, vmdk). | |
Failover | ExtendedBoolean_t | 0..1 | Failover is the automatic transition of the VM to a secondary machine or server upon failure of the primary component. | |
LiveMigration | ExtendedBoolean_t | 0..1 | If true the Cloud Computing Manager allows to move the virtual machine from one physical host to another without powering down the system. | |
VMBackupRestore | ExtendedBoolean_t | 0..1 | If true the Cloud Computing Manager allows to backup and restore the virtual machines. This is a static value and does not ensure the availability of the storage for the backup. | |
Association End | Mult. | Description | ||
CloudComputingService.ID [redefines Service.ID] |
1 | A cloud computing manager participates in a computing service. | ||
CloudComputingInstanceType.ID [redefines Resource.ID] |
* | A cloud computing manager manages one or more cloud computing instance type. | ||
CloudComputingImage.ID | * | A cloud computing manager manages one or more cloud computing images. | ||
Benchmark.ID | * | A cloud computing manager has zero or more associated benchmarks. These benchmarks are referred to the virtual resources (RAM, CPU, disk, network) provided to the VMs. | ||
CloudComputingManagerAccelerator.ID | * | A cloud computing manager controls zero or more virtual accelerator devices. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingManagerAccelerator contains all the information about the virtual accelerator device available for a given cloud computing manager.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingManager Accelerator |
Entity | The set of information about the virtual accelerator device provided by the cloud computing manager. | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Type | AccType_t | 1 | The virtual accelerator architecture type. | |
TotalNumber | UInt32 | 0..1 | The total number of physical Accelerator cards accessible through any of the available Endpoints and managed by this Cloud Compute Manager. This value SHOULD represent the total installed capacity, i.e. including resources which are temporarily unavailable. | |
MaxNumber | UInt32 | 0..1 | The maximum number of virtual accelerators that can be assigned to a single VM | |
MinNumber | UInt32 | 0..1 | The minimum number of virtual accelerators that can be assigned to a single VM | |
Association End | Mult. | Description | ||
CloudComputingManager.ID | 1 | A set of virtual accelerator information is related to a cloud computing share. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingInstanceType class describes the hardware environment of the VM, i.e. the amount of RAM, CPU, disk and network resources the VM OS will see and manage. The resources provided to the VM are virtual resources, usually shared with other VMs running in the same infrastructure. The performances of the provided resources are specified via the Benchmarks associated to the Instance Type.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingInstanceType | Resource | A type of environment available to the CloudComputingManager for running a VM in a ComputingService via a Computing Endpoint; the type of environment is described in terms of hardware, operating system and network characteristics. | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
TemplateID | String | 1 | Reference to this particular template to be used during instantiation of a VM via the Endpoint. | |
MarketplaceURL | URI | * | Reference to one or more marketplaces which stores the metadata of this resource template. Reference is the URL of the resource in the marketplace. | |
Platform | Platform_t | 1 | The platform architecture provided to the virtual machine (ex. i386, x86_64) | |
CPU | UInt32 | 1 | Number of virtual cores provided to the virtual machine (this is the number of core the machine OS will see) | |
RAM | UInt32 | 1 | MB | Virtual RAM memory provided to the virtual machine (this is the total wuantity of RAM the machine OS will see) |
Disk | UInt32 | 0..1 | GB | Size of the disk associated to the OS image. If this attribute is omitted, the OS disk size will be the one specified by the CloudComputingImage entity, otherwise the CloudComputingImage OS disk will be extended to this value. |
EphemeralStorage | UInt32 | 0..1 | GB | Amount of Ephemeral storage associated to the VM. This is temporary storage which is deleted after the VM closure and is represented as a new resource. |
NetworkIn | ExtendedBoolean_t | 0..1 | True if direct inbound network connectivity is available to the OS, even if limited, e.g. by firewall rules. | |
NetworkOut | ExtendedBoolean_t | 0..1 | True if direct outbound network connectivity is available to the OS, even if limited, e.g. by firewall rules. | |
NetworkPortsIn | NetworkConfigurationPort_t | * | The allowed inbound external connectivity ports (if not specified, all ports are allowed) | |
NetworkPortsOut | NetworkConfigurationPort_t | * | The allowed outbound external connectivity ports (if not specified, all ports are allowed) | |
NetworkInfo | NetworkInfo_t | * | The type of internal network connection available to the OS. | |
Association End | Mult. | Description | ||
CloudComputingManager.ID [redefines Manager.ID] |
1 | Cloud Computing Instance Type is managed by a Cloud computing manager. | ||
CloudComputingShare.ID [redefines Share.ID] |
* | Cloud Computing Instance Type is served by a set of computing shares. | ||
CloudComputingInstance.ID [redefines Activity.ID] |
* | Zero or more cloud computing instances runs this Cloud Computing Instance Type. | ||
CloudComputingEndpoint.ID | * | Cloud Computing Instance Type is available on a set of Cloud Computing Endpoints. | ||
CloudComputingVirtualAccelerator.ID | * | A cloud computing instance type provides zero or more virtual accelerator devices. | ||
CloudServicePrice.ID | * | The price metric associated to the resources provided by this template. It contains a different metric for each resource (Computing, Memory, Network IN/OUT) | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingVirtualAccelerator is an entity used to describe a set of homogeneous virtual accelerator devices. Generally a virtual accelerator device corresponds to physical one installed on the host. A cloud computing instance may be associated with one or more virtual accelerators.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingVirtualAccelerator | Entity | Description of the accelerator device | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Type | AccType_t | 1 | The type of virtual accelerator device. | |
Number | UInt32 | 1 | The number of virtual accelerators provided to the virtual machine (usually this is the number of cards the machine OS will see) | |
Vendor | String | 0..1 | The name of the virtual accelerator vendor provided to the virtual machine. Free format, but it SHOULD correspond to the name by which the vendor is generally known. | |
Model | String | 0..1 | The name of the virtual accelerator model, as defined by the vendor, provided to the virtual machine | |
Version | String | 0..1 | The specific version of the virtual accelerator model, as defined by the vendor, provided to the virtual machine. | |
ClockSpeed | UInt32 | 0..1 | MHz | The nominal clock speed of the virtual accelerator, provided to the virtual machine. |
Memory | UInt32 | 0..1 | MB | The nominal memory size of the virtual accelerator, provided to the virtual machine. |
ComputeCapability | String | * | The reference, an ID or tag, representing the set of features supported by a virtual accelerator, as declared by the vendor | |
VirtualizationType | VirtType_t | 0..1 | The virtualization mode adopted for creating the virtual accelerator device. | |
Association End | Mult. | Description | ||
CloudComputingInstanceType.ID | 1 | A virtual accelerator is associated with one CloudComputingInstanceType. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingImage class describes the software environment of the VM, i.e. which OS is booting at VM startup and which pre-installed software is available on it. Each application installed on the OS is identified by a name (the InstalledSoftware attribute); these names are not defined within the schema, but SHOULD be assigned in a way which allows applications to be uniquely identified. In some deployment scenarios, the definition of namespace-based InstalledSoftware or guidelines for the generation of unique application names MAY be specified, and application repository services relying on those application names MAY be provided. This aspect is considered out of scope for the GLUE schema specification, but MAY be included in a profile document for a specific production Clouds.
The CloudComputingImage can be used to describe specific OS features, particular OS configuration, installed application software or special environment setups in terms of a simple tag string. In this case, the InstalledSoftware attribute should be used to publish this tag.
The properties of installed software may vary substantially, but the attributes of the class cover the most common cases, in particular for licensed software. If necessary, additional information MAY be added using the OtherInfo attribute and the Extension class.
The OS template may require a certain amount of resources (CPU, RAM and GPU) to run. These requirements are specified in terms of minimum and recommended requirements, which will lead the user to the proper selection of virtual resources needed by the VM.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingImage | Entity | A description of installed OS and applications or OS environment characteristics and configuration available for VM instantiation. | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
TemplateID | String | 1 | Reference to this particular template to be used during instantiation of a VM via the Endpoint. | |
MarketplaceURL | URI | * | Reference to one or more marketplaces which stores the metadata of this instance. Reference is the URL of the resource in the marketplace. | |
OSPlatform | Platform_t | 1 | The platform architecture to which the OS belongs (ex. i386, x86_64) | |
OSFamily | OSFamily_t | 1 | The general family to which the OS belongs. | |
OSName | OSName_t | 0..1 | The specific name of the OS. | |
OSVersion | String | 0..1 | The version of the OS, as defined by the vendor. | |
DiskSize | UInt32 | 1 | GB | Size of the OS disk image in GB. |
RecommendedCPU | UInt32 | 0..1 | Number of virtual CPU cores recommended to run the image (this is a recommended value, actual number of cores will depend on the selected CloudComputeInstanceType) | |
RecommendedRAM | UInt32 | 0..1 | MB | Virtual RAM memory recommended to run the image (this is a recommended value, the actual RAM value will depend on the selected CloudComputeInstanceType) |
MinCPU | UInt32 | 0..1 | Minimum number of virtual CPU cores required to run the image (the actual number of cores will depend on the selected CloudComputeInstanceType) | |
MinRAM | UInt32 | 0..1 | MB | Minimum virtual RAM memory required to run the image (the actual RAM value will depend on the selected CloudComputeInstanceType) |
AccessInfo | HostAccessInfo_t | 1 | Information about user access to the VM. Can be: credentials injected during contextualization, pre-defined username/password, pre-defined RSA key | |
ContextualizationName | ContextualizationName_t | 0..1 | Supported contextualization mechanism (if any) | |
ContextualizationVersion | String | * | Supported contextualization mechanism versions | |
DefaultUsername | String | 0..1 | Pre-defined username to access the VM (if AccessInfo specify pre-defined credentials) | |
DefaultPassword | String | 0..1 | Pre-defined password (or RSA private key) to access the CM (if AccessInfo specify pre-defined credentials) | |
InstalledSoftware | String | * | Custom software installed on the instance. | |
Description | String | 0..1 | Description of the image. | |
Version | String | 0..1 | Version of the image. | |
Association End | Mult. | Description | ||
CloudComputingManager.ID [redefines Manager.ID] |
1 | Cloud Computing Image is managed by a Cloud computing manager. | ||
CloudComputingShare.ID | 1..* | An OS template is available to one or more computing shares | ||
CloudComputingInstance.ID | * | An OS template is used by one or more computing activities | ||
CloudComputingEndpoint.ID | * | An OS template is available on a set of Cloud Computing Endpoints. | ||
CloudServicePrice.ID | * | The price metric associated to the resources provided by this template. It contains a different metric for each resource (OS License, Application license, etc…) | ||
CloudToStorageService.ID | 0..1 | Link to the OS disk location in the storage service. | ||
CloudComputingImageNetworkTraffic.ID | * | An image may contain information about multiple NetworkTraffic objects. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The OS disk size specified in the CloudComputingImage is the minimum disk size who need to be provided by the CloudComputingInstanceType for a VM to be instantiated correctly. If the CloudComputingInstanceType has no OS disk size associated, the VM OS disk size will be the one specified by the CloudComputingImage, otherwise, the VM OS disk will be enlarged to the size specified by the CloudComputingInstanceType.
The CloudComputingImageNetworkConfiguration contains information about expected network usage, related to a single or a set of ports and a network address in CIDR notation of a cloud computing image. There might be zero, one or more objects for each computing image.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingImageNetworkConfiguration | Entity | The set of information about the network configuration of a cloud computing image. | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Direction | NetworkConfigurationDirection_t | 1 | Information about traffic direction | |
Protocol | NetworkConfigurationProtocol_t | 1 | Information about network protocol | |
Port | NetworkConfigurationPort_t | 1 | Information about network port(s) | |
AddressRange | NetworkConfigurationAddressRange_t | 1 | Information about network address range | |
Association End | Mult. | Description | ||
CloudComputingImage.ID | 1 | A NetworkConfiguration object is related to a cloud computing image. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudComputingInstance class represents a single VM (but possibly multi-VM) instance. The attributes give the instance properties and state as seen by the Cloud Computing Manager.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingInstance | Activity | An Activity managed by the Cloud Manager execution capability (the Computing Activity is traditionally called VM). | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Type | CloudComputingInstanceType_t | 0..1 | The type of this Computing Activity. | |
VMID | URI | 1 | The VM ID as assigned by the Computing Endpoint. | |
LocalID | String | 0..1 | The local ID of the VM as assigned by the Cloud Computing Manager. | |
State | CloudComputingInstanceState_t | 1..* | The state of the VM; different state models are allowed; a state for each model is allowed provided that it has a different namespace prefix (see data type definition) | |
Error | String | * | Error messages as provided by the software components involved in the management of the job. | |
Owner | String | 0..1 | The identity of the VM’s owner;. | |
LocalOwner | String | 0..1 | The local user name to which the VM’s owner is mapped for the execution of this job. | |
ExecutionNode | String | * | A hostname associated to the Execution Environment instance (i.e., host) running the VM; multi-node VMs are described by several instances of this attribute. | |
UsedTotalCPUTime | UInt64 | 0..1 | s | The total CPU time consumed so far by the VM. In case of multi-VM, this value refers to the sum of the CPU time consumed in each slot. |
UsedMainMemory | UInt64 | 0..1 | MB | The amount of RAM currently used by the VM. |
UsedNetworkIn | UInt64 | 0..1 | Kb | The amount of inbound network connectivity consumed so far by the VM. The value is measured in terms of Kb in input to the VM virtual interfaces. |
UsedNetworkOut | UInt64 | 0..1 | Kb | The amount of outbound network connectivity consumed so far by the VM. The value is measured in terms of Kb in output to the VM virtual interfaces. |
ComputingManagerSubmissionTime | DateTime_t | 0..1 | The time when the VM instantiation was submitted to the Cloud Middelware by the user. | |
StartTime | DateTime_t | 0..1 | The time when the VM entered Running state. | |
ComputingManagerEndTime | DateTime_t | 0..1 | The time when the VM destroy request was submitted to the Cloud Middelware by the user. | |
EndTime | DateTime_t | 0..1 | The time when the VM entered Halted state. | |
SubmissionHost | String | 0..1 | The name of the host from which the VM was submitted. | |
SubmissionClientName | String | 0..1 | The name of the software client which was used to submit the VM. | |
OtherMessages | String | * | Optional job messages provided by either the Cloud Middelware or the Compute Manager. | |
Association End | Mult. | Description | ||
CloudComputingEndpoint.ID [redefines Endpoint.ID] |
0..1 | A Cloud computing activity is submitted to a computing endpoint. | ||
CloudComputingShare.ID [redefines Share.ID] |
0..1 | A Cloud computing activity is mapped into a computing share. | ||
CloudComputingInstanceType.ID [redefines Resource.ID] |
0..1 | A Cloud computing activity is executed in an execution environment. | ||
CloudToStorageService | * | Link to the attached disks location in the storage service. The OS disk is included in this list. | ||
CloudComputingInstanceAccelerator.ID | * | A cloud computing instance shows zero or more information about the usage level of installed virtual accelerator devices. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. | ||
UserDomain.ID | 0..1 | An activity is managed by a user domain. | ||
Activity.ID | * | An activity is related to zero or more activities. |
The CloudComputingInstanceAccelerator contains information about the usage level of the virtual accelerator device handled by the cloud computing instance.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudComputingInstance Accelerator |
Entity | The usage level of the virtual accelerator device handled by the cloud computing instance. | ||
Inherited Attribute | Type | Mult. | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Type | AccType_t | 1 | The virtual accelerator architecture type. | |
TotalProcessingTime | UInt64 | 0..1 | s | The total Accelerator time consumed so far by the VM. In case of multi-VM, this value refers to the sum of the Accelerator time consumed in each slot. |
Association End | Mult. | Description | ||
CloudComputingInstance. ID | 1 | A set of virtual accelerator information is related to a cloud computing instance. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudServicePrice entity models the resources price in the cloud environment. This entity represents a single price voice of the final price for the activity. This voice is related to a given consumed resource which is specified in the attributes of the entity.
The price for the given resource is represented by a fixed price or consumption model. The fixed price is independent of the resource usage and can be billed once or multiple times during the life of the CloudComputing Instance (ex. monthly fixed prices). The consumption price needs to be multiplied by the accounted resource consumption value (present in the CloudComputing Instance entity) in the given consumption period. Consumption prices must be specified in the same unit as per the unit of the accounted resource.
Different cost models may be applied to different users according to the scope of the CloudComputingInstance. For example, research usage may have different pricing than commercial useage. The related scope for the price to apply is described in the entity attributes.
With the information provided by the Scope attribute, this entity MAY be used in alternative to UserDomain and AccessPolicy entities, to discriminate which category of users have access to the resource. In this view, it MAY be defined by the user community that users category without associated cost entity for the service have no access to it.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudServicePrice | Entity | Price information for a given Cloud service resource. | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | S |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
Resource | CloudResourceName_t | 1 | Name of the resource this price entity refers to. Can be any resource billed (CPU, Memory, Disk, Software Licenses, etc…). | |
Scope | ResourceScope_t | * | Usage scope required for the price to apply (eg. commercial, no-profit, research, training) | |
FixFee | Float32 | 0..1 | Euro | Fixed fee to be paid for the service usage (this price is not dependent from the resource usage) |
FixFeePeriod | Period_t | 0..1 | Billing period for the fixed price (ex. once, monthly, yearly, etc.) | |
ConsumptionFee | Float32 | 0..1 | Euro/period/x | Consumption fee to be paid for the service (this price shall be specified in the same unit as per the accounted resource x) |
ConsumptionFeePeriod | Period_t | 0..1 | Billing period for the per usage price (ex. monthly, yearly, etc.) | |
Association End | Mult. | Description | ||
CloudComputingInstanceType.ID | 0..* | It MAY be associated to a Computing Instance Type. | ||
CloudComputingImage.ID | 0..* | It MAY be associated to a OS template. | ||
StorageService.ID | 0..* | It MAY be associated to a Storage service. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |
The CloudToStorageService class represents the case where a virtual disk is created into the Storage Service for VM usage. The disk may be attached to the VM (visible as a disk device by the VM OS) or available via other export protocols (NFS share, iSCSI, etc…).
The attributes of this entity refer to the link of the storage resource into the Storage System and the VM environment.
Entity | Inherits from | Description | ||
---|---|---|---|---|
CloudToStorageService | Entity | The description of a device access to a Virtual Disk attached to a VM, thus available in the VM as a virtual hardware device. | ||
Inherited Attribute | Type | Mult | Unit | Description |
CreationTime | DateTime_t | 0..1 | Timestamp describing when the entity instance was generated | |
Validity | UInt64 | 0..1 | s |
The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant |
ID [key] | URI | 1 | A global unique ID | |
Name | String | 0..1 | Human-readable name | |
OtherInfo | String | * | Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax | |
Attribute | Type | Mult. | Unit | Description |
LocationID | String | 0..1 | Reference to this disk to be used for attaching/detaching it to a VM. | |
LocalPath | String | 1 | The link to the local storage into the VM environment (this is typically a link to a local virtual disk device) | |
RemotePath | String | 1 | The link to the storage into the remote Storage Service (this is typically a link to a virtual disk image). | |
Association End | Mult. | Description | ||
CloudComputingInstance.ID | 0..* | It MAY be associated to a cloud computing instance. | ||
CloudComputingImage.ID | 0..1 | It MAY be associated to a OS template. | ||
CloudComputingService.ID | 1 | Is associated to a cloud computing service. | ||
StorageService.ID | 1 | Is associated to a storage service. | ||
Inherited Association End | Mult. | Description | ||
Extension.Key | * | The entity MAY be extended via key-value pairs. |