科普文:企业级磁盘阵列软件架构与功能概述

news2024/9/21 0:36:33

科普文:了解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个存储技术概念

  1. RAID(Redundant Array of Independent Disks) - 独立磁盘冗余阵列,用于提高存储性能和数据可靠性。

  2. SAN(Storage Area Network) - 存储区域网络,一种高速网络,用于连接服务器与存储设备。

  3. NAS(Network Attached Storage) - 网络附加存储,通过网络提供文件级数据存储服务。

  4. DAS(Direct Attached Storage) - 直接附加存储,直接连接到服务器的存储设备。

  5. SSD(Solid State Drive) - 固态硬盘,使用闪存芯片而非旋转磁盘来存储数据。

  6. HDD(Hard Disk Drive) - 传统硬盘驱动器,使用旋转磁盘存储数据。

  7. Cache - 缓存,用于快速访问频繁使用的数据。

  8. Buffer - 缓冲区,临时存储数据以优化数据传输。

  9. LUN(Logical Unit Number) - 逻辑单元号,用于标识存储系统中的物理或虚拟存储设备。

  10. Snapshot - 快照,某一时间点的数据副本。

  11. Cloning - 克隆,创建一个数据集的完整复制。

  12. Replication - 复制,将数据从一个位置复制到另一个位置,以实现数据保护和高可用性。

  13. RAID Level - RAID级别,不同级别的RAID提供不同的性能、冗余和成本特性。

  14. QoS(Quality of Service) - 服务质量,确保关键应用获得所需的存储资源。

  15. Deduplication - 数据去重,消除重复数据以节省存储空间。

  16. Compression - 压缩,减小数据大小以节省存储空间。

  17. Encryption - 加密,保护数据免受未授权访问。

  18. Virtualization - 虚拟化,将物理资源抽象化为逻辑资源。

  19. Cloud Storage - 云存储,通过互联网提供的存储服务。

  20. Object Storage - 对象存储,一种非结构化数据存储方式,适合大规模数据存储。

  21. Block Storage - 块存储,以固定大小的数据块形式存储数据。

  22. File Storage - 文件存储,以文件和目录层次结构的形式存储数据。

  23. Metadata - 元数据,描述数据的数据,如文件名、创建日期等。

  24. IOPS(Input/Output Operations Per Second) - 每秒输入/输出操作数,衡量存储性能的指标。

  25. Latency - 延迟,数据请求到响应所需的时间。

  26. Throughput - 吞吐量,单位时间内可以处理的数据量。

  27. SCSI(Small Computer System Interface) - 小型计算机系统接口,用于连接计算机与外设的标准接口。

  28. SATA(Serial Advanced Technology Attachment) - 串行高级技术附件,用于连接硬盘和主板的接口标准。

  29. SAS(Serial Attached SCSI) - 串行连接SCSI,高速数据传输协议。

  30. Fibre Channel - 光纤通道,高速网络技术,主要用于SAN中。

  31. iSCSI(Internet Small Computer System Interface) - 互联网小型计算机系统接口,通过IP网络进行存储通信的协议。

  32. FCoE(Fibre Channel over Ethernet) - 以太网上的光纤通道,将FC协议封装在以太网中传输。

  33. Scale-Out Storage - 扩展式存储,通过增加节点来扩展存储容量和性能。

  34. Scale-Up Storage - 扩充式存储,通过增加存储设备的容量来扩展存储。

  35. High Availability(HA) - 高可用性,确保系统在故障时仍能提供服务。

  36. Disaster Recovery(DR) - 灾难恢复,制定计划和策略,以在灾难发生后尽快恢复业务运营。

  37. Data Integrity - 数据完整性,确保数据准确无误且未被篡改。

  38. Data Protection - 数据保护,采取措施防止数据丢失或损坏。

  39. Data Migration - 数据迁移,将数据从一个存储系统移动到另一个存储系统。

  40. Data Archiving - 数据归档,长期保存不经常访问的数据。

至此,本节非常简要介绍了集中式存储系统的软件架构,并对核心功能进行了简要的介绍。接下来的章节,我们将步步深入,重点介绍数据平面的各种功能特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1934943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式服务框架zookeeper+消息队列kafaka

一、zookeeper概述 zookeeper是一个分布式服务框架,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:命名服务,状态同步,配置中心,集群管理等。 在分布式环境下,经常需要对应用/服…

linux中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

C++【OpenCV】图片亮度色度归一化

#include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <iostream>using namespace cv; using namespace std;int main() {Mat image imread("SrcMF.jpg");// 灰度、Gamma归一化亮度cv::Mat m_gray;cv::cvtColor(image, m_gra…

人工智能算法工程师(中级)课程17-模型的量化与部署之剪枝技巧与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程17-模型的量化与部署之剪枝技巧与代码详解。模型剪枝是深度学习领域中一项关键的技术&#xff0c;旨在减少神经网络中的冗余权重&#xff0c;从而降低计算成本和内存占用&#xff0c;同…

昇思25天学习打卡营第5天 | 数据集

在探索MindSpore深度学习框架中的数据集处理过程&#xff0c;我对其数据加载和处理流程有了深入的了解。MindSpore提供了一套功能强大的工具&#xff0c;可以有效地处理和转换数据&#xff0c;确保了数据预处理的效率和质量。以下是我从本次学习中得到的几点主要心得&#xff1…

食堂采购系统开发:从需求分析到上线实施的完整指南

本篇文章&#xff0c;笔者将详细介绍食堂采购系统从需求分析到上线实施的完整过程&#xff0c;旨在为开发团队和管理者提供一个系统化的指南。 一、需求分析 1.用户需求 常见的需求包括&#xff1a; -采购计划管理 -供应商管理 -库存管理 -成本控制 -报表生成 2.系统功…

