from HPC to cloud (2) - distributed storage intro

常见分布式存储

背景

文件存储读写慢,利于共享;块存储读写快,不利于共享。所有磁盘阵列都是基于Block块的模式,而所有的NAS产品都是文件级存储。物理块与文件系统之间的映射关系:扇区→物理块→逻辑块→文件系统。所以,文件级备份,需要一层一层往下查找,最后才能完成整个文件复制。

富含元数据的对象存储使大规模分析成为企业的有吸引力的命题。对象存储也使得提供和管理跨越地理位置的存储变得相对经济。同时,块存储的属性使其成为高性能业务应用程序、事务数据库和虚拟机的理想选择,这些应用程序需要低延迟、细粒度的数据访问和一致的性能。块存储(云盘)只能被一个主机挂载。

对象存储(ceph, Linux block device)和文件系统(hdfs, gfs, restful Web API)在接口上的本质区别是对象存储不支持fread(), fwrite()类似的随机位置读写操作,即一个文件PUT到对象存储里以后,如果要读取,只能GET整个文件,如果要修改一个对象,只能重新PUT一个新的到对象存储里,覆盖之前的对象或者形成一个新的版本。对象存储的接口是REST风格的,通常是基于HTTP协议的RESTful Web API,通过HTTP请求中的PUT和GET等操作进行文件的上传即写入和下载即读取,通过DELETE操作删除文件。文件存储读写api如,file.open(); 对象存储读写api如 s3.open()。文件存储,多次读写;对象存储,一次写,多次读。对象存储的容量是无上限的;文件存储的容量达到一定上限,性能会极差。

对象存储,需要对原数据做解析吗?

存储类型

  • 块存储
    Direct Attach Storage(DAS), 每台主机服务器有独立的存储设备,各存储设备之间无法互通,需要跨主机存取。 Storage Area Network(SAN), 高速网络连接的专业存储服务器,与主机群通过高速i/o连结。

  • 文件存储
    Network Attached Storage(NAS), 连接在网络上并提供存取服务。采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理

  • 对象存储
    核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统。对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统. 一般配置metadata server(MDS)。

存储用例

  • 对象存储
    非结构化(文档、图像、视频等)、备份存档、大数据分析(无实时性)

  • 块存储
    比较适合数据库业务、虚拟机

  • 文件存储
    企业共享、hpc大数据分析、流媒体处理,web服务。

容器云

容器云架构

1
2
3
4
5
控制台门户(管理员入口)
saas()
paas(容器,微服务、中间件、cicd)
资源调度管理平台
iaas(计算、存储、网络),虚拟化提供资源池,
  • 物理机直接架构k8s

容器云与私有云搭建的硬件资源分开。

  • 虚拟层上支持k8s

容器部署在虚拟机上的原因:既需要容器,也需要虚拟机的环境。一般互联网公司倾向分开容器的资源 和 虚拟机的资源。不管是容器云,还是虚拟机,都会有一个web管理平台。考虑弹性升缩,vm更灵活。而如果容器直接部署在x86裸机上,如果没有容器的管理层,docker容器挂了,就无法恢复。

应用部署容器云 vs 私有云

  • 仿真计算,倾向容器环境

  • CI/CD开发工具、中间件,倾向容器环境

  • web server,倾向容器环境

  • sql,倾向物理机或虚拟机

参考

KingStack

UCloud

EasyStack