存储基础知识
前置:存储基本概念
【1】存储的基本载体:硬盘
我们可以用一张图片来说明:
绝大部分的台式机、服务器、手机,都是内置存储系统。也就是说,它们的硬盘安装在设备内部,相当于正常人的大脑,是生长在我们体内的。
我们来看看存储的内部基本结构:
硬盘,也叫磁盘(有点像唱片机)
【2】什么是逻辑卷?什么是文件系统?
底层的相关技术和工具,包括RAID(大家可能比较熟悉,也就是磁盘阵列Redundant Arrays Of Independent Disks)、JBOD、卷管理系统(Volume Manager)。Windows的卷管理系统,就是它自带的磁盘管理工具。而Linux的,是大名鼎鼎的LVM(Logical Volume Manager,逻辑卷管理)。我们先说说Windows的。在Windows中,磁盘分为基本磁盘和动态磁盘。默认情况下,用户用的都是基本磁盘。一个基本磁盘可以划分为多个分区,分区类别包括主分区(如:我们常说的C盘)、扩展分区和逻辑分区。
整个过程,如下图所示:
好了,不管是Windows还是Linux,逻辑卷都有了,是不是可以直接使用它们啦?不行,还差一步。那就是文件系统(File System)。文件系统就像仓库管理员。作为用户,你不需要知道仓库里面到底是什么样子,只需要把货物交给他,他会以一个树形结构目录,登记这些货物。你来取的时候,只需要告诉他路径,他就会把货物交给你。
文件系统有很多种类型,常见的有Windows的FAT/FAT32/NTFS(大家应该很熟悉),还有就是Linux的EXT2/EXT3/EXT4/XFS/BtrFS等。Windows系统下,通过对分区(卷)进行文件系统格式化,再分配一个盘符,我们就可以在“我的电脑”里看到可用的磁盘。Linux系统下,我们需要对逻辑卷进行文件系统格式化,然后执行挂载操作,也就能对存储空间进行使用了。
【3】什么是DAS/NAS/SAN
DAS直连式存储,一般是使用专用线缆(例如SCSI),与存储设备(例如磁盘阵列)进行直连。
虽然数据存储设备看似在外部,但直接挂接在服务器内部总线上,是整个服务器结构的一部分。DAS的缺点是存储设备只能连接到一台主机使用,无法共享,成本较高,且安全性可靠性较低。FAS网络存储,是一种多点连接式的存储。它又分为NAS(Network-attached Storage,网络接入存储)和SAN(Storage Area Network,存储区域网络)。这些概念的名字非常像,大家千万别晕。画个图看得明白一些:
NAS大大提高了存储的安全性、共享性和成本。但是I/O(输入输出)渐渐成为性能瓶颈。随着应用服务器的不断增加,网络系统效率会急剧下降。为了解决这个问题,出现了SAN存储方案。SAN是在NAS基础上做的演进。它通过专用光纤通道交换机访问数据,采用ISCSI、FC协议。SAN和NAS的关键区别,就在于文件系统的位置。画个图就明白了:
现在很多家庭都开始使用小型NAS设备,相当于一个小型服务器。在NAS的模式下,不同的客户端可以使用网络文件系统(Network File System)访问NAS上的文件。常见的网络文件系统有Windows网络的CIFS(也叫SMB)、类Unix系统网络的NFS等。FTP、HTTP其实也算是文件存储的某种特殊实现,它们通过某个URL地址来访问一个文件。
1 常见存储设备接口
1.1 IDE接口
IDE是曾经普遍使用的外部接口,主要接硬盘和光驱。采用数据并行传送方式,一个IDE接口只能接两个外部设备。
1.2 SATA接口
1.3 SCSI接口
SCSI的数据传输是以块的方式进行的。
可以将initiator认为是scsi的客户端,它是数据操作的需求方,target是scsi的服务端,它是数据的来源,也就是一堆堆的存储设备。当initiator与target关联后,target上的每一个lu在initiator上会单独显示为一块硬盘格式,即/dev/sd{b,c,d,e…},显示的先后顺序根据lun号码来决定。
1.4 SAS接口(新一代SCSI技术)
-
SAS是Serial Attached SCSI的缩写,即串行连接SCSI。也就是说SAS是新一代的SCSI技术,它和SATA一样都采用串行技术。
-
SAS技术引入SAS扩展器,使SAS系统可以连接更多的设备,其中每个扩展器允许连接多个端口,每个端口可以连接SAS设备、主机或其他SAS扩展器。
2 存储方案(存储技术)
根据服务器类型分为封闭系统的存储和开放系统的存储
- 封闭系统主要指大型机,AS400等服务器。
- 开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器。而开放系统的存储又分为内置存储和外挂存储:
- 开放系统的外挂存储根据连接的方式又分为:直连式附加存储DAS(Direct Attached Storage)和网络化存储FAS(Fabric-Attached Storage);
- 开放系统的网络化存储根据传输协议又分为:网络附加存储NAS(Network Attached Storage)和存储区域网络SAN(Storage Area Network)。
目前绝大部分用户采用的是开放系统,其中外挂存储占有目前磁盘存储市场的70%以上。
2.1 DAS存储(直接式存储,如:电脑硬盘)
直接式存储(DAS:Direct Attached Storage),是指将存储设备通过SCSI接口或FC接口直接连接到一台计算机上。DAS不算是网络存储,在存储设备和主机之间没有任何网络设备的参与,只有挂载它的主机才可访问它。
-
最典型的DAS存储类型就是个人电脑中的硬盘,它和电脑直连,没有经过任何网络设备,也只有这台电脑可以访问它上面的数据。
-
也就是说,服务器发生故障时,连接在服务器上的DAS存储设备中的数据暂时不能被存取。
-
DAS是最原始最基本的存储方式,缺点在于容量有限、难于共享,从而造成信息孤岛。
DAS缺陷有二:
(1)DAS存储只能通过与之相连的主机进行访问,不能实现数据与其他主机的共享。
(2)直连式存储与服务器主机之间的连接通道通常采用SCSI或者SAS连接,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI或SAS通道将会成为IO瓶颈;且SCSI ID或SAS ID资源有限,能够建立的SCSI或SAS通道连接有限。也就是容量有限。
2.2 NAS存储(网络存储)
2.3 SAN存储(存储区域网络)
一般都采用光纤通道(Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。FC SAN已经相当成熟,成为业界的实施标准。如果是IP SAN,则下图中的FC部分换为以太网,对交换机而言也没有光纤交换机那么严格的要求。
SAN是基于块级别的数据传输。在应用程序服务器本地有本地文件系统,这是和NAS根本上的区别。
相比于FC SAN,IP SAN的弱点除了在硬件设备上,还在于它要对数据进行TCP/IP的封装,这需要消耗资源(硬件iSCSI使用HBA卡控制芯片来封装不会消耗操作系统资源,但挺贵的)。同时它还要使用以太网,所以网络的情况对其也有很大影响。
2.4 SAN与NAS区别
从上面的构中可以看到,SAN文件系统分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件系统。换句话说,NAS和SAN存储系统的区别是NAS自己管理自己的文件系统。
-
在上图的双虚线框表示一台NAS。它通过Fibre Channel从后端SAN获得存储空间,创建文件系统后,再通过以太网共享给服务器。SAN提供的存储单位是LUN,属于block级别的。经过NAS创建成文件系统后,就变成文件级别的了。
-
如果上图描述的不够清楚,下图就容易理解多了。NAS通过FC Switch连到SAN上,应用服务器再通过Ethernet Switch连到NAS上。同时SAN也直接提供block级别的存储给应用服务器。
相关术语
1. 备份
名称 | 概念 |
---|---|
冷备份(Cold Backup) | 在系统关闭的情况下备份数据,通常需要停机维护 |
热备份(Hot Backup) | 在系统运行时备份数据,不需要停机维护 |
增量备份(Incremental Backup) | 备份增量数据,即与上次备份后新增或修改的数据 |
全量备份(Full Backup) | 备份全部数据,包括新增、修改和删除的数据 |
2. 存储类型(文件存储、对象存储…)
名称 | 概念 | 应用场景 |
---|---|---|
文件存储 | 文件存储是指将数据存储在文件中,通常是在硬盘或闪存等物理媒介上。文件存储是最常见的存储方式之一,它可以用于存储各种类型的数据,如文本、图像、音频和视频等。文件存储通常使用文件系统来管理数据,文件系统将数据组织成目录和文件的形式,以便用户可以方便地访问和管理数据。文件存储适用于需要频繁访问的数据,如操作系统文件、应用程序文件、日志文件等。 | 操作系统文件、应用程序文件、日志文件等 |
块存储 | 块存储是指将数据分成固定大小的块,并将这些块存储在不同的物理介质上。块存储通常使用独立的存储设备,如硬盘、闪存、光盘等,来存储数据块。块存储可以提供高效的数据访问和管理,因为块存储设备通常具有较高的数据传输速度和较低的访问延迟。块存储适用于需要高性能和高可靠性的应用场景,如数据库、虚拟化、云存储等。 | 数据库、虚拟化、云存储等 |
对象存储 | 对象存储是指将数据存储为对象的形式,每个对象包含数据、元数据和唯一的标识符。对象存储通常使用分布式存储系统来管理数据,这些系统将数据分散在不同的物理设备上,以提高数据可靠性和可扩展性。对象存储适用于需要存储大量非结构化数据的应用场景,如多媒体、大数据分析、备份和归档等。 | 多媒体、大数据分析、备份和归档等 |
行存储 | 行存储是指将数据按照行的方式存储在数据库中,每行数据都有自己的唯一标识符。行存储适用于需要频繁查询和更新的应用场景,如在线交易系统、社交媒体等。 | 在线交易系统、社交媒体等。 |
列存储 | 列存储是指将数据按照列的方式存储在数据库中,每列数据都有自己的唯一标识符。列存储适用于需要进行大数据分析和处理的应用场景,如数据仓库、业务智能等。 | 数据仓库、业务智能等 |
参考:
https://www.cnblogs.com/f-ck-need-u/p/9069823.html
https://zhuanlan.zhihu.com/p/166633984