[架构之路-233]:目标系统 - 纵向分层 - 操作系统 - 数据存储 :直接附加存储(DAS)、存储区域网络(SAN)、网络附加存储(NAS)、对象存储、云存储、RAID 独立磁盘冗余阵列

本文主要是介绍[架构之路-233]:目标系统 - 纵向分层 - 操作系统 - 数据存储 :直接附加存储(DAS)、存储区域网络(SAN)、网络附加存储(NAS)、对象存储、云存储、RAID 独立磁盘冗余阵列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言:

一、网络存储技术概述

二、网络存储技术详解

2.1 直接附加存储(DAS)

2.2 存储区域网络(SAN)

2.3 网络附加存储(NAS)

2.4 对象存储

2.5 云存储

三、物理存储形态

3.1 概述

3.2 硬盘

3.3 RAID 独立磁盘冗余阵列


前言:

计算机的三大部件:数据计算/处理单元、数据存储单元和数据交换/通信/传输/流通单元(输入输出IO),利用数据通信单元的远程通信能力建立起来的数据存储单元,就是网络存储,涉及到的技术就是网络存储技术。如果说,算力网络就是数据计算单元网络化网络存储就是数据存储单元网络化

在大数据和分布式计算时代,数据的网络化存储是技术发展和商业需求的必然结果。

一、网络存储技术概述

网络存储技术是指利用网络连接存储设备组合起来,形成统一的存储资源池,并通过网络进行数据传输和访问的技术。

以下是一些常见的网络存储技术:

  1. 直接附加存储(DAS):直接附加存储(Direct-Attached Storage,DAS)是指将存储设备直接连接到主机或服务器的存储技术。在DAS中,存储设备通过专用接口(如SATA、SAS、USB、Thunderbolt等)与主机或服务器直接连接,数据通过物理电缆传输。

  2. 存储区域网络(SAN):SAN是一种通过专用网络连接的存储设备,提供数据块级别的数据存储和访问。它通常基于Fibre Channel或iSCSI等协议,可以实现高性能的存储访问,并支持主机与存储设备之间的直接连接。相对于DAS,SAN是把硬盘等存储设备放置到服务器的外部,并通过专有协议与之相连。

  3. 网络附加存储(NAS):NAS是一种通过通用网络连接的存储设备,提供文件级别的数据存储和访问。它通常基于标准的网络协议(如NFS、SMB/CIFS等),可以通过局域网或互联网进行文件共享和访问。相对于SAN,NAS使用的标准的网络设备,并通过标准的NFS进行通信。

  4. 对象存储:对象存储是一种将数据以对象的形式存储在分布式存储系统中的技术。它使用唯一的标识符来管理对象,通过网络进行对象的存取和操作。对象存储通常具有高度可扩展性和容错性

  5. 云存储:云存储是一种通过互联网连接的存储服务,用户可以将数据存储在远程云服务提供商服务器中,并通过云服务器提供客户端或Web客户端程序,通过网络进行数据的访问和管理。云存储通常提供高可靠性、灵活扩展和弹性计费等特点。这是一种新型的数据共享和存储服务,能够跨越组织内部的私网

        这些网络存储技术在不同场景下具有各自的优势和适用性,可以根据具体需求选择合适的技术来构建高效的存储架构。

二、网络存储技术详解

2.1 直接附加存储(DAS)

直接附加存储(Direct-Attached Storage,DAS)是一种存储架构,将存储设备直接连接到主机或服务器,通过专用接口进行数据传输。与网络存储技术相比,DAS的特点是直接物理连接,没有通过网络进行数据传输。

