云存储技术体系

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 云存储涉及的知识面很广,既涉及云存储服务端的技术,又涉及终端设备应用开发相关的技术。本文章关注云存储系统服务端技术。 云存储技术体系结构分为四层:硬件层、单机存储层、分布式存储层、存储访问层,下面分别介绍。

云存储涉及的知识面很广,既涉及云存储服务端的技术,又涉及终端设备应用开发相关的技术。本文章关注云存储系统服务端技术。

云存储技术体系结构分为四层:硬件层、单机存储层、分布式存储层、存储访问层,下面分别介绍。

硬件层

硬件层包括存储、网络以及CPU。在存储方面,除了传统的SAS或者SATA磁盘,SSD技术发展迅猛;在网络方面,千兆网卡已经普及,万兆网卡离我们越来越近,Google这样的互联网巨头已经开始会试通过软件自定义交换机;在CPU层面,IntelX86架构成为主流,低功耗逐步成为研究热点。为了降低成本和能耗,云存储服务提供商往往会定制服务器,甚至自建数据中心,需要考虑电源、冷却、PUE(Power Usage Eficiency,能源使用效率)等各种问题。

主机存储层

云存储系统的底层大多为定制的Linux操作系统,服务提供商需要在文件系统、网络协议以及CPU和内存使用上对Linux系统进行大量的定制化工作。单机存储系统大致分为两类:传统的关系数据库以及NoSQL存储系统。关系数据库支持二维的关系模式,并提供关系数据库查询语言SQL,支持事务,索引等操作,使用比较方便。

NoSQL存储系统则百花齐故,常见的NoSQL系统包括仅支持根据主键进行CRUD(Create,Read,Update,Delete)操作的键值(Key-Value)存储系统,也有基于传统的B树或者LSM树(Log-Structured Merge Tree)的存储系统。

分布式存储层

分布式存储层是云存储技术的核心,也是最难实现的部分。分布式存储系统需要能够将数据均匀地分散到多个存储节点上,另外,为了保证高可靠性和高可用性,需要将数据复制到多个存储节点并保证一致性。当存储节点出现故障时,需要能够自动检测到节点故障并将服务迁移到其他正常工作的节点。分布式存储层依赖一些基础服务,常见的包括分布式锁服务(例如Google Chubby系统),以及集群资源管理服务(例如Google Borg系统)。另外,分布式存储层包含分布式缓存以及服务总线,分布式缓存用于提高访问性能,服务总线用于云平台应用逻辑解耦。云存储系统既存储无结构化数据,又存储半结构化以及结构化数据,分别对应分布式文件系统、分布式表格系统以及分布式数器库,面CDN以及P2P技术将云存储系统中的热点数据缓存到离用户较近的边缘节点或者临近的其他用户的客户端,从而起到访问加速的作用,并且节省云存储服务提供商的网络带宽成本。

存储访问层

云存储系统通过存储访问层被个人用户的终端设备直接访问,或者被云存储平台中托管的应用程序访问。云存储访问层的功能包括:Web服务、负载均衡、安全服务以及计费。云存储系统对外提供统一的访问接口,常见的接口是REST或者SOAP这样的Web服务,需要通过Apache或者Nginx这样的Web服务器进行协议转化,Web服务器端经常使用LVS(Linux Vitual Server)、HaProxy这样的软件或者专业的负载均衡设备(如F5负载均衡器)进行负载均衡。存储访问层需要提供安全和计费服务、安全服务包括身份认证、访问授权、综合防护、安全审计、Ddos攻击预防/防火墙等。

用户的应用程序可能会托管在应用运行平台中,应用场景大致分为三类:

  • 弹性计算平台。典型的弹性计算平台为Amazon EC2以及Microsoft的各种虚拟机实例,底层涉及的技术包括虚拟机、自动伸缩。弹性计算平台通过虚拟机自身的机制来保证云安全,比如虚拟机安全隔离、虚拟机防火墙。基于虚拟机的弹性计算平台的优势在于兼容性,支持各种编程语言和平台。
  • 云引擎。典型的云引擎为Google AppEngine,底层设计的涉及的技术主要是应用容器(比如Java Tomcat、Jetty,Python Runtime)以及应用容器自动伸缩。当应用的负载过高时,自动增加应用的运行容器数;反之,自动减少应用的运行容器数。云引擎通过应用容器的沙箱机制来保证安全性,AppEngine的沙箱环境通过限制每个请求的执行时间来防止多租户之间干扰,另外,限制应用程序对网络、文件进行一些危险操作。云引擎与云存储服务提供商结合较好,但是对于每种不同的编程语言都需要定制相应的应用容器,对编程语言和平台支持比较有限。
  • 分布式计算。云平台往往会支持分布式计算,通过后台的计算实例执行耗时较长的计算任务。MapReduce是最为常见的分布式计算模型,云平台一般都支持开源的Hadoop MapReduce计算框架。除了MapReduce之外,还有很多针对特定应用场景的计算模型,例如MPI(Message Passing Interface)、BSP(Bulk Synchronous Parallel)等。
