读数据工程之道:设计和构建健壮的数据系统18数据存储系统(上)

news/2024/10/24 6:54:27/文章来源:https://www.cnblogs.com/lying7/p/18496035

1. 单机存储和分布式存储

1.1. 存储系统是存在于原材料之上的抽象层次

1.2. 磁盘是一种原始存储材料,而主要的云对象存储平台和HDFS是利用磁盘的存储系统

1.3. 随着数据存储和访问模式变得越来越复杂,并超出了单一服务器能做到的支持,将数据分布到一个以上的服务器上变得很有必要

1.4. 数据可以被存储在多个服务器上,被称为分布式存储

  • 1.4.1. 一个分布式系统,其目的是以分布的方式存储数据

1.5. 分布式存储协调多个服务器的活动,以更快的速度和更大的规模存储、检索和处理数据,同时在一个服务器不可用的情况下提供冗余备份

2. 最终一致性和强一致性

2.1. 在分布式数据库中,往往存在着获取当前数据和获取“差不多“是当前数据的平衡

2.2. BASE

  • 2.2.1. 基本可用(Basically Available)

  • 2.2.1.1. 不保证一致性

  • 2.2.1.2. 数据库的读写是在尽力而为的基础上进行的

  • 2.2.1.3. 意味着大多数时候都是一致的数据

  • 2.2.2. 软状态(Soft-state)

  • 2.2.2.1. 事务的状态是模糊的

  • 2.2.2.2. 不确定该事务是已提交还是未提交的

  • 2.2.3. 最终一致性(Eventual consistency)

  • 2.2.3.1. 在某些时候,读取数据会返回一致的值

  • 2.2.4. BASE是最终一致性的基础

2.3. 如果你想横向扩展(跨越多个节点)来处理大量的数据,那么最终一致性往往是你要付出的代价

  • 2.3.1. 最终一致性允许你快速检索数据,而不需要验证你在所有节点上是否有最新的版本

2.4. 有了强一致性,分布式数据库就能确保写到任何节点的数据都是首先共同分发的,而且对数据库的任何读取都能返回一致的值

  • 2.4.1. 当你可以容忍更高的查询延迟,并要求每次从数据库读取正确的数据时,你会使用强一致性

2.5. 决定一致性的选择

  • 2.5.1. 数据库技术本身为某种程度的一致性奠定了基础

  • 2.5.2. 数据库的配置参数会对一致性产生影响

  • 2.5.3. 数据库通常在单个查询层面支持一些一致性配置

  • 2.5.3.1. DynamoDB支持最终一致性读取和强一致性读取

>  2.5.3.1.1. 强一致性读取速度较慢,消耗的资源较多,所以最好少用,但在需要一致性的时候可以使用
  • 2.5.4. 既是一个技术问题,也是一个组织问题

3. 文件存储

3.1. 一个文件是一个具有特定的读、写和引用特性的数据实体,由软件和操作系统使用

  • 3.1.1. 对象存储的行为很像文件存储,但有关键的区别

  • 3.1.1.1. 对象存储中的对象只支持第一个特性,即有限长度,但仍然非常有用

  • 3.1.2. 文件存储系统将文件组织成一个目录树

  • 3.1.3. 文件系统将每个目录作为其包含的文件和目录的元数据来存储

  • 3.1.4. 元数据包括每个实体的名称、相关的权限细节和一个指向实际实体的指针

  • 3.1.5. 为了在磁盘上找到一个文件,操作系统会查看每个层次的元数据,并跟踪指向下一个子目录实体的指针,直到最后到达文件本身

3.2. 特征

  • 3.2.1. 有限长度

  • 3.2.1.1. 一个文件是一个有限长度的字节流

  • 3.2.2. 追加操作

  • 3.2.2.1. 在主机存储系统的限制范围内向文件追加字节

  • 3.2.3. 随机访问

  • 3.2.3.1. 可以从文件中的任何位置读取,或向任何位置写入更新

3.3. 当文件存储范式对数据管道来说非常重要时,要小心处理其状态,尽量使用短暂的环境

  • 3.3.1. 尽量将手动的、低级别的文件处理保留给一次性的获取步骤或管道开发的探索阶段

3.4. 本地磁盘存储

  • 3.4.1. 操作系统管理的文件系统,底层是固态硬盘或磁盘的本地磁盘分区

  • 3.4.2. 新技术文件系统(New Technology File System,NTFS)和ext4分别是Windows和Linux上流行的文件系统

  • 3.4.3. 文件系统的设计是为了在写入过程中发生断电时容易恢复,否则任何未写入的数据都会丢失

  • 3.4.4. 本地文件系统通常支持完全的写后读取一致

  • 3.4.4.1. 写后立即读取将返回所写数据

  • 3.4.4.2. 操作系统还采用各种锁定策略来管理对一个文件的并发写入尝试

