早期的磁盘是一个大家伙,但容量却非常小,这就好像最早的计算机一样。世界上第一个磁盘是IBM于1956年发明的,当时这块磁盘比现在对开门的冰箱还要大。虽然这个存储的体积非常之大,但其容量却小的可怜。这么大一个大家伙,它的容量仅仅才有5MB左右。

图1 世界上第一块磁盘

由于其容量太小了,因此一个磁盘通常也就只能提供给一个计算机使用。这就是所谓的DAS存储。DAS的全称为Direct-attached storage,也就是直接连接存储。也就是计算机的存储后面通过线缆直接连接存储设备。具体示意图如图2所示。

图2 DAS存储架构

由于设备本身体积较大,且线缆长度有限制,因此DAS存储最大的问题就是在数据中心中太过于分散。每个存储都跟在计算节点后面,计算节点在哪,存储就在那。这给存储设备的管理带来的巨大的挑战。

图3 数据中心中的DAS存储

如图3所示,可能在数据中心的每一层楼都有存储设备。甚至,存储设备会分散在每层楼的不同区域。因为业务量是在不断增加的,存储设备自然也会跟着增加,但是却无法保证相同业务的存储设备集中在同一个区域

随着磁盘技术的发展,磁盘的体积越来越小,容量却越来越大(希捷16TB的硬盘已经上市,容量是第一块硬盘的几百万倍)。体积减小之后,一些企业将这些磁盘被整合在一个大型的设备当中,形成存储系统。存储系统最大的特点是除了存储数据之外有很多附加特性,比如RAID或者数据保护等等,通过附加的软件特性保证了存储系统的可靠性和可用性。

由于存储设备的巨大容量(一个存储系统通常能够支持数千块硬盘,PB的容量),通常可以满足数十台,甚至数百台计算服务器对空间的使用。但是,通常业务所需要的存储空间无法准确预测,因此经过一段时间后有些计算节点的空间使用率会非常高,而有些则非常低。如同图4所示。

图4 存储系统空间使用情况

这时,管理员就需要根据实际使用情况对存储容量做动态的调整。比如使用率低的需要做缩容操作,而使用率高的则需要做扩容操作,避免存储资源耗尽的情况产生。

这种操作非常繁琐,而且也很容易出现问题。于是自动精简配置技术就出现了。所谓自动精简配置就是简化存储系统管理员对存储容量的管理。但是该技术并非存储系统管理的特性,而是存储系统数据的特性。

传统的磁盘空间管理策略是预分配的空间管理策略。也就是说,在计算节点看到的存储空间就是其在存储系统分配的实际空间。计算节点有没有使用该存储空间,或者使用了多大比例都无关。举个例子,如果存储管理员为计算机节点划分了1TB的空间,那么在存储系统就会划分出去1TB的空间,此空间将不能被其它计算节点使用。

图5 传统存储空间管理

自动精简配置是另外一种存储空间管理技术,它并不会马上分配划分的存储空间,而是延迟分配。也就是用户使用多少空间,那么存储系统就为该存储设备分配多少空间。举个例子,比如存储管理员划分了1TB的空间给计算节点,但此时该计算节点只使用了1GB的空间,那么虽然在计算节点上可以看到1TB的存储空间,但在存储系统中实际只消耗1GB的空间。如图所示,三个不同的存储设备,虽然都分配了很大的空间,但是空间不会马上被占用,而是根据计算节点的实际使用而定的。

图6 精简存储池

通过上图估计大家也看出了精简配置的原理。其实精简配置的原理非常简单,它将存储系统的存储资源池划分为非常小粒度的单元,当计算节点存储数据的时候才会分配该单元。也就是用户看到的是一个逻辑空间,而非物理空间。

我们再详细介绍一下。我们知道磁盘的空间其实就是一个线性空间,比如一个1TB的磁盘,其空间就是从0到1TB的地址,就像一个非常大的数组一样。我们可以将磁盘空间切割为大小相等的块,比如8KB,然后以该粒度进行管理。

当从存储系统划分存储空间给计算节点时,此时给用户看到的是一个逻辑空间,也就是该空间并不会占用实际的存储资源。当用户访问该存储设备时,存储系统会根据记录确定是否有对应的物理空间,如果存在则对该物理空间进行访问,否则分配物理空间。

图7 自动精简的原理

鉴于上述思路,在实现的时候首先要有一个对磁盘空间进行管理的单元,该单元用于标记磁盘逻辑空间是否有对应的物理空间。另外要有对存储资源池资源进行管理的单元,这里要记录那些存储空间已经被使用,避免重复分配。

存储池的基本原理是简单的,但实现起来却并非那么简单,主要是需要考虑各种异常情况,实现容错处理。今天我们主要介绍了精简配置的概念和基本原理,更多细节本号后续会更加深入的介绍。

