云计算基础-存储基础

存储概念

什么是存储:

  存储就是根据不同的应用程序环境,通过采取合理、安全、有效的方式将数据保存到某些介质上,并能保证有效的访问,存储的本质是记录信息的载体。

存储的特性:

  1. 数据临时或长期驻留的物理介质
  2. 需要保证数据能够及时的被读取或者保存
  3. 需要保证数据完整安全有效

什么是文件系统:

  文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

  在文件系统中,我们可以看到文件的类型、文件的大小、创建时间等,这些都是文件系统中的信息

  存储系统只有底层硬件和上层文件系统配合工作才能够真正的完成对于数据的读写管理,底层硬件只负责对0101这些二进制的读写,真正的帮助用户清晰简洁管理数据的其实是上层的文件系统,而用户直接对接的其实也是文件系统

存储系统的分类(存储的构建方式)

从存储的连接或者构建的方式来看,存储主要分为三种

  1. DAS:直连附属存储
  2. NAS:网络附属存储
  3. SAN:存储区域网络

DAS(Direct Attached Storage):

主机设备或者计算设备直接通过物理口和线缆连接的存储磁盘,从而获得存储资源,如个人电脑装的硬盘就可以看作是DAS存储

优点:简单

缺点:独立的数据存储模式,不能共享访问,可扩展性有限

NAS(Network Attached Storage):

支持联网的存储,不同主机可以通过网络向存储中上传、下载自己的文件,Windows的文件共享就是NAS存储的范畴。NAS存储提供的存储自带文件系统,NAS存储具有以下特点:

  1. 主机访问存储必须通过LAN共享
  2. 提供的存储已经指定了对应的文件系统
  3. 提供网络文件共享功能
  4. 支持的协议包括CIFS、NFS

优点:可实现跨平台的数据共享

缺点:应用有局限,比如无法在NAS存储上安装操作系统

SAN(Storage Area Network):

SAN是一种独立于服务器的存储网络,它通过高速连接将存储设备(如磁盘阵列、磁带库等)与多台服务器连接起来,形成一个高性能、高可用性的存储环境。

通过网络将服务器和存储连接起来,这个网络可以是FC网络,也可以是IP网络,这个取决于服务器跟磁针之间是 通过什么样的存储协议通信,SAN存储提供的存储不自带文件系统,它只负责数据的IO读写

优点:可靠性高,可扩展性强

缺点:成本高,维护有难度

SAN存储分类:

SAN存储主要包括两种网络架构的SAN,一种是基于IP网络的IP SAN,另一种是基于FC网络的FC SAN

IP SAN

IP SAN网络它是通过ISCSI协议连接服务器和磁针的,主机和存储之间走还是传统的IP网络

主机端:额外的网卡接口和客户端(OS一般自带)

网络:线速以太网交换机(传统的交换机)

存储端:具备ISCSI的接口

优点:利旧,扩展性好,可以充分利用现网的IT系统硬件,成本比较低

缺点:开销大、可靠性相比FC差,存储协议本身走的是SCSI协议(硬盘接口协议就是SCSI协议),为了兼容IP网络,提出ISCSI协议,但是ISCSI协议开销比较大。其性能略低

FC SAN

FC SAN网络是基于FC协议的,在服务器端需要有专门的FC HBA卡,因为主机和存储之间走的是FC协议,传统的交换机走的是IP网络,所以FC SAN存储中,网络也需要专门的FC交换机,存储也需要具备FC接口

主机端:FC HBA卡

网络:FC交换机

存储端:具备FC接口

优点:可靠性高,性能比IP SAN好

缺点:需要FC网络,扩展性差,成本高

存储连接架构总结

存储的服务类型

块存储

块存储,有时也被称为"块级存储",是一种主要用于在存储区域网络 (SAN) 或云环境中存储数据的技术。它的特性是将裸磁盘空间整个映射给主机使用,包括真实的物理磁盘或者通过RAID、逻辑卷等方式二次划分的逻辑磁盘。主机的操作系统可以识别这些硬盘,并进行分区和格式化操作,使其与服务器内置硬盘的功能并无二致。

文件存储

文件存储,也被称为文件级存储或基于文件的存储,是一种在计算机硬盘驱动器或网络连接存储 (NAS) 设备上组织和存储数据的方法。这种存储方式将数据以文件的形式进行保存,并进一步将文件按照文件夹进行分类,再将文件夹以目录和子目录的形式进行组织,形成一个层次化的存储结构。

对象存储

