Storage Devices and Networks
In this section, we will take a look at the various types of storage devices and storage networks. Storage plays an important role in any system and having a high level understanding of this could be essential.
This topic would explain the different types of storage devices which are presently in use.
Broadly there are 6 types of storage devices:
- Solid State Drive
- All Flash Array
- Block based storage
- Object Storage
1. Solid State Drive:
A Solid State Drive is a storage device that uses integrated circuit assemblies as memory to store data persistently. SSD technology primarily uses electronic interfaces compatible with traditional block input/output (I/O) hard disk drives. SSDs have no moving mechanical components. This distinguishes them from traditional electromechanical magnetic disks such as hard disk drives (HDDs), which contain spinning disks and movable read/write heads. SSDs have lower access time, and lower latency.
2. Flash Storage:
Flash storage is a non-volatile computer memory with an integrated circuit that does not need continuous power to retain the data, but is a bit more expensive than magnetic storage. Modern SSD hard drives are Flash-based, so today there’s not really a difference today between SSD and Flash. SSD is simply a disk that doesn’t have moving parts, and Flash is the implementation that allows that to happen.
3. All Flash Array:
An all-flash array is a solid state storage disk system that contains multiple flash memory drives instead of spinning hard disk drives.
4. Block Storage:
Block storage is a type of data storage where data is stored in volumes, also referred to as blocks. Each block acts as an individual hard drive. These blocks are controlled by the server-based operating system, and are generally accessed by Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) or iSCSI protocols. While block storage devices tend to be more complex and expensive than file storage, they also tend to be more flexible and provide better performance.
5. Object Storage:
In Object Storage, an object is defined as data (typically a file) along with all its metadata, all bundled up as an object. This object is given an ID that is typically calculated from the content of that object (both file and metadata) itself. An object is always retrieved by an application by presenting the object ID to object storage. Unlike files and file systems, objects are stored in a flat structure.
Storage Area Network:
A storage area network (SAN) is a network which provides access to consolidated, block level data storage. SANs are primarily used to enhance storage devices, such as disk arrays accessible to servers so that the devices appear to the operating system as locally attached devices.
A SAN typically has its own network of storage devices that are generally not accessible through the local area network (LAN) by other devices. A SAN does not provide file abstraction, only block-level operations. However, file systems built on top of SANs do provide file-level access, and are known as shared-disk file systems.
Network-attached storage (NAS):
NAS was designed before the advent of SAN, as a solution to the limitations of the traditionally used direct-attached storage (DAS), in which individual storage devices such as disk drives are connected directly to each individual computer and not shared.
SAN vs NAS:
Following are the differences between a SAN and a NAS:
- In a NAS solution the storage devices are directly connected to a "NAS-Server" that makes the storage available at a file-level to the other computers across the LAN. In a SAN solution the storage is made available via a server or other dedicated piece of hardware at a lower "block-level", leaving file system concerns to the "client" side.
- SAN uses protocols like ISCSI, whereas NAS uses protocol like NFS
iSCSI (Internet Small Computer System Interface):
iSCSI is nothing but an IP based standard for interconnecting storage arrays and hosts. It is used to carry SCSI traffic over IP networks. It’s a networking protocol which is built on top of TCP/IP.
NAS systems are networked appliances which contain one or more storage drives, often arranged into logical, redundant storage containers or RAID.
RAID (originally redundant array of inexpensive disks, now commonly redundant array of independent disks) is a data storage virtualization technology that combines multiple physical disk drive components into a single logical unit for the purposes of data redundancy, performance improvement, or both.
Data is distributed across the drives in one of several ways, referred to as RAID levels (RAID 0 to RAID 6), depending on the required level of redundancy and performance.
How do RDBMS store the data?
RDBMS typically use B+ trees. B+ tree is a special data structure allowing to efficiently store (i.e. access and update) a large sorted dictionary on a block storage device (i.e. HDD or SSD).
Sorted dictionary is, essentially, a phone book: it allows locating a random entry by doing a tiny number of steps - i.e. without reading the whole book.