ieee5节点系统图_存储系统的的关键技术之自精简技术相关推荐

  1. ieee33节点系统图_【学术聚焦】考虑信息耦合的电气综合能源系统韧性优化方法...

    作者/单位: 陈健1,林咨良1,赵浩然1,吴秋伟1,2,宋关羽3 1.电网智能化调度与控制教育部重点实验室(山东大学) 2.丹麦科技大学电气工程系电力与能源中心 3.智能电网教育部重点实验室(天津大学 ...

  2. 阿里云数据库开源发布:PolarDB三节点高可用的功能特性和关键技术

    简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云数据库技术专家孟勃荣 带来了主题为<PolarDB 三节点高可用>的精彩演讲.三节点高可用功能主要为 PolarDB ...

  3. 怎么控制节点启动_最全的软启动器接线图文

    电机软启动器的主接线图 电机软启动器的主接线方法: 1.在线型: 所有软启动器的控制器都有电动机过载保护,当软启动器在线运行时软启动器的控制器能对电机进行过载保护,不要加装热过载继电器.由于经过可控硅 ...

  4. 大数据治理工程师_大数据治理关键技术解析(转自EAWorld)

    在企业数据建设过程中,大数据治理受到越来越多的重视.从企业数据资产管理和提升数据质量,到自服务和智能化的数据应用,大数据治理的内容在不断地发展和完善,其落地实施的过程中会遇到各种各样的难题和挑战.本篇 ...

  5. 钻井缸套排量_中国石化顺北特深层及川渝页岩气钻完井关键技术集成:碳酸盐岩酸压技术、优快钻井技术、页岩气强化体积改造技术、高温高压窄间隙固井技术...

    点击蓝字关注"油媒方" 近年来,中国石化围绕顺北.川渝等重点探区,通过技术攻关与现场实践,初步形成了顺北8000-9000m特深层钻井完井关键技术.川渝页岩气钻井完井关键技术,支撑 ...

  6. 大表与大表join数据倾斜_技术分享|大数据技术初探之Spark数据倾斜调优

    侯亚南 数据技术处 支宸啸 数据技术处 在大数据计算中,我们可能会遇到一个很棘手的问题--数据倾斜,此时spark任务的性能会比预期要差很多:绝大多数task都很快执行完成,但个别task执行极慢或者 ...

  7. 软件技术实习_当您还在学校时,如何获得一流的技术实习机会和技术工作

    软件技术实习 by Michael Deng 邓小平 当您还在学校时,如何获得一流的技术实习机会和技术工作 (How to land a top-notch tech internship - and ...

  8. python爬虫架构师之路_一位资深 架构师大牛给予Java技术提升的学习路线建议

    一位资深 架构师大牛给予Java技术提升的学习路线建议 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择. 架构师在一家公司有多重要.优秀架构师需要具备怎样的素 ...

  9. 遍历字段_以字段覆盖标准指导的高效测试生成技术

    1. 介绍 众所周知,测试本质上是不完整的,不能保证功能的正确性.因此,用有限的测试用例集覆盖尽可能多的软件功能至关重要.有人提出了不同的覆盖标准,即对一组测试套件应如何使用软件的约束.这些约束在许多 ...

最新文章

  1. 贵阳市全国首部大数据立法《条例》5月起正式实施
  2. mysql cluster自动安装_MySQL Cluster 安装
  3. 剑指Offer #03 从尾到头打印链表(递归)
  4. VHDL其他顺序语句
  5. Goodbye 2020,Welcome 2021 | 沉淀 2021
  6. 孙叫兽进阶之路之如何进行情绪管理
  7. 数据库连接和乱码问题
  8. linux源码acl,Linux自主访问控制机制模块详细分析之posix_acl.c核心代码注释与acl.c文件介绍...
  9. 面向对象有哪几种常用的设计模式,六大设计原则是什么
  10. Xception: Deep Learning with Depthwise Separable Convolutions
  11. 函数, lambda表达式
  12. Unity3D脚本中创建的gameobject如何删除
  13. 软件测试面试题整理(二)之测试用例集
  14. hihocoder题目选讲
  15. 苹果iOS APP签名教程
  16. 信息系统项目管理师考前10天极限冲刺+答案(七)
  17. 20000字干货,数据分析 Pandas 75个高频操作都在这儿了!
  18. IOS电影播放器—MPMoviePlayerController
  19. 网络传输粘包解包处理
  20. Travis CI 简介

热门文章

  1. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化
  2. 定时任务@Scheduled(cron = “* * * * * *?“) 表达式详解
  3. C++ 实验3 类和对象
  4. mysql 根据总分排名
  5. 【转】重装Ubuntu时如何保留/home分区中的数据
  6. 【USACO】回文平方数
  7. 最近使用mysql遇到的几个问题
  8. 解决oracle11g连接失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
  9. 第十一节:Springboot整合log4j2日志
  10. 在线文本按列截取工具