Sunday, February 1, 2015

Today we cover object storage vs block storage.
The rate of adoption for ObjectStorage can become very exciting both as an IT Admin and as a user.  Here are some use cases where it may prove more beneficial than say block storage:
  1. If you have static content of varying sizes and you cannot label the workload into  a category except calling it miscellaneous, then you can use ObjectStorage. It lets you add metadata to each content now treated as an object with some context around the data. It doesn’t split up files into raw blocks of data but the entire content is treated as an object. Whether its a few photos, uploaded music videos, backup files or just other data from your PC, they can now be archived and retrieved at will.
  2. No matter how many objects or their sizes, each object can be uniquely and efficiently retrieved by its ID. 
  3. When the basket of miscellaneous object grows to a few hundred terabytes or even a few petabytes, storage systems that were relying on adding block storage cannot keep up. Object Storage does not require you to mount drives, manage volumes or remap volumes. Besides, objects can store multiple copies of data which improves availability and durability. Whether its S3, Swift or Atmos, most vendors give this assurance.
  4. ObjectStorage can work with NAS and commodity nodes where scaling out is just addition of new compute rather than new storage.
  5. That brings to the point that if you are using data that is high up in read-write  such as say databases, then block storage such as with SAN will be helpful.
  6. You can sign a link to the object and share it with others to download with their web browser of choice.
If you have access keys to the object storage, you can upload the objects this way :

       $s3 = S3Client::factory(array(
            'base_url' => $host,
            'key'    => $access,
            'secret' => $secret,
            'region' => $region,
            'ssl.certificate_authority' => $ssl_certificate_authority,
        ));

        $result = $s3->putObject(array(
            'Bucket'     => $bucket,
            'Key'        => $key,
            'SourceFile' => $file,
            'Metadata'   => array(
                'source' => 'internet',
                'dated' => 'today'
            ) 
        ));

        $s3->waitUntilObjectExists(array(
            'Bucket' => $bucket,
            'Key'    => $key,
        ));

This is written using S3 APIs
Most S3 compatible vendors of Object Storage maintain their own set of access keys so you cannot use their access keys against another vendors' endpoint or storage.

No comments:

Post a Comment