{% img center Bring persistent storage for your containers with KRBD on Kubernetes %}

Use RBD device to provide persistent storage to your containers.
This work was initiated by a colleague of mine Huamin Chen.
I would like to take the opportunity to thank him for the troubleshooting session we had.
Having the ability to use persistent volume for your containers is critical, containers can be ephemeral since they are immutable.
If they did on a machine they can be bootstrapped on another host without any problem.
The only problem here is we need to ensure that somehow the data that come with this container will follow it no matter where it goes.
This is exactly what we want to achieve with this implementation.

read more…

Jewel – Ceph Developer Summit

The next (virtual) Ceph Developer Summit is coming. The agenda has been finally announced for the 1.and 2. of July 2015. The fist day starts at 07:00 PDT (16:00 CEST) and the second day starts at 18:00 PDT on 2. July or rather 03:00 CEST on 03.July. 
I have submitted a blueprint to discuss and afterwards starting to working on the “CephX brute-force protection through auto-blacklisting” topic from my talk in Vancouver to improve the security of Ceph. But there are many other interesting blueprints on the list. You can find the full agenda and blueprints we will discuss here.

{% img center Map a RBD device inside a Docker container %}

People have been having trouble to map a RBD device in a container.
Quick tip on how to map a Rados Block Device into a container:

read more…

Get OMAP Key/value Size

List the total size of all keys for each object on a pool.

object        size_keys(kB)  size_values(kB)  total(kB)  nr_keys  nr_values
meta.log.44   0              1                1          0        10
data_log.78   0              56419            56419      0        406841
meta.log.36   0              1                1          0        10
data_log.71   0              56758            56758      0        409426
data_log.111  0              56519            56519      0        405909

read more…

{% img center Bootstrap your Ceph cluster in Docker %}

Almost two years have passed since my first attempt to run Ceph inside Docker.
Time has elapsed and I haven’t really got the time to resume this work until recently.
For the last couple of months, I have been devoting a third part of my time to contributing on deploying Ceph in Docker.
Before we start, I would like to highlight that nothing of this work would have been possible without the help of Seán C. McCord.
Indeed the current ceph-docker repository is based on Seán’s initial work.
Let’s see how you can get this running!

read more…

WARNING: libcurl doesn't support curl_multi_wait()
WARNING: cross zone / region transfer performance may be affected

If you have already been confronted to this error at startup of RadosGW, the problem is the version of libcurl used.
To enable support of curl_multi_wait, you will need to compile radosgw with libcurl >= 7.28.0 :

On debian wheezy, you can use ceph-extras repo which contains libcurl 7.29.0 to recompile ceph packages :

# apt-cache policy libcurl4-gnutls-dev
  Installed: (none)
  Candidate: 7.26.0-1+wheezy13

# echo  deb wheezy main | tee /etc/apt/sources.list.d/ceph-extras.list
# apt-get update

# apt-cache policy libcurl4-gnutls-dev
  Installed: (none)
  Candidate: 7.29.0-1~bpo70+1.ceph

Retrieve Ceph repo on Github (in this example, I use hammer version) :

# apt-get install git build-essential automake
# git clone --recursive -b hammer
# cd ceph

Install dependencies and build packages (without libbabeltrace-ctf-dev libbabeltrace-dev, here we not need…)

# apt-get install autoconf automake autotools-dev libbz2-dev cryptsetup-bin debhelper default-jdk gdisk javahelper junit4 libaio-dev libatomic-ops-dev libblkid-dev libboost-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libcurl4-gnutls-dev libedit-dev libexpat1-dev libfcgi-dev libfuse-dev libgoogle-perftools-dev libkeyutils-dev libleveldb-dev libnss3-dev libsnappy-dev liblttng-ust-dev libtool libudev-dev libxml2-dev parted pkg-config python-nose python-virtualenv sdparm uuid-dev uuid-runtime xfslibs-dev xfsprogs xmlstarlet yasm zlib1g-dev

# dpkg-buildpackage -d

On RadosGW host, you will need to add “ceph-extras” repo (for libcurl) and install radosgw packages and dependencies :

# echo  deb wheezy main | tee /etc/apt/sources.list.d/ceph-extras.list
# apt-get update

# dpkg -i ceph-common_*.deb librbd1_*.deb python-cephfs_*.deb python-rbd_*.deb librados2_*.deb python-ceph_*.deb python-rados_*.deb radosgw_*.deb
© 2015, Red Hat, Inc. All rights reserved.