百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

关于存储技术的最强入门科普(存储技术有哪些)

nanshan 2025-02-04 15:20 17 浏览 0 评论

说到“存储”,大家会想到什么?


是这个?

还是这个?

又或者是这个?

哈哈,没错,我们现在处于信息时代,每天都在和电脑、手机打交道。我们的工作和生活,已经完全离不开视频、音乐、图片、文本、表格这样的数据文件。


而所有这些数据文件,都需要通过电子设备进行保存,这就是数据存储,简称存储。



▉ 存储的基本载体——硬盘


存储的载体有很多,例如各种规格的硬盘、光盘、软盘、U盘和磁带等。


对于普通用户来说,最常用的存储设备,就是硬盘。


我们知道,计算机的三大核心硬件,分别是CPU(中央处理器)、内存(Memory)和硬盘(Hard Disk)。CPU负责运算,硬盘负责存储。而内存,是CPU和硬盘之间的桥梁。用于暂时存放CPU中的运算数据。


绝大部分的台式机、服务器、手机,都是内置存储系统。也就是说,它们的硬盘安装在设备内部。


以普通台式机为例,硬盘通过专用接口和数据线,连接在主板上,实现和CPU、内存的数据连接。


常用的硬盘专用接口如下:


手机等数码设备的“硬盘”,则是做成了很小的存储芯片,直接焊在主板上。


我们再来简单看看硬盘的内部结构


目前主流的硬盘类型有两种,分别是传统机械硬盘和SSD固态硬盘。小枣君以大家比较熟悉的机械硬盘为例进行介绍。


硬盘之所以叫硬盘,是因为它的核心部分是一块或多块由坚硬金属材料制成的盘片。盘片上面涂抹了磁性介质,两面都可以记录信息。在盘面上读/写数据的,是磁头


下图显示的是一个盘面:


盘面中一圈圈灰色同心圆为一条条磁道。从圆心向外画直线,可以将磁道划分为若干个弧段,每个弧段被称之为一个扇区(Sector,图中绿色部分)。


从侧面看,如下图所示。我们把磁道从外向内进行编号(最外面是0号),每个盘面中具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。


所以,磁盘的存储容量 = 磁头数 × 磁道数 × 每磁道扇区数 × 每扇区字节数。


扇区是磁盘的最小组成单元。大家应该看出来了,越靠圆心,扇区越短。那么,是不是越往外,扇区越长,存储的数据越多呢?


不一定。


老式的硬盘,不管靠内还是靠外,每个扇区的大小是一样的,都是512字节。这种硬盘用柱面-磁头-扇区号(CHS,Cylinder-Head-Sector)组成的编号进行寻址。


而现在主流的硬盘,扇区密度是一致的,也就是说,越靠外侧,扇区数越多。每个扇区的大小是4K字节,用一个逻辑块编号寻址(LBA,Logical Block Addressing)。


以扇区为基础,一个或多个连续的扇区组成一个块,叫做物理块。所以,硬盘往往又叫块设备(Block Device)。


除了传统机械硬盘之外,随着自身成本的不断下降,SSD固态硬盘(Solid State Disk或Solid State Drive)正在迅速崛起并成为主流。


这是一种由控制单元和固态存储单元(DRAM或FLASH芯片)组成的硬盘。它的接口规范和定义、功能及使用方法上与普通机械硬盘基本相同,但速度要快得多。


固态硬盘的产品外形和尺寸上也与普通机械硬盘(2.5寸)一致。由于固态硬盘没有普通硬盘的旋转介质,因而抗震性极佳。固态硬盘内部芯片的工作温度范围也很宽(-40~85℃),所以适用于很多较为苛刻的工作环境。


▉ 什么是逻辑卷?什么是文件系统?


为了方便管理,我们可以将硬盘这样的物理块设备,分割成多个逻辑块设备。或者,我们也可以将多个物理块设备,组合成一个容量更大的逻辑块设备。


底层的相关技术和工具,包括RAID(大家可能比较熟悉)、JBOD、卷管理系统(Volume Manager)。


Windows的卷管理系统,就是它自带的磁盘管理工具。而Linux的,是大名鼎鼎的LVM(Logical Volume Manager,逻辑卷管理)。


我们先说说Windows的。


在Windows中,磁盘分为基本磁盘动态磁盘。默认情况下,用户用的都是基本磁盘。


一个基本磁盘可以划分为多个分区,分区类别包括主分区、扩展分区和逻辑分区。


