18772: add support for the AWS EBS autoscale script to the compute node
[arvados.git] / tools / compute-images / scripts / create-ebs-volume-nvme.patch
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: BSD-3-Clause
4
5 Make the create-ebs-volume script work with nvme devices.
6
7 --- a/create-ebs-volume 2022-02-18 15:24:19.866607848 -0500
8 +++ b/create-ebs-volume 2022-02-18 16:23:17.931870970 -0500
9 @@ -149,9 +152,20 @@
10      for letter in ${alphabet[@]}; do
11          # use /dev/xvdb* device names to avoid contention for /dev/sd* and /dev/xvda names
12          # only supported by HVM instances
13 -        if [ ! -b "/dev/xvdb${letter}" ]; then
14 +        if [[ $created_volumes =~ .*/dev/xvdb${letter}.* ]]; then
15 +            continue
16 +        fi
17              echo "/dev/xvdb${letter}"
18              break
19 +    done
20 +}
21 +
22 +numbers=( {1..255} )
23 +function get_next_logical_nvme_device() {
24 +    for num in ${numbers[@]}; do
25 +        if [ ! -b "/dev/nvme${num}n1" ]; then
26 +            echo "/dev/nvme${num}"
27 +            break
28          fi
29      done
30  }
31 @@ -243,10 +257,12 @@
32      
33      # check if there are available device names
34      local device=$(get_next_logical_device)
35 +    local nvme_device=$(get_next_logical_nvme_device)
36      if [ -z "$device" ]; then
37          error "no device names available for volume"
38      fi
39      logthis "next available device: $device"
40 +    logthis "next available nvme device: $nvme_device"
41  
42      # create the volume
43      local tmpfile=$(mktemp /tmp/ebs-autoscale.create-volume.XXXXXXXXXX)
44 @@ -323,8 +339,8 @@
45  
46      logthis "waiting for volume $volume_id on filesystem"
47      while true; do
48 -        if [ -e "$device" ]; then
49 -            logthis "volume $volume_id on filesystem as $device"
50 +        if [ -e "$nvme_device" ]; then
51 +            logthis "volume $volume_id on filesystem as $nvme_device (aws device $device)"
52              break
53          fi
54          sleep 1
55 @@ -338,7 +354,7 @@
56      > /dev/null
57      logthis "volume $volume_id DeleteOnTermination ENABLED"
58  
59 -    echo $device
60 +    echo "$nvme_device"n1
61  }
62  
63  create_and_attach_volume