# # Copyright (C) 2013,2014 Loic Dachary # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # set -e set -x set -u DIR=${1} # reset pkill ceph || true rm -rf ${DIR}/* LOG_DIR=${DIR}/log MON_DATA=${DIR}/mon MDS_DATA=${DIR}/mds MOUNTPT=${MDS_DATA}/mnt OSD_DATA=${DIR}/osd mkdir ${LOG_DIR} ${MON_DATA} ${OSD_DATA} ${MDS_DATA} ${MOUNTPT} MDS_NAME="Z" MON_NAME="a" MGR_NAME="x" # cluster wide parameters cat >> ${DIR}/ceph.conf < ${MDS_DATA}/keyring ceph osd pool create cephfs_data 8 ceph osd pool create cephfs_metadata 8 ceph fs new cephfs cephfs_metadata cephfs_data ceph fs ls ceph-mds -i ${MDS_NAME} ceph status while [[ ! $(ceph mds stat | grep "up:active") ]]; do sleep 1; done # fuse: device not found, try 'modprobe fuse' first # Make sure to run with --privileged or --cap-add SYS_ADMIN --device /dev/fuse --security apparmor:unconfined for docker ceph-fuse ${MOUNTPT} # start a manager ceph-mgr --id ${MGR_NAME} # test the setup ceph --version ceph status test_pool=$(uuidgen) temp_file=$(mktemp) ceph osd pool create ${test_pool} 0 rados --pool ${test_pool} put group /etc/group rados --pool ${test_pool} get group ${temp_file} diff /etc/group ${temp_file} ceph osd pool delete ${test_pool} ${test_pool} --yes-i-really-really-mean-it rm ${temp_file}