SCSI官网:http://stgt.sourceforge.net/
tgtadm文档:https://linux.die.net/man/8/tgtadm
drbdadm、drbdsetup,drbdmeta
协议:
A:异步
B:半同步
C:同步
模型:
primary/secondary
primary:可挂载,可读写
seconday:不可挂载
primary/promary:
必要条件:HA环境
Clusterfilesystem
pacemaker+drbd:
rimary/secondary
将drbd定义成master/slave类型的资源
能自动完成primary/secondary角色切换
还能通过在pacemaker中定义filesystem,从而完成drbd设备的自动挂载
primary/primary
借助于dlm完成分布式锁资源
将drbd定义clone类型资源,从而使得多个节点能够使用 此资源
cluster FS
SSI & ISCSI
存储类型
DAS:irectattached storage
并行口,IDE(ATA),SCSI
串行口:SATA,SAAS,USB,eSATA
NAS:文件服务协议实现文件服务器,NFS,CIFS
RESTful
SAN:storage areanetwork
SCSI:smallcomputer system interface
并行I/O接口规范,I/O通道,传输协议
协议分层:
应用层
传输层
物理层
注意:物理层可替换为其他的传输介质,而非必须使用SCSI线缆
FC,Ethernet,IB
fc-->fc
fc-->fcoe-->cee
fc-->fcip-->tcp-->ip-->Etnernet
ISCSI-->tcp-->ip-->Etnernet
SRP/iSER-->IB
iSCSI:
监听端口:3260/tcp
SAN的类型:FC SAN
iSCSI:iP SAN
SCSI设备:
initiator:HBA
target:target id,tid
lun:local unit,iun
iSCSIstorage:
target端口:linux主机
iSCSItarget
iSCSILUN
initiator:
案例:实践iSCSI
target:
认证:
基于IP认证
CHAP:挑战握手认证协议
程序包:scsi-target-utils
管理工具:
tgtadm:全功能命令行配置工具,其配置结果在OS重启之后会失效
tgt-admin:通过读取配置文件/etc/tgt/targets.conf进行配置的工具
启动服务后,模拟的是SCSI总线,
管理多个target
每个target上,可管理多个lun(32)
initiator:
管理包:iscsi-initiator-utils
iscsi
iscsid
target和initiator都需要使用iqn进行标示
iqn:iscsiqualified name
格式:
iqn.YEAR-MONTH.tld.domain:string[.substring]
例如:iqn.2015-06.com.test.com:i1.c2
配置iscsi server:
1. 准备磁盘设备
2. 安装程序包,启动服务
3. 创建target
4. 创建lun
5. 授权
target服务器上的安装:
yum install scsi-target-utils –y
service tgtd start
netstat –tnlp
tgtadm命令:
模式化的工具
target:管理target
logicalunit:管理lun
account:管理用户账号
管理操作:
new:新建
show:查看
update:修改
bind:绑定,即实现授权,通过将IP或账号与target绑定进行
unbind:解除授权
tgtadm --lld iscsi --mod target --op show
添加target:
tgtadm --lld iscsi --mod target --op new --tid 1 --targetname iqn.2018-04.com.ma:t1
tgtadm --lld iscsi --mod target --op show
现实的target如下:
Target 1: iqn.2018-04.com.ma:t1
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:
Account information:
ACL information:
添加lun:
tgtadm --lld iscsi --mod logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb
tgtadm --lld iscsi --mod logicalunit --op new --tid 1 --lun 2 --backing-store /dev/sdc
其中/dev/sdb,/dev/sdc是新建的磁盘
tgtadm --lld iscsi --mod target --op show
添加监听网段
tgtadm --lld iscsi --mod target --op bind --tid 1 --initiator-address 192.168.137.0/24
# tgtadm --lld iscsi --mod target --op show
显示的信息如下:
Target 1: iqn.2018-04.com.ma:t1
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: 5369 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: /dev/sdb
Backing store flags:
LUN: 2
Type: disk
SCSI ID: IET 00010002
SCSI SN: beaf12
Size: 5369 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: /dev/sdc
Backing store flags:
Account information:
ACL information:
192.168.137.0/24
tgtadm命令常用选项:
--lld,-L <driver>:指明驱动,此处均为iscsi
--mod,-m <mode>
--op,-o <operation>
--tid,-t <TID>
--lun,-l <lun>
--backing-store,-b <path>
--initiator-address,-I <IP or NET>
--targetname,-T <iqn.NAME>
配置iSCSI initiator:
1. 安装程序包,配置initiator的名字,并启动服务
yum install iscsi-initiator-utils
有两个服务iscsi,iscsid,两个都需要启动
配置initiator的iqn格式的名字,/etc/iscsi/initiatorname.iscsi
echo "InitiatorName=$(iscsi-iname -p iqn.2018-04.com.ma)" > /etc/iscsi/initiatorname.iscsi
其中iscsi-iname -p iqn.2018-04.com.ma产生名称
service iscsi start
service iscsid start
重启服务
for i in iscsi iscsid ; do service $i restart;done
2. 使用iscsiadm实现target的发现、注册等
(1) 发现模式:discovery
iscsiadm –m doscovery –d # -t type -p IP:PORT
type:
sendtargets,简写st
iscsiadm -m discovery -d 3 -t st -p 192.168.137.132:3260
192.168.137.132:3260,1 iqn.2018-04.com.ma:t1
(2) 节点模式:node
iscsiadm -m node -d 1 -T iqn.2018-04.com.ma:t1 -p 192.168.137.132:3260 –l
其中iqn.2018-04.com.ma:t1是target节点上的名称
fdisk –l
issue主机上出现了target的两个硬盘的信息
iscsiadm -m node -d 1 -T iqn.2018-04.com.ma:t1 -p 192.168.137.132:3260 --logout:登出磁盘
Logging out of session [sid: 1, target: iqn.2018-04.com.ma:t1, portal: 192.168.137.132,3260]
Logout of [sid: 1, target: iqn.2018-04.com.ma:t1, portal: 192.168.137.132,3260] successful.
查看映射结果:iscsiadm -m node
登出后再查看磁盘信息,target的磁盘不显示
重新发现并登陆
分区:
fdisk -l
fdisk /dev/sdc
mke2fs -t ext4 /dev/sdc1
mount /dev/sdc1 /mnt
在target主机上使用fdisk –l也可以看见在issue分区的结果
但是在issue上本来存在sdb,所以在issue上显示target的分区为/dev/sdc,/dev/sdd,而在target上显示sdb,需要对应起来
在第二个issue主机上也发现并注册target,挂载至/mnt目录,两个issue主机共享/mnt目录,会存在问题,比如两台主机对同一文件进行写操作
192.168.137.135的issue主机上:
Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x20ba0ccc
Device Boot Start End Blocks Id System
/dev/sdd1 4194304 10485759 3145728 83 Linux
Disk /dev/sde: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
191.268.137.130的issue主机上:
Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x20ba0ccc
Device Boot Start End Blocks Id System
/dev/sdc1 4194304 10485759 3145728 83 Linux
Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看出,磁盘标号在两台issue主机上不一致,需要对应关系,并挂载正确的磁盘分区至相应目录
192.168.137.130主机:
192.168.137.135主机:
尽量不要两台issue主机挂载同一分区
如果需要自动挂载则开机启动iscsi,iscsid服务,并在/etc/fstab文件中写入挂载
删除:
两台issue主机登出
删除逻辑单元,删除target
tgtadm -L iscsi -m target -o show
tgtadm -L iscsi -m logicalunit -o delete -t 1 -l 1
tgtadm -L iscsi -m logicalunit -o delete -t 1 -l 2
tgtadm -L iscsi -m target -o delete -t 1
tgtadm -L iscsi -m target -o show
配置atrget的第二种方式/etc/tgt/targets.conf
target端配置文件内容加入:
<target iqn.2018-04.com.ma:s2.t1>
backing-store /dev/sdb
backing-store /dev/sdc
initiator-address 192.168.137.0/24
</target>
重启tgtd服务:service tgtd restart
tgtadm -L iscsi -m target -o show
已经显示了lun1,lun2等信息
issue端与还是使用命令行的方式
开源存储工具:
openfiler,freeNAS,nexenta