CentOS 安装 SCSI/tgt

目录

一、SCSI/tgt 介绍

Linux SCSI target framework (tgt) aims to simplify various SCSI target driver (iSCSI, Fibre Channel, SRP, etc) creation and maintenance. Our key goals are the clean integration into the scsi-mid layer and implementing a great portion of tgt in user space.

http://stgt.sourceforge.net/
https://fedoraproject.org/wiki/Scsi-target-utils_Quickstart_Guide

二、安装步骤

1. 关闭防火墙

// 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2. 关闭selinux

setenforce 0

如果要使 selinux 配置永久生效:

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3. 安装 tgt

(1)安装 scsi-target-utils

安装 scsi-target-utils

# yum --enablerepo=epel -y install scsi-target-utils libxslt

查看版本

# tgtadm --version
1.0.55

(2)启动 tgtd 服务

//设置开机启动
systemctl enable tgtd

//启动
systemctl start tgtd

(3)查看是否支持 rbd

# tgtadm --lld iscsi --mode system --op show | grep rbd
    rbd (bsoflags sync:direct)

如果有类似于上面的输出结果,说明你的tgt加载了rbd模块。该模块实际上是一个名为bs_rbd.so的动态链接库。如果命令没有输出,则说明你的tgt还不支持rbd,你需要安装最新的tgt,或者直接下载编译最新的源码。

(4)通过源码编译安装

步骤1:clone 源码

yum -y install git

git clone https://github.com/fujita/tgt.git

步骤2:设置CEPH_RBD变量,使得tgt能够编译bs_rbd模块

export CEPH_RBD=1

步骤3:在tgt源码的根目录执行make

//先安装gcc
yum -y install gcc
//安装一些依赖
yum -y install librados2-devel librbd1-devel

//进入源码根目录执行 make
cd tgt
make

该过程可能会出现如下信息

test -z "/usr/bin/xsltproc" || /usr/bin/xsltproc -o ...
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl tgtd.8.xml
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl tgtadm.8.xml
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl tgtimg.8.xml
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl tgt-admin.8.xml
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl targets.conf.5.xml
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl tgt-setup-lun.8.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl tgtd.8.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl tgtadm.8.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl tgtimg.8.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl tgt-admin.8.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl targets.conf.5.xml
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl tgt-setup-lun.8.xml

问题1:执行 yum -y install librados2-devel

bs_rbd.c:45:28: 致命错误:rados/librados.h:没有那个文件或目录
 #include "rados/librados.h"

问题2:执行 yum -y install librbd1-devel

bs_rbd.c:46:24: 致命错误:rbd/librbd.h:没有那个文件或目录
 #include "rbd/librbd.h"

问题3:执行 yum -y install libxslt

/bin/sh: /usr/bin/xsltproc: 没有那个文件或目录

(4)执行 make install

make install

(5)再次检查 tgt 是否支持 rbd

systemctl restart tgtd
tgtadm --lld iscsi --mode system --op show | grep rbd

三、使用 img 作为 target

1. 创建 img

# mkdir /var/lib/iscsi_disks 
# dd if=/dev/zero of=/var/lib/iscsi_disks/disk01.img count=0 bs=1 seek=6G
# ll -h /var/lib/iscsi_disks
总用量 0
-rw-r--r--. 1 root root 6.0G 11月  5 18:00 disk01.img

2. 通过配置文件来创建 target

vi /etc/tgt/targets.conf

<target iqn.2018-11.com.example:imgtgt.targrt0>
    backing-store /var/lib/iscsi_disks/disk01.img
    initiator-address 192.168.0.0/24
</target>

编辑完成后,重启 tgt

systemctl restart tgtd

3. 查看激活的 target

# tgtadm --lld iscsi --mode target --op show
Target 1: iqn.2018-11.com.example:imgtgt.targrt0
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 6442 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /var/lib/iscsi_disks/disk01.img
            Backing store flags: 
    Account information:
    ACL information:
        192.168.0.0/24

四、使用 rbd 作为 target

1. 创建 rbd 池和 image

# ceph osd pool create tgtpool 128
# rbd create --size 10240 tgtpool/image01
# rbd info tgtpool/image01
rbd image 'image01':
    size 10240 MB in 2560 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.ac726b8b4567
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags: 

2. 通过命令来创建 target

(1)创建一个 target

tgtadm --lld iscsi --mode target --op new --tid 2 --targetname iqn.2018-11.com.example:cephtgt.target0

如果要删除一个 target

tgtadm --lld iscsi --mode target --op delete --tid 2

(2)创建一个 lun

创建一个logical unit(LUN)

tgtadm --lld iscsi --mode logicalunit --op new --tid 2 --lun 1 --backing-store tgtpool/image01 --bstype rbd

如果要删除一个 lun

tgtadm --lld iscsi --mode logicalunit --op delete --tid 2 --lun 1

(3)设置 IP 访问限制

tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
or
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 192.168.0.120
or
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 10.168.0.0/24

3. 通过配置文件来创建 target

vi /etc/tgt/targets.conf

<target iqn.2018-11.com.example:cephtgt.target0>
    bs-type rbd
    backing-store tgtpool/image01
    initiator-address 192.168.0.0/24
</target>

编辑完成后,重启 tgt

systemctl restart tgtd

4. 查看激活的 target

# tgtadm --lld iscsi --mode target --op show
Target 2: iqn.2018-11.com.example:cephtgt.target0
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rbd
            Backing store path: tgtpool/image01
            Backing store flags: 
    Account information:
    ACL information:
        ALL

五、连接验证

1. 使用 ISCSI 客户端连接

2. 进入磁盘管理查看

参考链接:
https://blog.csdn.net/scaleqiao/article/details/46706795?locationNum=5&fps=1&&tdsourcetag=s_pctim_aiomsg
https://blog.csdn.net/motred_/article/details/52268561?tdsourcetag=s_pctim_aiomsg
https://blog.csdn.net/u010317005/article/details/80322855?tdsourcetag=s_pctim_aiomsg
https://www.server-world.info/en/note?os=CentOS_7&p=iscsi&f=4&tdsourcetag=s_pctim_aiomsg

猜你喜欢

转载自www.cnblogs.com/zengzhihua/p/9910704.html