正如我调查的那样,在 scsi-target-utils 包中实际上禁用了 rbd 支持。如果您安装它的 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,您需要执行以下操作:
- 添加官方ceph仓库
- 添加 epel 存储库
- 安装构建环境
- 下载并安装 scsi-target-utils SRPM
- 在 SRPM 的规范文件中设置全局标志 with_rbd
- 构建 SRPM
- 为 scsi-target-utils 安装依赖包
- 安装构建的 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