当前位置: 首页 > news >正文

浅谈云计算05 | 云存储等级及其接口工作原理

一、云存储设备

在这里插入图片描述

在当今数字化飞速发展的时代,数据已然成为个人、企业乃至整个社会的核心资产。从日常生活中的珍贵照片、视频,到企业运营里的关键业务文档、客户资料,数据量呈爆炸式增长。面对海量的数据,如何安全、高效且便捷地存储,成为了大家共同面临的关键挑战。云存储设备,恰如应运而生的璀璨新星,正逐步取代传统存储模式,引领数据存储迈向全新未来。

云存储设备,简单来说,是依托云计算技术,通过互联网将数据存储于远程服务器集群中的创新存储方案。它打破了传统存储对本地物理设备的依赖,让数据存储不再受限于硬盘容量、地理位置等因素。无论是身处繁华都市的办公室,还是在偏远地区出行,只要接入互联网,用户就能随时随地访问、管理自己的数据,真正实现数据随身,存储无界。

二、云存储等级

2.1 文件存储:为企业办公提供高效协作支持

文件存储,就如同我们日常使用的电脑文件夹,它以文件和文件夹的形式来组织、存储数据。这种存储方式对结构化数据极为友好,例如办公文档、电子表格等。在企业办公场景中,员工们可以通过云存储平台轻松上传、下载各类办公文件,并且能够实时共享、协同编辑,大大提高了团队协作效率。像腾讯文档、石墨文档等在线协作平台,便是依托文件存储技术,让分布在各地的团队成员宛如在同一办公室般紧密协作,共同推动项目进展。

2.2 块存储:数据库等高性能需求场景的首选

块存储则是将数据切割成固定大小的数据块,每个数据块都有独立的地址标识,就好比把一个大型仓库划分成众多小隔间,每个隔间都有精准编号。它专为那些对输入输出(I/O)性能要求苛刻的应用场景量身打造,如数据库管理系统、企业资源规划(ERP)软件等。以金融行业为例,银行的核心交易系统需要在瞬间处理海量的交易数据读写请求,块存储凭借其超低延迟、超高吞吐量的特性,确保交易数据能够快速、准确地被存储和读取,保障金融业务的稳定运行。

2.3 数据集存储:数据安身立命之所

一般而言,数据集中的数据在关系数据库里以表格形式巧妙编排。这些表格中的数据,是由一条条记录有序排列而成。每一条记录都像是一个独特的 “故事片段”,完整地描述了某个具体对象或事件。以进一步剖析每条记录,我们会发现它是由包含不同信息的各个字段所构成。用户信息表为例,一条记录可能就代表着一位特定用户的所有相关信息,从姓名、性别到联系方式,乃至注册时间等,无一遗漏。合理的数据集存储方式,能够确保数据的高效访问与处理。

2.4 对象存储:灵活应对海量非结构化数据

对象存储,是一种相对新颖且极具创新性的存储方式。这里的 “对象”,可简单理解为包含了数据本身、元数据(描述数据的相关信息,如数据类型、创建时间、所有者等)以及唯一标识符的数据集合。打个比方,就像图书馆里的每一本书,书的内容是数据,书的作者、出版年份、分类标签等信息就是元数据,而每本书独一无二的馆藏编号便是唯一标识符。对象存储特别适合存储图片、视频、音频等海量的非结构化数据。如今,社交媒体平台上每天都会产生数以亿计的图片、视频,云存储服务商利用对象存储技术,能够轻松应对如此庞大且零散的数据,为用户提供可靠的存储服务,确保数据随时可访问,永不丢失。

三、云存储接口的基本工作原理

3.1 文件存储接口:NFS、CIFS

在云存储的文件存储领域,NFS(Network File System,网络文件系统)和 CIFS(Common Internet File System,通用互联网文件系统)是两大核心协议。它们都遵循 POSIX(Portable Operating System Interface,可移植操作系统接口)标准,这意味着无论在何种操作系统下,只要支持该标准,就能无缝对接使用。

NFS 起源于 UNIX 系统,它基于远程过程调用(RPC)机制实现。当客户端向服务器发起文件访问请求时,如读取一个文档,客户端的 NFS 模块会将请求封装成 RPC 消息,发送到服务器端。服务器端的 NFS 守护进程接收并解析请求,从本地文件系统获取相应数据,再通过 RPC 回复给客户端。在企业内部的 Linux 服务器集群环境中,员工们使用的各种 Linux 工作站可通过 NFS 挂载共享的文件存储目录,实现代码、文档等资源的共享,协同开发项目,仿佛所有文件就在本地磁盘一样便捷。

CIFS 则主要应用于 Windows 环境,它脱胎于微软的 SMB(Server Message Block,服务器消息块)协议。CIFS 采用请求 - 响应模式,在 Windows 网络中,当用户在 “网络邻居” 里访问共享文件夹时,背后便是 CIFS 在发挥作用。例如,一家小型公司内部搭建了基于 Windows Server 的文件服务器,员工们通过各自的 Windows 电脑,使用 CIFS 协议轻松访问共享的办公文件,进行日常的文档编辑、资料查阅等工作,极大提高了办公效率。

