云计算经常提供不同形式的存储服务,有什么区别呢?查阅了网络上对三者概念的介绍,按自己的理解作的笔记:
块存储:读写的是区块,按物理的线性、扇形结构组织。
文件存储:读写的是文件,逻辑上呈树型结构。
对象存储:读写的是对象,逻辑上以键值对方式组织,呈扁平结构。
虚拟机、数据等系统软件使用块存储,使用底层存储协议
桌面应用程序使用文件存储,使用文件存储协议
网络应用软件使用对象存储,使用HTTP等简洁的网络协议
三种存储方式处在不同的逻辑层级,通常也是会逐级调用的,即对象存储到一台具体机器上,也会依赖文件存储,而文件存储到操作系统底层层面上时,当然也要调用块存储。
主要查阅资料:
作者:焱融科技
链接:https://www.zhihu.com/question/21536660/answer/1634882735
来源:知乎
...要想最本质地理解这三者的区别(快速简单),可以尝试站在应用程序的角度。
假如你就是应用程序,或者你是编写应用程序的工程师(你是搬代码的打工人),你所使用的编程SDK是怎么访问数据的,就决定了底层存储是什么样的存储,即从语义角度去区别和理解底层存储的接口形式。
例如,编写虚拟化或者Oracle程序的工程师,他编写程序时,所使用的是Read/Write等SDK或系统调用,这时,他所面向的是块存储。
编写本地应用的工程师在写程序时,用到了http://java.io里的File相关的类库时,这时他面向的就是文件存储接口。
一些互联网应用(如App)开发人员在编写程序时,是通过http协议,PUT/GET/POST(或封装后的SDK)来读写文件或数据,这时他所使用的就是对象存储。
所以最本质的区别是接口访问的方式,所谓的这个接口是站在上层应用的角度来说的。当然,块、文件、对象的接口形式不同,连接方式、应用场景也会有所区别,但最本质的,仍然是接口和语义层面的。