目录
相关文章
|
JSON API Android开发
Android bundetool 详解
Android bundetool 详解
355 0
|
9月前
|
算法 测试技术
EvalPlanner:基于“计划-执行”双阶段的大语言模型评估框架
EvalPlanner是一种创新的大语言模型(LLM)评估算法,采用计划-执行双阶段范式,生成无约束的评估计划并执行,从而提升评估的系统性和可靠性。该系统包含评估计划、计划执行模块和最终判决三个核心组件,通过自训练循环优化计划和执行过程。EvalPlanner在多个基准测试中表现出色,特别是在数据效率和泛化能力方面,为构建高效、稳健的LLM评估模型提供了新方向。
428 13
EvalPlanner:基于“计划-执行”双阶段的大语言模型评估框架
|
存储 自然语言处理 运维
服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
这里就平时经常用到的服务发现的产品进行特性的对比,总的来看,目前Consul 自身功能,和 spring cloud 对其集成的支持都相对较为完善,而且运维的复杂度较为简单,Eureka 设计上比较符合场景,但还需持续的完善。
5714 0
|
10月前
|
机器学习/深度学习 供应链 搜索推荐
优化销售预测:6种模型适用的场景与实战案例
不同行业的销售预测采用什么模型比较好?3分钟了解6种销售预测模型,以及适用行业场景。
2895 2
优化销售预测:6种模型适用的场景与实战案例
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
AI与代理IP:携手共创美好未来
在数字化浪潮中,人工智能(AI)与代理IP技术的融合正推动网络环境的智能化发展。AI凭借深度学习、自然语言处理等能力,结合代理IP的匿名性和灵活性,为网络安全、数据分析、内容分发等领域带来革命性变革。本文探讨两者协同作用,通过案例和代码展示其如何共同优化网络性能、保护隐私并提升效率,展望未来智能化、安全化的网络环境。 AI与代理IP的融合不仅提升了网络访问的效率与稳定性,还为智能风控、智能客服及全球内容分发网络(CDN)等应用提供了坚实支持。AI优化代理IP选择与调度,代理IP则保障AI应用的安全与隐私,二者相辅相成,共同推动全球化、智能化的发展趋势。
350 7
|
11月前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
184 5
|
存储 安全 数据库
阿里云最新域名注册和续费、企业邮箱、云虚拟主机收费标准与价格参考
域名注册和续费以及企业邮箱和云虚拟主机是很多用户上云第一步需要购买的产品,从2024年9月1日开始,全球域名又迎来了一波价格上调,目前阿里云的.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,不过企业新用户注册有1元购等活动。企业邮箱目前活动价540.00元/1年起,云虚拟主机独享基础增强版月付49元/1个月起,年付588元/1年起。本文为大家整理汇总了截止目前,阿里云域名注册和续费及转入收费标准、企业邮箱收费标准与活动价格、云虚拟主机最新收费标准,以供参考。
高频面试题:如何分别用三种姿势实现三个线程交替打印0到100
高频面试题:如何分别用三种姿势实现三个线程交替打印0到100
|
Java 关系型数据库 数据库连接
MyBatis-Plus整合SpringBoot及使用
务必记住,随着MyBatis-Plus版本的更新,一些具体的配置和使用方式可能会有所变动。在实际开发过程中,建议参考MyBatis-Plus的官方文档,以获取最新和详细的指导。
772 1
|
Linux API 调度
xenomai内核解析-xenomai实时线程创建流程
本文介绍了linux硬实时操作系统xenomai pthread_creta()接口的底层实现原理,解释了如何在双内核间创建和调度一个xenomai任务。本文是基于源代码的分析,提供了详细的流程和注释,同时给出了结论部分,方便读者快速了解核心内容。
454 0
xenomai内核解析-xenomai实时线程创建流程