如何在CentOS scsi目标utils包中启用对ceph的支持?

如何在CentOS scsi目标utils包中启用对ceph的支持?,centos,iscsi,ceph,Centos,Iscsi,Ceph,我要将ceph重新导出到iSCSI,但我不能这样做。看起来像CentOS 7中的epel包scsi目标UTIL,在没有rbd支持的情况下编译 当我跑步时: $ sudo tgtadm --lld iscsi --mode system --op show System: State: ready debug: off LLDs: iscsi: ready iser: error Backing stores: sheepdog bsg sg

我要将ceph重新导出到iSCSI,但我不能这样做。看起来像CentOS 7中的epel包scsi目标UTIL,在没有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相关的字符串。由于rbd支持补丁已被纳入tgt存储库的主线


如何在CentOS 7的scsi目标utils包中启用rbd支持?

据我调查,在scsi目标utils包中实际禁用了rbd支持。您可以看到它,如果您安装它的SRPM和看看规范文件的这个包

以下是该文件的7-8行:

# Disable rbd on epel7 b/c deps are not present
%{!?rhel:%global with_rbd 1}
在scsi目标UTIL中,此后台存储还有一个附加依赖项。您需要安装ceph-devel软件包(可以从ceph repos获取)

因此,要安装支持rbd的scsi目标UTIL,您需要执行以下操作:

  • 添加ceph官方存储库
  • 添加epel存储库
  • 安装生成环境
  • 下载并安装scsi目标utils SRPM
  • 在SRPM的规范文件中使用\u rbd设置全局标志
  • 构建SRPM
  • 为scsi目标UTIL安装相关软件包
  • 安装内置scsi目标utils和scsi目标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
    

    正如我所调查的,在scsi目标utils包中,rbd支持实际上已禁用。您可以看到它,如果您安装它的SRPM和看看规范文件的这个包

    以下是该文件的7-8行:

    # Disable rbd on epel7 b/c deps are not present
    %{!?rhel:%global with_rbd 1}
    
    在scsi目标UTIL中,此后台存储还有一个附加依赖项。您需要安装ceph-devel软件包(可以从ceph repos获取)

    因此,要安装支持rbd的scsi目标UTIL,您需要执行以下操作:

  • 添加ceph官方存储库
  • 添加epel存储库
  • 安装生成环境
  • 下载并安装scsi目标utils SRPM
  • 在SRPM的规范文件中使用\u rbd设置全局标志
  • 构建SRPM
  • 为scsi目标UTIL安装相关软件包
  • 安装内置scsi目标utils和scsi目标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