目录
一、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