Spdk集成rocksdb问题集合

主要是rocksdb报错问题
在 db_bench 基准测试工具与 BlobFS 集成执行以下语句:

vagrant@vagrant:~/rocksdb$

make db_bench SPDK_DIR=relative_path/to/spdk

或者为发布版本添加 DEBUG_LEVEL=0(需要打开 USE_RTTI)。

export USE_RTTI=1 && make db_bench DEBUG_LEVEL=0 SPDK_DIR=relative_path/to/spdk

SPDK_DIR是你spdk下载包的路径

1、make: *** No rule to make target ‘home/vagrant/spdk/lib/rocksdb/env_spdk.o’, needed by ‘librocksdb.a’. Stop.

首先去清理rocksdb make生成的文件
vagrant@vagrant:~/rocksdb$

make clean

再去清理spdk make生成的文件
vagrant@vagrant:~/spdk$

make clean

rocksdb 还有残留在spdk中,用下面的语句去查询残留文件在哪

git status --ignored | grep env_spdk

比如我自己查到的内容如下

vagrant@vagrant:~/spdk$ git status --ignored | grep env_spdk
	lib/rocksdb/env_spdk.cc.d
	lib/rocksdb/env_spdk.o

再去依次执行spdk的make 和 rocksbd的make clean 就ok!

2、到了db_bench的时候出现如下错误

  CCLD     db_bench
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::initialize_spdk(void*)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:714: undefined reference to `spdk_app_start'
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:726: undefined reference to `spdk_app_fini'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::__send_request(void (*)(void*), void*)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:113: undefined reference to `spdk_event_allocate'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::rocksdb_run(void*)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:679: undefined reference to `spdk_app_stop'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::SpdkEnv::SpdkEnv(rocksdb::Env*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:739: undefined reference to `spdk_app_opts_init'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::SpdkEnv::~SpdkEnv()':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:780: undefined reference to `spdk_app_start_shutdown'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::fs_unload_cb(void*, int)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:695: undefined reference to `spdk_app_stop'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::__send_request(void (*)(void*), void*)':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:114: undefined reference to `spdk_event_call'
/home/vagrant/spdk/lib/rocksdb/env_spdk.o: In function `rocksdb::rocksdb_shutdown()':
/home/vagrant/spdk/lib/rocksdb/env_spdk.cc:695: undefined reference to `spdk_app_stop'
collect2: error: ld returned 1 exit status
Makefile:1238: recipe for target 'db_bench' failed
make: *** [db_bench] Error 1

这个是版本问题,我用如下版本是没有问题的
我现在版本组合是spdk (v21.04.x) + dpdk ( spdk-21.02)+isa(spdk-v2.30.0)+rocksdb( spdk-v6.10.2)
spdk (v21.04.x)

git clone -b v21.04.x https://github.com/spdk/spdk.git

dpdk ( spdk-21.02)

git clone -b spdk-21.02 https://github.com/spdk/dpdk.git

isa(spdk-v2.30.0)

git clone -b spdk-v2.30.0 https://github.com/spdk/isa-l.git

rocksdb( spdk-v6.10.2)

git clone -b spdk-v6.10.2 https://github.com/spdk/rocksdb.git
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值