介绍下容器云存储所能解决现有存储框架下哪些问题?
适用于哪些应用场景或业务场景?
使用容器云存储后在系统设计及后期运维方面与传统存储有哪些区别?以及是否带来新的需要关注的点?
从业务支持的角度,即使你的应用很传统,不做任何改造,你也可以把你的应用跑在容器里,只是除了省资源、启动快、用镜像交付比较方便外,其它在业务能力上能获得的收益较少而已。当然你可能需要一些必要的调度,比如原来不能在一台机器上跑的应用,假如你用容器跑的时候也不能运行在同一台机器上,那么你需要通过配置非亲和性策略把这些容器放置在不同的机器上。这个过程你以前是手工保证的,用容器后你需要用手工、或者容器管理软件来实现。
收起这个问题我觉得应该这么考虑:
什么样的应用场景在容器云部署时需要考虑存储问题?
容器是用来承载应用的,采用容器技术,建设容器云需要以业务应用为中心。容器只是工具,存储是资源。需要什么样的存储资源时,就选择什么存储资源就好。
比如,业务场景需要弹性伸缩,那么存储资源的选择就需要考虑支持容器在不同节点间的迁移。
我们觉得探讨容器云存储不是为了解决当前存储框架下的问题,而是为了如何更好的支撑容器云平台上的业务应用。
容器化代表是一种更先进的针对数据中心各类资源的管理方式,除了CPU、内存、网络这些资源之外,当然也包含存储资源。在容器云里,容器云可管理的存储也就是所谓的传统存储,而管理方式,在Kubernetes集群里采用的是CSI接口和各类插件的机制来实现的,也就是说所谓容器云存储,一定是架构在传统存储之上的,没有传统存储的容器云存储,也就成了无源之水无本之木,无法独立存在的。通过适配,实现计算、存储、网络资源的整合,以容器的方式,构建一个相对隔离的环境,运行业务服务。
从这里就可以看出来,作为容器云平台厂商,其需要考虑的问题要增加了很多。除了对传统存储方案的设计之外,还要考虑和Kubernetes是否适配,是否稳定,以及是否存在调度的限制,另外还需要考虑的是诸如备份。
至于使用场景,则主要还是看业务应用和服务本身,看服务本身是否需要持久化存储,如何实现这些数据的备份恢复等。