东数西存场景的探索与实践
“东数西算”是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部,对优化数据中心建设布局,提升国家整体算力水平,促进绿色发展,扩大有效投资,具有重要意义。
在实际应用过程中,冷数据占数据总量的比例约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动画之前,本节课先制作一个简单的…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
