Planet Ceph

Aggregated news from external sources

  • January 20, 2017
    Running headless VirtualBox inside Nested KVM

    For the Ceph training at 42on I use VirtualBox to build Virtual Machines. This is because they work under MacOS, Windows and Linux. For the internal Git at 42on we use Gitlab and I wanted to use Gitlab’s CI to build my Virtual Machines automatically. As we don’t have any physical hardware at 42on (everything …Read more

  • January 19, 2017
    ceph的rbd备份软件ceph-backup

    teralytics是一家国外的大数据公司,这个是他们开源的ceph的备份的工具,在twitter上搜索相关信息的时候看到,觉得不错就拿来试用一番 这是个什么软件 一个用来备份ceph的RBD的image的开源软件,提供了两种模式增量:在给定备份时间窗口内基于rbd快照的增量备份完全:完整映像导出时不包含快照 注意一致性:此工具可以生成rbd图像的快照,而不会感知到它们的文件系统的状态,注意下rbd快照的一致性限制(http://docs.ceph.com/docs/hammer/rbd/rbd-snapshot/)由于“完全”模式不使用快照,“完全”模式下的实时映像备份不一致(“增量”模式始终使用快照) 超过时间窗口以后,会进行一次全量备份,并且把之前的快照进行删除掉,重新备份一次全量,并且基于这个时间计算是否需要删除备份的文件 软件包含以下功能: 支持存储池和多image的只对 支持自定义备份目标路径 配置文件支持 支持备份窗口设置 支持压缩选项 支持增量和全量备份的配置 编译安装 [root@lab8106 ~]#git clone https://github.com/teralytics/ceph-backup.git[root@lab8106 ~]# cd ceph-backup[root@lab8106 ceph-backup]# python setup.py install 安装过程中会下载一些东西,注意要有网络,需要等待一会 准备配置文件 [root@lab8106 ceph-backup]# mkdir /etc/cephbackup/[root@lab8106 ceph-backup]# cp ceph-backup.cfg /etc/cephbackup/cephbackup.conf 我的配置文件如下,备份rbd存储的zp的镜像,支持多image,images后面用逗号隔开就可以 [root@lab8106 ~]# cat /etc/cephbackup/cephbackup.conf [rbd]window size = 7window unit = daysdestination directory = /tmp/images = zpcompress = yesceph config = …Read more

  • January 15, 2017
    Deploying Ceph with storage tiering

    You have several options to deploy storage tiering within Ceph. In this post I will show you a simple yet powerful approach to automatically update the CRUSHmap and create storage policies. Some basics Storage tiering means having several tiers available. The classic 3 tiered approach is: fast: all flash medium: disks accelerated by some flash …Read more

  • January 13, 2017
    Blog post on InformationWeek

    Recently, I wrote an article that was published on InformationWeek. The article helps you understand the benefits of Storage Defined Software along with containers. In case you’re interested in reading it, click here. Source: Sebastian Han (Blog post on InformationWeek)

  • January 12, 2017
    ‘sortbitwise’是什么意思

    问题 flag sortbitwise 在ceph中是什么意思,在Jewel版本下可以看到多了这个flags [root@lab8106 current]# ceph -s cluster ffe7a8db-c671-4b45-a784-ddb41e633905 health HEALTH_OK monmap e1: 1 mons at {lab8106=192.168.8.106:6789/0} election epoch 4, quorum 0 lab8106 fsmap e4: 1/1/1 up {0=lab8106=up:active} osdmap e132: 8 osds: 8 up, 8 in flags sortbitwise pgmap v206294: 201 pgs, 5 pools, 4684 MB data, 1214 objects 9669 MB used, 2216 GB …Read more

  • January 9, 2017
    解决calamari无法获取节点信息的bug

    一、前言 一直在做calamari的相关的一些打包和安装的工作,都是业余弄的东西,所以并没有仔细的进行功能点的验证测试,正好ceph社区群里面有人问了个问题 calamari上是不是能看到ceph的version? 对于这个问题,好像确实没有见到过,而之前正好有个页面看到是空的,当时还不清楚这个是什么用的 而另外一位群友贴出了这个地方的是有值的,这个地方是有BUG的,在咨询了相关的问题描述以后,我们来看下,可以如何解决这个问题 二、问题解决过程 salt的软件版本: salt-master-2015.8.1-1.el7.noarch salt-2015.8.1-1.el7.noarch salt-minion-2015.8.1-1.el7.noarch 2.1 问题描述: calamari的salt-master节点在读取 /var/cache/salt/master/minions/{minion-hostname}/data.p 的时候有权限问题,在修改权限以后,可以读取到了,但是在重启了salt-minion以后,这个文件会被更新,然后权限又变成无法读取的 2.2 相关知识补充 Grains – salt-minion 自身的一些静态信息 salt ‘*’ grains.ls # 查看 grains 分类salt ‘*’ grains.items # 查看 grains 所有信息salt ‘*’ grains.item os # 查看 grains 某个信息salt ‘*’ grains.get os 上面的是salt-minion的静态信息的查询的相关的命令,salt-minion在进行重启的时候会将一些静态的信息推送到salt-master上面去,而这个生成的信息正好就是我们上面提出有权限问题的data.p这个存储的文件的,那么解决问题就是修改这个地方的权限的问题了 2.3 修改salt-master代码 这个问题通过修改salt-master的master.py代码可以解决 写入这个grains信息的代码在/usr/lib/python2.7/site-packages/salt/master.py这个文件当中,代码段如下: def _pillar(self, load):··· if self.opts.get(‘minion_data_cache’, False): …Read more

  • January 6, 2017
    Ceph RBD and iSCSI

    Just like promised last Monday, this article is the first of a series of informative blog posts about incoming Ceph features. Today, I’m cheating a little bit because I will decrypt one particular feature that went a bit unnoticed with Jewel. So we are discussing something that is already available but will have follow-ups with …Read more

  • January 5, 2017
    Ceph编译加速的小技巧

    总结了几个小技巧,用于在ceph编译过程中,能够更快一点 一、修改clone的地址 git clone https://github.com/ceph/ceph.git 可以修改成 git clone git://github.com/ceph/ceph.git 某些时候可能可以加快一些 二、根据需要下载分支 假如现在想看10.2.5版本的代码 2.1 常规做法 先下载整个库 git clone git://github.com/ceph/ceph.git all 总共的下载对象数目为46万 Counting objects: 460384 这个是包含所有的分支和分支内的文件的所有版本的我们切换到分支 [root@lab8106 mytest]#cd all[root@lab8106 all]# git branch* master[root@lab8106 all]# git checkout -b all10.2.5 v10.2.5Switched to a new branch ‘all10.2.5′[root@lab8106 all]# git branch* all10.2.5 master[root@lab8106 all]# ls -R|wc -l4392可以看到有这么多的文件 2.2 现在只复制一个分支的 [root@lab8106 mytest]# …Read more

  • January 5, 2017
    ceph 的crush算法 straw

    很多年以前,Sage 在写CRUSH的原始算法的时候,写了不同的Bucket类型,可以选择不同的伪随机选择算法,大部分的模型是基于RJ Honicky写的RUSH algorithms 这个算法,这个在网上可以找到资料,这里面有一个新的特性是sage很引以为豪的,straw算法,也就是我们现在常用的一些算法,这个算法有下面的特性: items 可以有任意的weight 选择一个项目的算法复杂度是O(n) 如果一个item的weight调高或者调低,只会在调整了的item直接变动,而没有调整的item是不会变动的 O(n)找到一个数组里面最大的一个数,你要把n个变量都扫描一遍,操作次数为n,那么算法复杂度是O(n)冒泡法的算法复杂度是O(n²) 这个过程的算法基本动机看起来像画画的颜料吸管,最长的一个将会获胜,每个item 基于weight有自己的随机straw长度 这些看上去都很好,但是第三个属性实际上是不成立的,这个straw 长度是基于bucket中的其他的weights来进行的一个复杂的算法的,虽然iteam的PG的计算方法是很独立的,但是一个iteam的权重变化实际上影响了其他的iteam的比例因子,这意味着一个iteam的变化可能会影响其他的iteam 这个看起来是显而易见的,但是事实上证明,8年都没有人去仔细研究底层的代码或者算法,这个影响就是用户做了一个很小的权重变化,但是看到了一个很大的数据变动过程,sage 在做的时候写过一个很好的测试,来验证了第三个属性是真的,但是当时的测试只用了几个比较少的组合,如果大量测试是会发现这个问题的 sage注意到这个问题也是很多人抱怨在迁移的数据超过了预期的数据,但是这个很难量化和验证,所以被忽视了很久 无论如何,这是个坏消息 好消息是,sage找到了如何解决分布算法来的实现这三个属性,新的算法被称为 ‘straw2’,下面是不同的算法straw的算法 max_x = -1max_item = -1for each item: x = random value from 0..65535 x *= scaling factor if x > max_x: max_x = x max_item = itemreturn item 这个就有问题了scaling factor(比例因子) 是其他iteam的权重所有的,这个就意味着改变A的权重,可能会影响到B和C的权重了 新的straw2的算法是这样的 max_x = -1max_item …Read more

  • January 3, 2017
    rbd的image对象数与能写入文件数的关系

    一、前言 收到一个问题如下: 一个300TB 的RBD,只有7800万的objects,如果存储小文件的话,感觉不够用 对于这个问题,我原来的理解是:对象默认设置的大小是4M一个,存储下去的数据,如果小于4M,就会占用一个小于4M的对象,如果超过4M,那么存储的数据就会进行拆分成多个4M,这个地方其实是不严谨的 对于rados接口来说,数据是多大对象put进去就是多大的对象,并没有进行拆分,进行拆分的是再上一层的应用,比如rbd,比如cephfs 那么对于rbd的image显示的对象数目和文件数目有什么关系呢?本篇将来看看这个问题,到底会不会出现上面的问题 二、实践过程 创建一个image [root@lab8106 ~]# rbd create –image zpsize –size 100M[root@lab8106 ~]# rbd info zpsizerbd image ‘zpsize’: size 102400 kB in 25 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.85c66b8b4567 format: 2 features: layering flags: 可以看到,这个image从集群中分配到了25个对象,每个对象的大小为4M,假如我们写入1000个小文件看下会是什么情况 映射到本地并且格式化xfs文件系统 [root@lab8106 ~]# rbd map zpsize/dev/rbd0[root@lab8106 ~]# mkfs.xfs -f /dev/rbd0 meta-data=/dev/rbd0 isize=256 agcount=4, …Read more

  • January 3, 2017
    Storage just in time

    Storage is one of the pillar of IT infrastructure which used to be dominated by big and costly storage appliances. As software defined storage becomes commonplace, we now have the opportunity to apply just-in-time principles to the storage world. This is what I will go through in this article. History Since the early 2000s big …Read more

  • January 2, 2017
    Ceph, the future of storage, incoming features blog series

    Happy New year! Bonne Année ! Best wishes to my readers :). C’est le turfu and Ceph is moving fast, really fast and you won’t believe how many awesome features are currently in the pipe. So to start the year off the wheels, I’m planning on publishing a set of articles to tease you a …Read more

Careers