![](http://www.ctiforum.com/uploadfile/2017/1129/20171129032857247.jpg)
什么是数据本地性(Data Locality)
VM 所需要的数据(存储)的拷贝总是存放在 VM 所在的主机。基本的出发点是:通过只访问本地主机,避免跨网络访问其他主机获取数据,从而能够提升应用本身的性能。然而,我们提出的结论是,在快速发展的更加敏捷的 IT 基础架构之下,基于更高性能的存储设备,高速网络,所谓的数据本地性的需求其实是成为了一个新的局限。
数据本地性的适用和非适用场景
总体而言,数据本地性是一个有用的特性,特别是在广域网或在互联网的环境中。比如,在一个跨数据中心站点的双活延伸集群架构下,数据本地性可以保证本地站点的应用不用跨广域网访问远程的站点,这时候,数据本地性的特性是很有必要的。
然而,不是所有场景都需要数据本地性:
- 数据本地性仅适用于读取的操作。写操作通常不具备这个特性,因为一份数据通常需要存放到不同的主机,从而支撑高可用。
- 基于 RAID 的系统需要网络访问。如果超融合系统使用纠删码去条带化数据到不同的主机(又称 RAID),那么网络访问去重新读取这些条带化后的数据是必须的。这使数据本地性也没有必要。
- 网络延迟正在持续降低。如今的交换网络比 2 年前都更快,资源消耗更小。万兆网络已经普通采用,从 10G 过渡到 25G,甚至 40G 网络,这也意味着跨网络的 IO 读取操作所带来的额外延迟可以几乎忽略不计。
DeepStorage 作为第三方机构对 Data Locality 的适用性做了具体的测试工作,结论是类似的。原文请参考:
http://www.deepstorage.net/NEW/wp-content/uploads/2017/07/Locality-paper-b.pdf
未来如何管理数据
应用和负载在扩展性和运行环境方面都变得更具流动性,不是单一和静态的。数据不会,也不应该跟某些物理资源做简单的绑定,这样的话使得 IT 在走向分布式,超融合、边缘计算或混合云场景下变得更加艰难。企业IT正走向混合云部署,拥抱云原生应用或基于容器的应用。vMotion,DRS,IaaS 和云端扩容变得更加主流的技术。
数据和应用的流动性的本质意味着,存储系统将应用和特定主机绑定的做法是相违背的。当 VM 或数据需要移动的时候,数据本地性所带来的性能的好处不复存在,相反,应用性能在迁移的过程中,会反而被本地性特性影响,性能变得不稳定和不可预料。这有点像数据一直在追着应用跑,很难想象这是一个更合适的环境。
以下是一个订单系统的 VM 部署在 vSAN 上进行的 vMotion 性能测试,测试此 VM 在没有数据本地性的情况下,对于性能的影响。可以看到,vSAN 在不考虑数据本地性的时候,不管VM在被动或主动迁移到不同物理主机的时候,都能够提供非常一致的性能表现。从业务角度看,这意味着稳定的订单接受能力,不受IT基础架构变化的影响。
![](http://www.ctiforum.com/uploadfile/2017/1129/20171129033020164.jpg)
对应于数据本地性(Data Locality),我们将 vSAN 的这个设计思路总结成“数据无处不在”(Data Ubiquity),它充分反映了当前数据和应用本身的流动性趋势,保证数据访问的一致性体验,独立于物理情况的限制。客户需要数据具备更高的可用性,更方便的稳定地运行系统。IT 管理人员从而能够更自由、灵活和敏捷地运维 IT 生产系统,不用为了某些数据的物理限制导致在运维中降低应用的稳定性和性能。
数据安全
安全是客户的重要诉求。数据本地性有时候被用来解释成保护数据的某种手段和方法,所谓“你能够知道数据在哪儿”的直白说法。再仔细一想,其实应用本身会移动,数据也经常被备份或用来灾备,真实情况是,用户其实很难保障那份数据真的存放在哪儿。所以就安全的角度去看,使用数据加密才是真正保障数据安全的解决方案,而并不是用数据本地性去套用。
HCI 交付数据无处不在
随着业务变化越来越快,IT 解决方案需要以一致甚至更敏捷的方式去响应业务的需求,去创新。IT 需要寻求更一致统一的基础架构平台去满足性能、扩展和运维各方面的需要,来避免 IT 孤岛、整合应用负载。VMware vSAN 提供了非常适合混合工作负载的 Data Ubiquity,跨云(边缘到核心到公共云),跨应用程序(传统到云本机应用程序)和跨故障域(群集到延伸群集到可用区)。