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:
  • true: enables high availability. After you enable high availability, a primary management node and a secondary management node are used in the cluster.
  • false: disables high availability.
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:
  • 1
  • 2
  • 4
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:
  • Week
  • Month
  • Year
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:
  • true: enables auto-renewal.
  • false: does not enable auto-renewal.
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:
  • pbs
  • slurm
  • opengridscheduler
  • deadline
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:
  • PostPaid: pay-as-you-go
  • PrePaid: subscription
    Note If you set this property to PrePaid, the system enables auto-renewal by default. After the instance is released, the system disables auto-renewal.
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:
  • Standard: The account node, scheduling node, logon node, and compute node are deployed separately.
  • Simple: The account node and scheduling node are deployed on one node. The logon node and compute node are deployed separately.
  • Tiny: The account node, scheduling node, and logon node are deployed on one node. The compute node is deployed separately.
ImageOwnerAlias String No No The type of the image. Valid values:
  • system: public image
  • self: custom image
  • others: shared image
  • marketplace: Alibaba Cloud Marketplace image
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:
  • NoSpot: The compute node is created as a regular pay-as-you-go instance.
  • SpotWithPriceLimit: The compute node is created as a preemptible instance for which you specify the maximum hourly price.
  • SpotAsPriceGo: The compute node is created as a preemptible instance whose price is based on the market price at the time of purchase.
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:
  • NFS: Network File System (NFS)
  • SMB: Server Message Block (SMB)
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:
  • nis
  • ldap
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:
  • If you leave the VolumeId property empty, you can leave the VolumeMountpoint property empty. When you create a cluster, a mount target of the VPC type is created by default.
  • If you specify the VolumeId parameter property, you must specify the VolumeMountpoint 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:
  • PL0: An ESSD delivers up to 10,000 random read/write IOPS.
  • PL1: An ESSD delivers up to 50,000 random read/write IOPS.
  • PL2: An ESSD delivers up to 100,000 random read/write IOPS.
  • PL3: An ESSD delivers up to 1,000,000 random read/write IOPS.
IsComputeEss Boolean No No Specifies whether to enable auto scaling. Default value: false. Valid values:
  • true: enables auto scaling.
  • false: disables auto scaling.
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:
  • cloud: basic disk
  • cloud_efficiency: ultra disk
  • cloud_ssd: SSD
  • cloud_essd: ESSD
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:
  • true: enables VNC.
  • false: disables VNC.
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:
  • true: uses an EIP.
  • false: does not use an EIP.
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:
  • true: enables hyper-threading.
  • false: does not enable hyper-threading.

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:
  • NFS
  • SMB
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.