2013年4月5日 星期五

Object based storage or block device storage ?

圖片來源:Cloudcomputing Journal

這一陣子花了不少時間在研究與思考一個問題,就是關於資料的儲存與分析,同樣是面對資料,但是卻往往使用不同的技術在處理,舉Amazon來說,如果你想要使用EMR來分析資料,Amazon 的流程是這樣,資料的儲存使用Object based storage (如:S3),而資料分析才是使用block device storage(如:HDFS),不過現在甚至可以直接從S3 取代HDFS....

所以何時開始用Object based storage何時該使用block device storage呢?

在研究這個問題前,先看看wikipedia對於object based storage的定義:
An Object-based Storage Device (OSD) is a computer storage device, similar to disk storage but working at a higher level. Instead of providing a block-oriented interface that reads and writes fixed sized blocks of data, an OSD organizes data into flexible-sized data containers, called objects.

由文字可能比較難理解,但是由圖片來看應該就比較好理解。


另一份是IBM的論文在解釋Block Device 和 Object Store的差異



所以兩者最大的差異是怎麼去看待物件這回事,Object Storage 存取是針對Object 像是create Object delete object,另一個重點是要提供Http API (Restful),所以只要符合這幾個原則,不管後端是block file system or HDFS 都算是Object storage。



此外我在找資料的時候剛好看到這一篇文章 "Because Hadoop isn’t perfect: 8 ways to replace HDFS",這就厲害了,這篇文章舉出八個替代HDFS的Solution:
  1. Cassandra (DataStax) :Hadoop on Cassandra
  2. Ceph (inktank) : Hadoop on Ceph
  3. Dispersed Storage Network (Cleversafe)
  4. GPFS (IBM)
  5. Isilon (EMC)
  6. Lustre
  7. MapR File System
  8. NetApp Open Solution for Hadoop
Well...這時候Hortonwork CTO就跑出來說話了...XD 他寫了這篇 Thinking about the HDFS vs. Other Storage Technologies 的文章,來說明HDFS的優點:
  • Extreme low cost per byte
  • Very high bandwidth to support MapReduce workloads
  • Rock solid data reliability
然後再進一步列出上述八個替代方案的缺點(簡單來說就是不是為了Hadoop量身訂做)
  • System not designed for Hadoop’s scale
  • System that don’t use commodity hardware or open source software
  • Not designed for MapReduce’s I/O patterns
  • Unproven technology
我想Commofity就是重點了,因為上面列的八個產品其中好幾個都是要搭配貴悚悚的特殊硬體,不過這些都是題外話了~:P



Reference:
[1] Object Storage: The Future Building Block for Storage Systems - IBM Haifa Research Laboratories
[2] Object-Based Storage Devices
[3] Objectively speaking: the future of objects



張貼留言