东数西存场景的探索与实践
“东数西算”是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部,对优化数据中心建设布局,提升国家整体算力水平,促进绿色发展,扩大有效投资,具有重要意义。
在实际应用过程中,冷数据占数据总量的比例约80%,对冷数据来说,主要的需求是存储,计算并不是常态,“东数西算”实际上是“东数西存”,在西部主要是数据存储,偶尔有计算需求。
东数西存存在几个问题,首先是长距离数据传输的各种不确定性。距离越远,网络延迟越高、网络质量越差,给用户的体验就会越差。因此,对于东部用户而言,西部资源池位置偏远,数据的访问体验比较差。
为了解决这个问题,可以在靠近用户的地方建立资源池,这样能解决数据访问体验差的问题,但是带来了新的问题:用户在存取数据之前需要先检索数据存储位置,这就需要一个集中式的平台,提供统一的检索能力,当用户需要访问数据时,先从平台获得存取位置,然后再向目的资源池发起读写请求。显然,这不仅会增加延迟损耗,也增加了平台维护成本。
其次就是资源竞争导致的体验问题。东部业务场景比较复杂,大部分数据存储在西部几个资源池中,大量请求同时访问会出现资源竞争,进而出现网络丢包、访问延迟等不可控因素,对于有些金融、医疗等对数据安全性与精密性较高的行业,这种不可控因素是不能容忍的。
为了解决以上问题,并完成东数西存场景的探索与落地,有人提出了一个新的概念叫做“内容存储网络”(Content Storage Network,简称CSN)。
内容存储网络(CSN)是与内容分发网络(CDN)相对应的概念。CDN是在终端和中心之间的缓存,在让终端更快获取数据的同时,减轻中心的压力。如果说,CDN是一种为下而生的网络服务,那么,CSN就是为上而生的网络服务,帮助用户总是能够就近存储数据,同时可以从任何资源池读到数据,而且保证强一致性,目前已经实现了CSN并进行了大规模商用的产品有OOS。
CSN构建在现有网络基础、运营商专线之上的存储网络,依靠部署在全国各地的资源池,通过底层文件系统、分布式存储引擎,上层协议,负载调度、管理监控平台等功能模块,使用户就近写入的数据可以即时在任何一个资源池读到。对用户实现强一致性、低延迟和高效调度,对运营商实现优化资源和节约成本。CSN的关键技术主要是广域网下的全局元数据环技术。
全局元数据环服务,通过将全国资源池连通成为一个存储网络,充分利用了全国各地的资源池,在保证性能和安全的情况下,大幅提升了资源统一调配能力、资源池利用率,产生了较大的经济效益。全局元数据作为CSN的基础核心组件,为整个云存储网络提供了统一的逻辑视图,解决了云存储网络在全国范围内部署时所面临的各类技术难题,如存储资源的统一调度、数据的跨地域访问、数据可靠性降低、读写性能下降等难题;通过将全局元数据域划分为多个元数据域的方式,在保留了全局元数据统一调度能力的情况下,提供了数据就近访问的能力,故障隔离的能力,从而大幅提升了数据读写性能、数据可靠性和服务可用性;使所有的读写请求都会就近访问离用户最近的机房,数据在本地直接返还给用户,或者通过专网从其他地方拉过来给用户,比走互联网要快,因此可以获得最好的延迟。
CSN的另一个特性是虚拟存储网络。在CSN中,数据位置可以就近写入,也可以指定位置写入,如果选择就近写入终端就会选择就近,对于使用者而言不需要知道它在哪里;有的政企类客户有强烈的属地要求,采用指定位置可以满足。客户可以使用默认的公共资源池,也可以建立自己的专属资源池,CSN通过这种方法将虚拟资源池在数据层面打通形成一张虚拟网络。
以CSN为基础的东数西存系统中,全量数据可以放在位于西部成本较低的资源池,需要经常访问但存储需求没那么大的热数据可以放在位于东部离业务场景较近的资源池,各个资源池可以通过广域网连接起来,用户可以通过广域网随时随地接入东数西存系统的服务。用户读取热数据总是就近读写,偶尔跨资源池读取冷数据的部分也不走公网,而是专网,性能得到最大保障。无论是何地的用户都可以在保证高可用高性能的前提下最大化东数西存的成本优势。
无论用户在什么位置,元数据存储在什么位置,CSN都可以将用户写入的数据自动找到到最近的资源池与成本最低的资源池,并通过自定义的策略进行冷热分层,智能分配到适合的资源池。用户可以依靠分布式元数据环随时随地访问任一资源池。
CSN为东数西存提供了完整的支撑能力,解决了之前提到的两大问题。CSN的全局元数据环支持就近读写、全网数据层面打通,再搭配上CSN本身遍布全国的资源池,可以让大部分传输在短距离解决,后续再由系统自动把冷数据存储到远距离的西部机房,偶尔远距离访问时使用专线,于是解决了长途传输的问题。长途传输问题解决后,很大一部分资源竞争问题也解决了。另外,CSN的虚拟存储网络特性让用户可以灵活定制元数据、数据的位置,如果CSN运维人员发现某些资源池有拥挤风险,会提醒用户暂时不要访问这些资源池。如果客户有些业务非常担心资源竞争,也可以把这部分数据放在专属资源池,解决了资源竞争问题。
虽然CSN已经能实现“东数西存”的大部分要求,但还可以进一步设想一下:就像打通内部各个资源池那样,CSN也可以通过全局元数据环和网关(Gateway)打通多个云服务商的存储空间,还可以打通客户本地存储空间,实现跨本地、跨多云访问数据。这样CSN就构建起了“混合多云”。
跨本地与云端需要存储资源盘活系统HBlock,它本质上是一款分布式块存储管理软件,通过标准 iSCSI 协议提供块存储服务,将企业闲置的通用服务器及其存储资源转换成高性能的虚拟存储阵列,承载企业业务。
存储资源盘活系统HBlock具有以下五大特征:高可用、高性能、低成本、广泛兼容及数据安全。
- 在服务的高可用方面,实现了多路径的“一主多备”,一个Target宕机之后,HBlock会智能选择备用的Target,调度的时间是可以进行配制的,默认时间为6秒钟。
- 在数据的可靠性方面,单存储卷可以灵活的选择EC纠删码或者副本的方式实现数据的冗余以及数据的不丢失。
- 在绝对指标层面,在实验室测的全SSD环境下,单卷IOPS可达15万IOPS,延迟可以低于200微秒。
- 在规模层面,HBlock软件设计理论值为无上限,但根据过往的实践,一般建议集群的规模上限为1024个节点。
- 在成本方面,因为HBlock本身的售卖方式为纯软件售卖,可以部署在通用硬件上。所以整体上HBlock的TCO会更低。同时,因其安装方便,运维直观,相关的人力成本、时间成本都会更低。
- 在兼容方面,HBlock为用户态设计的软件,不切入内核,所以HBlock不挑底层的硬件与OS。另外,Hblock还可以无缝接入CSN,作为本地与云端存储之间的桥梁,将全量数据自动同步到CSN,本地仅保留热数据以节省本地存储空间,或者保留全量数据以保障本地I/O性能,实现混合云存储。
- 在数据安全方面,用户在添加Target 连接时,可以选择启用CHAP认证。在数据的传输过程中,用户也可以选择性的开启IPSec隧道,保证传输数据的加密。
在本地存储场景中,很多客户磁盘利用率都非常低,客户也不希望投入额外的成本购入新的服务器来搭建存储集群。同时,叠加了低碳政策的要求,利用了HBlock的特点,不仅充分利用了空闲的存储资源,也充分的利用了空闲的计算资源和内存资源,将空闲的服务器整合成了高性能的虚拟存储阵列,满足了客户的需求。
在底层服务器性能优异、网络带宽足够的情况下,HBlock是可以替代传统SAN存储的。HBlock支持VMware、OpenStack、Kubernetes、KVM等主流虚拟化平台。在访问接口层,上层平台将通过API的方式来管理HBlock集群,实现存储卷的创建、删除以及HBlock集群的监控等目的,各个虚拟机通过iSCSI协议灵活的挂接存储卷,最终实现一套系统、统一存储的建设目标。
对于需要存储海量数据的客户,可以通过HBlock将本地应用与云端存储无缝连接,将数据同步到云端,实现存储空间的按需使用,弹性扩展。此外,HBlock简化了混合云存储环境中的数据管理。通过标准iSCSI协议为上层应用提供虚拟Target和逻辑卷,除了可以部署在本地,还可以部署在私有云或公有云上。
这样一来,基于CSN搭建的东数西存系统补全了最后一块拼图。
对于需要频繁访问的热数据,或对存储地域有特殊需求的场景,可以把这部分数据存在本地存储或本省资源池,其余数据存在西部资源池。对于资源池的选择,除了CSN本身分布在全国各地的机房外,用户还可以选择其他公有云存储产品,或者把自己已经存储在其他公有云的数据接入进来。CSN的就近分配和Hblock的本地存储功能可以让用户大部分时间都享受最低的延迟,对于出差、多地办公、访问冷数据的远距离访问场景,CSN可以通过专网拉过来给用户,避免走互联网,同样能获得最好的体验。
相关文章:
东数西存场景的探索与实践
“东数西算”是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部,对优化数据中心建设布局,提升国家整体算力水平,促进绿色发展,扩大有效投资,具有重要意义。 在实…...
[图神经网络]PyTorch简单实现一个GCN
Pytorch自带一个PyG的图神经网络库,和构建卷积神经网络类似。不同于卷积神经网络仅需重构__init__( )和forward( )两个函数,PyTorch必须额外重构propagate( )和message( )函数。 一、环境构建 ①安装torch_geometric包。 pip install torch_geometric …...

