It doesn't affect O_DIRECT reads, and it's not persistent. Message-Id: <1476269082-2473-2-git-send-email-avi@scylladb.com>
78 lines
1.8 KiB
Bash
Executable File
78 lines
1.8 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 -c1024 --raid-devices=$NR_DISK $DISKS
|
|
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/
|