3.2 块存储接口:SCSI

SCSI(Small Computer System Interface,小型计算机系统接口)协议在块存储里扮演着关键角色。它定义了一套完整的命令集,用于主机和存储设备之间的数据传输、设备管理等操作。

SCSI协议采用典型的总线结构,在这一总线上,能够连接包括主机适配器(一般指 SCSI 控制器)以及众多不同类型的 SCSI 外围设备。每个设备都被赋予一个独一无二的 SCSI ID(标识符),这个标识符就如同设备在 SCSI 总线上的 “身份证”,用于在复杂的系统环境中精准识别和区分各个不同的设备。例如,在一个由多块硬盘组成的 SCSI 硬盘阵列里,每一块硬盘都拥有属于自己独立且唯一的 SCSI ID,确保数据传输的准确性与高效性。

当主机有数据交互需求时,SCSI 控制器发起含操作码、逻辑单元号及相关参数的 SCSI 命令,如主机读取硬盘数据时生成特定命令。接着,SCSI 控制器通过总线发含目标设备 SCSI ID 的 “选择” 信号,目标设备识别 ID 后响应并与主机建立连接。之后,目标设备解析命令并执行,如硬盘接读取命令后定位并读取数据。数据传输方向分设备到主机与主机到设备,有同步和异步两种模式,不同 SCSI 标准同步速率有所区别。命令执行完,目标设备向主机返回状态信息及其他消息,主机据此决定后续操作,保障系统稳定高效运行。

3.3 对象存储接口:RESTful API、S3 API

对象存储的接口主要围绕对象展开。对象,作为对象存储的核心单元,整合了数据、元数据以及唯一标识符。其存储接口主要包括 RESTful API 和 S3 API。

REST(Representational State Transfer)是一种软件架构风格,RESTful API 基于 HTTP 协议,以资源为核心,将对象存储中的每个对象、容器等视为资源,为其赋予唯一 URL 用于定位。客户端借助标准 HTTP 方法操作资源,像 GET 获取对象数据、PUT 上传或更新对象、DELETE 删除对象等。请求时,客户端需提供如访问密钥和秘密密钥等身份验证信息,以在请求头或查询参数中发送,服务端验证其有效性,判断客户端是否有权限执行操作。服务端接收请求后,依据请求操作处理资源,并返回含状态码(指示成功或各类错误情况)、响应头(包含元数据)及响应体(对象数据或错误信息)的 HTTP 响应,客户端据此进行相应处理。

S3(Simple Storage Service)API 是亚马逊公司开发的对象存储接口,已成为事实上的行业标准,许多对象存储系统都兼容 S3 API。它提供了一组简单的操作,用于在云端存储和检索数据对象。S3 API 以桶作为对象存储的容器,客户端通过CreateBucket操作创建桶,并可指定名称与位置等属性,借助ListBuckets操作获取桶列表,以桶名访问特定桶。针对对象操作,客户端使用PutObject操作,指定桶名、对象键及对象数据上传对象;运用GetObject操作,依据桶名和对象键下载对象;通过DeleteObject操作删除指定桶中的对象。在身份验证方面,S3 API 采用签名机制,客户端利用访问密钥和秘密密钥,按特定规则对请求关键信息(如 HTTP 方法、请求头、请求时间等)进行组合与哈希计算生成签名,服务端接收请求后,使用相同规则与客户端访问密钥验证签名有效性,只有验证通过的请求才会被处理。此外,对象和桶均可关联元数据,客户端上传对象时可通过PutObject请求头部信息添加,服务端响应时会返回相关元数据,方便客户端了解资源详情。

3.4 数据库存储接口

3.4.1 关系型数据库

关系型数据库以其结构化的数据存储模式著称,数据按照表、行、列的形式组织,就像规整的电子表格。常见的代表有 MySQL、Oracle 等。

它们通常使用 SQL(Structured Query Language,结构化查询语言)作为数据接口协议。企业的客户关系管理(CRM)系统,大量的客户信息、订单记录、售后反馈等数据存储在关系型数据库中。当业务人员需要查询某个客户的所有订单时,通过在前端界面输入 SQL 查询语句,数据库系统解析该语句,依据预设的表结构关系,从众多关联表中精准提取所需数据,快速返回结果,助力企业精准把握客户需求,优化业务决策。

3.4.2 非关系型数据库

非关系型数据库则针对海量、半结构化或非结构化数据而生,数据存储形式更为灵活多样,常见类型有键值对、文档、列族、图形等。代表产品如 MongoDB(文档型)、Redis(键值对型)。

以 MongoDB 为例,它使用类似 JSON 的 BSON(Binary JSON)格式存储文档数据,其接口提供丰富的操作方法,如插入文档、查询文档、更新文档等。在社交媒体平台,用户的动态、评论、点赞等复杂多样且频繁更新的数据,通过 MongoDB 的接口高效存储与管理。当用户刷新社交页面时,后台迅速调用接口从数据库中抓取最新动态数据,实时呈现给用户,营造活跃的社交互动氛围。

