We choosed #!/bin/sh for shebang when we started to implement installer scripts, not bash.
After we started to work on Ubuntu, we found that we mistakenly used bash syntax on AMI script, it caused error since /bin/sh is dash on Ubuntu.
So we changed shebang to /bin/bash for the script, from that time we have both sh scripts and bash scripts.
(2f39e2e269)
If we use bash syntax on sh scripts, it won't work on Ubuntu but works on Fedora/CentOS, could be very easy to confusing.
So switch all scripts to #!/bin/bash. It will much safer.
Signed-off-by: Takuya ASADA <syuu@scylladb.com>
Message-Id: <1460594643-30666-1-git-send-email-syuu@scylladb.com>
79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#!/bin/bash -e
|
|
#
|
|
# Copyright (C) 2015 ScyllaDB
|
|
|
|
print_usage() {
|
|
echo "scylla-raid-setup --disks /dev/hda,/dev/hdb... --raiddev /dev/md0 --update-fstab"
|
|
echo " --disks specify disks for RAID"
|
|
echo " --raiddev MD device name for RAID"
|
|
echo " --update-fstab update /etc/fstab for RAID"
|
|
exit 1
|
|
}
|
|
|
|
RAID=/dev/md0
|
|
FSTAB=0
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
"--disks")
|
|
DISKS=`echo "$2"|tr -s ',' ' '`
|
|
NR_DISK=$((`echo "$2"|grep , -o|wc -w` + 1))
|
|
shift 2
|
|
;;
|
|
"--raiddev")
|
|
RAID="$2"
|
|
shift 2
|
|
;;
|
|
"--update-fstab")
|
|
FSTAB=1
|
|
shift 1
|
|
;;
|
|
*)
|
|
print_usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "$DISKS" = "" ]; then
|
|
print_usage
|
|
fi
|
|
|
|
for dsk in $DISKS; do
|
|
if [ ! -b $dsk ]; then
|
|
echo "$dsk is not found"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo Creating RAID0 for scylla using $NR_DISK disk\(s\): $DISKS
|
|
if [ -e $RAID ]; then
|
|
echo "$RAID is already using"
|
|
exit 1
|
|
fi
|
|
if [ "`mount|grep /var/lib/scylla`" != "" ]; then
|
|
echo "/var/lib/scylla is already mounted"
|
|
exit 1
|
|
fi
|
|
|
|
. /etc/os-release
|
|
if [ "$NAME" = "Ubuntu" ]; then
|
|
env DEBIAN_FRONTEND=noninteractive apt-get -y install mdadm xfsprogs
|
|
else
|
|
yum -y install mdadm xfsprogs
|
|
fi
|
|
mdadm --create --verbose --force --run $RAID --level=0 -c256 --raid-devices=$NR_DISK $DISKS
|
|
blockdev --setra 65536 $RAID
|
|
mkfs.xfs $RAID -f
|
|
echo "DEVICE $DISKS" > /etc/mdadm.conf
|
|
mdadm --detail --scan >> /etc/mdadm.conf
|
|
if [ $FSTAB -ne 0 ]; then
|
|
UUID=`blkid $RAID | awk '{print $2}'`
|
|
echo "$UUID /var/lib/scylla xfs noatime 0 0" >> /etc/fstab
|
|
fi
|
|
mount -t xfs -o noatime $RAID /var/lib/scylla
|
|
|
|
mkdir -p /var/lib/scylla/data
|
|
mkdir -p /var/lib/scylla/commitlog
|
|
mkdir -p /var/lib/scylla/coredump
|
|
chown scylla:scylla /var/lib/scylla/*
|
|
chown scylla:scylla /var/lib/scylla/
|