ALIYUN::EHPC::Cluster is used to create an Elastic High Performance Computing (E-HPC) cluster.
Syntax
{
"Type": "ALIYUN::EHPC::Cluster",
"Properties": {
"EcsOrderComputeCount": Integer,
"OsTag": String,
"HaEnable": Boolean,
"VolumeType": String,
"VolumeId": String,
"EcsOrderManagerCount": Integer,
"EcsOrderManagerInstanceType": String,
"EcsOrderComputeInstanceType": String,
"Application": List,
"KeyPairName": String,
"PeriodUnit": String,
"Description": String,
"AutoRenewPeriod": Integer,
"JobQueue": String,
"ImageId": String,
"AutoRenew": Boolean,
"EhpcVersion": String,
"VSwitchId": String,
"Password": String,
"Name": String,
"SchedulerType": String,
"SccClusterId": String,
"EcsChargeType": String,
"ZoneId": String,
"EcsOrderLoginCount": Integer,
"DeployMode": String,
"ImageOwnerAlias": String,
"RemoteDirectory": String,
"ComputeSpotPriceLimit": String,
"ComputeSpotStrategy": String,
"SecurityGroupName": String,
"KeyPairName": String,
"VolumeProtocol": String,
"SecurityGroupId": String,
"Period": Integer,
"PostInstallScript": List,
"AccountType": String,
"VolumeMountpoint": String,
"EcsOrderLoginInstanceType": String,
"SystemDiskLevel": String,
"IsComputeEss": Boolean,
"SystemDiskSize": Integer,
"SystemDiskType": String,
"AdditionalVolumes": List,
"RemoteVisEnable": Boolean,
"InputFileUrl": String,
"WithoutElasticIp": Boolean,
"ResourceGroupId": String,
"ClientVersion": String,
"ComputeEnableHt": Boolean
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
EcsOrderComputeCount | Integer | Yes | No | The number of compute nodes in the cluster. | Valid values: 1 to 99. |
OsTag | String | Yes | No | The image tag of the OS. | Example: CentOS_7.2_64. |
HaEnable | Boolean | No | No | Specifies whether to enable high availability. | Default value: false. Valid values:
|
VolumeType | String | No | No | The type of the shared storage. | Set the value to NAS. The value specifies an Apsara File Storage NAS (NAS) file system. |
KeyPairName | String | No | No | The name of the key pair. | You must specify the Password or KeyPairName property. If you specify both properties, the value of the Password property has a higher priority. |
VolumeId | String | No | No | The ID of the Alibaba Cloud NAS file system. | None. |
EcsOrderManagerCount | Integer | No | No | The number of management nodes in the cluster. | Valid values:
|
EcsOrderManagerInstanceType | String | Yes | No | The instance type of the management node in the cluster. | None. |
Application | List | No | No | The software. | For more information, see Application property. |
EcsOrderComputeInstanceType | String | Yes | No | The instance type of the compute node in the cluster. | None. |
PeriodUnit | String | No | No | The unit of the subscription duration of the cluster that you purchase. | Valid values:
|
Description | String | No | Yes | The description of the cluster. | The description must be 2 to 128 characters in length. |
AutoRenewPeriod | Integer | No | No | The auto-renewal period for the cluster. | This property takes effect when you set the AutoRenew property to true. |
JobQueue | String | No | No | The queue to which you add the compute node. | None. |
ImageId | String | No | No | The ID of the image. | This property is required when you set the ImageOwnerAlias property to self, others,
or marketplace.
Note If you set the ImageOwnerAlias property to system, the ID of the base image varies
only based on the value of the OsTag property.
|
AutoRenew | Boolean | No | No | Specifies whether to enable auto-renewal. | Valid values:
|
EhpcVersion | String | No | No | The version of E-HPC. | By default, the latest version is used. |
VSwitchId | String | Yes | No | The ID of the vSwitch. | E-HPC supports networks only of the virtual private cloud (VPC) type. |
Password | String | No | No | The root password of the logon node. | The password must be 8 to 30 characters in length. The password must contain at least
three of the following character types: uppercase letters, lowercase letters, digits,
and special characters. Special characters include ( ) ` ~ ! @ # $ % ^ & ∗ - + = | { } [ ] : ; ' < > , . ? / .
You must specify the Password or KeyPairName property. If you specify both properties, the value of the Password property has a higher priority. |
Name | String | Yes | Yes | The name of the cluster. | The name must be 2 to 64 characters in length, and can contain letters, digits, hyphens (-), and underscores (_). The name must start with a letter. |
SchedulerType | String | No | No | The type of the scheduler. | Default value: pbs. Valid values:
|
SccClusterId | String | No | No | The ID of the Super Computing Cluster (SCC) instance. | If you specify the property, the existing SCC instance is managed in a new SCC cluster. |
EcsChargeType | String | No | No | The billing method for the Elastic Compute Service (ECS) instance in the cluster. | Valid values:
|
ZoneId | String | No | No | The ID of the zone. | None. |
EcsOrderLoginCount | Integer | Yes | No | The number of logon nodes in the cluster. | Valid values: 1 to 99. |
DeployMode | String | No | No | The deployment mode. | Default value: Standard. Valid values:
|
ImageOwnerAlias | String | No | No | The type of the image. | Valid values:
|
RemoteDirectory | String | No | No | The remote directory to which the NAS file system is mounted. | The mount point directory consists of the mount target and the remote directory: NasMountpoint:/RemoteDirectory .
|
ComputeSpotPriceLimit | String | No | No | The maximum hourly price of the compute node. | The value of this property is a floating-point number within the price range at the time of purchase. |
ComputeSpotStrategy | String | No | No | The bidding policy for the compute node. | Default value: NoSpot. Valid values:
|
SecurityGroupName | String | No | No | The name of the security group. | If you do not use an existing security group, the system uses the value of this property as the name of a new security group. The default policy is applied to the new security group. |
VolumeProtocol | String | No | No | The type of the protocol that is used by the NAS file system. | Valid values:
|
SecurityGroupId | String | No | No | The ID of the security group. | None. |
Period | Integer | No | No | The subscription duration of the cluster that you purchase. | This property is required when you set the EcsChargeType property to PrePaid. |
PostInstallScript | List | No | No | The download URLs and runtime parameters of the script. | You can specify up to 16 sets of download URLs and runtime parameters. For more information, see PostInstallScript properties. |
AccountType | String | No | No | The service type of the domain account. | Default value: nis. Valid values:
|
VolumeMountpoint | String | No | No | The mount target of the NAS file system. The mount target is of the virtual private cloud (VPC) type. | The value of this property varies based on the value of the VolumeId property:
|
EcsOrderLoginInstanceType | String | Yes | No | The instance type of the logon node in the cluster. | None. |
SystemDiskLevel | String | No | No | The performance level (PL) of the enhanced SSD (ESSD) that is used as the system disk. | Default value: PL1. Valid values:
|
IsComputeEss | Boolean | No | No | Specifies whether to enable auto scaling. | Default value: false. Valid values:
|
SystemDiskSize | Integer | No | No | The size of the system disk. | Valid values: 40 to 500.
Unit: GB. Default value: 40. |
SystemDiskType | String | No | No | The category of the system disk. | Default value: cloud_ssd. Valid values:
|
AdditionalVolumes | List | No | No | The details of the NAS file systems that are mounted. | For more information, see AdditionalVolumes properties. |
RemoteVisEnable | Boolean | No | No | Specifies whether to enable Virtual Network Computing (VNC) that is used to manage a visualization service. | Default value: false. Valid values:
|
InputFileUrl | String | No | No | The URL of the job file that is uploaded to an Object Storage Service (OSS) bucket. | Example: https://ehpc-tianshui.oss-cn-beijing.aliyuncs.com/test-u****/testlist_ehpc.sh .
|
WithoutElasticIp | Boolean | No | No | Specifies whether to use an elastic IP address (EIP) for the logon node. | Default value: false. Valid values:
|
ResourceGroupId | String | No | No | The ID of the resource group. | None. |
ClientVersion | String | No | No | The version of the client that is used for the cluster. | By default, the latest version is used. |
ComputeEnableHt | Boolean | No | No | Specifies whether to enable hyper-threading for the compute node. | Default value: true. Valid values:
|
Application syntax
"Application": [
{
"Tag": String
}
]
Application property
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Tag | String | Yes | No | The tag of the software. | Example: OpenMPI_11.1. |
PostInstallScript syntax
"PostInstallScript": [
{
"Url": String,
"Args": String
}
]
PostInstallScript properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Url | String | No | No | The download URL of the script after the cluster is deployed. | None |
Args | String | No | No | The runtime parameters of the script after the cluster is deployed. | None |
AdditionalVolumes syntax
"AdditionalVolumes": [
{
"RemoteDirectory": String,
"Location": String,
"VolumeId": String,
"LocalDirectory": String,
"VolumeProtocol": String,
"JobQueue": String,
"VolumeType": String,
"VolumeMountpoint": String
}
]
AdditionalVolumes properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
RemoteDirectory | String | No | No | The remote directory to which the NAS file system is mounted. | None. |
Location | String | No | No | The type of the cluster on which the NAS file system is mounted. | Set the value to PublicCloud. |
VolumeId | String | Yes | No | The ID of the NAS file system. none | None. |
LocalDirectory | String | Yes | No | The local directory to which the NAS file system is mounted. | None. |
VolumeProtocol | String | No | No | The type of the protocol that is used by the NAS file system. | Default value: NFS. Valid values:
|
JobQueue | String | No | No | The queue to which you add the compute node. | None. |
VolumeType | String | No | No | The type of the shared storage. | Set the value to NAS. |
VolumeMountpoint | String | Yes | No | The mount target of the NAS file system. The mount target is of the VPC type. | None. |
Return values
Fn::GetAtt
- EcsInfo: the quantities and types of ECS instances that are used as nodes in the cluster.
Example:
{"Manager": {"Count": 2, "InstanceType": "ecs.n1.large"}, "Compute": {"Count": 8, "InstanceType": "ecs.n1.large"}, "Login": {"Count": 1, "InstanceType": "ecs.n1.large"}}
. - SecurityGroupId: the ID of the security group.
- ClusterId: the ID of the cluster.
- Name: the name of the cluster.
Examples
JSON format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VpcCidrBlock": {
"Type": "String",
"AllowedValues": [
"192.168.0.0/16",
"172.16.0.0/12",
"10.0.0.0/8"
],
"Label": {
"en": "VPC CIDR Block",
},
"Default": "192.168.0.0/16"
},
"VSwitchCidrBlock": {
"Type": "String",
"Description": {
"en": "Must be a sub-network segment of the proprietary network and is not occupied by other VSwitches."
},
"Label": {
"en": "vSwitch CIDR Block"
},
"Default": "192.168.0.0/24"
},
"ZoneId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
"Label": {
"en": "Availability Zone"
}
},
"EcsOrderComputeCount": {
"Type": "Number",
"Label": {
"en": "Compute Count",
},
"Description": {
"en": "Ranges from: 1~99.",
},
"MinValue": 1,
"MaxValue": 99,
"Default": 1
},
"Password": {
"NoEcho": true,
"Type": "String",
"Label": {
"en": "Login Password",
}
"MinLength": 8,
"MaxLength": 30
},
"EcsOrderLoginInstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "ZoneId"
},
"Type": "String"
"Label": {
"en": "Login Instance Specifications",
}
},
"EcsOrderLoginCount": {
"Type": "Number",
"Label": {
"en": "Login Count",
},
"Description": {
"en": "Ranges from: 1~99.",
},
"MinValue": 1,
"MaxValue": 99,
"Default": 1
},
"EcsOrderManagerInstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "ZoneId"
},
"Type": "String"
"Label": {
"en": "Manager Instance Specifications",
}
},
"EcsOrderComputeInstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "ZoneId"
},
"Type": "String",
"Label": {
"en": "Compute Instance Specifications",
}
},
"BucketName": {
"Type": "String",
"Label": {
"en": "Bucket Name",
},
"Default": "test-ehpc"
},
"BucketAccessControl": {
"Type": "String",
"Label": {
"en": "Access Control",
},
"AllowedValues": [
"private",
"public-read",
"public-read-write"
],
"Default": "public-read"
},
"BucketStorageClass": {
"Type": "String",
"Label": {
"en": "Storage Type",
},
"AllowedValues": [
"Standard",
"IA",
"Archive"
],
"Default": "Standard"
}
},
"Resources": {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": {
"Ref": "VpcCidrBlock"
},
"VpcName": {
"Fn::Join": [
"-",
[
"Vpc",
{
"Ref": "ALIYUN::StackId"
}
]
]
}
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"ZoneId": {
"Ref": "ZoneId"
},
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": {
"Ref": "VSwitchCidrBlock"
},
"VSwitchName": {
"Fn::Join": [
"-",
[
"VSwitch",
"StackId",
{
"Ref": "ALIYUN::StackId"
}
]
]
}
}
},
"AccessGroup": {
"Type": "ALIYUN::NAS::AccessGroup",
"Properties": {
"AccessGroupType": "Vpc",
"AccessGroupName": {
"Fn::Join": [
"-",
[
"AccessGroup",
{
"Ref": "ALIYUN::StackId"
}
]
]
}
}
},
"FileSystem": {
"Type": "ALIYUN::NAS::FileSystem",
"Properties": {
"ProtocolType": "NFS",
"StorageType": "Capacity"
}
},
"MountTarget": {
"Type": "ALIYUN::NAS::MountTarget",
"Properties": {
"VpcId": {
"Ref": "Vpc"
},
"FileSystemId": {
"Ref": "FileSystem"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"NetworkType": "Vpc",
"AccessGroupName": {
"Ref": "AccessGroup"
}
}
},
"AccessRule": {
"Type": "ALIYUN::NAS::AccessRule",
"Properties": {
"SourceCidrIp": "0.0.0.0/0",
"AccessGroupName": {
"Ref": "AccessGroup"
}
}
},
"Cluster": {
"Type": "ALIYUN::EHPC::Cluster",
"DependsOn": [
"AccessRule",
"FileSystem",
"MountTarget",
"OssBucket"
],
"Properties": {
"EcsOrderComputeCount": {
"Ref": "EcsOrderComputeCount"
},
"OsTag": "CentOS_7.2_64",
"Name": {
"Fn::Join": [
"-",
[
"Cluster",
{
"Ref": "ALIYUN::StackId"
}
]
]
},
"EhpcVersion": "1.0.0",
"VolumeId": {
"Ref": "FileSystem"
},
"EcsOrderLoginCount": {
"Ref": "EcsOrderLoginCount"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"VolumeMountpoint": {
"Ref": "MountTarget"
},
"EcsOrderLoginInstanceType": {
"Ref": "EcsOrderLoginInstanceType"
},
"EcsOrderManagerInstanceType": {
"Ref": "EcsOrderManagerInstanceType"
},
"EcsOrderComputeInstanceType": {
"Ref": "EcsOrderComputeInstanceType"
},
"Password": {
"Ref": "Password"
},
"Application": [
{
"Tag": "VMD_1.9.3"
},
{
"Tag": "LAMMPS-OPENMPI-31Mar17"
}
]
}
},
"OssBucket": {
"Type": "ALIYUN::OSS::Bucket",
"Properties": {
"BucketName": {
"Ref": "BucketName"
},
"AccessControl": {
"Ref": "BucketAccessControl"
},
"StorageClass": {
"Ref": "BucketStorageClass"
},
"Tags": {
"Value": "021",
"Key": "best_practice"
}
}
}
},
"Outputs": {
"MountTargetDomain": {
"Description": {
"en": "Mount point domain name",
},
"Value": {
"Fn::GetAtt": [
"MountTarget",
"MountTargetDomain"
]
}
},
"FileSystemId": {
"Description": {
"en": "ID of the file system created",
},
"Value": {
"Fn::GetAtt": [
"FileSystem",
"FileSystemId"
]
}
}
},
"Description": {
"en": "EHPC Industrial Simulation",
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"ZoneId",
"VpcCidrBlock",
"VSwitchCidrBlock"
],
"Label": {
"default": {
"en": "VPC",
}
}
},
{
"Parameters": [
"EcsOrderComputeCount",
"EcsOrderComputeInstanceType",
"EcsOrderLoginCount",
"EcsOrderLoginInstanceType",
"EcsOrderManagerInstanceType",
"Password"
],
"Label": {
"default": {
"en": "EHPC",
}
}
},
{
"Parameters": [
"BucketName",
"BucketAccessControl",
"BucketStorageClass"
],
"Label": {
"default": {
"en": "OSS",
}
}
}
],
"TemplateTags": [
]
}
}
}
To view more examples, visit Cluster.json and Cluster.yml.