[sheepdog-users] What is cooking in master # 2013.8.9

Liu Yuan namei.unix at gmail.com
Fri Aug 9 14:52:05 CEST 2013


Hello sheepdog walkers,

This is the report of current status of development of sheepdog project.

I'll split the report into two part: user-visible, developer-visible from now on.

So what we are cooking right now in the development mailing list are:

User-visible changes:

 1 Release Cycle 

   Our release cycle was changed and now we'll release a stable version every 3
   months, which is at the exact the same release day as QEMU. For example,
   v0.7.0 will be released at 8.15, and v0.8.0 is scheduled at 11.15. Besides
   release cycle, we'll mantain a stable branch of every release version, 
   though how long the support for stable branch is not fixed yet. Current 
   stable branch is 'stable-0.6', and after v0.7.0 released, 'stable-0.7' will
   be created. At the same time, 'stable-0.6' is still going to be maintained.

   We have also get a new policy for versioning of release candicate, see
   http://lists.wpkg.org/pipermail/sheepdog/2013-August/011435.html

 2 Cluster-wide snapshot is considered working, request for test

   We have moved 'farm' from sheep to collie as code base for new cluster-wide
   snapshot. So now we only have 'plain' store left as store backend.

   features done: incremental backup, auto-deduplication, slicing for dedup

   For a simple test, it can achieve nearly 50% deduplication for images. More
   info, see https://github.com/collie/sheepdog/wiki/Backend-Stores%2C-Object-Cache-and-Disk-Cache#cluster-backup

 3 Better recovery status from 'collie node recovery'
   
   For example, the new output is
   $ collie node recovery
      Id   Host:Port         V-Nodes       Zone       Progress
       0   10.68.13.1:7000        64   17646602       56.3%
       1   10.68.13.2:7000        64   34423818       37.2%
       2   10.68.13.3:7000        64   51201034       18.1%
       3   10.68.13.4:7000        64   67978250       68.9%
       4   10.68.13.5:7000        64   84755466        3.9%
       5   10.68.13.6:7000        64  101532682       52.6%
       6   10.68.13.7:7000        64  118309898       77.9%
       7   10.68.13.8:7000        64  135087114       38.9%
       8   10.68.13.9:7000        64  151864330        8.7%
       9   10.68.13.10:7000       64  168641546       97.1%
      10   10.68.13.11:7000       64  185418762        1.1%
      11   10.68.13.12:7000       64  202195978       25.6%

   And you can watch one node progress with a progress bar
   $ collie node recovery --progress
   99.7 % [==============================================>] 7047 / 7068

 4 Openstack Glance support is upstream-merged
   
   Now users can use sheepdog as the backend storage both for
   Cinder(volume service) and Glance(image service)

   We are also in the effort to provide 'object storage' service on top of
   sheepdog. We are planned to provide Openstack Swift compatible API first.

 5 More detailed help messages
   
   Users can get the elaberate help messages for specific sheep options with
   sheep binary. For exmaple, if you don't know how to use cache, try

   $ sheep -w
   sheep/sheep: option requires an argument -- 'w'
Available arguments:
	size=: size of the cache in megabyes
	dir=: path to the location of the cache (default: $STORE/cache)
	directio: use directio mode for cache IO, if not specified use buffered IO

Example:
	$ sheep -w size=200000,dir=/my_ssd,directio ...
This tries to use /my_ssd as the cache storage with 200G allocted to the
cache in directio mode

   A detailed usage with example will be provided.

 6 Simplied restart of the cluster after crash
 
   In the past, we have to start many sheep twice if epoches of sheep get
   inconsistent. Now we will only have at most two steps to relaunch the nodes
   from a crashed state:

   A. start sheep on each node one by one, after all the nodes are up again, the
      cluster will be working. That is all. But

   B. If some node(s) is physically down and never have a chance to get up, try
      $ collie cluster recover force
	  The cluster will be working again. Done.

 7 Qeury the cache infomation on the node

   A new command is added to get the information of the cache usage
usage:
 $ collie vdi cache info # Get the cache informatin of the node

Example:
yliu at ubuntu-precise:~/sheepdog$ collie/collie vdi cache info
Name    Tag     Total   Dirty   Clean
test            88 MB   68 MB   20 MB
data            88 MB   0.0 MB  88 MB

Cache size 200 MB, used 176 MB

 8 Deb package support

   Now we can make deb or rpm pakcage on our own by a simple command
   $ make deb # for debian-based system package
   $ make rpm # for redhat-based system pakcage

===============================================================================

Developer-visible changes:
 1 node managment (group.c) is largely restructured and simplied.

 2 trace infrasture is refined and loop_checker and thread_checker are added.
   With this tools, we can easily find out which function hogs the sheep daemon.

 3 zookeeper driver gets enhanced, especially for session timeout and get much
   more stable. Users are advised to use zookeeper now.
  
 4 Unit test frame is added but lack of test cases. Also dynamorio instrumentation
   tool is added to tests/, lack of test cases too.

 5 libsheepdog is discussed but not yet code ready.

*******************************************************************************
Old posts of the report:

  What is cooking in master # 2013.5.23
  http://lists.wpkg.org/pipermail/sheepdog-users/2013-May/000746.html



More information about the sheepdog-users mailing list