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 LVMDisk /dev/sdb: 21.5 GB, 21474836480 bytesDisk /dev/sdc: 21.5 GB, 21474836480 bytes

2)安装软件包并启动服务

[root@node1 ~]# yum list|grep scsiscsi-target-utils.i686                   1.0.24-2.el6                  @c6-mediaiscsi-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 startStarting 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 -lLogging 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  LinuxDisk /dev/sdb: 21.5 GB, 21474836480 bytesDisk /dev/sdc: 21.5 GB, 21474836480 bytes[root@BAIYU_179 192.168.100.10,3260]# iscsiadm -m node -p 192.168.100.10:3260 -uLogging 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