3.5. 网络附属存储

  • 3.5.1. 网络附属存储(Network-Attached Storage,NAS)系统通过网络为客户提供一个文件存储系统

  • 3.5.2. NAS是一种普遍的服务器解决方案,它们通常带有内置的专用NAS接口硬件

  • 3.5.3. 存储虚拟化也有很大的优势,包括冗余备份、可靠性、对资源的精细控制、为大型虚拟卷在多个磁盘上建立存储池,以及在多台机器上共享文件

  • 3.5.4. 替代方案是存储区域网络(Storage Area Network,SAN),但SAN系统提供块级访问,而没有文件系统的抽象

3.6. 云文件系统服务

  • 3.6.1. 云文件系统服务提供一个完全托管的文件系统,用于多个云虚拟机和应用程序,可能包括云环境之外的客户端

  • 3.6.2. 云文件系统不应该与连接到虚拟机的标准存储(一般来说,是由虚拟机操作系统管理的带有文件系统的块存储)相混淆

  • 3.6.3. 云文件系统的行为很像NAS解决方案,但网络、管理磁盘集群、故障和配置的细节完全由云供应商处理

  • 3.6.4. 亚马逊弹性文件系统(Elastic File System,EFS)

  • 3.6.4.1. 存储是通过NFS 4协议公开的,NAS系统也使用这种协议

  • 3.6.4.2. EFS提供自动扩展和按存储量付费的定价,不需要高级存储预订

4. 块存储

4.1. 从根本上说,块存储是由固态硬盘和磁盘提供的原始存储类型

4.2. 在云中,虚拟化的块存储是虚拟机的标准

  • 4.2.1. 块存储的抽象允许对存储的大小、可扩展性和数据的持久性进行精细的控制,这超过了原始磁盘所提供的

  • 4.2.2. 块存储仍然是云虚拟机上操作系统启动磁盘的默认选项

4.3. 一个块是磁盘支持的最小的可寻址数据单位

  • 4.3.1. 在旧的磁盘上,这通常是512字节的可用数据,但目前大多数的磁盘已经增长到4096字节,使得写入的精细程度降低,但大大减少了管理块的开销

  • 4.3.2. 块通常还包含用于错误检测/纠正和其他元数据的额外存储位

4.4. 固态硬盘上的块之间可能会出现寻道时间,但这与磁盘轨道的寻道时间相比,是微不足道的

4.5. 块存储应用程序

  • 4.5.1. 事务数据库系统通常在块级访问磁盘,以布局数据获得最佳性能

  • 4.5.2. 对于面向行的数据库来说,这最初意味着数据行是作为连续的数据流写入的

  • 4.5.3. 块设备的格式化与直接在物理磁盘上的格式化很相似,但存储通常是虚拟化的

4.6. RAID

  • 4.6.1. RAID是独立磁盘冗余阵列

  • 4.6.2. RAID同时控制多个磁盘,以提高数据的耐久性、增强性能,并结合多个驱动器的容量

  • 4.6.3. 一个阵列在操作系统中可以显示为一个单一的块设备

4.7. 存储区域网络

  • 4.7.1. 存储区域网络系统通过网络提供虚拟化的块存储设备,通常来自一个存储池

  • 4.7.2. SAN的抽象可以允许细粒度的存储扩展,并提高性能、可用性和耐久性

4.8. 云虚拟化块存储

  • 4.8.1. 云虚拟化块存储解决方案与SAN类似,但云使工程师无须处理SAN集群和网络细节

  • 4.8.2. 亚马逊弹性块存储(Elastic Block Store,EBS)

  • 4.8.2.1. EBS的性能指标是以IOPS和吞吐量(传输速度)给出的

  • 4.8.2.2. 性能较高的EBS存储层由固态硬盘支持,而由磁盘支持的存储层提供较低的IOPS,但每GB的成本较低

4.9. 本地实例卷

  • 4.9.1. 云提供商还提供了物理连接到运行虚拟机的主机服务器上的块存储卷

  • 4.9.2. 存储卷的成本通常很低(例如亚马逊EC2实例存储,其费用包含在虚拟机的价格中)并提供低延迟和高IOPS

  • 4.9.3. 实例存储卷的行为本质上就像一个物理连接到数据中心的服务器上的磁盘

  • 4.9.3.1. 一个关键的区别是,当一个虚拟机关闭或被删除时,本地连接的磁盘的内容就会丢失,无论这个事件是否由用户有意的行为引起

  • 4.9.3.2. 新的虚拟机不能读取属于不同客户的磁盘内容

  • 4.9.4. 本地连接的磁盘不支持EBS等虚拟化存储服务所提供的高级虚拟化功能

  • 4.9.4.1. 本地连接的磁盘没有被复制,所以即使主机虚拟机继续运行,物理磁盘故障也会丢失或损坏数据

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

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

