Script to format and mount all available instance storage devices

Amazon provides instance storage for EC2 instances. If you use your own AMI, they are not formatted or automatically installed for you. You need to manually format and mount them.

Available devices are listed here and depend on the type of instance. For example, m1.small will have different available instance stores than c1.xlarge.

I am looking for a script that

  • Defines the type of instance. Perhaps using curl -s http://169.254.169.254/latest/meta-data/instance-type
  • Formats and mounts all devices available for this type of instance, but not yet formatted / mounted.

Possible? Did this? Have it

+4
source share
2 answers

So here is what I did for this.

 #!/bin/bash # This script formats and mounts all available Instance Store devices ##### Variables devices=( ) ##### Functions function add_device { devices=( "${devices[@]}" $1 ) } function check_device { if [ -e /dev/$1 ]; then add_device $1 fi } function check_devices { check_device sda2 check_device sda3 check_device sdb check_device sdc check_device sdd check_device sde } function print_devices { for device in "${devices[@]}" do echo Found device $device done } function do_mount { echo Mounting device $1 on $2 fdisk $1 << EOF n p 1 w EOF # format! mkfs -t xfs -f $1 mkdir $2 mount $1 $2 echo "$1 $2 xfs defaults 0 0" >> /etc/fstab } function mount_devices { for (( i = 0 ; i < ${#devices[@]} ; i++ )) do mountTarget=/mnt if [ $i -gt 0 ]; then mountTarget=/mnt$(($i+1)) fi do_mount /dev/${devices[$i]} $mountTarget done } ##### Main check_devices print_devices mount_devices 
+5
source
 #!/bin/bash #SETUP RAID0 checkAllDevices() { devicemount=/ephemeral logicalname=/dev/md0 deviceslist=( '/dev/xvdb' '/dev/xvdc' '/dev/xvdd' '/dev/xvde' ) for device in ${deviceslist[@]}; do if ([ -b $device ]) then aDevices=( "${aDevices[@]}" $device ) fi done if [ "${#aDevices[@]}" -gt '1' ];then yes | mdadm --create $logicalname --level=0 -c256 --raid-devices=${#aDevices[@]} ${aDevices[@]} echo \'DEVICE ${aDevices[@]}\' > /etc/mdadm.conf mdadm --detail --scan >> /etc/mdadm.conf blockdev --setra 65536 $logicalname mkfs.xfs -f $logicalname > /dev/null mkdir -p $devicemount mount -t xfs -o noatime $logicalname $devicemount if [ ! -f /etc/fstab.backup ]; then cp -rP /etc/fstab /etc/fstab.backup echo "$logicalname $devicemount xfs defaults 0 0" >> /etc/fstab fi else echo "Required more than one devices" fi } #MAIN FUNCTION aDevices=() checkAllDevices 
+1
source

Source: https://habr.com/ru/post/1412711/


All Articles