相关文章:

浅谈云计算05 | 云存储等级及其接口工作原理

一、云存储设备 在当今数字化飞速发展的时代,数据已然成为个人、企业乃至整个社会的核心资产。从日常生活中的珍贵照片、视频,到企业运营里的关键业务文档、客户资料,数据量呈爆炸式增长。面对海量的数据,如何安全、高效且便捷地存…...

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包,文本处理sed,awk

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less,grep 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 文本处理 awk 创建文件 格式: touch 文件名 删除文件 复制文…...

CentOS 8 如何安装java与mysql

在CentOS 8上安装Java和MySQL的步骤如下: 1. 安装 Java 1.1 安装 OpenJDK(推荐) CentOS 8 默认的软件仓库提供了 OpenJDK 包,您可以直接使用 dnf 命令安装。 # 更新系统 sudo dnf update -y# 安装 OpenJDK 11(Cent…...

Go语言之路————go基本语法、数据类型、变量、常量、输出

Go语言之路————go基本语法、数据类型、变量、常量 前言一、基本语法知识二、数据类型三、常量四、变量五、作用域六、输入输出 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触G…...

音视频入门基础:MPEG2-PS专题(7)——通过FFprobe显示PS流每个packet的信息

音视频入门基础:MPEG2-PS专题系列文章: 音视频入门基础:MPEG2-PS专题(1)——MPEG2-PS官方文档下载 音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件 音视频入门基础…...

Docker安装和卸载(centos)

Docker安装和卸载 一,已安装Docker,卸载Docker 1.方法一 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine​ 如果出现以下提示就证明没卸载…...

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…...

Winforms开发基础之非主线程操作UI控件的误区

前言 想象一下,你正在开发一个桌面应用程序,用户点击按钮后需要执行一个耗时操作。为了避免界面卡顿,你决定使用后台线程来处理任务。然而,当你在后台线程中尝试更新UI控件时,程序突然崩溃了。这是为什么呢&#xff1…...

Flutter中Get.snackbar和Get.dialog关闭冲突问题记录

背景: 在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释: 之所以会产生冲突,是因为Get.snackbar在关…...

springcloudalibaba集成fegin报错ClassNotFoundException解决方案

集成fegin遇到问题: java.lang.ClassNotFoundException: com.netflix.config.CachedDynamicIntProperty 解决方案: 在pom文件中添加依赖 <dependency><groupId>com.netflix.archaius</groupId><artifactId>archaius-core</artifactId><versi…...

【HTML+CSS+JS+VUE】web前端教程-31-css3新特性

圆角 div{width: 100px;height: 100px;background-color: saddlebrown;border-radius: 5px;}阴影 div{width: 200px;height: 100px;background-color: saddlebrown;margin: 0 auto;box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);}...

力扣264. 丑数 II

给你一个整数 n &#xff0c;请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法&#xff1a;L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…...

计算机网络之---TCP连接管理

TCP连接管理 TCP&#xff08;传输控制协议&#xff09;是面向连接的协议&#xff0c;在数据传输之前需要建立连接&#xff0c;在数据传输完成后需要断开连接。TCP连接的建立和断开都遵循特定的规则&#xff0c;分别称为三次握手&#xff08;Three-Way Handshake&#xff09;和四…...

《CPython Internals》阅读笔记:p118-p150

《CPython Internals》学习第 8 天&#xff0c;p118-p150 总结&#xff0c;总计 33 页。 一、技术总结 补充一些本人整理的关于 Context-Free Grammar(CFG) 的知识。 1.symbol(符号) A mathematical symbol is a figure or a combination of figures that is used to repre…...

C/C++ 数据结构与算法【排序】 常见7大排序详细解析【日常学习,考研必备】带图+详细代码

常见7种排序算法 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#xff09;快速排序&#xff08;…...

三只松鼠携手爱零食,社区零售新高峰拔地而起

合纵连横&#xff0c;这是当前零售行业发展的一个主旋律。从商超之王胖东来的全国调改&#xff0c;到社区零售正在进行的渠道变革&#xff0c;竞争的激烈和商业模式的升级令人目不暇接。 量贩零食赛道在过去一年就是如此&#xff0c;有杀伐&#xff0c;有并购&#xff0c;刀光…...

Java聊天小程序

拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…...

Kibana操作ES基础

废话少说&#xff0c;开干&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;截图更清晰&#xff0c;复制在下面 #库操作#创建索引【相当于数据库的库】 PUT /first_index#获…...

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...

本文所用——MYSQL版本&#xff1a;8.0.25 baidu都是直接创建新用户并赋权&#xff0c;如下&#xff1a; GRANT ALL PRIVILEGES ON *.* TO 用户名% IDENTIFIED BY 密码 WITH GRANT OPTION;但是我用的MYSQL版本它就不行&#xff0c;会报错&#xff01; 经查阅资料发现——MY…...

动漫周边商城系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

C++_核心编程_多态案例二-制作饮品

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

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...