1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: BSD-3-Clause
5 Make the create-ebs-volume script work with nvme devices.
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
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
17 echo "/dev/xvdb${letter}"
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}"
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"
39 logthis "next available device: $device"
40 + logthis "next available nvme device: $nvme_device"
43 local tmpfile=$(mktemp /tmp/ebs-autoscale.create-volume.XXXXXXXXXX)
46 logthis "waiting for volume $volume_id on filesystem"
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)"
57 logthis "volume $volume_id DeleteOnTermination ENABLED"
60 + echo "$nvme_device"n1
63 create_and_attach_volume