Skip to content

Latest commit

 

History

History
3474 lines (3419 loc) · 140 KB

cloud-computing-service.md

File metadata and controls

3474 lines (3419 loc) · 140 KB
description
Section 8

Conceptual Model of the Cloud Computing Service

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.

8.1. CloudComputingService

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.
A simple CloudComputingService is formed by a CloudComputingEndpoint exposing an interface for VM instantiation and control. The CloudComputingService always aggregates CloudComputingEndpoints, CloudComputingShares, CloudComputingManagers, CloudComputingImage and CloudComputingInstanceType forming a connected set. In other words, Endpoint A exposing InstanceType A and Image A served by Manager A via Share A and Endpoint B exposing InstanceType B and Image B served by Manager B via Share B form two different Computing Services. On the other hand, Endpoint A exposing InstanceType A and Image A served by Manager A via Share A and Endpoint B exposing InstanceType A and Image A served by Manager A via Share B form a single Computing Service.

CloudComputingEndpoint

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.
## CloudComputingShare

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.
## CloudComputingShareAccelerator

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.
## CloudComputingManager

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.
## CloudComputingManagerAccelerator

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.
## CloudComputingInstanceType

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 associated CloudServicePrice entities define the price for the entire template or separately for each one of the resources \(eg. CPU, Memory, Disk, Network IN/OUT\) provided by the infrastructure. Price element associated to the CloudComputingInstanceType contributes separately to the final price of the VM, together with the other price elements associated to the CloudComputingImage.

CloudComputingVirtualAccelerator

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.
## CloudComputingImage

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 price item linked to this entity represent a single price voice of the final bill, usually related to OS or applicantion licensing price. The linked price values need to be added to the prices in the CloudComputingInstanceType to determinate the final price associated to an active instance.

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.

CloudComputingImageNetworkConfiguration

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.
## CloudComputingInstance

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.
In this specification, the Cloud Computing Instance may refer to a VM or to elements of collections or appliances. The description of the relationships between VMs which are part of a collection or appliance may be considered in future revisions of the specification.

CloudComputingInstanceAccelerator

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.
## CloudServicePrice

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 entity can be associated to multiple CloudComputingInstanceType or CloudComputingImage or StorageService, but not to different class of entities at the same time.

CloudToStorageService

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.
The entity can be associated to multiple CloudComputingInstance, to a CloudComputingImage or to both the entities at the same time. The disk may also be temporary un-associated to any Computing entity. This is the case of data which has been detached from all the running VMs but stays available to be attached to new VMs.