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