相关文章

2024.10.24 鲜花

多次查询给定集合是否存在任一给定子集多次查询给定集合是否存在任一给定子集Re:End of a Dream先考虑经典例题 DZY Loves Chinese II 考虑其做法:随机赋值非树边,用返祖边来平衡使其权值为 \(0\),线性基维护。 考虑扩展,发现集合中并不存在一个唯一元素用来平衡,考虑在每…

指令

带v-的特殊属性即为指令,常见的指令有v-if,v-show,v-html,v-text,v-slot,v-bind,v-on,v-model等等,也可自定义指令。一个指令的任务是在其表达式的值变化时响应式地更新 DOM。除了name为必须外,其他的都可以没有,也可以有,修饰符可以有多个; v-focus v-aa.bb v-aa:aa.b…

温故知新,基于播客形式学习英语之EnglishPod 365, Elementary初级C集合(音频、原文、讲解)

简介 Enishpod是一家公司叫做Praxis Language推出的收费讲座,相比较ESLPod, EnishPod为常速。Enishpod极具趣味性,两位主持人Marco和Amira的讲解很生动幽默,完全有别于新概念类型听力的乏味。同时,Enishpod分了不同的难度级别,基础较差可以先选择B级和C级。 Elementary - …

网课视频课程下载神器,学无止下载器,快过期的课程有救了!

有多少小伙伴像我一样,准备在假期好好学点兴趣以内的东西,结果发现花费好几百块买的课居然过期了打开之后课程已经过期,无法观看了(网易云课堂购买的课程过期后无法观看了。。。)又想学习,又不想再浪费钱,该怎么办呢?一顿操作猛如虎,费了半天功夫装了X猴,装了各种插件…

手把手教你如何下载智慧职教(职教云)视频课程课件资料

前言:很多同学都想知道智慧职教(职教云)中课程视频资料怎么下载,但是智慧职教中某个课程的目录中展示的视频和资料是不提供直接下载方式的,所以下面就教大家如何用学无止下载器下载目录中展示的视频资料,包括MP4,PPT和PDF。 一、电脑登录智慧职教网页版 网页版智智慧职教…

手把手教你如何下载知到智慧树视频课程课件资料

前言:很多同学都想知道知到智慧树课程中的课件资料怎么下载,但是知到智慧树中某个课程的目录中展示的课件有时候是不提供直接下载方式的,所以下面就教大家如何下载知到智慧树目录中展示的视频和课件资料,包括PPT和PDF。 提示:操作需要用到Windows电脑,Mac还不支持 一、电…

手把手教你如何下载超星学习通视频课程课件资料

前言:很多同学都想知道超星学习通中课程资料怎么下载,但是超星学习通中某个课程的目录中展示的资料是不提供直接下载方式的,所以下面就教大家如何下载超星学习通目录中展示的视频课件资料,包括PPT和PDF。 一、电脑登录超星学习通网页版,复制课程链接【https://i.chaoxing.…

学堂在线视频课件课程下载工具,如何在电脑端下载学堂在线视频课程课件资料PDF,PPT到本地?

一. 安装学堂在线课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/xuetangx_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无…

爱课程视频课件课程下载工具,如何在电脑端下载爱课程视频课程课件资料PDF,PPT到本地?

一. 安装爱课程视频课件下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/icourses_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学…

v4l2 test driver: vimc解析

v4l2 test driver: vimc解析 前言 v4l2驱动框架分为:控制流+数据流,vimc是一个很好学习这两点的驱动; vimc不需要硬件支持,通过软件模拟了:支持isp处理的sensor + csi(虚线代表可以通过media ctl修改topology) 控制流体现在:topology的修改上; 数据流体现在:buffer的流…

知到智慧树视频课件课程下载工具,如何在电脑端下载知到智慧树视频课程课件资料PDF,PPT到本地?

一. 安装知到智慧树课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/zhihuishu_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学…

MHBlog项目部署记录

本篇随笔记录了在学习完SGBlog这个项目之后将这个项目作为我第一个完成的项目部署到云服务器的过程.虽说之前有了解并且看过相关的视频教学,但是第一次实践还是出现了很多问题选择服务器 服务器我在这里选择的是阿里云的云服务器ECS,为什么要选择阿里云呢? 因为我的OSS也是阿里…