科普文:了解RAID独立冗余磁盘阵列-CSDN博客
磁盘阵列软件概叙
从硬件到软件进行了一个比较全面,但又非常浅显的介绍。在硬件方面,我们了解到企业级磁盘阵列通常由两个独立的计算机打包成一台设备提供存储服务;在软件方面,我们了解到存储软件由协议、存储池和RAID等功能的软件模块。本章我们将深入其内部,对其中的软件进行更为全面且详细的介绍。
理解硬件层面的冗余设计对于我们理解整个存储系统是非常有帮助的。企业级磁盘阵列不光控制器是由两台独立的计算机构成,其它组件,如电源、风扇、硬盘和前后端端口等都是冗余设计的。正是通过冗余设计,才能保证出现部件故障的情况下保证整个系统依然可用。如下图是华为的集中式存储控制器的拆解图,可以看到控制器和电源等模块都采用冗余设计,包含两个功能上相同的组件。
硬件的冗余设计加上软件的配合,极大的提高了存储系统的可靠性,减小了存储系统的宕机时间。软件层面主要监控硬件的异常,并进行后续的动作,比如发送告警信息或者直接实现业务的调度来屏蔽硬件故障。后面章节我们会详细的介绍软件层面是如何配合硬件实现存储系统的高可用性和高可靠性的。
需要说明的是,存储系统的两个控制器并非完全独立,两者之间通过某种方式建立了通信链接。具体通信方式不同厂商略有差异,有些采用的是NTB(non-transparent bridging)桥,有些则是采用万兆网卡。
在软件层面,集中式存储系统的软件分为三个主要方面,分别是数据平面、管理平面和控制平面。有些厂商将管理平面和控制平面的软件合称为控制平面软件。这三个方面的软件是存储系统区别于其他系统的关键。除了上述软件外,其实存储系统还有平台软件,比如运行的操作系统,但这部分软件与其他计算机系统并没有明显的差异。
软件的实现与硬件的冗余设计需要紧密配合,这样才能使两台计算机作为一个整体对外提供服务。比如在两个控制器上分别会运行一个数据面的软件,从而避免因为软件故障导致的服务中断。在控制面,有专门的软件会监控两个控制器的状态,并实现资源的调度等。接下来我们分别就每一个平面进行简要的介绍。
数据平面的软件最容易理解,这个也是存储系统最为核心的软件模块了。数据平面的软件用于处理用户数据,为用户数据提供可靠的保障。作者以为数据平面分为3层,从上而下分别是协议层、映射与重定向层和设备层。其中协议层是计算节点访问存储系统的入口,不同的协议在计算节点将呈现不同形态的存储。映射与重定向层实现了存储系统最核心的功能,存储系统的很多关键特性如快照、克隆和远程复制等都是在这层实现。设备层则负责底层块设备的管理,为映射层提供可靠的线性空间,其代码软件特性有RAID等。
当然,上述划分方法是作者自己对一些自己接触到的存储系统的总结,并非每一个存储的软件架构都是这样的。每一个存储系统都有自己独特的架构,但大体上上都可以抽象为上述3层架构,了解上述3层架构对于我们理解存储系统的软件架构细节也是很有帮助的。
管理平面是管理员访问存储系统的接口,管理平面的软件实现了对存储系统中资源的管理。管理平面的软件可以是常见GUI或者CLI的形式,也可以是API的形式。随着RESTful接口的普及、很多公司的存储系统提供基于RESTful的管理API供客户使用。
在管理平面的上述形态中,GUI是门槛最低,最容易使用的管理存储系统资源的形态。在早些时候,存储厂商的GUI是通过一个桌面应用程序配合实现的,也就是我们常说的CS(Client-Server, 客户端-服务端)架构。
随着技术的发展,大多数存储厂商将GUI由应用程序状态转换为基于Web的形态。这个时候,用户不需要在单独安装软件了,直接通过浏览器就可以登陆存储系统进行存储资源的管理。如图是EMC中端存储Unity的管理界面,其中左侧是导航栏,右侧是信息展示区和配置操作区。
左侧导航栏是存储系统的核心功能,通过选择不同的选项可以进行不同的配置。导航栏包含系统设置与状态(System)、存储资源管理(Storage)、访问控制(Access)、数据保护(Data Protection)和事件(Events)等功能项。
其中存储资源管理和访问功能是最基础和最核心的功能。存储资源管理中包含创建存储池、创建LUN和文件系统等功能。访问控制则用于配置主机对存储资源的可访问性的相关设置。
其他存储厂商的管理软件大同小异,如图所示是IBM V7000的管理界面。可以看出,其左侧也是导航栏,右侧也是信息展示和配置区。V7000的管理界面图形化程度做的要比Unity更好一些,操作起来也更加直观。
最后介绍一下控制平面,控制平面提供了存储系统自动化的功能。其实控制平面的软件可以理解为前文介绍的集群管理软件,他会监控控制器的节点状态和其中运行的资源的状态,当发现节点异常的情况下会进行业务的切换。控制平面的软件结合存储系统的冗余设计,可以极大的保证存储系统的可靠性和可用性。
40个存储技术概念
-
RAID(Redundant Array of Independent Disks) - 独立磁盘冗余阵列,用于提高存储性能和数据可靠性。
-
SAN(Storage Area Network) - 存储区域网络,一种高速网络,用于连接服务器与存储设备。
-
NAS(Network Attached Storage) - 网络附加存储,通过网络提供文件级数据存储服务。
-
DAS(Direct Attached Storage) - 直接附加存储,直接连接到服务器的存储设备。
-
SSD(Solid State Drive) - 固态硬盘,使用闪存芯片而非旋转磁盘来存储数据。
-
HDD(Hard Disk Drive) - 传统硬盘驱动器,使用旋转磁盘存储数据。
-
Cache - 缓存,用于快速访问频繁使用的数据。
-
Buffer - 缓冲区,临时存储数据以优化数据传输。
-
LUN(Logical Unit Number) - 逻辑单元号,用于标识存储系统中的物理或虚拟存储设备。
-
Snapshot - 快照,某一时间点的数据副本。
-
Cloning - 克隆,创建一个数据集的完整复制。
-
Replication - 复制,将数据从一个位置复制到另一个位置,以实现数据保护和高可用性。
-
RAID Level - RAID级别,不同级别的RAID提供不同的性能、冗余和成本特性。
-
QoS(Quality of Service) - 服务质量,确保关键应用获得所需的存储资源。
-
Deduplication - 数据去重,消除重复数据以节省存储空间。
-
Compression - 压缩,减小数据大小以节省存储空间。
-
Encryption - 加密,保护数据免受未授权访问。
-
Virtualization - 虚拟化,将物理资源抽象化为逻辑资源。
-
Cloud Storage - 云存储,通过互联网提供的存储服务。
-
Object Storage - 对象存储,一种非结构化数据存储方式,适合大规模数据存储。
-
Block Storage - 块存储,以固定大小的数据块形式存储数据。
-
File Storage - 文件存储,以文件和目录层次结构的形式存储数据。
-
Metadata - 元数据,描述数据的数据,如文件名、创建日期等。
-
IOPS(Input/Output Operations Per Second) - 每秒输入/输出操作数,衡量存储性能的指标。
-
Latency - 延迟,数据请求到响应所需的时间。
-
Throughput - 吞吐量,单位时间内可以处理的数据量。
-
SCSI(Small Computer System Interface) - 小型计算机系统接口,用于连接计算机与外设的标准接口。
-
SATA(Serial Advanced Technology Attachment) - 串行高级技术附件,用于连接硬盘和主板的接口标准。
-
SAS(Serial Attached SCSI) - 串行连接SCSI,高速数据传输协议。
-
Fibre Channel - 光纤通道,高速网络技术,主要用于SAN中。
-
iSCSI(Internet Small Computer System Interface) - 互联网小型计算机系统接口,通过IP网络进行存储通信的协议。
-
FCoE(Fibre Channel over Ethernet) - 以太网上的光纤通道,将FC协议封装在以太网中传输。
-
Scale-Out Storage - 扩展式存储,通过增加节点来扩展存储容量和性能。
-
Scale-Up Storage - 扩充式存储,通过增加存储设备的容量来扩展存储。
-
High Availability(HA) - 高可用性,确保系统在故障时仍能提供服务。
-
Disaster Recovery(DR) - 灾难恢复,制定计划和策略,以在灾难发生后尽快恢复业务运营。
-
Data Integrity - 数据完整性,确保数据准确无误且未被篡改。
-
Data Protection - 数据保护,采取措施防止数据丢失或损坏。
-
Data Migration - 数据迁移,将数据从一个存储系统移动到另一个存储系统。
-
Data Archiving - 数据归档,长期保存不经常访问的数据。
至此,本节非常简要介绍了集中式存储系统的软件架构,并对核心功能进行了简要的介绍。接下来的章节,我们将步步深入,重点介绍数据平面的各种功能特性。