# # 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" MIRROR_ID="m" # 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 # start a manager ceph-mgr --id ${MGR_NAME} # start rbd-mirror ceph auth get-or-create client.rbd-mirror.${MIRROR_ID} mon 'profile rbd-mirror' osd 'profile rbd' rbd-mirror --id ${MIRROR_ID} --log-file ${LOG_DIR}/rbd-mirror.log # 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} touch ${DIR}/.ready # vim: set ts=4 sw=4 sts=4 et: