1、drbd工作模型:
primary/secondary
primary:可挂载、可读写
secondary:不可挂载
primary/primary
必要条件:HA环境,使用Cluster FS(集群文件系统)
2、pacemaker+drbd:
primary/secondary:将drbd定义成master/slave类型的资源:能自动完成primary/secondary角色切换,还能够通过在pacemaker中定义Filsystem,从而完成drbd自动挂载;
primary/primary:
借助于dlm完成分布式锁管理,将dlm定义clone类型资源,从而使得多个节点都能够使用此资源
3、scsi & iscsi
存储类型:
DAS:Direct Attached Storage 直接附加存储,块设备
pci bridge 北桥|主桥 CPU MEMORY
isa bridge 南桥 慢速总线
并行:可以ide,scsi 一条线可以连多个设备,需要控制报文
串行:sas,sata,usb,esata
NAS:Network Attached Storage 网络附加存储;文件服务协议实现实现文件服务器;NFS,CIFS
SAN:Storage Area Network 存储区域网络;块设备
SCSI: Small Computer System Interface 小型计算机系统接口
并行I/O接口规范:I/O通道,传输协议
协议分层:
应用层
传输层
物理层
注意:物理层可替换为其它的传输介质,而非必须使用SCSI线缆:FC, Ethernet,IB
iSCSI:iSCSI:Internet Small Computer System Interface 因特网小型计算机系统接口
Internet 小型计算机系统接口(iSCSI)是一种基于 TCP/IP的协议,用来建立和管理IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。
SAN使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。
SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI 的主要功能:在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI提供了在IP网络封装SCSI命令,且运行在 TCP 上。
如今我们所涉及的 SAN (Storage Area Network),其实现数据通信的主要要求是:
1. 数据存储系统的合并;2. 数据备份;3. 服务器群集;4.复制;5. 紧急情况下的数据恢复。
另外,SAN 可能分布在不同地理位置的多个 LANs 和 WANs 中。必须确保所有 SAN 操作安全进行并符合服务质量(QoS)要求,而 iSCSI 则被设计来在 TCP/IP网络上实现以上这些要求。
iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项标准,用于将SCSI数据块映射成以太网数据包。SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。
从根本上说,iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI数据块的方法,ISCSI使用以太网协议传送SCSI命令、响应和数据。ISCSI可以用我们已经熟悉和每天都在使用的以太网来构建IP存储局域网。通过这种方法,ISCSI克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
bcm5722
ISCSI网卡
iSCSI的最大好处是能提供快速的网络环境,虽然目前其性能和带宽跟光纤网络还有一些差距,但能节省企业约30-40%的成本。iSCSI技术优点和成本优势的主要体现包括以下几个方面:
硬件成本低:构建iSCSI存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,iSCSI还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。
操作简单,维护方便:对iSCSI存储网络的管理,实际上就是对以太网设备的管理,只需花费少量的资金去培训iSCSI存储网络管理员。当iSCSI存储网络出现故障时,问题定位及解决也会因为以太网的普及而变得容易。
扩充性强:对于已经构建的iSCSI存储网络来说,增加iSCSI存储设备和服务器都将变得简单且无需改变网络的体系结构。
带宽和性能:iSCSI存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普及和万兆以太网的应用,iSCSI存储网络会达到甚至超过FC(FiberChannel,光纤通道)存储网络的带宽和性能。突破距离限制:iSCSI存储网络使用的是以太网,因而在服务器和存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。
SAN: 利用现有的成熟网络技术承载存储协议SCSI的相关报文
fc --> fc
fc --> fcoe --> cee
fc --> fcip --> tcp --> ip --> Ethernet
iSCSI --> tcp --> ip --> Ethernet
SRP/iSER --> IB
iSCSI:
监听端口: 3260/tcp
SAN的类型:FC SAN,
iSCSI: IP SAN
SCSI设备:
initiator:HBA 客户端,主机适配器
target: target id, tid通信目标
lun: logical unit, lun 逻辑单元号码
iSCSI Storage:
target端:Linux主机:
iSCSI Target
iSCSI LUN
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:iscsi qualified name
格式:iqn.YEAR-MONTH.tld.domain:string[.substring]
例如:iqn.2015-10.com.magedu:i1.c2
年 月 反向域名 机柜号 哪台机器
1、配置iscsi target
1)准备磁盘设备
2)安装程序包、启动服务
3)创建target
4)创建lun
5)授权
tgtadm命令:
模式化的工具:
target:管理target
logicalunit:管理lun
account:管理用户帐号
管理操作:
show:查看
new:新建
delete:s删除
update:修改
bind:绑定,即实现授权,通过将ip或帐号与target绑定进行
unbind:解除授权
常用选项:
--lld,-L <driver> 指明驱动,此处均为iscsi
--mode,-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>
实验环境:
OS:CentOS6.5-x86_64
node1:192.168.100.10 target
BAIYU_179:192.168.100.179
BAIYU_180:192.168.100.180
1)准备磁盘
在虚拟机上添加2块硬盘
[root@node1 ~]# fdisk -l|grep '/dev/sd' Disk /dev/sda: 53.7 GB, 53687091200 bytes /dev/sda1 * 1 131 1048576 83 Linux /dev/sda2 131 6528 51379200 8e Linux LVM Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk /dev/sdc: 21.5 GB, 21474836480 bytes
2)安装软件包并启动服务
[root@node1 ~]# yum list|grep scsi scsi-target-utils.i686 1.0.24-2.el6 @c6-media iscsi-initiator-utils.i686 6.2.0.873-2.el6 c6-media iscsi-initiator-utils-devel.i686 6.2.0.873-2.el6 c6-media lsscsi.i686 0.23-2.el6 c6-media [root@node1 ~]# yum install scsi-target-utils -y [root@node1 ~]# rpm -ql scsi-target-utils /etc/rc.d/init.d/tgtd /etc/sysconfig/tgtd /etc/tgt/targets.conf /usr/sbin/tgt-admin /usr/sbin/tgt-setup-lun /usr/sbin/tgtadm /usr/sbin/tgtd /usr/sbin/tgtimg /usr/share/doc/scsi-target-utils-1.0.24 /usr/share/doc/scsi-target-utils-1.0.24/README /usr/share/doc/scsi-target-utils-1.0.24/README.iscsi /usr/share/doc/scsi-target-utils-1.0.24/README.iser /usr/share/doc/scsi-target-utils-1.0.24/README.lu_configuration /usr/share/doc/scsi-target-utils-1.0.24/README.mmc /usr/share/man/man5/targets.conf.5.gz /usr/share/man/man8/tgt-admin.8.gz /usr/share/man/man8/tgt-setup-lun.8.gz /usr/share/man/man8/tgtadm.8.gz [root@node1 ~]# service tgtd start Starting SCSI target daemon: [ OK ]
3)创建target
[root@node1 ~]# tgtadm --lld iscsi --mode target --op show [root@node1 ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2015-10.com.magedu:s1.t1 [root@node1 ~]# tgtadm --lld iscsi --mode target --op show Target 1: iqn.2015-10.com.magedu:s1.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 Backing store type: null Backing store path: None Backing store flags: Account information: ACL information:
4)创建lun
[root@node1 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb [root@node1 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store /dev/sdc [root@node1 ~]# tgtadm --lld iscsi --mode target --op show Target 1: iqn.2015-10.com.magedu:s1.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 Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 21475 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: 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: 21475 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: /dev/sdc Backing store flags: Account information: ACL information:
5)授权
一般使用IP授权,不使用帐号授权,挑战握手认证要双向认证,一些initiator工具不支持
[root@node1 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.100.0/24 [root@node1 ~]# tgtadm --lld iscsi --mode target --op show Target 1: iqn.2015-10.com.magedu:s1.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 Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 21475 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: 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: 21475 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: /dev/sdc Backing store flags: Account information: ACL information: 192.168.100.0/24 [root@node1 ~]#
2、配置iscsi initiator
1)安装程序包,配置inittiator的名字,并启动服务
配置initiator的iqn格式的名字:/etc/iscsi/initiatorname.iscsi
[service iscsi start]
[service iscsid start]
2)使用iscsiadm实现target的发现,注册等
发现模式:discovery
iscsiadm -m discovery [-d #] -t TYPE -p IP:PORT
type:sendtargets,可简写为st
节点模式:node
iscsiadm -m node [ -d debug_level ] [[ -T targetname -p ip:port -I ifaceN ] [ -l|-u|-R|-s ]] [[ -o operateion ] [ -n name ] [ -v value ]]
[root@node1 ~]# yum -y install iscsi-initiator-utils [root@node1 ~]# rpm -ql iscsi-initiator-utils /etc/NetworkManager /etc/NetworkManager/dispatcher.d /etc/NetworkManager/dispatcher.d/04-iscsi /etc/iscsi /etc/iscsi/iscsid.conf /etc/logrotate.d/iscsiuiolog /etc/rc.d/init.d/iscsi /etc/rc.d/init.d/iscsid /sbin/brcm_iscsiuio /sbin/iscsi-iname /sbin/iscsiadm /sbin/iscsid /sbin/iscsistart /sbin/iscsiuio /usr/lib/libiscsi.so.0 /usr/lib/python2.6/site-packages/libiscsimodule.so /usr/share/doc/iscsi-initiator-utils-6.2.0.873 /usr/share/doc/iscsi-initiator-utils-6.2.0.873/README /usr/share/man/man8/iscsi-iname.8.gz /usr/share/man/man8/iscsiadm.8.gz /usr/share/man/man8/iscsid.8.gz /usr/share/man/man8/iscsistart.8.gz /usr/share/man/man8/iscsiuio.8.gz /var/lib/iscsi /var/lib/iscsi/ifaces /var/lib/iscsi/isns /var/lib/iscsi/nodes /var/lib/iscsi/send_targets /var/lib/iscsi/slp /var/lib/iscsi/static /var/lock/iscsi [root@BAIYU_179 ~]# iscsiadm -m discovery -t st -p 192.168.100.10 192.168.100.10:3260,1 iqn.2015-10.com.magedu:s1.t1 [root@BAIYU_179 ~]# iscsiadm -m node -T iqn.2015-10.com.magedu:s1.t1 -p 192.168 .100.10 -l Logging in to [iface: default, target: iqn.2015-10.com.magedu:s1.t1, portal: 192.168.100.10,3260] (multiple) Login to [iface: default, target: iqn.2015-10.com.magedu:s1.t1, portal: 192.168.100.10,3260] successful. [root@BAIYU_179 192.168.100.10,3260]# fdisk -l|grep /dev/ Disk /dev/sda: 42.9 GB, 42949672960 bytes /dev/sda1 * 1 66 524288 83 Linux /dev/sda2 66 1371 10485760 83 Linux /dev/sda3 1371 2677 10485760 83 Linux /dev/sda4 2677 5222 20446208 5 Extended /dev/sda5 2677 3982 10485760 83 Linux /dev/sda6 3983 4244 2097152 82 Linux swap / Solaris /dev/sda7 3982 3982 743+ 83 Linux /dev/sda8 4244 4375 1059340 83 Linux Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk /dev/sdc: 21.5 GB, 21474836480 bytes [root@BAIYU_179 192.168.100.10,3260]# iscsiadm -m node -p 192.168.100.10:3 260 -u Logging out of session [sid: 4, target: iqn.2015-10.com.magedu:s1.t1, portal: 192.168.100.10,3260] Logout of [sid: 4, target: iqn.2015-10.com.magedu:s1.t1, portal: 192.168.100.10,3260] successful. [root@BAIYU_179 192.168.100.10,3260]# fdisk -l|grep /dev/ Disk /dev/sda: 42.9 GB, 42949672960 bytes /dev/sda1 * 1 66 524288 83 Linux /dev/sda2 66 1371 10485760 83 Linux /dev/sda3 1371 2677 10485760 83 Linux /dev/sda4 2677 5222 20446208 5 Extended /dev/sda5 2677 3982 10485760 83 Linux /dev/sda6 3983 4244 2097152 82 Linux swap / Solaris /dev/sda7 3982 3982 743+ 83 Linux /dev/sda8 4244 4375 1059340 83 Linux
配置target的第二种方法:
编辑/etc/tgt/targets.conf
<target iqn.2015-10.com.anyfish:s2.t1>
backing-store /dev/sdb
backing-store /dev/sdc
initiator-address 192.168.100.0/24
</target>
重启tgtd服务后生效
开源存储管理工具:
Openfiler,FreeNAS,Nextnta