主分区是硬盘的启动分区,我们常说的“C盘”就是硬盘上的主分区。MBR分区表可以划分出4个主分区。如果使用GPT分区,可以管理128个主分区。


除去主分区以外,硬盘剩下的容量就被认定为扩展分区。扩展分区不能直接使用。扩展分区可以分成一个或若干个逻辑分区,也就是我们的“D盘”、“E盘”等。


动态磁盘是基本磁盘的升级模式。在动态磁盘中,分区叫做。卷的出现,就是为了便于对多硬盘进行管理。


简单来说,动态磁盘可以将不同硬盘分到一个卷。假如你手中有160G和250G硬盘各一块,如果想划分90G和320G的分区,就可以借助动态磁盘来完成。


动态磁盘里面的卷,又分为简单卷、跨区卷、带区卷、镜像卷、RAID-5卷。限于篇幅,就不做具体介绍了。基本磁盘里的分区,现在也被微软改叫为卷。


再来看看Linux的LVM工具。


其实LVM和动态磁盘的思路差不多的,也是把物理空间变成逻辑空间。


首先,物理存储介质进行初始化,变成物理卷(PV,physical volume)


然后,一个或多个物理卷组成一个卷组(VG,Volume Group)


创建卷组之后,再创建逻辑卷(LV,logical volume)


整个过程,如下图所示:


好了,不管是Windows还是Linux,逻辑卷都有了,是不是可以直接使用它们啦?


不行,还差一步。那就是文件系统(File System)


文件系统就像仓库管理员。作为用户,你不需要知道仓库里面到底是什么样子,只需要把货物交给他,他会以一个树形结构目录,登记这些货物。你来取的时候,只需要告诉他路径,他就会把货物交给你。

文件系统有很多种类型,常见的有Windows的FAT/FAT32/NTFS(大家应该很熟悉),还有就是Linux的EXT2/EXT3/EXT4/XFS/BtrFS等。


Windows系统下,通过对分区(卷)进行文件系统格式化,再分配一个盘符,我们就可以在“我的电脑”里看到可用的磁盘。Linux系统下,我们需要对逻辑卷进行文件系统格式化,然后执行挂载操作,也就能对存储空间进行使用了。


▉ 什么是DAS/NAS/SAN


除了内置存储之外,随着存储容量需求的不断增加,加上维护便利性的需要,计算机系统开始引入了外挂存储。也就是说,硬盘从计算机的内部,跑到了计算机的外部。


外挂存储分为两种,一种是直连式存储(DAS,Direct Attached Storage),还有一种是网络存储(FAS,Fabric Attached Storage)


DAS直连式存储,一般是使用专用线缆(例如SCSI),与存储设备(例如磁盘阵列)进行直连。


虽然数据存储设备看似在外部,但直接挂接在服务器内部总线上,是整个服务器结构的一部分。


DAS的缺点是存储设备只能连接到一台主机使用,无法共享,成本较高,且安全性可靠性较低。


FAS网络存储,是一种多点连接式的存储。它又分为NAS(Network-attached Storage,网络接入存储)SAN(Storage Area Network,存储区域网络)


这些概念的名字非常像,大家千万别晕。画个图看得明白一些:


NAS与DAS相比,最大的特点是非直连。它可以通过IP网络,实现多台主机与存储设备之间的连接。


NAS大大提高了存储的安全性、共享性和成本。但是I/O(输入输出)渐渐成为性能瓶颈。随着应用服务器的不断增加,网络系统效率会急剧下降。


而SAN并不存在这个问题。


早期的SAN架构专指FC SAN,它通过专用光纤通道交换机访问数据,采用FC协议。FC(光纤通道)的带宽明显高于NAS的以太网,而且稳定性也更好。


后来,有了iSCSI协议(Internet SCSI,2003年正式成为标准)并且主流操作系统开始支持,就有了IP SAN(使用IP网络和设备)。


说白了,iSCSI就是走IP网络的SCSI。一方面扩大了连接距离,另一方面增加了连接的服务器数量(原来的SCSI-3的上限是15)。


SAN和NAS的关键区别,就在于文件系统的位置。画个图就明白了:



可以看出,如果说SAN是一块网络硬盘的话,NAS基本上已经像一台独立的服务器了。NAS拥有文件系统,用户可以通过TCP/IP协议直接访问上面的数据。


现在很多家庭都开始使用小型NAS设备,相当于一个小型服务器。