下面详细介绍一些关键特点和技术细节:

  1. 连接方式:DAS的存储设备可以通过多种接口与主机或服务器进行连接,包括SATA、SAS、USB、Thunderbolt等。这些接口提供了高速、可靠的数据传输通道。

  2. 存储设备类型:DAS可以使用各种类型的存储设备,包括传统的硬盘驱动器(HDD)、固态驱动器(SSD)和外部存储设备等。根据需求和预算的不同,可以选择适合的存储设备来满足存储需求。

  3. 性能特点:由于DAS直接连接到主机或服务器,数据传输速度通常比网络存储技术更高,尤其对于需要低延迟和高带宽的应用非常适用。此外,DAS可以利用主机或服务器的资源来提供更好的性能。

  4. 扩展性和容量:相较于网络存储技术,DAS在扩展性和容量方面受限。通常情况下,DAS的存储容量受限于连接到主机或服务器的存储设备的物理限制。若需要扩展容量,可能需要增加更多的存储设备或通过其他方式进行存储设备的扩展。

  5. 管理简单:DAS的管理较为简单,通常无需专门的存储管理软件或额外的网络架构。存储设备直接连接到主机或服务器,可以使用常规的操作系统和管理工具来管理和操作。

  6. 安全性:DAS提供了较高的数据安全性,因为存储设备直接连接到主机或服务器,而不经过网络传输。这意味着对存储设备的物理访问控制可以提供更高的数据保护。

  7. 适用场景:DAS适用于小型环境或需要高性能、低延迟的特定应用场景,如高性能计算(HPC)、视频编辑、数据库服务器和本地备份等。

需要注意的是,相较于网络存储技术,DAS缺乏共享性无法实现多个主机或服务器之间的数据共享。这意味着每个主机或服务器仅能访问其直接连接的存储设备。如果需要实现数据共享和协作,可以考虑使用网络存储技术,如网络附加存储(NAS)或存储区域网络(SAN)。

2.2 存储区域网络(SAN)

存储区域网络(Storage Area Network,SAN)是一种专用的高速网络架构,用于连接存储设备和服务器,提供共享存储资源并支持快速、可靠的数据访问。

以下是存储区域网络的一些关键特点和技术细节:

  1. 架构:SAN由存储设备、主机和SAN交换机组成。存储设备可以是硬盘阵列、磁带库或其他存储设备。主机是连接到SAN的服务器,用于访问存储资源。SAN交换机用于管理和传输数据。

  2. 高速连接:SAN使用专用的高速连接技术,例如光纤通道(Fibre Channel)或以太网协议的iSCSI。这些连接提供了高带宽和低延迟的数据传输,以满足对存储性能的高要求。

  3. 块级存储访问:SAN提供了块级存储访问,将存储设备中的数据分割成固定大小的块。主机可以直接访问和管理这些存储块,使其具有类似于本地存储的能力。

  4. 高可靠性和容错性:SAN通过使用冗余路径和冗余组件来提供高可靠性和容错性。多个路径可以避免单点故障,而冗余组件和容错技术可以确保数据的可靠性和持久性。

  5. 数据共享和存储虚拟化:SAN提供了共享存储资源的能力,多个主机可以同时访问存储设备中的数据。此外,SAN还支持存储虚拟化,将多个物理存储设备整合为逻辑卷,简化了存储管理和资源分配。

  6. 网络管理与安全:SAN具有灵活的管理功能,可以通过管理软件和协议对存储资源进行配置和监控。此外,SAN还提供了安全性和访问控制的功能,确保只有经授权的用户能够访问存储资源。

  7. 应用领域:SAN广泛应用于需要高性能和可靠存储的场景,例如大型企业的数据库存储、虚拟化环境、高性能计算和云计算中。通过集中管理和共享存储资源,SAN可以提供高度可扩展和灵活的存储解决方案。

总的来说,存储区域网络(SAN)是一种专用的高速网络架构,用于连接存储设备和服务器,提供高性能、高可靠性、数据共享和存储虚拟化的存储解决方案。它适用于需要高性能存储和数据访问的企业环境,并可以满足对存储性能、可用性和扩展性的高要求。

2.3 网络附加存储(NAS)

网络附加存储(Network Attached Storage,NAS)是一种基于网络的存储设备,通过局域网连接到服务器或主机上,提供文件级别的存储服务。

