You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

aarch64架构构建带librbd的fio Docker镜像运行无法加载librbd求助

问题根因
  • Alpine官方源预置的fio二进制包编译时未开启RBD引擎支持,未生成对应的rbd ioengine动态加载模块,仅单独安装librbd运行库无法让fio识别rbd引擎
  • 部分版本Alpine的fio默认插件扫描路径与edge源librbd的安装路径不匹配,即使手动添加模块也会出现找不到库的问题
修复方案

方案:基于Alpine源码编译开启RBD支持的fio(适配aarch64架构)

使用以下Dockerfile重新构建镜像,编译时主动开启rbd引擎编译选项,生成的镜像原生支持ioengine=rbd参数:

# syntax=docker/dockerfile:1
FROM alpine:3.18

RUN set -ex \
    # 安装编译依赖包
    && apk add --update-cache --virtual .build-deps \
        build-base \
        linux-headers \
        librbd-dev \
        librados-dev \
        wget \
    # 安装运行时依赖库
    && apk add --update-cache \
        librbd \
        librados \
        libaio \
        numactl \
    # 下载fio源码编译
    && wget https://github.com/axboe/fio/archive/refs/tags/fio-3.35.tar.gz -O /tmp/fio.tar.gz \
    && tar -zxf /tmp/fio.tar.gz -C /tmp \
    && cd /tmp/fio-fio-3.35 \
    && ./configure --enable-rbd \
    && make -j "$(nproc)" \
    && make install \
    # 清理冗余文件减小镜像体积
    && rm -rf /tmp/* \
    && apk del .build-deps \
    && rm -rf /var/cache/apk/*

功能验证方法

  1. 镜像构建完成后执行以下命令验证rbd引擎是否正常识别:
docker run --rm manjo8/fio fio --enghelp | grep rbd

输出包含rbd即说明引擎加载正常
2. 实际运行fio压测任务时,需将Ceph集群的ceph.conf配置文件和对应密钥环文件挂载到容器的/etc/ceph目录下,即可正常使用rbd引擎读写块设备

内容的提问来源于stack exchange,提问作者user3304297

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:54:05