在NAS的模式下,不同的客户端可以使用网络文件系统(Network File System)访问NAS上的文件。常见的网络文件系统有Windows网络的CIFS(也叫SMB)、类Unix系统网络的NFS等。


FTP、HTTP其实也算是文件存储的某种特殊实现,它们通过某个URL地址来访问一个文件。


▉ 未完待续……


随着互联网的持续发展,网络上的数据量在不断激增,这给存储系统带来了巨大的压力和挑战。


云计算的兴起,会给我们全新的解决方案吗?


请看下期——《对象存储的深度揭秘》


相关推荐

CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库

上一篇文章我们使用了registry镜像来搭建Docker私有镜像仓库,但是使用体验不是很好,没有一个可管理的UI界面,管理很麻烦。本篇文章将介绍一个新的搭建Docker镜像仓库的工具叫做Har...

简单认识认识mqtt及mosquitto(mqtt报文解析)

某项目中使用了MQTT作为进程间的通信方式,之前没用过,这两篇笔记我们就来一起学习一下这种方式。MQTT的一些介绍以下介绍内容来自《[野火]《LwIP应用开发实战指南》MQTT协议全称是Messa...

全源码打造高性能 LNMP 架构: 实战教程(2025最新版)

适用场景:企业生产环境、自建Web服务、深度性能调优操作系统:CentOS7/8、RockyLinux、Debian、Ubuntu(本文以CentOSStream9为例)技术栈:N...

Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!

之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...

Ubuntu24.04.2 企业级MinIO存储系统部署指南

一、概要1.1MinIO架构解析MinIO是一款高性能的云原生对象存储系统,采用Golang开发并遵循ApacheLicensev2.0协议。其核心架构基于纠删码(ErasureCode)技...

从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程

适用版本:OpenHarmony4.0/5.0Standard目标人群:想在x86PC、RK3568开发板或自有硬件上裁剪、加品牌、预装应用并生成可刷机镜像的开发者/团队目录环境准...

一次暂未成功的dify安装经历(dify怎么安装)

前几天在阿里云买了一台机,这几天一直在尝试安装dify,到现在还没安装上我是按这个教程装的https://blog.csdn.net/2401_82469710/article/details/14...

ZLMediaKit教程(五)支持webrtc(webrtc lib)

ZLMediaKit系列文章(共六篇):ZLMediaKit流媒体(一)编译安装ZLMediaKit教程(二)主程序和配置文件解析ZLMediaKit教程(三)URL规则ZLMediaKit教程...

Linux程序安装与管理指南(linux程序安装命令大全)

在Linux系统中,安装和管理程序主要通过包管理器和手动编译安装两种主要方式实现。以下是详细的操作指南,涵盖常见发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora等)的用法。一...

离线状态下安装 Nginx 各个模块?这篇攻略让你轻松搞定

你是不是也在为离线状态下安装Nginx各个模块而发愁?在互联网大厂后端开发工作中,我们常常会遇到一些特殊的网络环境,比如公司内部的离线服务器,或是处于隔离状态的测试环境。当需要在这些离线环境中安装...

Rust实践:Win10环境下的openssl交叉编译

Rust支持跨平台,可以指定生成目标平台,交叉编译也是支持的。当然,想要交叉编译成功,还需要指定平台的编译器(如:msvc、gcc等)。openssl是C语言开发的库,如果在Rust代码中用到open...

Linux下Blackwell架构显卡(RTX5070/5090)编译PaddlePaddle指南

Blackwell显卡架构如RTX5070\5090等显卡当前Paddle预编译版本中包含的GPU架构(即SM架构)是有限的,比如常见的SM75(T4)、SM86(A10)、SM89(...

突破操作系统界限,掌握Linux的必备指南

#头条创作挑战赛#简介Linux是一种开源的操作系统,它的核心思想是自由和开放。Linux以其稳定性、可靠性和安全性而闻名,被广泛用于服务器和嵌入式设备中。Linux创始人Linux安装在安装Linu...

Linux日常高频使用的100条命令,强烈建议收藏

查看系统信息如何查看系统版本:uname-alsb_release-acat/etc/os-release如何查看系统内核信息:uname-r如何查看系统CPU信息:lscpucat...

Linux文件系统结构全解析(linux文件结构详解)

对Linux新手而言,“一切皆文件”的设计哲学常让人既兴奋又困惑——打开终端输入ls/,看到的bin、etc、var等目录到底有什么用?如何快速定位关键文件?本文将从Linux文件系统的底层逻...

取消回复欢迎 发表评论: