04 2019 档案

摘要:根据日志追踪启动过程: sheep启动: 使用zookeeper作为集群管理: 需要提供的接口: zk_init: ret = create_cluster(port, zone, nr_vnodes, explicit_addr); // 创建sheepdog集群 // 监控节点连接状态 ret 阅读全文
posted @ 2019-04-22 16:40 yunlion 阅读(470) 评论(0) 推荐(0) 编辑
摘要:添加xml文件: 官方xml文件: 实际测试发现,qemu需要添加path才支持部分功能:如 ioeventfd="on" event_idx="off"和<transient/> 部分patch地址:https://www.redhat.com/archives/libvir-list/2011- 阅读全文
posted @ 2019-04-17 18:46 yunlion 阅读(347) 评论(0) 推荐(0) 编辑
摘要:sheepdog 与QEMU: QEMU的sheepdog驱动层实现在协议层,QEMU软件的最底层;和QEMU的NBD有些相似,但比他更强大。我们可以在这里实现我们想要的任何格式,而且该协议支持实时迁移、快照、克隆等功能; Raw格式,不仅可以实现存储(性能更高),也可以实现快照、克隆、精简配置这些 阅读全文
posted @ 2019-04-16 10:29 yunlion 阅读(319) 评论(0) 推荐(0) 编辑
摘要:map_with_crush(): 构造crush map 1. 创建crush map struct crush_map *m = crush_create(); 2. 添加bucket 分为两步:先make,后add 2.1 make bucket 先看一下bucket的数据结构: 产生一个bu 阅读全文
posted @ 2019-04-15 18:23 yunlion 阅读(337) 评论(0) 推荐(0) 编辑
摘要:文件读写接口: 例如:rados_write(ioctx, "foo", buf, sizeof(buf), 0) do_rule函数: 函数原型: crush_choose_firstn 函数 这个函数递归的选择特定bucket或者设备,并且可以处理冲突,失败的情况. 如果当前是choose过程, 阅读全文
posted @ 2019-04-11 16:57 yunlion 阅读(396) 评论(0) 推荐(0) 编辑
摘要:1. ceph群集里pg存在的意义? 由于PG和OSD的数量都比较有限,记录每个OSD承载了哪些PG可行,而且变化不频繁,开销小。 在OSD X故障后,很容易获得OSD X承载的PG列表,并计算出各个PG的另外两个副本在哪个OSD。而每个PG下面的对象,都按照PG做了聚集(称为collection, 阅读全文
posted @ 2019-04-11 16:40 yunlion 阅读(507) 评论(0) 推荐(0) 编辑
摘要:nodes到vnodes的映射: sheep.h文件 阅读全文
posted @ 2019-04-04 10:55 yunlion 阅读(173) 评论(0) 推荐(0) 编辑
摘要:vnode的数据结构: oid和vnode的映射关系: 物理node的结构体: 阅读全文
posted @ 2019-04-04 10:25 yunlion 阅读(228) 评论(0) 推荐(0) 编辑
摘要:红黑树的操作: 在rbtree中查找一个节点: 创建vdisks:一个物理disk的记录就是一颗红黑子树,如果删除该disk,那么对应的是删除整棵子树 添加一个物理磁盘: 与之相反的是删除vdisk 删除物理disk操作: 更新nodes disks,这里仅在配置为disk_vnodes模式才会定义 阅读全文
posted @ 2019-04-03 15:47 yunlion 阅读(300) 评论(0) 推荐(0) 编辑
摘要:1. 基本介绍 sheepdog是近几年开源社区新兴的分布式块存储文件系统,采用完全对称的结构,没 有类似元数据服务的中心节点。这种架构带来了线性可扩展性,没有单点故障和容易管理的特性。对于磁盘和物理节点,SheepDog实现了动态管理容量以及 隐藏硬件错误的特性。对于数据管理,SheepDog利用 阅读全文
posted @ 2019-04-02 13:49 yunlion 阅读(2732) 评论(0) 推荐(0) 编辑