SAN、NAS、DAS、FC、ISCSI、FC-SAN、IP-SAN等并不是同一类别的概念。SCSI、FC、NAS、ISCSI等概念指的是存储设备类型,DAS、NAS、SAN等指的是存储系统的网络结构。
NAS
SAN
1.按存储设备类型分
存储设备类型是指通过采用SCSI、FC、TCP/IP,ISCSI等接口类型、数据传输协议、以及不同数据存储介质的存储设备。常见的存储设备类型可为SCSI存储、NAS存储、FC存储、iSCSI存储和磁带存储。
存储设备类型这个概念的核心是设备,指的是由存储介质、驱动器、控制器、供电系统、冷却系统等组成的一个整体。它独立与网络层设备和主机层设备,因此当提到存储设备类型的时候,不要涉及与存储设备连接的网络设备和主机。
区分一个存储设备的类型主要依靠存储设备对外提供的接口类型、数据传输协议、和存储介质。
a. SCSI存储
存储设备的对外提供的接口是SCSI,按照SCSI协议传输数据的存储设备就是SCSI存储。如果再区分存储介质,那么存储介质为SCSI磁盘的存储被称为SCSI-SCSI存储,存储介质为SATA磁盘的存储被称为SCSI-SATA存储。存储名称分为两个部分,前面表示存储设备接口类型及接口部分的数据传输协议,后部分表示存储介质。
FC-FC
FC-SATA
scsi-scsi
scsi-sata
sata-fc
SATA scsi sas fc
5400
7200
10000
b. FC存储
存储设备的对外提供的接口是FC光纤通道,按照FC光纤通道协议传输数据的存储设备就是FC存储。存储介质为FC磁盘的存储被称为FC-FC存储。存储介质为SATA磁盘的存储被称为FC-SATA存储。
注意:采用光纤通道协议的存储设备应该称之为FC存储或光纤通道存储,也可以简称为光纤存储,不能称之为SAN存储,SAN指的是一种存储系统的网络结构。
c. ISCSI存储
采用ISCSI输出协议、对外提供ISCSI接口的存储设备自然应该成为ISCSI存储,只不过ISCSI一般都采用SATA磁盘作为存储介质,所以ISCSI存储在名称上不会再细分,都通称为ISCSI。
d. NAS存储
NAS 是一种特殊的存储设备类型,虽然NAS对外提供IP接口,按照IP协议进行数据传输,但NAS最终提供给主机的是一个文件系统,SCSI存储、FC存储和 ISCSI等提供给主机的是一个裸的、没有文件系统的逻辑卷,且NAS本身是一个服务器+存储的结构,因此严格上讲,NAS应该能算是一种存储系统结构,而不是一个存储类型。不过很多时候我们都把NAS的服务器+存储结构看成一个整体,这个整体又通过标准的IP传输协议来进行访问和数据传输。因此NAS一般都被认为是一个存储设备类型。在本书中,NAS既是一个存储设备类型,又是一个存储系统网络结构。
e.磁带存储
判断一个存储是否是磁带存储的标准是看这个存储设备是否采用磁带作为存储介质。磁带存储的外部接口类型一般有两种,一是SCSI接口,二是FC光纤通道接口。磁带根据存储的数据是否已经数据化可分为非数据化磁带(即模拟磁带、数字磁带)和数据流磁带两种。模拟磁带一般常用于视音频文件的图像和声音存储,不用于数据存储。
存储设备类型指的是存储设备这一个单体的分类,存储系统的网络结构自然是指存储设备、主机、以及存储设备与主机之间的连接系统所形成的整体拓扑结构。
2.按存储系统的网络结构分
存储系统网络结构是指存储设备与服务器、工作站等需要进行数据读写操作的主机之间的连接方式,网络拓扑结构、数据读写方式、存储共享方式和数据共享方式。存储系统网络结构不同,存储设备的工作方式、流程和性能就会不同。
大家常提到的、主流的存储系统网络架构有DAS、NAS、SAN三种网络架构。
a.DAS架构
DAS即直连式存储(DIrect-Attached Storage),依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常数据备份常常在深夜或业务系统不繁忙时进行,以免影响正常业务系统的运行。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。
直连式存储与服务器主机之间的连接通道通常采用SCSI连接,带宽为10MB/s、20MB/s、40MB/s、80MB/s等,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI通道将会成为IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。
无论直连式存储还是服务器主机的扩展,从一台服务器扩展为多台服务器组成的群集(Cluster),或存储阵列容量的扩展,都会造成业务系统的停机,从而给企业带来经济损失,对于银行、电信、传媒等行业7×24小时服务的关键业务系统,这是不可接受的。并且直连式存储或服务器主机的升级扩展,只能由原设备厂商提供,往往受原设备厂商限制。
b. NAS架构
NAS即网络接入存储(Network-Attached Storage),采用网络(TCP/IP、ATM、FDDI)技术,通过网络交换机连接存储系统和服务器主机,建立专用于数据存储的存储私网。随着IP网络技术的发展,网络接入存储(NAS)技术发生质的飞跃。早期80年代末到90年代初的10Mbps带宽,网络接入存储作为文件服务器存储,性能受带宽影响;后来快速以太网(100Mbps)、VLAN虚网、Trunk(Ethernet Channel) 以太网通道的出现,网络接入存储的读写性能得到改善;1998年千兆以太网(1000Mbps)的出现和投入商用,为网络接入存储(NAS)带来质的变化和市场广泛认可。由于网络接入存储采用TCP/IP网络进行数据交换,TCP/IP是IT业界的标准协议,不同厂商的产品(服务器、交换机、NAS存储)只要满足协议标准就能够实现互连互通,无兼容性的要求;并且2002年万兆以太网(10000Mbps)的出现和投入商用,存储网络带宽将大大提高NAS存储的性能。NAS需求旺盛已经成为事实。首先NAS几乎继承了磁盘列阵的所有优点,可以将设备通过标准的网络拓扑结构连接,摆脱了服务器和异构化构架的桎梏;其次,在企业数据量飞速膨胀中,SAN、大型磁带库、磁盘柜等产品虽然都是很好的存储解决方案,但他们那高贵的身份和复杂的操作是资金和技术实力有限的中小企业无论如何也不能接受的。NAS正是满足这种需求的产品,在解决足够的存储和扩展空间的同时,还提供极高的性价比。因此,无论是从适用性还是TCO的角度来说,NAS自然成为多数企业,尤其是大中小企业的最佳选择。
c. SAN架构
SAN即存储区域网络(Storage-Attached Storage),采用光纤通道(Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。SAN由100MB/s、200MB/s,发展到目前的1Gbps、2Gbps。
SAN网络环境中,因采用存储设备类型的不同又可以分为FC-SAN(采用光纤通道存储产品)和IP-SAN(采用ISCSI存储设备)。
=======================================================================
iSCSI 是 Internet 小型计算机系统接口(iSCSI:Internet Small Computer System Interface)的缩写。iSCSI 技术是一种由 IBM 公司研究开发的, 它基于 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(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。从根本上说,iSCSI 协议是一种利用 IP 网络来传输潜伏时间短的 SCSI 数据块的方法,iSCSI 使用以太网协议传送 SCSI 命令、响应和数据。iSCSI 可以用我们已经熟悉和每天都在使用的以太网来构建 IP 存储局域网。通过这种方法,iSCSI 克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
iSCSI 的工作过程:当 iSCSI 主机应用程序发出数据读写请求后,操作系统会生成一个相应的 SCSI 命令,该 SCSI 命令在 iSCSI initiator 层被封装成 iSCSI 消息包并通过 TCP/IP 传送到设备一侧,设备一侧的 iSCSI target 层会解开 iSCSI 消息包,得到 SCSI 命令的内容,然后传送给 SCSI 设备执行;设备执行 SCSI 命令后的响应,在经过设备侧 iSCSItarget 层时被封装成 iSCSI 响应 PDU,通过TCP/IP 网络传送给主机的 iSCSI initiator 层,iSCS Iinitiator 层会从 iSCSI 响应 PDU 里解析出 SCSI 响应并传送给操作系统,操作系统再响应给应用程序。
iSCSI 最大的优点是成本低,构建 ISCSI 存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,iSCSI 还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。iSCS I 存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普及和万兆以太网的应用,iSCSI 存储网络会达到甚至超过 FC(FiberChannel,光纤通道)存储网络的带宽和性能。iSCSI 存储网络使用的是以太网,因而在服务器和存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。
IP SAN
Red_Hat_Enterprise_Linux-5-Cluster_Administration-en-US.pdf
Red_Hat_Enterprise_Linux-5-Configuration_Example_-_Oracle_HA_on_Cluster_Suite-en-US.pdf
====================================================================
iSCSI名字规范
iSCSI协议中,initiator和target是通过名字进行通信的,因此,每一个iSCSI节点(即initiator)必须拥有一个iSCSI名字。
iSCSI协议定义了3类名称结构:
1、iqn(iSCSI Qualified Name)
格式是:“iqn”+“年月”+“.”+“域名的颠倒”+“:”+“设备的具体名称”,之所以颠倒域名是为了避免可能的冲突。
举例: iqn.2008-07.com.h3c.rd:test
iqn.2016-08.com.up:target1
2、eui(Extend Unique Identifier)
eui来源与IEEE中的EUI,格式是: “eui”+ “64bits的唯一标识(16个字母)”。 64bits中,前24bits(6个字母)是公司的唯一标识,后面40bits(10个字母)是设备的标识。
举例:eui.acde48234667abcd
3、naa(Network Address Authority)
由于SAS协议和FC协议都支持naa, iSCSI协议定义也支持这种名字结构。
naa的格式: “naa”+“64bits(16个字母)或者128bits(32个字母)的唯一标识”。
举例:naa. 52004567BA64678D
naa. 62004567BA64678D0123456789ABCDEF
在实际使用过程中,iSCSI节点名称可以不这么复杂。
=====================================================
一、Linux系统实现IP SAN 存储端(target)
1、安装包
[root@target ~]# yum -y install scsi-target-utils
2、准备一个分区或者一个文件
[root@target ~]# fdisk -u /dev/sda
[root@target ~]# partx -a /dev/sda
[root@target ~]# partx -a /dev/sda
[root@target ~]# dd if=/dev/zero of=/sandisk bs=1M count=2048
3、定义一个target,共享出去root
[root@target ~]# vim /etc/tgt/targets.conf
default-driver iscsi
4、启动服务
[root@target ~]# service tgtd start
Starting SCSI target daemon: [确定]
[root@target ~]# tgt-admin --show
Target 1: iqn.2014-12.com.up.wing:san1
LUN: 1
Backing store path: /dev/sda5
ACL information:
192.168.8.101
192.168.8.102
[root@target ~]# netstat -tnlp |grep :3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 15135/tgtd
tcp 0 0 :::3260 ::? LISTEN 15135/tgtd
二、initiator端(使用存储的前端server,此处为node1、node2)
1、安装包
[root@node1 ~]# yum -y install iscsi-*
2、发现存储
[root@node1 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
|-- ifaces
|-- isns
|-- nodes
|-- send_targets
|-- slp
`-- static
6 directories, 0 files
[root@node1 ~]# chkconfig iscsid on
[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.8.34
192.168.8.34:3260,1 iqn.2014-12.com.up.wing:san1
[root@node1 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
|-- ifaces
|-- isns
|-- nodes
| `-- iqn.2014-12.com.up.wing:san1
| `-- 192.168.8.34,3260,1
| `-- default
|-- send_targets
| `-- 192.168.8.34,3260
| |-- iqn.2014-12.com.up.wing:san1,192.168.8.34,3260,1,default -> /var/lib/iscsi/nodes/iqn.2014-12.com.up.wing:san1/192.168.8.34,3260,1
| `-- st_config
|-- slp
`-- static
3、登入存储
方法一:登入指定的存储
[root@node1 ~]# iscsiadm -m node -T iqn.2013-06.2014-12.com.up.wing:san1 -p 192.168.8.34 -l
Logging in to [iface: default, target: iqn.2014-12.com.up.wing:san1, portal: 192.168.8.34,3260] (multiple)
Login to [iface: default, target: iqn.2014-12.com.up.wing:san1, portal: 192.168.8.34,3260] successful.
方法二:登入所有的 (/var/lib/iscsi/)
[root@node2 ~]# service iscsi restart
=====================================================
注:
进程iscsid: iscsi的核心进程,开机启动
进程iscsi: 开机时自动登入所有的(/var/lib/iscsi/)
=====================================================
4、清除所有的iscsi登入
[root@node1 ~]# iscsiadm -m node -T iqn.2014-12.com.up.wing:san1 -u
[root@node1 ~]# rm -rf /var/lib/iscsi/*
注:
LUN概念:
LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为8个或者16个,我们可以用Target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就可以了。
而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了LUN的概念,也就是说LUN ID的作用就是扩充了Target ID。每个Target下都可以有多个LUN Device,我们通常简称LUN Device为LUN,这样就可以说每个设备的描述就由原来的Target x变成Target x LUN y了,那么显而易见的,我们描述设备的能力增强了。就好比,以前你给别人邮寄东西,写地址的时候,可以写:
xx市人民大街54号 xxx(收)
但是自从高楼大厦越来越多,你不得不这么写:
xx市人民大街54号xx大厦518室 xxx (收)
所以我们可以总结一下,LUN就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方