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

转载:http://www.aboutyun.com/thread-8114-1-1.html

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

1.2 问题导读:

1、OpenStack中什么是临时存储,有什么好处?
2、什么是块存储,和临时的有什么不同?

1.3 背景

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

1.4 临时存储

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

1.5 块存储

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

共享存储 (意味着可以支持HA, 虚拟机迁移等等)

1.6 临时存储的妙用

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

1.7 总结

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

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!