私有云环境|装在笔记本里的私有云环境:网络存储篇(上)

作者:soulteary
本篇是系列中的第三篇内容,我们继续聊聊如何把一个简化过的私有云环境部署在笔记本里,以满足低成本、低功耗、低延时的实验环境。
在前两篇文章中,我们聊过了基础虚拟化相关的前置准备、以及为了避免在搭建过程中盲人摸象,而准备的监控服务。接下来我们来进行另外一个基础技术设施的搭建,网络存储服务。
写在前面考虑到实际能够使用的资源有限,并且我们不希望监控、日志等基础服务的数据和这个通用的存储服务产生循环依赖,导致升级维护的时候“产生死锁”现象。所以,对于之前提到的监控日志(非归档数据)并暂时并不会使用这个方式进行存储。以及,因为资源有限,我们也不会使用块存储方案来提供云上的数据库数据落地方案(下文中会提到具体原因)。
本文中技术方案、应用架构的设计考虑,更多是出于对接下来各种基础技术设施日常使用是否方便,容器集群中应用集成使用体验是否良好、相关应用维护是否简单出发。
此外,在正式搭建网络存储的之前,我们需要先了解下什么是“网络存储”,以及这类服务有哪些典型“代表产品”,可以相对低成本的拿来即用。
存储技术选型在我们熟悉的公有云平台上,网络存储类型一般会分为:块存储、对象存储、文件存储三类。其他更多的品类,则更多是基于这三类进行了一些不同侧重功能的场景定制,赋予了更强的业务能力。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

上图简单的概括了三大类存储方案的应用场景,至于为什么适合这样的场景,下图中的性能偏好则简明的揭示了原因。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

不过,我猜如果你没有折腾或者从事过云产品相关开发,可能单从上面两张图还并不能够理解这三种存储之间的差异,以及在本文的语境下,为什么会选择某些方案,舍弃某些方案。下面我们就来展开聊聊。
块存储私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

块存储(Block Storage),可以通俗的理解为最底层的存储技术,一般会伴随之前文章中提到的基础虚拟化技术一同使用,在某些角度你可以把它看作更灵活的纯软件实现的底层 Raid 技术,但是拥有更迅速的灾难恢复重建能力(大容量Raid重建真的非常慢),并且不像 Raid 需要相同规格的存储磁盘,可以进行不同规格磁盘混用。不过这些相较之 Raid 更强大的能力,需要有强大、稳定的基础网络、以及适量冗余副本来提供,所以这一技术非常适合有海量资源冗余的公有云平台。
因为拥有比较低的操作延时、支持配置非常大容量的存储额度,并且拥有数据自动恢复的能力,所以块存储非常适合作为传统数据库的底层存储技术来使用。以及,当我们在创建公有云云磁盘的时候,可以动态的对磁盘进行扩缩容,为服务器添加市面上购买不到的超大规格容量磁盘,底层也是使用到了块存储技术。
本文的试验环境限制在一台拥有双磁盘位的笔记本,本身存储总量就非常有限,在这个场景下,不论是走 Raid 还是走 Ceph 都会存在资源浪费、并且也因为磁盘副本数量不够多,达不到预期的效果。所以,本文并不适合采用块存储技术配合前两篇文章中提到的虚拟机们一起使用。
如果你对块存储好奇,想实际体验一下效果,可以试试曾经提到的 Proxmox VE 中,这套虚拟化系统默认就支持安装使用 Ceph 作为存储后端。如果你只是想了解块存储技术是如何工作的,我推荐你简单阅读 Ceph 官方关于 RBD 的文档。