首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏皮振伟的专栏

    librbd连接overflow问题

    6,librbd 需要注意的是,尽管因为fd耗尽导致socket失败,但是librbd的api并不会返回error,所以,在qemu的block driver中没有办法处理这个case,也不能report

    2.5K20发布于 2019-03-07
  • 来自专栏summerking的专栏

    Python通过librbd操作ceph

    通过Librbd调用ceph,测试rbd创建删除操作 # -*- coding: utf-8 -*- """ @Time : 2022/2/28 10:07 @Author : summer @File : test_librbd.py @Software: PyCharm """ import rados, rbd def main(): try: cluster print "Start Test LibRbd.

    45510编辑于 2022-09-16
  • 来自专栏运维一切

    ceph写流程分析

    rbd到OSD映射关系 客户端使用RBD设备,使用librbd、librados库进行访问管理块设备。 第二种是 librbd 方式。就是创建了rbd设备后,这时可以使用librbd、librados库进行访问管理块设备。 这种方式不会map到内核,直接调用librbd提供的接口,可以实现对rbd设备的访问和管理,但是不会在客户端产生块设备文件。 应用写入rbd块设备的过程: 应用调用 librbd 接口或者对linux 内核虚拟块设备写入二进制块。下面以 librbd 为例。 librbd 对二进制块进行分块,默认块大小为 4M,每一块都有名字,成为一个对象 librbd 调用 librados 将对象写入 Ceph 集群 librados 向主 OSD 写入分好块的二进制数据块

    3K20发布于 2019-07-31
  • 来自专栏分布式存储

    ceph-immmutable-object-cache源码分析

    ceph-immmutable-object-cache守护进程启动进行初始化,并且时监听本地域套接字,并等待来自librbd客户端的连接。 客户端librbd通过域套接字来连接缓存守护进程, 并且向缓存守护进程进行注册。 客户端librbd读取时请求到缓存守护进程进行查找。 如果返回告诉客户端未缓存, 则客户端librbd直接从rados中获取信息。(下次librbd则直接从本地获取) ? 三、策略 MAP信息维护filename和Entry信息。

    83820发布于 2020-07-20
  • 来自专栏运维开发故事

    使用luks2对ceph rbd进行加密

    迄今为止,Ceph RBD 不提供任何此类解决方案,现有的替代方案是在 libRBD 之前添加一个加密层。此类解决方案的示例是使用 QEMU LUKS 加密或依赖 DM-Crypt。 通过将加密向下移动到 libRBD,就可以灵活地使用 Ceph RBD 克隆了。 关于luks加密 还是再介绍下luks吧,虽然上篇文章已经介绍过,但还是没有刨根问底。 加密标签支持可选的引擎标签,当前定义的引擎值是qemu和librbd。qemu和librbd都 需要使用 qemu 驱动程序。 librbd引擎要求qemu版本>=6.1.0, ceph集群和librbd1>=16.1.0,仅适用于RBD network disk。如果未指定引擎标签,则默认使用qemu引擎。 luks2格式目前只有librbd引擎支持,只能应用于RBD network disk(RBD镜像)。

    1.4K10编辑于 2022-09-15
  • 来自专栏运维一切

    让k8s使用nbd挂载ceph的块存储 原

    rbd内核挂载 nbd挂载的方式 优缺点:rbd内核更新速度跟不上nbd和librbd的更新速度,imageFormat=2的很多特性rbd内核都不支持,另外从稳定性上来说,nbd模块+librbd的方式比较老牌了 useNbdDriver*/) } } 其实我觉得rbd的方式依赖反而比nbd更多,rbd.ko需要同时依赖ceph.ko libceph.ko,nbd的方式nbd.ko是大多数内核默认支持的,librbd

    2.4K50发布于 2019-04-19
  • 来自专栏sktj

    ceph设计原理与实现(RBD块存储)

    1、通过两种方式访问RBD:librbd 、krbd Librbd基于librados的用户态接口库。krbd集成在LINUX中。

    99010编辑于 2022-05-18
  • 来自专栏Python 自动化

    一个小破网站,居然比 Python 官网还牛逼

    获取未安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> rpmhdr = ts.hdrFromFdno("/root/librbd1 -devel-10.2.10-0.el7.centos.x86_64.rpm") >>> rpmhdr["NAME"] 'librbd1-devel' >>> rpmhdr["VERSION"] '10.2.10 x86_64' 获取已安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> query = ts.dbMatch("name", "librbd1 ") >>> query.count() 1 >>> pkg_info = next(query) >>> pkg_info["NAME"] 'librbd1' >>> pkg_info["VERSION

    51820发布于 2021-08-27
  • 来自专栏用户6291251的专栏

    一个小破网站,居然比 Python 官网还牛逼

    获取未安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> rpmhdr = ts.hdrFromFdno("/root/librbd1 -devel-10.2.10-0.el7.centos.x86_64.rpm") >>> rpmhdr["NAME"] 'librbd1-devel' >>> rpmhdr["VERSION"] '10.2.10 x86_64' 获取已安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> query = ts.dbMatch("name", "librbd1 ") >>> query.count() 1 >>> pkg_info = next(query) >>> pkg_info["NAME"] 'librbd1' >>> pkg_info["VERSION

    48330发布于 2021-08-20
  • 来自专栏磨磨谈

    rbd的image快照与Pool快照

    前言 这个问题是不久前在ceph社区群里看到的,创建image的时候,当时的报错如下: 2016-12-13 23:13:10.266865 7efbfb7fe700 -1 librbd::image: 这里的用户往往是应用如librbd。 lab8106 ~]# rbd -p testpool2 create testimag3 --size 4000 2016-12-13 23:31:58.105932 7fd9cb7fe700 -1 librbd

    3.7K20发布于 2018-08-06
  • 来自专栏JAVAandPython君

    一个小破网站,居然比 Python 官网还牛逼

    获取未安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> rpmhdr = ts.hdrFromFdno("/root/librbd1 -devel-10.2.10-0.el7.centos.x86_64.rpm") >>> rpmhdr["NAME"] 'librbd1-devel' >>> rpmhdr["VERSION"] '10.2.10 x86_64' 获取已安装的 rpm 包信息 >>> import rpm >>> ts = rpm.TransactionSet() >>> query = ts.dbMatch("name", "librbd1 ") >>> query.count() 1 >>> pkg_info = next(query) >>> pkg_info["NAME"] 'librbd1' >>> pkg_info["VERSION

    53120发布于 2021-08-27
  • 来自专栏分布式存储

    客户端-RBD监控埋点

    RBD ObjectCacher-librbd-{id}-{pool}-{image} Metrics Table 监控类型 监控项 说明 级别 objectcacher-librbd-{id}-{pool RBD librbd-{id}-{pool}-{image} Metrics Table 监控类型 监控项 说明 级别 librbd-{id}-{pool}-{image} rd 读操作数 * rd_bytes

    1.6K20发布于 2020-07-20
  • 来自专栏虚拟化笔记

    用SPDK实现存储加速

    理论上SPDK也可以用librbd直接对接ceph,但DPU卡SPDK没有编译进librbd的功能,SPDK是集成进SNAP的,要编译SPDK得重新编译SNAP,没有SNAP代码。 ceph 由存储组开发这部分功能,后端spdk用librbd bdev是否影响性能和时延?如果不用ceph,只用spdk怎么实现备份? 开发和部署 网络部分完全利用裸金属DPU方案。

    2.9K31发布于 2021-08-26
  • 来自专栏院长运维开发

    给一个 pool 创建一个快照

    这里的用户往往是应用如librbd。 创建了image的存储池无法再创建存储池快照了,因为存储池当前已经为unmanaged snaps mode了,而没有创建image的,就可以做存储池快照。 root@ceph-1 ~]# rbd create volume3 --size=100G -p test-2 2018-09-26 11:38:53.539748 7f12e5ffb700 -1 librbd

    1.5K20发布于 2020-06-13
  • 来自专栏sktj

    Ceph分布式存储实战

    1、ceph版本的历史 image.png 2、块设备:LIBRBD 对象存储:LIBRGW CEPHFS:libcephfs osd:数据存储、复制等 monitor:Monitor map 19、MDS需要两个POOL,一个保存数据,一个保存元数据 image.png 创建FS image.png 挂载FS 20、访问RBD的方式 image.png 21、访问RBD的方式:librbd

    1.7K30编辑于 2022-05-18
  • 来自专栏虚拟化笔记

    用SPDK实现存储加速

    理论上SPDK也可以用librbd直接对接ceph,但DPU卡SPDK没有编译进librbd的功能,SPDK是集成进SNAP的,要编译SPDK得重新编译SNAP,没有SNAP代码。 ceph 由存储组开发这部分功能,后端spdk用librbd bdev是否影响性能和时延?如果不用ceph,只用spdk怎么实现备份? 开发和部署 网络部分完全利用裸金属DPU方案。

    3.1K30编辑于 2022-04-28
  • 来自专栏腾讯技术工程官方号的专栏

    2017 Openstack Days China:虚拟机的IO模型分析

    虚拟机的资源一般都是存储在 Ceph 里面的,借助Ceph的块存储功能,通过调用 librbd 库向 Ceph 读写数据。 1、虚拟机 = 黑盒子 ? 通过调用 Ceph 提供的库 librbd 来向 Ceph 集群发送 IO。 在阅读完 librbd 的源码后,我发现每一个读写 IO 都会调用名为 aio_write 和 aio_read 的函数,而这些函数在运行时,会输出一行很有特征的日志文件。 这里需要注意的一点是,本次关于 IO 的讨论,仅仅是从 librbd 层去分析,而这些 IO 经过 rbd_cache 之后以及经过 OSD 的 journal 而产生的合并效应,不在我们的讨论范围内。 6、如何获取 librbd 的日志呢?

    1.7K20发布于 2017-08-10
  • 来自专栏腾讯云TStack专栏

    Ceph快照爱你不容易系列 03:快照数据一致性浅析

    其实qemu在使用librbd读写数据的时候都是使用的异步接口进行读写,所以这里的aio就是在librbd中飞行的io,简而言之就是要把飞行的io运行完落盘而不是挂住,那这和我们上面希望的是差不多,让我们在仔细分析一下这个两个动作是怎么做到的 1 suspend_requests阻塞请求 阻塞请求,因为librbd里面有请求队列,那简单的做法就是在出队列的时候卡主,不让io出队列运行,其实这里的io主要是对写io,读io的写法不会修改数据所以不会出现数据的不一致 在最近的提交中我看到了这个commit librbd: API for quiesce callbacks 增加了静默的回调,什么意思?

    2.5K20发布于 2020-07-20
  • 来自专栏磨磨谈

    rbd的ceph-backup增量备份本地恢复方法

    loop0 mount /dev/mapper/loop0p1 /mnt1/ mount /dev/mapper/loop0p2 /mnt2/ 内核块设备使用的时候可以直接进行文件的本地访问,如果是librbd 这里面用到比较关键的一个技术点就是ceph_apply_diff,上面的操作进行了多次增量的备份,数据是按照快照点进行恢复,需要按时间先后顺序把差异合并到第一个full镜像,需要注意的是,做快照如果是librbd

    1.5K21发布于 2018-08-06
  • 来自专栏zhangdd.com

    ceph优化记录 ceph.conf优化详解

    flush = false #默认值true #该选项是为了兼容linux-2.6.32之前的virtio驱动,避免因为不发送flush请求,数据不回写 #设置该参数后,librbd rbd cache max dirty object = 2 #默认值0 #最大的Object对象数,默认为0,表示通过rbd cache size计算得到,librbd默认以 4MB为单位对磁盘Image进行逻辑切分 #每个chunk对象抽象为一个Object;librbd中以Object为单位来管理缓存,增大该值可以提升性能 rbd cache target dirty

    3K30发布于 2018-08-01
领券