Updated 2/18/2025.
Storage types:
Hard Drive is used as a generic term for storage devices.
Hard Disk Drive refers to a storage device with spinning platters
Solid State Drive refers to a storage device with no moving parts
Flash Drive is a generic term for a removable USB storage device
RAID:
RAID: make one disk out of many, then put a filesystem on this “transparent” fake disk
0, offers 0 protection, “stripes” writes across multiple disks
1, mirroring, writes the same data to multiple disks
5, parity, requires at least 3 drives
6, better parity, requires at least 4?
10, mirroring + striping
ZFS is kind of like software RAID in that it doesn’t require a hardware RAID adapter
ZFS: write a filesystem across all the drives with rules on how data should be stored
JBOD: just a bunch of disks
HBAs or Host Bus Adapters are expansion cards you can install in a server to give you more physical ports to plug drives into. Most HBA cards will support SATA and SAS.
A RAID card is a type of HBA with RAID support built-in. Unlike software RAID, hardware RAID doesn’t require support from the OS and doesn’t let the OS see the underlying drives. You won’t be able to see the actual drives that make up the array in Disk Management once you boot into Windows. Instead, you’ll see the virtual drive that RAID creates.
SATA/SAS/NVMe are modern storage standards.
SATA is your average drive, SAS is SCSI but for servers with a SATA style connector, NVMe is for high-performance SSDs
IDE/SCSI are older standards.
You’ll sometimes see IDE called PATA (Parallel ATA, compared to Serial ATA)
A hard drive has to have partition information (how the drive is divided up) written to the very beginning of the drive with either MBR or GPT.
MBR is old, limiting you to 2TB total drive size and 4 partitions. You can bypass the 4-partition limit by splitting the fourth partition into multiple logical partitions
Each partition then has to have a filesystem written to it. Usually the filesystem spec will require a file table of some sort to be written to the beginning of the partition.
| Filesystem | Description |
|---|---|
| NTFS | Default filesystem for Windows |
| ReFS | New and improved Windows filesystem, not used by default. |
| FAT/FAT32/ExFAT | Windows filesystems designed for portable drives |
| ext4 | Default filesystem for Linux |
“Formatting” is the process of writing a file system to an empty partition. If a filesystem already exists, it will be wiped.
You have two options for a newly formatted “volume”: mount it as a drive letter, or mount it Linux-style into an existing folder.
A volume is basically a partition with a filesystem written to it.
“Mounting” is telling your OS to read the filesystem on a given partition and attach it to your system.
Windows partitions to know:
Recovery partition
Boot/UEFI partition, sometimes called the system partition
Windows partition/main partition
A: and B: are reserved for floppy disk drives. C: is reserved for the main Windows partition.
Two tools for managing disks in Windows:
Disk Management, available in Windows 10/11 and Windows Server 2016/2019
Server Manager > File and Storage Services
Basic disks can be booted from and don’t require Windows’ help to interpret them
Dynamic disks can’t be read until Windows starts up and figures out what to do with them
Spanned: a volume that spans across multiple disks. When the first drive fills up, Windows starts writing to the second disk and so on.
Striped, Mirrored, RAID-5
If you have a setup that can tolerate a drive failure (mirrored or RAID-5) and a drive fails, you can attach a blank drive and make it a replacement.
Pools:
Basically you add drives to a pool, telling Windows Server to figure out what to do with them.
Once that’s done, you create virtual disks, and Windows figures out what drives to split them onto to meet redundancy requirements.
Storage Tiers and storage pinning: this is a way to put files that are needed more often on SSDs
Thin/thick provisioning: same idea as thin/whatever provisioning when you make HyperV virtual disks.
Storage Spaces Direct allows you to cluster multiple storage servers and their pools together
Remember how SCSI and its successor SAS are used to physically connect hard drives to servers? iSCSI is used to connect physical drives over a network.
SMB is used to share one folder on a drive and set complicated permissions on it.
iSCSI is used to share an entire drive, whether or not it has a filesystem or anything else on it.
An iSCSI initiator is the device connecting to an iSCSI drive. An iSCSI target is the host server with the drive installed in it.
One detail, the hard drives in the backend can be physically connected using almost anything (USB, SATA, SCSI, SAS, whatever). They don’t have to be connected using SCSI for the host to then share them using iSCSI.
You use the Microsoft iSCSI Initiator Service in Windows Server to initiate a connection to an iSCSI target.
FibreChannel is an high-performance alternative to iSCSI that uses special hardware rather than already existing IP networks
Originally called FiberChannel because it could only be used with fiber optic cabling, but renamed FibreChannel after support for copper cabling was added.
HBA or host bus adapter is a term for physical cards, kind of like a NIC but for storage (supporting either a protocol like SATA/SAS/NVMe or FibreChannel)
Multi-path IO or MPIO is a way to connect file servers using multiple networks
You might have two networks, one dedicated to storage and another for your users
You could then set up MPIO to use both the dedicated storage network and the company LAN your file servers are connected to
Chkdsk is the Windows command for checking filesystems for errors. /F is the flag to fix errors instead of just reporting them. Just like with Linux, you’ll need to reboot before repairing the C: drive.