Comprehensive overview of cloud storage types including direct attached file block and object storage with explanations of their characteristics performance considerations and appropriate use cases
This document provides an overview of cloud storage in cloud computing, explaining its benefits, use cases, and considerations for provisioning. Cloud storage allows you to save data files in the cloud, with some storage types requiring attachment to a compute node, while others can be accessed directly via the Internet or a private network. Cloud providers manage and maintain the storage infrastructure, ensuring data availability and scalability. The document covers different types of cloud storage, including Direct Attached Storage, File Storage, Block Storage, and Object Storage, detailing their characteristics, advantages, and typical use cases. Additionally, it discusses persistence, snapshots, and their roles in data backup and recovery.
Cloud storage is where you save data files in the cloud. Some storage must be attached to a compute node before it can be accessed, while other types can be accessed directly through the public Internet or a dedicated private network connection. Cloud providers host, secure, manage, and maintain the cloud storage and associated infrastructure to ensure you have access to your data when you need it. Cloud storage services allow you to scale your capacity as needed, so you only pay for what you provision, usually on a per gigabyte basis. The cost of storage varies by type, with faster read/write speeds generally costing more per gigabyte.
graph TD;
A[Cloud Storage] --> B[Direct Attached Storage]
A --> C[File Storage]
A --> D[Block Storage]
A --> E[Object Storage]
B --> |Fast| F[Ephemeral]
B --> |Not Shareable| G[Within Host Server]
C --> |Slower| H[NFS Storage]
C --> |Lower Cost| I[Multiple Servers]
D --> |Fast & Reliable| J[Fibre Connections]
D --> |Suitable for Databases| K[Provisioned in Volumes]
E --> |Cheapest| L[API Access]
E --> |Infinite Size| M[Unstructured Data]
Direct Attached Storage, sometimes referred to as Local Storage, is storage presented directly to a cloud-based server. It is either within the host server chassis or within the same rack. This storage is fast and typically used to store a server’s operating system. However, it is not ideal for other uses because it is usually Ephemeral, lasting only as long as the compute resource it is attached to—and cannot be shared with other nodes. It is also less resilient to failure compared to other storage types.
File storage is typically presented to compute nodes as NFS Storage (Network File System), connected over a standard ethernet network. While common, it tends to be slower than direct-attached or block storage because data travels over an ethernet network. It is also lower in cost. One advantage of file storage is that it can be mounted on multiple servers simultaneously. It is a straightforward approach to data storage, suitable for organizing data in a hierarchical folder structure familiar to desktop users.
Block storage is presented to compute nodes using high-speed fibre connections, making it faster and more reliable than file storage. It is suitable for databases and applications where disk speed is important. Block storage is provisioned in volumes that can be mounted onto a compute node, appearing as another hard drive. Volumes can typically only be mounted on one compute node at a time. The term IOPS (Input/Output Operations Per Second) relates to the speed of the storage, indicating how quickly data can be read from or written to the storage.
Object storage is accessed via an API and is not attached to a compute node. It is the cheapest and slowest in terms of read and write speeds but offers infinite size to the end user. Unlike file and block storage, where you provision a certain capacity, object storage allows you to keep adding files without filling up, paying only for what you use. It is ideal for storing unstructured data types, including documents, videos, logs, backups, data from IoT, application binaries, and virtual machine images.
Persistence refers to what happens to the storage once the compute node it is attached to is terminated. If set to ‘persist’, the storage and its data are preserved and available to mount onto another compute node, though you will continue to pay for the storage. If set to be automatically deleted with the compute node, it becomes Ephemeral Storage, and you will stop paying for it but lose any data unless backed up elsewhere.
One way to back up both file and block storage is to take a Snapshot, which is an image of the storage at a particular instant. Snapshots are fast to create, do not require downtime, and subsequent snapshots record only changes to the data. They are useful for returning storage to a previous state but cannot recover individual files.