我看Openstack的临时(Ephemeral)存储和块(Block)存储

本文探讨了Openstack中的临时存储(Ephemeral Storage)和块存储的特性。临时存储不支持虚拟机迁移,数据可靠性较低,适用于无状态虚拟机和缓存服务。而块存储提供高可靠性和共享存储功能,支持HA和虚拟机迁移。通过结合使用,如搭建RAID 10系统,可提升EBS性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

Openstack不管是Ephemeral Storage还是Block Storage, 其实从接口上看,其实都是块服务。那么为什么要搞两个不同的类型呢,本文从这两种不同类型块存储的实现上来分析下其中的原因。

临时存储

Openstack临时存储是由Nova提供的,主要是利用主机的本地存储给虚拟机提供卷服务。如果虚拟机被删除了,挂在这个虚拟机上的任何临时存储自动释放。这样的实现方式决定了:
  • 使用Ephemeral Storage的虚拟机不能支持迁移,以及和虚拟机迁移相关的特性,包括 1) HA  2) 动态调度 等等。
  • 存放在Ephemeral Storage上的数据是高度不可靠的,任何虚拟机和主机的故障都可能会导致数据丢失。

块存储

目前Openstack的块存储由Cinder提供,其后端支持很多类型的存储设备,比如多个厂商不同型号的阵列设备,或者是Ceph, Glusterfs, Sheepdog之类的分布式存储系统。基于块存储,可以为用户提供:
  • 高可靠的存储(基于阵列的RAID, 或者是分布式存储的多副本机制;甚至还可以充分利用设备的备份,远程复制能力)
  • 共享存储 (意味着可以支持HA, 虚拟机迁移等等)

临时存储的妙用

这么看来,临时存储岂不是几乎没什么作用了,那为什么还需要提供这个服务呢?其实原因非常简单: 这个服务便宜,而且便宜到令人发指的地步,比如AWS的Ephemeral Storage, 就是免费的。用户可以用它来做不少有意思的事情,比如:
  • 无状态虚拟机,为系统提供Cache服务
  • 为虚拟机操作系统提供交换分区,或者用来存放其它类型的临时文件
  • 改进EBS的性能,比如买4个EBS盘,再配置2个免费的Ephermal盘,组建一个RAID 10系统

总结

对于云服务提供商,不管采用什么样的后端技术,为用户提供7个9甚至更高可靠性的EBS服务,成本是巨大的,如果使用阵列,其价格本来就昂贵;如果使用分布式存储,起码要3个副本,再考虑到定期备份,快照,跨地域容灾,成本一样很高。现在的SATA, SAS盘便宜而且量又足,很容易造成在本地主机上空闲,所以干脆直接送给用户,由他们去玩,而且对于玩的好的用户,还真能对业务有不少帮助。

最后再附上Openstack官方文档对几种存储的对比:

  Ephemeral storage
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值