首页 > 其他分享 >云环境下的存储服务类型与技术

云环境下的存储服务类型与技术

时间:2023-06-12 10:07:45浏览次数:40  
标签:文件 存储 NAS 对象 环境 集中式 服务类型 分布式

一、存储服务的类型

存储服务的类型根据数据类型的不同,一般分为块存储、文件存储和对象存储三类。

块存储基于传统的磁盘阵列实现,将存储区域划分成固定大小的块,以卷的方式挂载到主机操作系统后,操作系统可将其格式化成文件系统,或以裸数据的方式作为数据库的存储。块存储方式不存在数据打包和解包过程,因此应用系统跟存储系统耦合程度紧密,数据访问延迟低、性能高。

文件存储指的是存储介质上存储的是目录-子目录-文件这种形式的数据结构。这种数据结构是我们自然人所能容易识别的数据,绝大部分由作为自然人的程序员所编写的各种软件程序也使用这种方式来访问文件。因此文件存储的特点是一方面可读性高,另一方面访问数据需要先遍历多层文件目录。

对象存储采用基于键值访问机制的扁平化存储架构设计,它没有多层树级文件目录。在对象存储系统中,对象是数据存储的基本单元,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象,使用简单,小IO性能好。


二、云环境下的存储技术

随着电子商务、云原生、微服务、分布式应用、DevOps等现代应用架构的流行,用户开始将越来越多的传统应用进行改造和重构,迁移到云环境。那么在云环境下有哪些存储技术可供选择使用呢?下面针对云环境提供的块存储、文件存储和对象存储三类存储服务,简单讲讲对应的存储技术。

1. 块存储

云环境的块存储技术主要包括使用集中式块存储和分布式块存储两种技术路线。

1) 集中式块存储

作为目前最流行的IaaS框架 ,OpenStack架构中有一个独立的组件叫Cinder。Cinder是OpenStack中提供存储服务的API框架,用来为后端不同的存储结构提供统一的接口。不同的块设备服务厂商在Cinder中实现其驱动支持。后端的存储可以是DAS、NAS、SAN、对象存储或者分布式文件系统。由于在云计算领域OpenStack受欢迎度非常高,因此众多存储厂商如NetAPP、IBM、 DellEMC、华为和众多开源块存储系统均提供了对Cinder的支持,这也为在云平台基础架构层使用集中式SAN存储提供了技术基础。

当用户规划在云平台下使用集中式块存储时,需要首先考虑两个方面。

第一,自己使用的云平台是不是基于OpenStack开发的,如果不是,那可能没有SAN的接口。国内的主流云平台产品大都是基于OpenStack开发的,但也存在少量的自研云平台。

第二,基于OpenStack的云平台通过使用Cinder来对接FC-SAN集中式存储,Cinder只提供框架,需要通过调用FC-SAN设备厂商提供的Driver来使用和管理。这方面需要云平台厂商配合。目前国内大部分基于OpenStack开发的云平台产品中已经集成主流存储厂家的FC驱动,可以让Cinder与存储底层对接,得到更高和更稳定的性能表现。

2)分布式块存储

分布式块存储是分布式存储架构下的一个存储接口。目前主流分布式存储技术主要分HCI超融合基础架构和SDS软件定义分布式存储。主流SDS分布式存储又分为Ceph系和非Ceph系。在大规模云环境下,SDS软件定义分布式存储适配度更高。

2. 文件存储

文件存储技术按照底层硬件架构可以分为集中式NAS存储和分布式文件系统。

集中式NAS存储生态完善,在各大企业数据中心文件共享服务中占据很大比例。集中式NAS存储设备由机头和扩展柜组成,集成度高,运维相对简单。

分布式文件系统与集中式NAS相比,区别在于提供了并行化和横向扩展的能力。分布式文件系统按照架构有无中心分为两类,一种是有中心架构的分布式文件系统架构,包括GFS、HDFS等。另外一种是完全无中心的分布式存储架构,包括CephFS、GlusterFS等。其中CephFS和GlusterFS支持POSFIX 接口。

GFS和HDFS的默认最小存储单元为64M、128M甚至更高,是适合大文件尤其是GB级别的大文件存储场景的分布式存储系统。

GlusterFS是采用无中心对称式架构,没有专用的元数据服务器,元数据存在于文件的属性和扩展属性中。数据分片分布,也更适合大文件存储。

CephFS是分布式存储系统Ceph面向文件存储的接口,CephFS 构建在RADOS(Ceph的核心技术-分布式对象存储)之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。

3. 对象存储

对象存储采用基于键值访问机制的扁平化存储架构设计,它没有多层树级文件目录,天生具有分布式的架构优点,扩展方便。

对象存储使用简单,客户端调用API就能进行数据存储和读取,其接口就是简单的GET、PUT、DEL等。对象存储提供了基于对象的访问接口,有效地合并了NAS和SAN的存储结构优势。


三、云环境下的各类存储技术的适用场景

1. 块存储

分布式块存储的优势在于扩展性,所以适用于云环境下大规模的虚拟机、容器场景。另外,MySQL、MongoDB等轻量级数据库场景也可以选择使用分布式块存储。

对于IO密集型数据库应用来讲,当前最好的存储模式仍是采用高性能低延迟的集中式高端存储阵列。

