首先对象存储是个好东西,自己的环境可能需要一套私有系统,目前有基于 FC 和 SAN 、超融合等传统方式以及 NAS 方式提供给虚机共享使用的存储,然后这几天学习研究了一下 MinIO 的相关内容。于是有点糊涂了。
1 对象存储还是要基于 OS 的文件系统的,所以文件系统的效率还是根本上决定着 MinIO 的效率,这个结论应当是对的?然后两个具体分支疑惑:
1.1 根据搭建的测试环境,假设桶内不组织目录,那桶内存储了 100w 个文件,那在 OS 看来,就是桶目录下有 100w 个子目录,每个子目录有对象本身和其描述文件,或者就直接是文件本身(不使用那个 ER 码的话)。于是 OS 的文件系统组织这个目录不就很费劲了?
1.2 如果这个文件系统不是本机,比如虚机+NFS,那性能就更没办法保障了,这就不说了。回到 MinIO 的基本模型,什么 Drive 、Set,如果是 Drive,还是不能绕开文件系统,比如一台实体机有 12+2 块盘,额外 2 块用于系统了,剩下 12 块,不组阵列,直接裸盘挂载,然后分区指定文件系统类型,然后给 MinIO 使用,我就想问一下,相较于组阵列,就算是最不节省的 RAID10 (都是有效空间砍半),吞吐感觉没啥变化甚至还不如 RAID10 吧。于是何必呢?如果挂阵列,那对于 MinIO 能看到的就是一个 drive
2 所谓的对象存储,实际上是在 HTTP 层提供了一系列协议来访问具体文件,而传统的 SAN 、FC 、NFS 则完全是操作系统以下层面的协议,或者说是操作系统层(或 SHELL 层)已经实现的协议,对象存储协议则相对高层一些。那么,抛开标准协议( S3 )这个事情,如果这么做,好像原则上也是对象存储?
2.1 通过某种方式存储到文件系统中(包括计算摘要等信息),以目录形式进行有效组织,在 http 容器中做某种插件,能够识别来 GET 的文件摘要及其对应存储位置,然后 response 回去相应文件(对象)。那么从 IO 角度,发送文件还是 磁盘 IO<=>网络 IO 。
2.2 如果磁盘对象脱离不了 磁盘 IO<=>网络 IO,有些报告提到对象存储的效率要比 NAS 高什么的,从何谈起?都是访问到某个文件,除了检索以外,真正的文件传输,模型并没有变化。我曾经以为对象存储会做内存缓存什么的。
除了能够查到的说什么对象存储的优势、意义以外,好像没搞明白对象存储背后一些机理到底是什么,于是意义何在?给我答疑解惑一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.