以下是一些关键特点和技术细节:

  1. 文件级别访问:NAS提供文件级别的存储访问,通过共享文件协议(如NFS、SMB/CIFS)来实现。这意味着用户可以使用普通的文件操作方式(如读写、复制、删除)来访问和管理存储中的文件和文件夹。

  2. 网络连接:NAS通过网络连接到局域网上,可以通过以太网、Wi-Fi等常见网络协议进行通信。用户可以通过任何连接到局域网的设备(如计算机、手机、平板电脑)访问和使用NAS上的存储资源。

  3. 简单易用:NAS通常具有用户友好的界面和配置工具,使其易于安装和管理。用户可以轻松设置共享权限、创建共享文件夹和进行访问控制等操作。

  4. 数据共享和备份:NAS允许多个用户共享存储资源,并提供中心化的数据备份功能。用户可以将文件存储在NAS上,并通过网络进行共享和备份,以便多个用户可以方便地访问和恢复数据。

  5. 扩展性:NAS具有较好的扩展性,可以随着需求的增长进行存储容量的扩展。用户可以根据需要添加额外的硬盘驱动器或扩展存储设备,以增加存储空间。

  6. 数据保护和冗余:许多NAS设备支持RAID(冗余独立磁盘阵列)技术,通过数据在多个磁盘上的冗余存储,提供数据的冗余性和保护。这可以提高数据的安全性和容错性。

  7. 远程访问和云集成:许多NAS设备支持远程访问功能,用户可以通过互联网连接远程访问NAS中的数据。此外,一些NAS还具有与云存储服务(如Amazon S3、Dropbox)的集成,可以将数据备份和同步到云中。

NAS适用于小型办公环境、家庭网络以及需要简单而可靠的文件存储和共享的场景。它提供了集中式的存储管理、灵活的数据访问和共享、简单的配置和管理,以及数据保护和备份功能。

2.4 对象存储

对象存储的原理基于以下几个关键要素:

  1. 对象:对象是存储的基本单位,通常是一个文件或一组文件,以及与其关联的元数据(如文件名、创建日期等)。每个对象都有一个唯一的标识符,用于在存储系统中进行引用。

  2. 块存储:对象存储将数据通过分块(Block)存储的方式进行存储。数据被切分成固定大小的块,并通过分布式存储系统进行分布存储。这种方式提供了数据冗余和可靠性。

  3. 元数据:对象存储管理元数据以跟踪对象的属性和位置信息。元数据通常存储在类似于键值存储的数据库中,以实现快速检索和访问。

  4. 冗余备份:对象存储通过多个冗余备份来保护数据免受硬件故障和数据损坏的影响。备份通常存储在不同的物理设备、存储节点或不同的数据中心中,以提供高可靠性和持久性。

对象存储的应用案例广泛,包括:

  1. 云存储服务:大多数公共云提供商都提供了对象存储服务,例如亚马逊S3、微软Azure Blob存储和谷歌云存储。这些服务可用于存储和分发静态网站内容、应用程序数据、多媒体文件、备份和归档数据等。

  2. 大数据分析:对象存储适用于大数据分析和数据湖的场景。它可以用来存储和管理大量的结构化和非结构化数据,供分布式计算框架(如Hadoop、Spark等)进行实时分析和处理。

  3. 归档和备份:对象存储提供了成本效益较高的长期数据归档解决方案。通过对象存储,组织可以将数据备份到云中,实现可靠且持久的数据保护,同时节省了传统备份解决方案中所需的物理存储和管理成本。

  4. 多媒体存储和分发:对象存储适用于存储和分发媒体内容,例如音频、视频和图像文件。它提供了高可用性和可扩展性,以满足大量用户的数据访问需求。

总之,对象存储通过其灵活性、可靠性和可扩展性,在云存储、大数据分析、数据备份和归档等众多应用场景中发挥着重要作用。

2.5 云存储

云存储是指将数据存储在云平台中的一种服务模式。它通过将数据存储在远程的云服务器上,提供了可靠、高可用、可扩展和灵活的数据存储解决方案。

云存储的原理基于分布式存储技术,它将数据分散存储在多个服务器或数据中心中。数据通过块存储或对象存储的方式进行存储,实现了数据的高可靠性和冗余备份。同时,云存储提供了数据的高可用性,确保用户可以随时随地访问和使用存储的数据。