Elasticsearch(黑马)
初识elasticsearch . 安装elasticsearch 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的…...
oracle数据库调整字段类型
oracle数据库更改字段类型比较墨迹,因为如果该字段有值,是不允许直接更改字段类型的。另外oralce不支持在指定的某个字段后面新增一个字段,但是mysql数据可以向指定的字段后面新增一个字段。 mysql向指定字段后面新增一个字段: al…...

面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码)
面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 目录 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 1.面部表情识别方法 2.面部表情识别数据集 (1)表情识别数据集说明 (2&…...

赛效:如何在线给图片加水印
学会给图片加水印是一个非常实用的技能,可以让你的图片更具保护性和个性化。说到加水印,很多人不知道怎么操作。其实,给图片加水印非常简单,不用下载任何程序,在线就能完成。今天,我将介绍如何使用改图宝在…...

动力节点杜老师Vue笔记——Vue程序初体验
一、Vue程序初体验 我们可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,这些对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使…...

ajax上传图片存入到指定的文件夹并回显
html代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"js/jquery-2.1.0.js"></script> </head> <body> <form…...
cesium加载cesiumlab切的影像切片和标准TMS瓦片的区别
1.加载cesiumlab切的影像 var labImg viewer.scene.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({url:http://192.168.1.25:8080/DOMtms/{z}/{x}/{y}.png,fileExtension : "png"})); 2.标准TMS瓦片 var labImg viewer.scene.im…...

第二周P9-P22
文章目录第三章 系统总线3.1、总线的基本概念一、为什么要用总线二、什么是总线三、总线上信息的传送四、总线结构的计算机举例1、单总线结构框图2、面向CPU的双总线结构框图3、以存储器为中心的双总线结构图3.2、总线的分类1、片内总线2、系统总线3、通信走线3.3、总线特性及性…...
java反射
文章目录何为反射?反射的应用场景了解么?谈谈反射机制的优缺点优点缺点反射实战获取 Class 对象的四种方式1. 知道具体类的情况下可以使用TargetObject.class:2. 通过 Class.forName()传入类的全路径获取:3. 通过对象实例instance…...
307 Temporary Redirect 解决办法(临时重定向)
背景:java后台服务请求python服务端 java服务报错:Unexpected response status:307 python服务端报错:307 Temporary Redirect 解决:查了好久找不到什么原因,请求路径问题 请求url:http//:w…...

SpringBoot案例
SpringBoot案例5,案例5.1 创建工程5.2 代码拷贝5.3 配置文件5.4 静态资源目标 基于SpringBoot的完成SSM整合项目开发 5,案例 SpringBoot 到这就已经学习完毕,接下来我们将学习 SSM 时做的三大框架整合的案例用 SpringBoot 来实现一下。我们完…...
Android 10.0 系统framework发送悬浮通知的流程分析
1.前言 在android10.0rom定制化开发中,在原生系统的systemui中,状态栏通知,和闹钟,wifi等悬浮通知也是很重要的, 悬浮通知也是系统通知的一种,也是在frameworks中发送出来的通知,接下来就分析下10.0中的悬浮通知的发送 流程,然后就可以实现自己自定义悬浮通知的相关功…...

傅里叶谱方法-傅里叶谱方法求解二维浅水方程组和二维粘性 Burgers 方程及其Matlab程序实现
3.3.2 二维浅水方程组 二维浅水方程组是描述水波运动的基本方程之一。它主要用于描述近岸浅水区域内的波浪、潮汐等水动力学现象。这个方程组由两个偏微分方程组成,一个是质量守恒方程,另一个是动量守恒方程。浅水方程描述了具有自由表面、密度均匀、深…...

算法训练营 - 广度优先BFS
目录 从层序遍历开始 N 叉树的层序遍历 经典BFS最短路模板 经典C queue 数组模拟队列 打印路径 示例1.bfs查找所有连接方块 Cqueue版 数组模拟队列 示例2.从多个位置同时开始BFS 示例3.抽象最短路类(作图关键) 示例4.跨过障碍的最短路 从层序遍历…...
判断两个字符串是否匹配(1个通配符代表一个字符)
目录 判断两个字符串是否匹配(1个通配符代表一个字符) 程序设计 程序分析...

用css画一个csdn程序猿
效果如下: 头部 我们先来拆解一下,程序猿的结构 两只耳朵和头是圆形组成的,耳朵内的红色部分也是圆形 先画头部,利用圆角实现头部形状 借助工具来快速实现圆角效果 https://9elements.github.io/fancy-border-radius/ <div…...

Java多线程编程—wait/notify机制
文章目录1. 不使用wait/notify机制通信的缺点2. 什么是wait/notify机制3. wait/notify机制原理4. wait/notify方法的基本用法5. 线程状态的切换6. interrupt()遇到方法wait()7. notify/notifyAll方法8. wait(long)介绍9. 生产者/消费者模式10. 管道机制11. 利用wait/notify实现…...
Three.js教程:旋转动画、requestAnimationFrame周期性渲染
推荐:将NSDT场景编辑器加入你3D工具链其他工具系列:NSDT简石数字孪生基于WebGL技术开发在线游戏、商品展示、室内漫游往往都会涉及到动画,初步了解three.js可以做什么,深入讲解three.js动画之前,本节课先制作一个简单的…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...