gpt4 book ai didi

centos - 如何在 CentOS scsi-target-utils 包中启用对 ceph 的支持?

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:07 24 4
gpt4 key购买 nike

我打算将 ceph 重新导出到 iSCSI,但我做不到。看起来像 CentOS 7 中的 epel 包 scsi-target-utils 在没有 rbd 支持的情况下编译。

当我运行时:

$ sudo tgtadm --lld iscsi --mode system --op show
System:
State: ready
debug: off
LLDs:
iscsi: ready
iser: error
Backing stores:
sheepdog
bsg
sg
null
ssc
smc (bsoflags sync:direct)
mmc (bsoflags sync:direct)
rdwr (bsoflags sync:direct)
aio
Device types:
disk
cd/dvd
osd
controller
changer
tape
passthrough
iSNS:
iSNS=Off
iSNSServerIP=
iSNSServerPort=3205
iSNSAccessControl=Off

我没有看到任何与 ceph 相关的字符串。作为noted on ceph site rbd 支持补丁已被接受到 tgt 存储库的主线中。

如何在 CentOS 7 中启用 scsi-target-utils 软件包的 rbd 支持?

最佳答案

据我调查,rbd 支持实际上在 scsi-target-utils 包中被禁用。如果你安装它的 SRPM 并查看这个包的 SPEC 文件,你可以看到它。

这里是这个文件的 7-8 行:

# Disable rbd on epel7 b/c deps are not present
%{!?rhel:%global with_rbd 1}

在 scsi-target-utils 中也有一个额外的依赖关系。您将需要安装 ceph-devel 包(可以从 ceph 存储库中获取)。

因此,要安装支持 rbd 的 scsi-target-utils,您需要执行以下操作:

  1. 添加官方 ceph 存储库
  2. 添加 epel 存储库
  3. 安装构建环境
  4. 下载并安装 scsi-target-utils SRPM
  5. 在 SRPM 的规范文件中设置全局标志 with_rbd
  6. 构建 SRPM
  7. 安装 scsi-target-utils 的依赖包
  8. 安装内置的 scsi-target-utils 和 scsi-target-utils-rbd 包

或者用 Bash 语言:

cd /tmp
sudo yum install -y epel-release
sudo rpm --import 'https://download.ceph.com/keys/release.asc'
sudo yum install -y http://download.ceph.com/rpm/rhel7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum install -y yum-utils rpm-build redhat-rpm-config make gcc
yumdownloader --source scsi-target-utils
rpm -i scsi-target-utils*.src.rpm
cd ~/rpmbuild
sed -ie 's/%{!?rhel:%global with_rbd 1}/%global with_rbd 1/' SPECS/scsi-target-utils.spec
sudo yum install -y libxslt docbook-style-xsl libaio-devel systemd-devel libibverbs-devel librdmacm-devel ceph-devel glusterfs-api-devel
rpmbuild -ba SPECS/scsi-target-utils.spec
sudo yum install -y ./RPMS/x86_64/scsi-target-utils-1.*.rpm ./RPMS/x86_64/scsi-target-utils-rbd-1.*.rpm

安装完成后启动 tgtd 守护进程并检查可用组件:

$ sudo systemctl enable tgtd.service
$ sudo systemctl start tgtd.service
$ sudo tgtadm --lld iscsi --mode system --op show
System:
State: ready
debug: off
LLDs:
iscsi: ready
iser: error
Backing stores:
rbd (bsoflags sync:direct)
sheepdog
bsg
sg
null
ssc
smc (bsoflags sync:direct)
mmc (bsoflags sync:direct)
rdwr (bsoflags sync:direct)
aio
Device types:
disk
cd/dvd
osd
controller
changer
tape
passthrough
iSNS:
iSNS=Off
iSNSServerIP=
iSNSServerPort=3205
iSNSAccessControl=Off

关于centos - 如何在 CentOS scsi-target-utils 包中启用对 ceph 的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com