对象存储是一种基于分布式系统的数据存储服务,其以非结构化格式(称为对象)来存储和管理数据。它将数据存储为对象而不是文件,具有高度可靠性、高扩展性和高性能等优点。

存储服务类型

优点

缺点

应用场景

块级存储服务

如:前面提到的SAN , DAS,为主机提供的都是块存储,提供高性能的随机I/O和数据吞吐率,延迟低

可扩展性和可管理性较差

为一些高性能,高IO的企业关键业务系统(如企业内部数据库)提供存储。

文件级存储服务

如:NAS,扩展性好、易于管理、价格相对经济

开销高、延迟大,不适合高性能的存储场景

共享文件数据:FTP、家庭NAS存储、医院PACS医疗影像数据

对象存储服务

支持高并行性、可伸缩的数据访问, 管理性好、安全性高、适合大容量存储需求

时延长、不适合频繁更改的数据。

相对静态的文件数据,如备份、档案、视频和音频文件

存储的重要特性及相关技术名词

RAID

RAID:独立磁盘冗余阵列,将多个独立的磁盘整合成为一个RAID组,用来提升磁盘的读写能力

实现RAID功能的部件:服务器有一块单独的RAID卡,存储设备上有相应的RAID控制器

  1. 解决了单个磁盘容量的限制
  2. 解决了单个磁盘速度的限制
  3. 解决了数据可靠性问题

RAID级别:

RADI0:

无冗余的条带化
最少需要1块硬盘,可用容量为所有硬盘加起来的总和
优点:读写性能最高
缺点:不提供冗余,其中某一块硬盘损坏,所有数据全部丢失
RAID0写入:例如条带化大小为64K,若要写1024K文件,文件将会被分为16个小块,同时往RAID0内的磁盘写
RAID读取:假设RAID0由5块物理硬盘组成,读取时则从5个硬盘中同时读取

RAID1:镜像卷


所需物理硬盘数量为N*2,可用容量为50%
优点:允许损坏一块硬盘,提供冗余
缺点:数据写入时,最大只能达到单块磁盘的最大写性能,理论上来说,由于会同时向两块硬盘中同时写入,写性能会有所下降
优点:数据读取时,可以从两块硬盘中同时读取,读性能有所提高
读写:RAID1在写入时会同时向两块硬盘中写入同样的数据,同样,删除时,会同时在两块硬盘中同步删除
如果使用4块盘做RAID1会怎样:系统会自动创建两组RAID1,6块会创建三组.....

如下图。RAID0是将一个文件分成多份,同时往两块硬盘中写,写入性能更高,但无冗余,两块盘只要坏一块数据就丢失了
RAID1是同样一份文件会写两份,写性能会有所下降,但同样的数据会在RAID1组内的两块磁盘内各存一份,所以坏一块硬盘不会导致数据丢失,但开销太大,RAID总容量只要两块磁盘容量之和的1/2

RAID3:带奇偶校验的条带化(已被raid5取代)

RAID3会有专门的一块盘存放奇偶校验数据,RAID5的奇偶校验数据会平均分布存放在RAID5的所有硬盘上,RAID3如果进行数据重构的话,由于奇偶校验数据全部是存放在一块硬盘中的,进行数据重构的时候,奇偶校验盘会成为瓶颈,所以为了解决这个问题,出现了RAID5

RAID5:带奇偶校验的条带化


所需物理硬盘数量>=3,可用容量为N-1
优点:即解决了性能的问题,又解决了冗余的问题
缺点:假设RAID5其中某一块硬盘损坏,换上新硬盘后数据需要重构(重构:根据现有数据和奇偶值算出这块硬盘中的数据),1TB的数据重构时间大约需要10小时,如果重构的过程中会有业务数据写入,重构校验会暂停(业务优先级高于重构优先级)

RAID6


所需物理硬盘数量>=4,可用容量为N-2
RAID6每一个条带有两个校验,即:D1\D2校验为P1,D1\D2\P1校验为P2

RAID10


所需物理硬盘数量>=4,硬盘数量必须为2的倍数,可用容量为50%
先两块磁盘做RAID1,再将两组RAID1做RAID0
优点:可以同时坏两块盘,但是损坏的硬盘不能同时在一个RAID组内

热备盘


在创建RAID时就可以选择热备盘
Hot-Spare盘是一个不参与盘阵,但是加电上线的盘,当冗余阵列其中某一块硬盘损坏时,热备盘马上顶上,可以理解为自动换盘的概念,当损坏的硬盘换上新硬盘之后,热备盘马上又会变成热备盘的角色

RAID选择


RAID5更适合顺序大IO场景:视频场景、备份场景,一次写入,很少更改的场景
RAID10更适合随机小IO场景:数据库场景