【电路笔记】-放大器的输入和输出阻抗

放大器的输入和输出阻抗 文章目录 放大器的输入和输出阻抗1、概述2、输入和输出阻抗的定义3、阻抗的重要性4、阻抗设置5、设置方法6、总结1、概述 从非常简单的角度来看,放大器由一个“盒子”组成,实现输入信号和输出信号之间的放大功能。 输入进入系统和输出离开系统的方式…

【从零开始实现stm32无刷电机FOC】【实践】【6/7 CMSIS-DSP】

目录 导入CMSIS-DSP库使用CMSIS-DSP 点击查看本文开源的完整FOC工程 CMSIS-DSP库是ARM开源的、对ARM处理器优化的数学库&#xff0c;本文使用了其提供的三角函数、反park变换函数、park变换函数、clarke变换函数、PID控制器。 CMSIS-DSP原始代码仓库是https://github.com/ARM-s…

Spring Boot1(概要 入门 Spring Boot 核心配置 YAML JSR303数据校验 )

目录 一、Spring Boot概要 1. SpringBoot优点 2. SpringBoot缺点 二、Spring Boot入门开发 1. 第一个SpringBoot项目 项目创建方式一&#xff1a;使用 IDEA 直接创建项目 项目创建方式二&#xff1a;使用Spring Initializr 的 Web页面创建项目 &#xff08;了解&#…

cms wpscan使用方式--kali linux

WPScan是一个用于WordPress安全审计和漏洞扫描的工具&#xff0c;可以通过以下命令来使用WPScan&#xff1a; 扫描一个网站&#xff1a; wpscan --url http://example.com扫描一个网站并指定用户名和密码&#xff1a; wpscan --url http://example.com --useradmin --passwo…

Windows FFmpeg 开发环境搭建

FFmpeg 开发环境搭建 FFmpeg命令行环境搭建使用FFmpeg官方编译的库Windows编译FFmpeg1. 下载[msys2](https://www.msys2.org/#installation)2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set3. 修改pacman 镜像源并安装依赖4. 下载并编译源码 FFmpeg命令行环境…

2024年7月17日(nodejs,npm设置国内镜像,vue脚手架,远程管理ssh,踢出用户,scp命令,ssh免密登录)

1、安装nodejs服务 nodejs是一个运行1环境&#xff0c;和javajdk运行环境格式一样 [roota ~]# yum -y install nodejs.x86_64 安装完成之后&#xff0c;使用node -v 查看版本 [roota ~]# node -v v16.20.2 2、简易服务器的环境安装npm 安装包管理器 npm node packae manger [ro…

Odoo17架构概述

多层架构 Odoo遵循多层架构&#xff0c;这意味着演示&#xff0c;业务逻辑和数据存储是分开的。更具体地说&#xff0c;它使用三层架构。 UI展示层 UI表示层是 HTML5、JavaScript 和 CSS 的组合。 应用程序的最顶层是用户界面。界面的主要功能是将任务和结果转换为用户可以理…

人工智能导论-机器学习

机器学习概述 概述 本章主要介绍的机器学习的概念、发展历程、发展趋势、相关应用&#xff0c;着重拓展机监督学习和无监督学习的相关知识。 重点&#xff1a;机器学习的定义和应用&#xff1b; 难点&#xff1a;机器学习算法及分类。 机器学习 - 重要性 MachineLeaning出…

Java 网络编程(TCP编程 和 UDP编程)

1. Java 网络编程&#xff08;TCP编程 和 UDP编程&#xff09; 文章目录 1. Java 网络编程&#xff08;TCP编程 和 UDP编程&#xff09;2. 网络编程的概念3. IP 地址3.1 IP地址相关的&#xff1a;域名与DNS 4. 端口号&#xff08;port&#xff09;5. 通信协议5.1 通信协议相关的…

0718vscode问答

终于来到 qt # Question 多态 # Answer 多态是面向对象编程中的一个重要概念&#xff0c;指的是同一个接口可以有多种不同的实现方式。多态性允许我们使用一个统一的接口来处理不同类型的对象&#xff0c;从而提高代码的灵活性和可扩展性。 在Java中&#xff0c;多态可以通过以…

Gradio从入门到精通(9)---状态组件

文章目录 前言一、Error 组件初始化参数 二、Warning 组件初始化参数 三、Info 组件初始化参数 四、进度条&#xff08;Progress bars&#xff09;示例代码总结 前言 Gradio 提供了多种组件和功能&#xff0c;用于构建交互式界面和处理用户输入。以下是一些关键组件的使用和示…

Spring Boot集成syslog快速入门Demo

1.什么syslog&#xff1f; Syslog-ng是由Balabit IT Security Ltd.维护的一套开源的Unix和类Unix系统的日志服务套件。它是一个灵活的、可伸缩的系统日志记录程序。对于服务器日志集中收集&#xff0c;使用它是一个不错的解决方案。syslog-ng (syslog-Next generation) 是sysl…

<数据集>混凝土缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7353张 标注数量(xml文件个数)&#xff1a;7353 标注数量(txt文件个数)&#xff1a;7353 标注类别数&#xff1a;6 标注类别名称&#xff1a;[exposed reinforcement, rust stain, Crack, Spalling, Efflorescence…

UniVue@v1.5.0版本发布:里程碑版本

前言 以后使用UniVue都推荐使用1.5.0以后的版本&#xff0c;这个版本之后&#xff0c;更新的速度将会放缓。 希望这个框架能够切实的帮助大家更好的开发游戏&#xff0c;做出一款好游戏&#xff01;本开源项目采用的开源协议为MIT协议&#xff0c;完全开源化&#xff0c;以后也…