云存储的应用案例丰富多样,包括但不限于以下几个方面:

  1. 文件存储与分享:云存储提供了方便的文件存储和分享功能。用户可以将个人文件、照片、音乐和视频等保存到云存储中并轻松地与他人共享。这样,无论用户身在何处,都可以随时访问和分享他们的文件。

  2. 数据备份与恢复:云存储提供了安全可靠的数据备份和恢复功能。用户可以将重要的数据备份到云存储中,以防止数据丢失或损坏。而且,云存储通常提供版本控制和数据回滚功能,使用户可以轻松地还原到之前的数据状态。

  3. 应用程序数据存储:许多应用程序需要存储大量的数据,例如电子商务平台、社交媒体应用和企业级应用。通过使用云存储,这些应用程序可以高效地存储和管理数据,并实现数据的高可用性和可扩展性。

  4. 大数据存储与处理:随着大数据的兴起,云存储成为存储和处理大规模数据的理想选择。云存储平台提供了强大的存储和计算能力,可用于存储和分析大量的结构化和非结构化数据。

  5. 多媒体存储和分发:云存储也广泛应用于存储和分发多媒体内容,如音频、视频和图像文件。云存储提供了高可用性和可伸缩性,以满足多用户访问大量媒体数据的需求。

总结起来,云存储通过其高可用性、可扩展性和灵活性,在文件存储与分享、数据备份与恢复、应用程序数据存储、大数据存储与处理以及多媒体存储和分发等方面都有广泛的应用。它为个人用户、企业和组织提供了强大的数据存储和管理能力,帮助他们实现更高效、安全和可靠的数据存储与使用。

在国内,有多家知名的云存储服务平台提供商,以下是一些常见的国内云存储服务平台:

  1. 阿里云:阿里云对象存储(OSS)是阿里云提供的弹性、安全、稳定的云存储服务,适用于静态网站托管、大数据处理和多媒体存储等场景。

  2. 腾讯云:腾讯云对象存储(COS)是腾讯云提供的高可扩展、低成本的云存储服务,适用于静态网站托管、大规模数据备份、数据归档和多媒体存储等应用。

  3. 华为云:华为云对象存储(OBS)是华为云提供的安全可靠、高可靠性的云存储服务,适用于数据备份和归档、多媒体存储和云原生应用等场景。

  4. 百度云:百度云对象存储(BOS)是百度云提供的高可用、多副本、低延迟的云存储服务,适用于大规模静态文件的存储与分发等应用场景。

  5. 京东云:京东云对象存储(JOS)是京东云提供的安全、稳定的云存储服务,适用于数据备份、静态网站托管、多媒体存储和图像处理等场景。

这些云存储服务平台都提供可靠的存储基础架构、数据冗余备份、高可用性和灵活的编程接口,以满足各种不同的存储需求。无论是个人用户、中小企业还是大型企业组织,都可以选择适合自己需求的云存储服务平台来进行数据存储和管理。

三、物理存储形态

3.1 概述

物理存储形态是指数据存储介质的物理形式和类型。以下是一些常见的物理存储形态:

  1. 硬盘驱动器(Hard Disk Drive,HDD):硬盘驱动器是一种机械式存储介质,使用磁性盘片和机械臂进行数据读写。它具有较高的存储容量和相对较低的成本,广泛应用于个人计算机、服务器和数据中心等场景。

  2. RAID("Redundant Array of Independent Disks")"独立磁盘冗余阵列:RAID是一种通过将多个独立物理硬盘组合起来,提供更高存储性能、更好的数据冗余和可靠性的技术

  3. 固态硬盘(Solid State Drive,SSD):固态硬盘是一种基于闪存芯片的非机械式存储介质。它不含机械部件,具有更快的数据访问速度、较低的能耗和较小的体积,逐渐替代了传统的机械硬盘,广泛用于个人电脑、服务器和移动设备等。

  4. 光盘(Optical Disc):光盘是一种使用激光技术进行数据读写的存储介质,包括CD(Compact Disc)、DVD(Digital Versatile Disc)和蓝光光盘(Blu-ray Disc)等。光盘具有较大的存储容量,适用于存储音频、视频、软件和数据备份等。

  5. 磁带(Magnetic Tape):磁带是一种基于磁性物质进行数据存储的介质。磁带具有较大的存储容量和较低的成本,适用于大规模数据的备份、归档和长期存储。

  6. 闪存卡(Flash Memory Card):闪存卡是一种使用闪存芯片进行数据存储的可移动存储介质。它广泛应用于数码相机、手机、平板电脑、音乐播放器和其他便携设备中,提供便捷的数据存储和传输功能。