为什么RAID5不适合随机小IO场景
因为数据库删改频繁,每一次修改数据都需要重新进行奇偶校验,会造成更多的写惩罚,从而降低存储性能
写惩罚:一次写,带来了更多额外的读操作
如果修改的数据,小于整个阵列的一半,比如10块盘,只修改了其中某一块或几块(5块以下,不包含5块)硬盘的数据(条带中的某一个或小于5个数据块),只需要将这个新写入的数据和已有的奇偶校验数据一起读出来,经过奇偶校验再写回去,但如果修改的数据超过一半,需要将这个条带中全部的数据读出来,经过奇偶校验再写回去

为什么RAID10适合随机小IO场景
RAID10不需要奇偶校验,就像直接往硬盘中写入数据即可,没有写惩罚

为什么RAID10不适合顺序大IO场景
在RAID10中,由于数据写入时,会将同一数据写入两份,降低了写的性能,假设RAID10是6块磁盘,在分块时,6块硬盘只能将数据分为3块同时写入,而6块硬盘RAID5可以分为5块同时写入,相比之下,顺序大IO的场景,RAID5更合适

官方建议
如果是SAS盘:做RAID5
如果是SATA盘:做RAID6,因为RAID6故障率更高
如果是SSD盘:做RAID10,而且SSD更适合随机数据

RAID2.0

RAID2.0相较于传统RAID的区别

传统RAID都是以硬盘为单位,参与RAID成员的最小单位是硬盘,在一个RAID里,只能是一种类型的硬盘,不能是SATA硬盘,SAS硬盘,SSD硬盘,这三种硬盘不能混合在一起做RAID

RAID2.0可以支持不同类型的硬盘做RAID,RAID2.0不是以硬盘为单位,而是以CK为单位

RAID2.0原理

将硬盘划分为若干个连续的固定大小的存储空间,成为存储块,即chunk,简称CK(华为存储默认是64MB,且不能更改)

chunk按RAID策略组合成RAID组,成为存储块组, 即chunk group,简称CKG

在CKG中划分若干个小数据块,即extent。LUN就是 由来自不同CKG的extent组成

用作热备盘空间的CK也是分散在各个盘上的

NL-SAS盘:Near-Line SAS,在SAS总线上接入了SATA硬盘

LD:逻辑磁盘

Extent:默认4M可调,数据热度统计和迁移的最小单位(颗粒度)

图片解释

由下往上,先看SSD这一列

  1. CK:首先,会将所有的SSD的空间按64M为大小切成一个又一个小块,这些小块既有数据的位置,也有热备的位置
  2. CKG:按RAID策略对CK这些存储小块进行分组,如RAID策略是RAID5,则这些小块(CK)就组成了RAID5组,CKG只能是一种类型的硬盘,由N个64M的CK把它合在一起组成了一个CKG
  3. SAS,NL-SAS那两列同理
  4. 看第一张图CKG那一行,不同类型的硬盘被划分成了不同的CKG,此时,各种类型的CKG之间还是相互独立的
  5. Extent:在CKG上划分出更小的单位来,叫extent,默认大小是4M(创建时可修改),这个Extent就有可能来自不同的硬盘,如图1中extent那一行
  6. LUN:此时,SSD,SAS,NL-SAS这三组RAID放在一个存储池里面,创建LUN时,LUN空间是从存储池里面划出来的,假设LUN空间为200G,这200G空间有可能会从SSD的Exitent中拿50G,从SAS的Extent中拿80G,从NL-SAS的Extent中拿30G,一起构成200G,这个LUN就是由三种不同类型的磁盘组成

LUN映射的是一块裸设备,也叫块设备,是不带文件系统的,需要分区格式化才能用

RAID2.0使用不同类型的磁盘有什么好处呢?

即解决了性能问题,又平衡了成本为题

重构速度非常快,每TB 30分钟,比传统RAID快了20倍,传统RAID以硬盘为单位进行数据重构,在RAID2.0中,假设某块硬盘损坏,该硬盘中的数据会被重构到其他CK中(每块硬盘都预留了热备CK),如果该硬盘换新了,会将部分旧数据迁移到该硬盘,新数据也会写入该硬盘,不是迁移损坏硬盘的原有数据,后台会自己算

RAID2.0使用了SmartTier分层技术

SmartTier原理

根据硬盘类型,将存储分为三个层面

  1. 高性能层:SSD
  2. 性能层:SAS
  3. 容量层:NL-SAS

