SCSI ID用于区分基于SCSI指令系统的不同硬盘。但在逻辑上,每个SCSI ID下面可以区分出若干LUN ID。(
SCSI控制器初始化时,会对每个SCSI ID上的设备发出一条Report LUN指令,用来收集每个SCSI ID设备的LUN信息)对于带有RAID功能的SCSI接口磁盘阵列设备来说,由于会产生很多的虚拟磁盘,需要LUN来扩充可寻址范围,所以习惯上称磁盘阵列生成的虚拟磁盘为LUN。而LUN对于传统SCSI总线来说意义不大,因为传统SCSI设备本身不可物理上再分。
可以使用软件或硬件实现RAID。对于软件RAID,操作系统最底层还是能感知到实际物理磁盘的,但是对于硬件RAID来说操作系统根本无法感知底层的物理磁盘,而只能通过厂家提供的RAID卡的管理软件来查看卡上所连接的物理磁盘。而且,配置RAID卡的时候,也不能在操作系统下完成,而必须进入这个硬件来完成(或者在操作系统下通过RAID卡配置工具来设置)。一般RAID卡都是在开机自检的时候,进入它的ROM配置程序来配置各种RAID功能。
带CPU的RAID卡俨然就是一个小的计算机系统,有自己CPU、内存、ROM、总线和IO接口。SCSI RAID卡上一定要包含SCSI控制器,因为其后端连接的依然是SCSI物理磁盘。其前端连接到主机的PCI总线上,所以一定要有一个PCI总线控制器来维护PCI总线的仲裁、数据发送接收等功能呢。还需要一个ROM,一般都是用Flash芯片作为ROM,其中存放着初始化RAID卡必须的代码以及实现RAID功能所需的代码。RAM的作用是作为数据缓存,及RAID卡上的CPU执行RAID运算所需要的内存空间。
在操作系统上运行一层软件来实现对RAID控制器提交给OS的逻辑磁盘的管理(RAID控制器是硬件底层实现RAID,实现的逻辑盘操作起来不灵活)。实际中有很多基于这种思想的产品,通用名称叫做卷管理器(Volume Manager,VM)。比如微软和Veritas合作开发的LDM(逻辑磁盘管理)。用于Linux、AIX、HPUX系统的LVM(Logical Volume Manager)以及用于Sun Solaris系统的Disk Suite。它们都是基于在OS层面,将OS识别到的物理磁盘(可以是真正的物理磁盘,也可以是经过RAID卡虚拟化的逻辑磁盘)进行组合,并再分配的软件。
PV:LVM将操作系统识别到的物理磁盘(或者RAID控制器提交的逻辑磁盘)改了个叫法,叫做Physical Volume,即物理卷。
VG:多个PV可以被逻辑地放到一个VG中,也就是Volume Group卷组。VG是一个虚拟的大存储空间,逻辑上是连续的。尽管它可以由多块PV组成,但是VG会将所有的PV首尾相连,组成一个逻辑上连续编址的大存储池。
PP:Physical Partition 物理区块,它是在逻辑上再将一个VG分割成连续的小块。注意是逻辑上分割,而不是物理上分割,也就是说LVM会记录PP的大小(由几个扇区组成)和PP序号的偏移。这样就相当于在VG这个大池中顺序切割,如果设定一个PP大小为4MB,那么这个PP就会包含8192个实际物理磁盘上的扇区。如果PV是实际的一块物理磁盘,那么这些扇区就是连续的。如果PV本身是已经经过RAID控制器虚拟化而成的一个LUN,那么这些扇区很可能位于若干条带中,也就是这8192个扇区物理上不一定连续。
LP:PP可以再次组成LP,即Logical Partition(逻辑区块)。一个LP可以对应一个PP,也可对应多个PP。前者对应前后没什么区别,后者又分两种情况:一种为多个PP组成一个大LP,像RAID0一样;另一种是一个LP对应几份PP,这几份PP每一份内容都是一样,类似于RAID1,多个PP内容互为镜像,然后用一个LP来代表它们,往这个LP写数据。也就同时写入了这个LP对应的几份PP中。
LV:若干LP经过连续组合组成LV(Logical Volunme,逻辑卷),也就是LVM所提供的最终可用来存储数据的单位。生成的逻辑卷,在主机看来还是和普通磁盘一样,可以对其进行分区、格式化等。
OS本身会自带卷管理软件层,这个卷管理软件非常简单,只能管理单个磁盘,而不能将它们组合虚拟成卷,不具有高级卷管理软件的一些灵活功能。OS自带的一些简单VM卷管理软件,只会待用总线驱动(一种监视IO总线Plug And Play,即PNP,即插即用),发现硬件之后再挂接对应这个硬件的驱动,然后查询出这个硬件的信息,其中就包括容量,所以我们才会在磁盘管理器中看到一块块的磁盘设备。即从底层向上依次是物理磁盘、磁盘控制器、IO总线、总线驱动、磁盘控制器驱动、卷管理软件程序、OS磁盘管理器中看见的磁盘设备。而高级卷管理软件是将原本OS自带的简陋的卷管理功能进行了扩展,比如可以对多个磁盘进行组合、再分等。不管是OS单一VM还是高级VM,磁盘在VM这一层处理之后,应该称为卷比较恰当,就算卷只由一块磁盘抽象而成。
高级VM没有抛弃MBR分区的解决方案,而是在MBR基础上,又增加了类似VGDA这种更加灵活的数据结构来动态管理磁盘。
文件系统中的IO方式
图中IO Manager是操作系统内核的一个模块,专门用来管理IO,并协调文件系统、卷、磁盘驱动程序各个模块之间的运作。
JBOD磁盘柜:将所有磁盘放入机柜,配有独立电源和散热系统,接口方面,内部其实就是一条SCSI线缆,只不过将它做到了电路板上。
磁盘阵列:在机柜中加入RAID控制器
人们将最原始的存储架构称为DAS Direct(Dedicate) Attached Storage,直接连接存储,意思是指存储设备只用于与独立的一台主机服务器连接,其他主机不能使用这个存储设备。如PC中的磁盘或只有一个外部SCSI接口的JBOD都属于DAS架构。
SAN概念的出现,只是个开头,因为按照SCSI总线16个节点的限制,不可能接入很多磁盘。要扩大这个SAN的规模。如果仅仅用并行SCSI总线,那么SAN只能像PCI总线一样作为主机的附属品,而不能成为一个真正独立的网络。
Fibre Channel也就是网状通道的意思。像TCP/IP一样,FC协议集同样具备TCP/IP协议集以及以太网中的很多概念,比如FC交换、FC交换机、FC路由器、FC路由、SPF路由算法等。FC的出现就是为了取代SCSI协议集的底层传输模块,由FC协议的底层模块担当传输通道和手段,将SCSI协议集的上内容传送到对方。
FC在盘阵的前端接口技术的革命成功之后,又在后端的接口技术取得了成功。FC技术的两种拓扑,一个称霸前端,一个称霸后端,在磁盘阵列领域发挥得淋漓尽致。与此同时,磁盘生产厂家也在第一时间将FC协议中的L端口和FC硬件芯片做到了磁盘驱动器上,取代了传统的SCSI端口。同时,根据FC协议的规定编写了新的Firmware,用于从FC数据帧中提取SCSI指令和数据,完成FC协议通信逻辑。
SAN(系统区域网络) storage Area Network 存储区域网络,直到FC革命成功之后,其意义才真正体现出来。
适用于存储系统的网络不只FC一个,同档次的网络传输系统还有一个叫做SAS的,全称为Serial Attached SCSI,即串行SCSI。FCP也属于串行SCSI,SAS只是一个名称。SAS是2001年被Compaq、IBM、LSI Logic、Maxtor和Seagate联合提上日程的。现在普遍用于PC的SATA硬盘,也是从2001年之后才逐渐展露头角的。的确,当时几大厂商在开发串行ATA时就考虑将SCSI一同纳入开发范围。正是由于这种因缘关系,今天普遍用于PC服务器和小型机的本地硬盘的SAS磁盘的接口形状与SATA盘是相同的,只是比SATA盘多了一个数据接口,像FC磁盘一样用来连接两路控制器。
SAS网络与FC有一个本质区别,即SAS为全交换式架构,不像FC一样有Fabric和FCAL两种架构。如果让一个控制器和多块磁盘作为网络节点直接连接到SAS网络中的话,那么控制器和所有磁盘之间都是全双工线速无阻塞交换的,控制器可以直接向任何一块磁盘收发数据,同样,磁盘也可以在任何时刻直接向控制器发送数据。
为了节约成本将FC网络交换设备改为使用以太网交换机
上图所示,磁盘阵列划分为多个LUN供使用者使用,至于怎么使用需要由使用者用文件系统来管理卷。那么多个使用者就要实现多种文件系统。而网络文件系统解决了这个问题,对外提供统一用户接口。使用者通过网络与盘阵上的集中式文件系统进行交互。针对上层逻辑,微软定义了自己的一套规范,叫做CIFS(Common Internet File System)。Linux和UNIX系统使用NFS(Network File System)。这些上层协议都是利用TCP/IP协议进行传输。这种文件系统逻辑不是在本地运行,而是在网络上的其他节点运行,使用者通过外部网络将读写文件的信息传递给运行在远端的文件系统,也就是调用远程的文件系统模块,而不是在本地内存中调用文件系统的API来进行。所以网络文件系统又叫做远程调用式文件系统,也就是RPC FS(Remote Procedure Call File System)。相对于SAN来说,这种网络文件系统不仅磁盘或卷在远程节点上,连文件系统功能也搬运到远程节点上。人们把这种带有集中式文件系统功能的盘阵,叫做网络附加存储(Network Attached Storage, NAS)。
ISCSI(Internet Small Computer System Interface)协议,使得SCSI语言可以通过Internet来传递,也就是承载于TCP/IP之上。与FC协议类似,ISCSI将发起通信的一方称为Initiator,将被连接端称为Target。
TCP/IP之所以可以与FC竞争,就是因为其优良的扩展性,而不是因为它的速度。后端需要的首先是性能,而不是扩展性。所以,后端还是交给FC处理。
后来,索性将ISCSI为代表的以TCP/IP作为传输方式的网络存储系统称为IP SAN,即基于IP的存储区域网络。值得说明的是,IP SAN并不一定要用以太网作为链路层,可以用任何支持IP的链路层。
Protocol over Protocol,PoP,即一种协议被打包封装或映射到另一种协议之上。协议融合的三种方式
常见的集群文件系统有PVFS 、PVFS2、Lustre、GFS、GPFS、DFS、SANFS、SANergy等
集群存储系统的数据分布有两种方式:
云存储
基础IT架构层:云底层的集群架构可以有两种实现方式;第一种途径是利用现有的网络,网络技术是把现有的、零散的、非专用的所有资源整合起来,在其上加入虚拟层,形成一个计算和存储的分布式集群,在这个集群之上再来实现云服务层,第二种途径是专门的集中式并行集群数据中心,加上虚拟层,然后再加上云服务层。但一般新建的数据中心都是采用后者,也就是直接使用专用的集群系统来充当基础IT架构层。
基础架构/集群管理层:有了集群还不够,还必须在这个集群之上覆盖一层或几层虚拟化层来增加整个系统的弹性,将所有资源虚拟化为资源池。对于计算资源,也就是集群中的服务器节点,通过使用VMware、Citrix等虚拟机平台可以完成这个工作。而对于存储节点,也需要有这么一种虚拟化平台。目前来看,能够满足这种需求的存储空间虚拟化平台,只有分布式文件系统或者分布式卷管理系统才能满足。另外,网络、服务器以及存储集群基础架构需要一个管理模块,负责整个集群的监控、硬件资产管理、硬件故障更换管理等。
资源部署层
中间件层
当有了物理环境、IT基础架构、基础架构监控管理、资源分配部署回收层之后,一个充实的基座就有了。在这个基座之上,就可以完成各种业务的部署。应用层与资源层之间可能需要一个中间层来适配。这个层次不仅位于应用引擎和资源部署引擎之间,云架构中所有层次之间可能都需要各种适配。
应用引擎层
应用引擎层则是产生各种业务应用的温床了,这一层提供一个通用的业务开发平台,或者将其他平台所开发的应用适配进来,然后统一发布。
业务展现与运营层
可以把云分为云存储、云主机、云计算三大块服务。IaaS属于云存储或云主机范畴,PaaS和SaaS则属于云计算范畴。