- Part 1: Intro
- Part 2: Hardware, Protocols, and Platforms, Oh My!
- Part 3: File Systems
- Part 4: The Layer Cake
- Part 5: Summary
Welcome to the New Year!
I wanted to write a blog post on a very confusing storage topic (at least for myself) but I have also been searching for another large scale topic similar to the set I wrote on RAID last year. After thinking about it I feel like my confusing question is really just a subset of a misunderstanding about block storage. So without further ado, I’m going to write up a pretty detailed break down of SAN (Storage Area Networks), or block storage, vs NAS (Network Attached Storage), or file storage. This is another topic, like RAID, that is fundamental and basic but not always fully understood.
Certainly there are other write ups on this topic out there, and in ways this can be summed up in just a few bullet points. But I think a larger discussion will really help solidify understanding.
The specific confusing question I’ll ask and hopefully answer is, with thin provisioned block storage, if I delete a ton of data out of a LUN, why do I not see any space returned on the storage array? Say I’ve got a thin 1TB LUN on my VMAX, and it is currently using (allocated) 500GB of space. I go to the server where this LUN is attached and delete 300GB of data. Querying the VMAX, I still see 500GB of space used.
This concept is hard to understand and I’ve not only asked this question myself, I’ve fielded it from several people in a variety of roles. Central to understanding this concept is understanding the difference between file and block storage.
To start out, let’s briefly define the nature of things about file and block storage.
SAN – Block Storage
The easiest way to think of SAN is a disk drive directly attached to a computer. Block storage access is no different from plugging in a USB drive, or installing another hard drive into the server, as far as how the server accesses it. The medium for accessing it over your SAN varies with protocols and hardware, but at the end of the day you’ve got a disk drive (block device) to perform I/O with.
NAS – File Storage
The idea with NAS is that you are accessing files stored on a file server somewhere. So I have a computer system in the corner that has a network service running on it, and my computer on my desk connects to that system. Generally this connection is going to be CIFS (for Windows) or NFS (for *nix/vSphere). The file protocol here varies but we are (most of the time) going to be running over IP. And yes, sometimes Linux folks access CIFS shares and sometimes Windows folks do NFS, but these are exceptions to the rule.
In part 2, I’ll be covering more of the differences and similarities between these guys.