把最活跃的数据放在高性能层,把热数据放在性能层,把冷数据放在容量层,即提升了性能,又节约了成本,这个过程是自动的

判断数据冷热的最小单位是extent,extent越小判断越准确,但CPU占用也更高

san存储中的相关技术名词

IQN:

在ISCSI组网中,一台主机使用IQN来表示,每台IQN是唯一的,QIN是根据主机名字随机生成的

WWPN:

FC的组网中是有WWPN的,FC组网需要专门的FC卡,FC卡上有FC专用的光模块,而WWPN的地址就是光模块端口号地址

FC卡也有一串地址,叫WWNN,中文名叫:全球唯一节点号,在FC卡上有个标签,可以看到该地址

FC卡的光模块也有一串地址,叫WWPN,中文名叫:全球唯一端口号,在FC卡和光模块上都能看到该地址

WWNs、WWN,实际上说的都是WWPN,简称而已

多路径

为了保证链路冗余,通常主机会使用两个网口分别连接存储的A控和B控,如下图

什么是多路径

当一台主机又两条或两条以上的链路连接同一个存储

两条链路连接同一个存储会有什么问题?

电脑上会看到两个盘,但需要手动指定用哪个盘,无法达到冗余的目的,需要安装多路径软件,将相同IQN的LUN合并为一个盘

不同厂商需要安装不同厂商的多路径软件(是否有通用的多路径软件未知)

多路径软件安装后需要重启,华为的多路径软件不支持win10,Winserver2012

安装完多路径软件后,对存储进行读写使用的是哪个网口呢?

根据算法自动选择转发网口,可选择的策略有:轮询(默认),最小队列,最小链路,无需太过留意是哪个口转发,两个口都转发

注意:

不同主机连接同一个LUN,这些主机必须时集群关系,而且文件系统必须格式化为带锁机制的集群级文件系统

为什么连接相同LUN的不同主机必须是集群关系

因为不同主机连接相同的LUN,不同主机都可以同时对LUN空间的文件进行读写,有可能多台主机同时对同一个文件进行操作,造成文件损坏

例如华为FusionCompute的CNA链接存储后,查看存储挂载情况