这些物理存储形态都有各自的特点和适用场景。不同的存储形态可根据需求选择,以满足不同场景下的数据存储、备份、归档和传输需求。同时,在现实应用中,还有许多混合存储解决方案,将不同的存储形态结合起来,以实现更高效、可靠的数据管理和存储。

3.2 硬盘

硬盘是一种常见的存储设备,用于存储和读取电脑上的数据。它通常使用旋转磁盘和磁头来读写数据。硬盘由一个或多个磁性盘片组成,并通过电机和机械臂等部件进行操作。

硬盘的工作原理是将数据以磁化的形式储存在盘片上的可读写的磁性表面上。当需要读取数据时,磁头会在盘片上定位到对应的磁区,并读取或写入数据。硬盘通过旋转盘片和移动磁头来实现数据的存取。现代硬盘通常以SATA或SAS接口连接到计算机主板上。

硬盘具有较大的容量、相对较低的价格和较慢的读写速度。它们适用于存储大量数据,如操作系统、应用程序、文件和媒体内容等。然而,由于机械运动的特性,硬盘易受物理冲击和振动的影响,并且存在故障的风险。

近年来,固态硬盘(SSD)作为一种新兴的存储技术,逐渐流行起来。与传统的机械硬盘相比,固态硬盘没有旋转部件,因此具有更快的读写速度、更低的能耗和更高的耐用性。但是,固态硬盘相对于传统硬盘来说价格仍然较高,容量也相对有限,常用于操作系统和应用程序加速,以及对速度要求较高的工作负载。

3.3 RAID 独立磁盘冗余阵列

RAID(独立磁盘冗余阵列)是一种数据存储技术,通过将多个独立的硬盘组合在一起,以提供更高的性能、数据冗余和可靠性

RAID使用不同的级别或模式来实现不同的数据保护和性能目标。

下面是几种常见的RAID级别

  1. RAID 0:数据分割存储在多个硬盘上,提高了存储性能和吞吐量,但没有冗余,一块硬盘损坏会导致数据完全丢失。

  2. RAID 1:数据被镜像存储在多个硬盘上,提供了数据冗余。当一块硬盘故障时,其他硬盘上的镜像数据可以保证数据的完整性和可用性。RAID 1可以容忍一块硬盘的故障。

  3. RAID 5:将数据和奇偶校验信息分布在多个硬盘上。奇偶校验信息用于恢复损坏的数据。RAID 5至少需要三块硬盘,并且可以容忍一块硬盘的故障。

  4. RAID 6:类似于RAID 5,但使用两个奇偶校验信息来提供更高的冗余容错性。RAID 6需要至少四块硬盘,并且可以容忍两块硬盘的故障

除了上述基本的RAID级别外,还有其他高级RAID级别(如RAID 10、RAID 50、RAID 60等),它们结合了不同的级别以平衡性能、容量和冗余。

RAID技术在服务器、存储系统和大规模数据中心中得到广泛应用,以提供更高的数据可用性、快速读写性能和故障容忍能力。RAID不仅可以提高数据的安全性和可靠性,而且可以增加数据的访问速度和系统的整体性能。然而,RAID并不是绝对的备份解决方案,备份仍然是必要的以确保数据的完整性和长期的可靠性。

这篇关于[架构之路-233]:目标系统 - 纵向分层 - 操作系统 - 数据存储 :直接附加存储(DAS)、存储区域网络(SAN)、网络附加存储(NAS)、对象存储、云存储、RAID 独立磁盘冗余阵列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158492

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 2594 二分图最大独立集

题意: 求一张图的最大独立集,这题不同的地方在于,间接相邻的点也可以有一条边,所以用floyd来把间接相邻的边也连起来。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <sta