X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b9262c0e8c04f6b3d68f1ca301cc2ec56c2ef164..ffc3c0e5e8fc513d0489f4493652ae7a7de42ece:/doc/admin/spot-instances.html.textile.liquid?ds=inline diff --git a/doc/admin/spot-instances.html.textile.liquid b/doc/admin/spot-instances.html.textile.liquid index 3837f30d6d..731bc979ac 100644 --- a/doc/admin/spot-instances.html.textile.liquid +++ b/doc/admin/spot-instances.html.textile.liquid @@ -16,31 +16,48 @@ Currently Arvados supports preemptible instances using AWS and Azure spot instan h2. Configuration -Add entries to @InstanceTypes@ that have @Preemptible: true@. Typically you want to add both preemptible and non-preemptible entries for each cloud provider VM type. The @Price@ for preemptible instances is the maximum bid price, the actual price paid is dynamic and will likely be lower. For example: +First, configure some @InstanceTypes@ that have @Preemptible: true@. For a preemptible instance, @Price@ determines the maximum bid price; the actual price paid is dynamic and will likely be lower. + +Typically you want to add both preemptible and non-preemptible entries for each cloud provider VM type. To do this automatically, use @PreemptiblePriceFactor@ to enable a preemptible version of each listed type, using the given factor to set the maximum bid price relative to the non-preemptible price. Alternatively, you can configure preemptible instance types explicitly. For example, the following two configurations are equivalent:
Clusters: ClusterID: + Containers: + PreemptiblePriceFactor: 0.8 InstanceTypes: m4.large: - Preemptible: false ProviderType: m4.large VCPUs: 2 RAM: 8GiB AddedScratch: 32GB Price: 0.1 - m4.large.spot: - Preemptible: true ++ +
+Clusters: + ClusterID: + InstanceTypes: + m4.large: ProviderType: m4.large VCPUs: 2 RAM: 8GiB AddedScratch: 32GB Price: 0.1 + m4.large.preemptible: + Preemptible: true + ProviderType: m4.large + VCPUs: 2 + RAM: 8GiB + AddedScratch: 32GB + Price: 0.08Next, you can choose to enable automatic use of preemptible instances:
+Clusters: + ClusterID: Containers: AlwaysUsePreemptibleInstances: true@@ -73,6 +90,26 @@ BaseHTTPError: AuthFailure.ServiceLinkedRoleCreationNotPermitted: The provided c The account needs to have a service linked role created. This can be done by logging into the AWS account, go to _IAM Management_ → _Roles_ and create the @AWSServiceRoleForEC2Spot@ role by clicking on the @Create@ button, selecting @EC2@ service and @EC2 - Spot Instances@ use case. +h3. Interruption notices + +When running a container on a spot instance, Arvados monitors the EC2 metadata endpoint for interruption notices. When an interruption notice is received, it is reported in a log entry in the @crunch-run.txt@ file as well as @warning@ and @preemptionNotice@ keys in the @runtime_status@ field of the affected container. + +Example excerpt from @crunch-run.txt@: + +
+2023-02-21T21:12:42.350719824Z Cloud provider scheduled instance stop at 2023-02-21T21:14:42Z ++ +Example @runtime_status@: + +
+{ + "warning": "preemption notice", + "warningDetail": "Cloud provider scheduled instance stop at 2023-02-21T21:14:42Z", + "preemptionNotice": "Cloud provider scheduled instance stop at 2023-02-21T21:14:42Z" +} ++ h2. Preemptible instances on Azure For general information, see "Use Spot VMs in Azure":https://docs.microsoft.com/en-us/azure/virtual-machines/spot-vms.