浅析云存储的高效性保证
2013-01-12 作者:CIO时代网
大中小
云计算是将各种计算资源和商业应用程序以互联网为基础提供给用户的计算服务,这些服务将数据的处理过程从个人计算机或服务器转移到互联网的数据中心,将IT技术外包给云服务提供商来减少用户在硬件、软件和专业。从目前典型的云存储系统来看,云存储统由位于互联网上的大量存储资源以及将这些存储资源组织为可供用户透明访问的资源池的一整套资源管理与访问控制技术所组成。
云存储的高效性保证
(一)数据的写入
在原始的数据写入策略中,用户需要确认写入数据的确切位移,而且对同一个数据的写入而言是串行的,很明显在分布式中这是不合适的,每时每刻系统都面对着巨量的访问,原始的写入策略需要精密的锁控制,严重的影响了系统的性能。
GFS提供了一种原子的数据追加操作–记录追加。使用记录追加,客户机只需要指定要写入的数据。GFS保证至少有一次原子的写入操作成功执行(即写入一个顺序的byte流),写入的数据追加到GFS指定的偏移位置上,之后GFS返回这个偏移量给客户机。这类似于在Unix操作系统中,对以O_APPEND模式打开的文件,多个并发写操作在没有竞态条件时的行为。这种并行的写入策略极大的提高了系统的性能,在分布式领域中有着广泛的运用。
(二)数据的读取
数据的读取形式分为大规模的流式读取和小规模的随机读取。大规模的流式读取通常一次读取数百KB的数据,更常见的是一次读取1MB甚至更多的数据。小规模的随机读取通常是在文件某个随机的位置读取几个KB数据。如果应用程序对性能非常关注,通常的做法是把小规模的随机读取操作合并排序,之后按顺序批量读取,这样就避免了在文件中前后来回的移动读取位置。同时在读取数据时如果数据块儿过大还可以通过分块儿的并行数据读取方式来获取数据。