另外,针对云规模相对不大,但业务重要性较高的业务场景,可以选择使用基于OpenStack的云平台通过Cinder接口来对接集中式存储,为该类重要应用获得更高和更稳定的存储性能。

2. 文件存储

集中式NAS支持POSFIX接口,与现有应用集成简单,适合小规模应用环境的快速部署。

GFS适合存储大文件,尤其是GB级别的大文件存储的场景。HDFS适合单次写多次读的大文件流式读取的场景。

GlusterFS基于无中心化架构,没有元数据服务器,具有高扩展性、高可用性、高性能,能够处理千数量级的客户端,可配置性较强。

CephFS也支持POSFIX接口,它使用Ceph存储集群来存储数据,因此能够解决NAS 产品scale-out横向扩展不足的缺点,与使用Ceph存储的云环境最适配。

GlusterFS和CephFS可以作为在大规模云环境下代替NAS的通用分布式文件系统存储技术,也是现在分布式NAS的发展方向。

3. 对象存储

对象存储接近无限扩展能力使其可以真正意义上实现非结构化数据的海量存储。其扁平化的存入和读取数据对象方式,使其使用方式简单,应用经过标准 API 接口进行调用,十分契合互联网大数据的存储。对象存储适合存储包括多媒体、音乐、图片、视频监控文件、软件、镜像、扫描件等种类在内的海量文件。

另一方面也要注意,对象存储不支持随机读写操作,只能全读全写,其面向的是一次写入,多次读取的非结构化数据存储的需求场景

标签:文件,存储,NAS,对象,环境,集中式,服务类型,分布式
From: https://blog.51cto.com/u_15576159/6459612

相关文章

  • 【操作系统】【硬件结构】磁盘比内存慢几万倍?存储器的层次结构?
    1  前言大家如果想自己组装电脑的话,肯定需要购买一个CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬盘。相信大家都知道内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢......
  • 图像增强算法受环境影响几种校正方式
    图像增强环境影响几种校正方式由于受到环境,光线、噪音、不同设备拍摄的清晰度和对比度等也会影响到图像最终的采集效果,不能够直接采取图像中的重点部分。以下几种校正方式可以单独应用或者结合使用,以根据图像的特征和需求来提高图像的质量和视觉效果。根据不同的应用场景和目标,选择......
  • 使用外置存储设备扩展exroot(MT1300)
    环境说明:GL-INETMT1300设备一台8GU盘一个,已经格式化文件系统为EXT41.安装相关工具opkgupdateopkginstallblock-mountkmod-fs-ext4e2fsprogsfdisk 2.修改fstab配置文件,更改现有文件系统的挂载点DEVICE="$(sed-n-e"/\s\/overlay\s.*$/s///p"/etc/mtab)"uci-q......
  • [TSG开发日志2]串口通信?VS下FaroSDK编译环境?一文搞定
    艹,不知道为什么我之前写的法如sdk没有保存,总而言之就是莫名其妙整个工程没有了,后来我想了想,也有可能就是我自己删掉了,因为在配置法如工程的时候遇到了一些小问题,不过现在也解决了。一、关于串口通信:Qt的确有自己的串口通信类,就是QSerialPort,但是我们在使用过程中因为要更加定制......
  • ubuntu 搭建 cmake + vscode 的 c/c++ 开发环境
    todo列表clang-formatc++整合软件安装略基本的环境搭建最基本的vscode插件只需要安装如下两个插件即可c/c++扩展是为了最基本的代码提示和调试支持cmakelanguagesupport是为了提示CMakeLists.txt脚本有可能安装了cmakelanguagesupport还是没有代码......
  • JVM 数据存储介绍及性能优化
    JVM内存模式介绍Java虚拟机内存模型是Java程序运行的基础。为了能使Java应用程序正常运行,JVM虚拟机将其内存数据分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区等部分。程序计数器(ProgramCounterRegister)程序计数器(ProgramCounterRegister)是一块很小内......
  • 对象存储服务-Minio
    Mino目录Mino对象存储服务Minio参考Minio架构为什么要用Minio存储机制纠删码MinIO概念部署单机部署:Docker部署Minio分布式MinioMinio配置如何存储和访问对象MinIOClient(mc)命令使用通过代码存储对象对象存储服务(ObjectStorageService,OSS)是一种海量、安全、低成......
  • mac 搭建python开发环境
    导读:       1.先安装brew        ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"       2.用brew安装wget     brewinstallwget      3.用wget下载pip.py     wgethttps://bo......
  • Mac下添加java环境变量
    发现一个坑:最近发现有同事按照本文方式配置jdk环境变量一直不成功,后来发现他是使用了“Oh-My-Zsh”,配置文件的路径不是/etc/profile或~/.bash_profile,它有自己的配置文件,所以还是推荐大家使用mac自带的终端或者iTerm2来配置。————————正文开始——————-Mac下添加java环......
  • 启动环境+拉取项目+网关过滤器逻辑
    服务器与服务器传输,当前在一台服务器,所有直接找到jenkens,cp拷贝即可,;若是不同的服务器,要用scp配置源码:仓库,触发器:什么时候构建,构建环境:前端后端构建后端环境时,需要传参启动项目,可以不用进入jenkensRBAC权限控制用户关联角色,角色关联用户​权限管理系统......