Storage
SSDs
Types of SSDs:
- Form Factors:
- 2.5" : looks like an HDD, slower, only supports SATA.
- M.2: They come in few standard lengths (60mm, 80mm, 110mm), they support two interfaces:
- SATA
- PCIe (with and without NVMe support)
- Add-in Card (AIC): Bigger than M.2 and operates over PCIe.
- mSATA: looks like M.2, very small
- U.2: Looks like 2.5" but they way faster. They are mainly used in the enterprise (Data centers)
NVME (Non-Volatile Memory Express):
- is a super fast way to access SSDs and flash memory (NVM)
- NVMe is not an interface and not a form factor (like SATA or PCIe) but a data transfer protocol
- SSDs used SATA -> PCIe (lack of standard and features) -> NVMe
Lots of videos at the bottom of the page
PCIe
- Each PCIe interface can be configured with 1 lane or multiple lanes x4 (x4, x8, x16 and x32).
- Each PCIe Generation doubles the bandwidth
- PCIe is backward compatible (The interface and card settle on the lower version)
- PCIe cards can be plugged in slots with different number of lanes with the consequence of having less bandwidth or wasted lanes.
Hard disk drive interface
- PATA(IDE) - SCSI: Old interfaces
- SATA: Personal HDD, successor of PATA
- SAS: Entreprise HDD, successor of SCSI
- More and More
Disks and Partitions
partitioning formats
There are 2 known partioning formats:
- MBR: 2TB is the limit disk size, can only create 4 primary partitions, the last one is set to extended partition in which we can create Logical partitions.
- GPT: No disk limit, no limit for partition size. The partition table information is available in multiple locations to guard against corruption. GPT can also write a “protective MBR” which tells MBR-only tools that the disk is being used.
/dev/sd* vs /dev/disks:
- The Linux kernel decides which device gets which name (
/devdevices) on each boot. which can lead to to confusion and unwanted behavior. /dev/diskshas many subfolders that points to the partitions using other parameters besides the device name (label,id,uuid...)