华为存储挂在后,会以【dm】开头,所以通过这个可以找到它挂在的ipsan存储,他的文件系统类型既不是xfs,也不是ext3,而是ocfs2,这个就是集群级文件系统

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ClickHouse--01--简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. ClickHouse 简介官网: [https://clickhouse.com/docs/zh](https://clickhouse.com/docs/zh) 1.1 大数据处理场景1.2 什么是 ClickHouse1.3 OLAP 场景…

Ubuntu Desktop 显示文件路径

Ubuntu Desktop 显示文件路径 1. GUI hot key2. CLIReferences 1. GUI hot key Ctrl L: 显示文件路径 2. CLI right click -> Open in Terminal -> pwd strongforeverstrong:~/Desktop$ pwd /home/strong/DesktopReferences [1] Yongqiang Cheng, https://yongqiang…

STM32物联网(ESP-01S模块及STM32和ESP-01S通信方式介绍)

文章目录 前言一、ESP-01S模块介绍二、STM32和ESP-01S通信方式介绍三、什么是AT指令四、创建基础工程总结 前言 本篇文章我们开始正式进入STM32物联网的专栏,在这个专栏中将会带大家学习使用STM32进行联网,联网模块的话主要就是使用到了ESP-01S WIFI模块…

2024 CKS 题库 | 7、Dockerfile检测

不等更新题库 CKS 题库 7、Dockerfile检测 Task 分析和编辑给定的Dockerfile /cks/docker/Dockerfile(基于ubuntu:16.04 镜像), 并修复在文件中拥有的突出的安全/最佳实践问题的两个指令。 分析和编辑给定的清单文件 /cks/docker/deployme…

Android 车载应用开发之SystemUI 详解

一、SystemUI SystemUI全称System User Interface,直译过来就是系统级用户交互界面,在 Android 系统中由SystemUI负责统一管理整个系统层的 UI,它是一个系统级应用程序(APK),源码在/frameworks/base/packages/目录下,而不是在/packages/目录下,这也说明了SystemUI这个…

BBC英式口语~发音练习~笔记整理

参考资料 原视频地址: https://www.bilibili.com/video/BV1D7411n7bS/?spm_id_from333.1245.0.0&vd_source5986fc7c8e6d754f3ca44233573aeaff 笔记图片

Unity基础 -- 更新中(2.15)

Unity基础 文章目录 Unity基础3D数学 -- 基础一些方法插值运算三角函数坐标系 3D数学 -- 向量理解常用函数线性插值 3D数学 -- 四元数看向四元数计算 延迟函数协同程序 3D数学 – 基础 一些方法 float value01 Mathf.PI; // Π int value03 Mathf.Abs(-2); // 绝对值 int v…

Nvidia 携手 RTX 推出的本地运行 AI 聊天机器人

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Netty Review - ByteBuf内存池源码解析

文章目录 Pre主要特点和工作原理类关系源码解析入口索引AbstractNioByteChannel.NioByteUnsafe#readallocHandle.allocate(allocator) 小结 Pre Netty Review - 直接内存的应用及源码分析 Netty Review - 底层零拷贝源码解析 主要特点和工作原理 ByteBuf 内存池是 Netty 中用…

【王道数据结构】【chapter5树与二叉树】【P159t17~19】【统考真题】

目录 2014年统考 2017年统考 2022年统考 2014年统考 #include <iostream> #include <stack> #include <queue> typedef struct treenode{int weight;struct treenode *left;struct treenode *right; }treenode,*ptreenode;ptreenode buytreenode(int x) {p…

【web | CTF】BUUCTF [BJDCTF2020]Easy MD5

天命&#xff1a;好像也挺实用的题目&#xff0c;也是比较经典吧 天命&#xff1a;把php的MD5漏洞都玩了一遍 第一关&#xff1a;MD5绕过 先声明一下&#xff1a;这题的MD5是php&#xff0c;不是mysql的MD5&#xff0c;把我搞迷糊了 一进来题目啥也没有&#xff0c;那么就要看…

解密输入输出迷局:蓝桥杯与ACM中C++/C语言常见问题揭秘

关于C中的常见输入输出汇总 带空格的字符串&#xff1a; ​ 对于这种输入方式我们选择使用gets() 函数来进行输入&#xff0c;gets用于从标准输入&#xff08;通常是键盘&#xff09;读取一行文本并将其存储为字符串&#xff0c;直到遇到换行符&#xff08;‘\n’&#xff09…

飞天使-k8s知识点20-kubernetes实操5-pod更新与暂停-statefulset

文章目录 资源调度 Deployment&#xff1a;扩缩容资源调度 Deployment&#xff1a;更新的暂停与恢复资源调度 StatefulSet&#xff1a;定义一个有状态服务headless service 金丝雀发布 资源调度 Deployment&#xff1a;扩缩容 扩容和缩容&#xff0c;常用的功能 scale[rootkub…

上位机图像处理和嵌入式模块部署(图像项目处理过程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于一般的图像项目来说&#xff0c;图像处理只是工作当中的一部分。在整个项目处理的过程中有很多的内容需要处理&#xff0c;比如说了解需求、评…

二、ActiveMQ安装

ActiveMQ安装 一、相关环境二、安装Java8三、下载安装包四、启动五、其他命令六、开放端口七、后台管理 一、相关环境 环境&#xff1a;Centos7.9安装ActiveMQ版本&#xff1a;5.15.9JDK8 二、安装Java8 安装教程&#xff1a;https://qingsi.blog.csdn.net/article/details/…

react【三】受控组件/高阶组件/portals/fragment/严格模式/动画

文章目录 1、受控组件1.1 认识受控组件1.2 checkout1.3 selected1.4 非受控组件 2、高阶组件2.1 认识高阶组件2.2 应用1-props增强的基本使用2.3 对象增强的应用场景-context共享2.4 应用2-鉴权2.5 应用3 – 生命周期劫持2.6、高阶组件的意义 3、Portals4、fragment5、StrictMo…

17.3.1.6 自定义处理

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 模拟某款图像处理软件的处理&#xff0c;它只留下红色、绿色或者蓝色这样的单一颜色。 首先按照颜色划分了6个色系&#xff0c;分别…

disql备份还原

disql备份还原 前言 本文档根据官方文档&#xff0c;进行整理。 一、概述 在 disql 工具中使用 BACKUP 语句你可以备份整个数据库。通常情况下&#xff0c;在数据库实例配置归档后输入以下语句即可备份数据库&#xff1a; BACKUP DATABASE BACKUPSET db_bak_01;语句执行完…

java生态环境评价Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 生态环境评价管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

.netcore音乐播放器 musicPlayer

html音乐播放器 .net core mvc 音乐播放器 支持上传本地音乐到云端 支持通过文件夹创建歌单(不需要数据库和其他数据存储) 通过歌单分类 播放歌曲 支持播放暂停 上一首 下一首切换 支持显示歌曲列表 歌单切换 展示歌曲根据歌单名去获取歌曲显示 功能 版权原因 或者想创建自己的…