OpenStack Storage (Swift)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

62 lines
1.9 KiB

#!/usr/bin/with-contenv sh
cd /etc/swift
DEV_SIZE="1GB"
# POLICIES="object container account"
MY_STORAGE_TYPE=${STORAGE_TYPE:-"internal_dirs"}
MY_DEVICE_COUNT=${DEVICE_COUNT:-6}
echo "[[ checking --privileged ]]"
ip link add dummy0 type dummy >/dev/null
if [[ $? -eq 0 ]]; then
PRIVILEGED=true
# clean the dummy0 link
ip link delete dummy0 >/dev/null
else
PRIVILEGED=false
fi
echo "storage type is $MY_STORAGE_TYPE. container is privileged? $PRIVILEGED"
echo "[[ checking what to use as storage devices ]]"
DEVICE_LIST=""
if [[ $MY_STORAGE_TYPE == "external_devices" ]]; then
DEVICE_LIST=$(ls /dev/ | grep -i "swift-d")
MY_DEVICE_COUNT=$(wc -w $DEVICE_LIST)
echo " using external device. devices found: $DEVICE_LIST"
elif [[ $MY_DEVICE_COUNT -le 0 ]]; then
echo "Device count must be greater than 0"
exit -1
else
for i in $(seq 0 $(( MY_DEVICE_COUNT-1 ))); do
DEVICE_LIST="$DEVICE_LIST swift-d$i"
done
# echo " using internal devices. devices to create: $DEVICE_LIST"
fi
if [[ $MY_STORAGE_TYPE == "internal_devices" ]]; then
for device in $DEVICE_LIST; do
truncate -s $DEV_SIZE /dev/$device;
echo " created storage device /dev/swift-d$i of $DEV_SIZE";
done
fi
export PATH=$PATH:/opt/python/usr/local/bin/
echo "[[ creating directories ]]"
for dir in $DEVICE_LIST; do
mkdir -p /srv/node/$dir;
echo " created /srv/node/$dir";
done
if [[ $MY_STORAGE_TYPE == "internal_devices" ]] || [[ $MY_STORAGE_TYPE == "external_devices" ]]; then
echo "[[ formating and mounting storage devices ]] "
for device in $DEVICE_LIST; do
# truncate -s $DEV_SIZE /dev/swift-d$i;
# echo "created storage device /dev/swift-d$i of $DEV_SIZE";
mkfs.xfs -f -L D$i -i size=512 /dev/$device;
echo " created XFS file system on device /dev/$device";
mount -t xfs -o noatime,nodiratime,logbufs=8 /dev/$device /srv/node/$device;
echo " mounted /dev/$device as /srv/node/$device";
done
fi