Storage Protocols?

Synomenon

Lifer
Dec 25, 2004
10,547
6
81
So I'm doing a little research on different storage protocols and have ended up confusing myself. After reading various sites about storage, what I know is that we have:
- block storage
- file storage
- object storage

Block storage stores data in "blocks" that can be recognized and controlled as if each block were a separate hard drive. The blocks of data don't contain any metadata.

File storage uses metadata and directories to organize files across a disk.

Object storage clumps data together as one object that contains the data and metadata. Each object also has a unique identifier. All these attributes makes the data easier to organize.


That's a short summary of what I've found. What I'm confused about and don't know is an example of a storage protocol of each type of storage above? Or is each of the three above a storage protocol?
 
Feb 25, 2011
16,980
1,616
126
This sounds like homework. :p

I'd say you're off on the wrong foot. A storage protocol would be, like, iSCSI or something. Block vs. file is more of a category; how the local host "sees" the storage. (At the lowest level it has access to, anyway.)*

iSCSI is, for example, a protocol to implement the SCSI command set over IP, and falls under the category of block storage.

* So you could create a sparsefile on one system, and it's file based, but use the iSCSI daemon to present that to another system, which uses that to present an nfs share. So you've got file on block on file on block. I hope that's confusing.
 

Synomenon

Lifer
Dec 25, 2004
10,547
6
81
Ah ok so the actual "protocols" are ISCSI, FC, NFS, CIFS, etc..

That's all I was looking for clarification on. File, block, object are just types or categories of storage.

Thanks!

Not homework though. It's for something else I'm studying for. Google and the resource books I have weren't clear enough on this... :p
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
File, block, and object are ways to address specific sets of data on devices.

Block is as close to raw access as you generally get, when dealing with hardware. It's usually either 512B or 4KiB in size, and the device looks like a big long string of them. HDDs and SSDs are accessed by block (LBA = Logical Block Addressing), for example. Block devices are seen as big series of addressable data. Maybe it could help to think of each block as a page in a book, with the book being the device itself, and the bytes within as words on the pages. Accessing by individual byte would be cumbersome, with way too much overhead to be useful, and it's more common to need many KBs at a time, anyway.

File and object access rest on top of block access, and are how separately named sets of data (IE, files or objects) are accessed.

File systems have named paths for some set of data, nested in directory trees (C:\, C:\Users, C:\Users\You, etc.). The folder metaphor is quite apt. The name is given to the file system which then looks up the file, and returns data from the file as if it were one big long string. The program accessing it doesn't have to know or care where it actually is, in terms of the hardware used, or actual physical address.

Object storage is like file storage, but usually much simpler, and made to be used by specific programs or data access APIs, instead of a generalized structure for any kind of software. So, the entire device might have a single list of objects with names, and little to no robust fault tolerance (some probably do, but object storage is typically used by specific applications, to reduce overhead of file system access, and may have much simpler and harsher means of dealing with corruption or loss than general purpose FSes). Instead of requesting, "C:\Users\You\Desktop\pr0n\kinky.mp4", where the file system must navigate to Users, then You, then Desktop, then pr0n, then check permissions on that file, then return the file, it may just ask for item 24598764, and return that item's contents. Key-value stores like you describe are the most common ways to do it today, but object storage covers a wider swath than just that.
 

bbhaag

Diamond Member
Jul 2, 2011
7,094
2,530
146
I thought protocols were more like Ahci and nvme. NTFS and Fat32 ect are file systems.
 

ch33zw1z

Lifer
Nov 4, 2004
39,038
19,730
146
I thought protocols were more like Ahci and nvme. NTFS and Fat32 ect are file systems.

Ahci and nvme are standards to talk to disks. Ahci over the SATA bus, nvme over the pcie bus.

The OP is discussing large scale storage protocols, but at the storage device, the drives can be SATA, sas, fc, nvme, etc...

Side note, people always leave out the forgotten ficonn :p
 
  • Like
Reactions: Synomenon