ToB企服应用市场:ToB评测及商务社交产业平台
标题:
读数据工程之道:设计和构建结实的数据系统18数据存储系统(上)
[打印本页]
作者:
何小豆儿在此
时间:
2024-10-24 09:36
标题:
读数据工程之道:设计和构建结实的数据系统18数据存储系统(上)
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. 本地连接的磁盘没有被复制,以是即使主机假造机继续运行,物理磁盘故障也会丢失或损坏数据
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4