github.com/mika/distribution@v2.2.2-0.20160108133430-a75790e3d8e0+incompatible/contrib/ceph/ci-setup.sh (about) 1 #! /bin/bash 2 # 3 # Ceph cluster setup in Circle CI 4 # 5 6 set -x 7 set -e 8 set -u 9 10 NODE=$(hostname) 11 CEPHDIR=/tmp/ceph 12 13 mkdir cluster 14 pushd cluster 15 16 # Install 17 retries=0 18 until [ $retries -ge 5 ]; do 19 pip install ceph-deploy && break 20 retries=$[$retries+1] 21 sleep 30 22 done 23 24 retries=0 25 until [ $retries -ge 5 ]; do 26 ceph-deploy install --release hammer $NODE && break 27 retries=$[$retries+1] 28 sleep 30 29 done 30 31 retries=0 32 until [ $retries -ge 5 ]; do 33 ceph-deploy pkg --install librados-dev $NODE && break 34 retries=$[$retries+1] 35 sleep 30 36 done 37 38 echo $(ip route get 1 | awk '{print $NF;exit}') $(hostname) >> /etc/hosts 39 ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N "" 40 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 41 ssh-keyscan $NODE >> ~/.ssh/known_hosts 42 ceph-deploy new $NODE 43 44 cat >> ceph.conf <<EOF 45 osd objectstore = memstore 46 memstore device bytes = 2147483648 47 osd data = $CEPHDIR 48 osd journal = $CEPHDIR/journal 49 osd crush chooseleaf type = 0 50 osd pool default size = 1 51 osd pool default min size = 1 52 osd scrub load threshold = 1000 53 54 debug_lockdep = 0/0 55 debug_context = 0/0 56 debug_crush = 0/0 57 debug_buffer = 0/0 58 debug_timer = 0/0 59 debug_filer = 0/0 60 debug_objecter = 0/0 61 debug_rados = 0/0 62 debug_rbd = 0/0 63 debug_journaler = 0/0 64 debug_objectcatcher = 0/0 65 debug_client = 0/0 66 debug_osd = 0/0 67 debug_optracker = 0/0 68 debug_objclass = 0/0 69 debug_filestore = 0/0 70 debug_journal = 0/0 71 debug_ms = 0/0 72 debug_monc = 0/0 73 debug_tp = 0/0 74 debug_auth = 0/0 75 debug_finisher = 0/0 76 debug_heartbeatmap = 0/0 77 debug_perfcounter = 0/0 78 debug_asok = 0/0 79 debug_throttle = 0/0 80 debug_mon = 0/0 81 debug_paxos = 0/0 82 debug_rgw = 0/0 83 osd_op_num_threads_per_shard = 1 //You may want to try with 1 as well 84 osd_op_num_shards = 5 //Depends on your cpu util 85 ms_nocrc = true 86 cephx_sign_messages = false 87 cephx_require_signatures = false 88 ms_dispatch_throttle_bytes = 0 89 throttler_perf_counter = false 90 91 [osd] 92 osd_client_message_size_cap = 0 93 osd_client_message_cap = 0 94 osd_enable_op_tracker = false 95 EOF 96 97 sed -i -r 's/mon_host =.*/mon_host = 127.0.0.1/' ceph.conf 98 sed -i -r 's/auth_cluster_required =.*/auth_cluster_required = none/' ceph.conf 99 sed -i -r 's/auth_service_required =.*/auth_service_required = none/' ceph.conf 100 sed -i -r 's/auth_client_required =.*/auth_client_required = none/' ceph.conf 101 102 # Setup monitor and keyrings 103 ceph-deploy mon create-initial 104 ceph-deploy admin $NODE 105 sudo chmod a+r /etc/ceph/ceph.client.admin.keyring 106 107 # Setup OSD 108 mkdir -p $CEPHDIR 109 OSD=$(ceph osd create) 110 ceph osd crush add osd.${OSD} 1 root=default host=$NODE 111 ceph-osd --id ${OSD} --mkjournal --mkfs 112 ceph-osd --id ${OSD} 113 114 # Status 115 ceph status 116 ceph health detail 117 ceph osd tree 118 119 popd