沃趣科技
熊中哲·联合创始人/产品研发团队总监
在基于 Kubernetes 和 Docker 构建的私有 RDS 中, 普遍采用了计算存储分离架构....在我们看来, 计算存储分离的最大优势在于:
将有状态的数据下沉到存储层, 这使得 RDS 在调度时, 无需感知计算节点的存储介质, 只需调度到满足计算资源要求的 Node, 数据库实例启动时, 只需在分布式文件系统挂载...可以显著的提高数据库实例的部署密度和计算资源利用率
其他的好处还有很多, 譬如架构更清晰, 扩展更方便, 问题定位更简单等,这里不赘述....如下图所示
相较本地存储, 网络开销会成为 IO 开销的一部分, 我们认为会带来两个很明显的问题:
●数据库是 Latency Sensitive 型应用, 网络延时会极大影响数据库能力(QPS,TPS...Controller 和 Kubelet 的驱逐机制时, 可能会出现多个数据库实例同时访问一份数据文件导致 Data Corruption 的情况, 数据的损失对用户而言是不可估量也不可忍受的.