Storage plays a critical role in technology, without storage you can’t think about anything. Because of the criticality of its existence, storage providers have made enormous amount of money in the past by selling disks with the intelligent built into their proprietary storage controllers that controllers the behavior and performance of the storage. At present, that intelligence has been integrated with the software and that’s why this kind of storage are known as software defined storage. SDS has given a chance to the industry to have infinite amount of data without the hurdle of jumbling cables connectivity between the compute and the storage. In short, now you can leverage your compute with local disks attached to it and create your own software defined storage using software capabilities such as VMware vSAN, Windows S2D, Scale IO etc.
Let me provide you a high-level overview of traditional datacenter storage:
Direct Attach Storage: Direct attach storage as name describes, it is a pool of disk that can be directly connected with the server locally using SAS cable. You can attach multiple DAS with on one server in the form of chain, while number of DAS in one chain depends on DAS specification. Example: Very good option for application like Microsoft Exchange to provide large mailbox size.
Storage Area Network: SAN is a block level data storage technology and commonly used storage across enterprises. It is also known as intelligent storage and supports high availability, scalability, resiliency and so on. In general SAN has two storage controllers in HA mode and it can be connected using two methodologies based on storage type, these methodologies are fiber channel and iSCSI. Fiber channel storage uses fiber channel switch to establish a connection between storage arrays and with compute using FC cables. Now-a-days few fiber channel SAN supports FCoE (Fiber channel over Ethernet). Another option in SAN is iSCSI, it uses network switch to connect between storage arrays and with compute using SFP+ cables. There are many hybrid SANs are available in the market, which supports both the technologies.
Network Ares Storage: NAS is a file level computer data storage, which used over the network. Many enterprises use this technology for File Share storage and NFS. This type of storage directly connects to your local area network using ethernet switch.
Software Defined Storage: Software defined storage is a latest technology that is being used in traditional datacenter as well as in the cloud. This technology generally used your local internal storage of the server and leverage the storage logic defined by software services such as vSAN from VMware, Storage space direct from Microsoft and Scale IO from Dell EMC etc. It uses a pool of servers and their local storage to create a single storage pool that can leveraged across the compute nodes. It also provides traditional SAN capabilities such as tiering.
When it comes to the cloud and specifically Microsoft Azure storage services, you can differentiate available services in four categories i.e. blob, file queue and table storage. In most of the cases, you leverage blob storage. To know more about in details, read the following posts:
Step-by-step Microsoft Azure Storage
Now, let me explain how to do a selection of storage in cloud.
Largely data in cloud has been divided into two large pieces i.e. structured data and unstructured data. While the type of storage has been divided into two tiers i.e. Standard and Premium. Standards storage is common across entire storage service landscape while premium is only part of the blob and can be leveraged only to create OS and data disks. Follow the following steps to select the right set of storage service option for your specific solutions.
OS & data disk: Uses blob and performance tier can be selected between standard and premium. Standard is backed by SAS HDDs and premium is backed by high-performance SSDs. Many high-performance OS disks use SSD by default. OS disk is to install the operating systems and data disk can be used to install application binaries and to store the application data as well.
Application storage requirement: Look at the application architecture and IOPS requirement. Look at your exiting application environment and storage configuration in case of brown field and use the application definition documentation to estimate the storage size, performance tier and type of storage service. Once defined then use the storage service based on your application requirement.
Database storage requirement: First select between PaaS and IaaS based on your application need and then define the storage tier and storage service based on your database type and application need.
Above mentioned criteria are a very high-level decision-making technique but in one line I would say, know your application and data requirement in terms of size (first) and availability/replication (second) and performance (third) to make the right selection.