美团云硬盘是什么?
美团云硬盘是一种块存储方式。日常生活中,我们是用到的块存储设备非常多。比如电脑硬盘、U盘、移动硬盘、光盘等都是块存储设备。云硬盘挂载到美团云主机上之后,对用户呈现出来的就和普通的硬盘一样。但是实际上,其后台对接的是一个分布式块存储的系统,而不是本地硬盘。
云硬盘和对象存储不同,它需要挂载到美团云主机上之后,和计算资源一起才能使用。通常,云硬盘存储的是相对热的数据。比如对于一个电商网站,动态处理用户游览、购买等行为的数据库服务就会使用云硬盘。而静态的用户的日志数据则可以存储在对象存储上。
美团云硬盘的特点
我们都知道,云平台是资源和任务的管理平台,有几个支撑性的业务。第一个是计算虚拟化,美团云使用了开源的KVM和自研结合的方式;第二个是网络虚拟化OVS;第三个是存储虚拟化。云硬盘就是通过分布式的块存储系统,实现了存储虚拟化。
与分布式块存储相对的存储方式还有本地存储和集中共享存储。为什么选择分布式块存储作为云硬盘的实现方式呢?
原因就在于,本地存储的实现技术简单,存储性能高。但是本地存储的image下载很慢,阻碍了云主机迁移,而且一旦节点故障则数据损坏或不可用,可用性就变得很低。集中式共享存储,云主机可以很容易地迁移,但是成本较高,可用性低,扩展性也比较低。相比之下,分布式块存储的方式通过多副本或纠删码的存储方式,可靠性高。同时有易迁移、可用性高、扩展性好等优势。因此,云硬盘可为云计算平台带来许多优良特性,如更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。首先存储虚拟化意味着虚拟硬盘可以跨物理机访问,云硬盘使得云主机上挂载的硬盘容量不受限于物理硬件,同时大力支持弹性伸缩,这也是云服务的精髓之一。其次,存储虚拟化可以将负载比较重的物理服务器上的任务迁移到负载比较轻的物理服务器上,达到分散负载,提高性能的目的。同时便于云主机的迁移。第三,云硬盘有树形快照、简配等诸多高级功能。第四,云硬盘降低了存储对于硬件的依赖,并提高了实时分配存储空间的效率,从而能够降低用户的使用成本。
● 美团云分布式块存储系统Ursa的出现
云硬盘背后用到了美团云自研的分布式块存储系统Ursa。之所以选择自研Ursa,是因为我们在测评中发现,分布式块存储领域的开源项目均存在一些问题,使得它们都难以直接应用在大规模的生产系统当中。
例如Ceph RBD的效率较低(CPU使用过高);Sheepdog在压力测试中出现了数据丢失的现象;MooseFS的POSIX语义支持、基于FUSE的架构、不完全开源的2.0版本等问题给它自身带来了许多的局限性;GlusterFS与Ceph同属红帽收购的开源存储系统,主要用于scale-out文件存储场景,在云计算领域使用不多。此外,这些存储系统都难以充发挥用万兆网卡和SSD的性能潜力,难以在未来承担重任。
由于以上原因,美团云研发了全新的分布式块存储系统Ursa,通过简单稳固的系统架构、高效的代码实现以及对各种非典型场景的仔细考虑,实现了高可靠、高可用、高性能、低开销、可扩展、易运维、易维护等等目标。
Ursa的名字源于DotA中的熊战士,他具有极高的攻击速度、攻击力和生命值,分别隐喻存储系统中的IOPS、吞吐率和稳定性。
Ursa的设计借鉴了google的GFS,同时注入了美团云研发团队的新鲜思路。对Ursa进行性能测试后,我们发现:
(1) Ursa在吞吐率测试中可以轻易接近网卡理论带宽;
(2) Ursa的IOPS性能可以达到SSD的水准;
(3) Ursa的读延迟接近ping值,写操作需要写3个副本,延迟比读高68%。
这些数据都优于Ceph的测试结果,达到了Ursa设计之初对IOPS、吞吐率和稳定性的要求。未来,随着一步步的完善,相信Ursa将在云平台的运营当中起到越来越重要的作用
美团云硬盘的高级功能
美团云硬盘有诸多用户常用的高级功能:
第一个是“树形”多重快照。如下图t1,t2,t3三个时刻,每一个时刻的数据都能进行快照,如果出现了问题,就可以回到之前的时刻重新开始。
同时,整个快照的结构是树型的,而不是一条直线。如下图,当回到t2时刻,然后重写数据,到达
t4时刻,这个时候t3时刻的数据依旧快照保留。同里,回到t1时刻重写数据时,t2、t3、t4的快照都保存着。
美团云硬盘的快照采用了增量备份的方式。增量意味着,对于一块500G的硬盘, 存储第一次快照使用了500G的容量。如果第二次快照时只有50G的数据发生了变化,那么存储两次快照总共需要花费的存储空间只有550G。如果用户删除了其中一个快照,系统只会删除其中不会被其它快照使用的数据。所以,增量本分既节省了存储成本,又不会影响数据的可靠性。
第二个云硬盘的高级功能是“精简配置”。在这里,“精简配置”不仅仅是稀疏文件,还能够有空间回收能力。因为只有擦除以后,固态硬盘才能写,“精简配置”功能可以实现提前擦除,因而提高了固态硬盘写的性能。
第三个 云硬盘的高级功能是“热插拔”。热插拔提高了云硬盘的拓展性和移动性。比如,在正在运行的一台虚拟机上拓展一块云硬盘,不影响虚拟机原来的服务,拓展性好。 再比如,有类似优盘的功能。云硬盘可以轮流的给多个虚拟机使用而不用重复开关机器,移动性好。