Think of IDE → SATA → SCSI → NVMe as an evolution of storage technologies.
|
Feature |
IDE (PATA) |
SATA |
SCSI |
NVMe |
|
Era |
Very old |
Desktop/server standard |
Enterprise servers |
Modern SSDs |
|
Speed |
Slow |
Faster |
High performance |
Fastest |
|
Queue Depth |
1 command |
32 commands |
Thousands |
64K queues × 64K commands |
|
Multiple Devices |
Limited |
Moderate |
Excellent |
Excellent |
|
Typical Use |
Old PCs |
HDDs/SSDs |
Enterprise servers/SAN |
Modern SSDs, Azure v5/v6/v7 |
|
Device Names in Linux |
/dev/hda |
/dev/sda |
/dev/sda |
/dev |
1. IDE (Integrated Drive Electronics)
Old desktop technology.
Limitations
• Very low performance
• Limited parallelism
• Few devices per controller
2. SATA (Serial ATA)
Replaced IDE in desktops and laptops.
OS--> SATA Controller --> SSD/HDD
Benefits over IDE
- Faster
- Simpler cabling
- Hot-plug support
- Better reliability
Still common for:
- Desktop SSDs
- HDDs
- Low-cost servers
3. SCSI : Small Computer System Interface.
Designed for enterprise storage.
OS--> SCSI Controller --> Many Disks
Benefits
- Supports many disks
- Better error handling
- Higher queue depth
- SAN integration
- Enterprise features
This is why VMware, Hyper-V and Azure traditionally expose storage through a virtual SCSI controller.
4. NVMe : Non‑Volatile Memory Express
Built specifically for SSDs.
OS --> NVMe Controller --> Flash Storage
Major advantages
- Very low latency
- Much higher IOPS
- Better CPU efficiency
- Massive parallelism
This is why Azure is moving newer VM sizes from SCSI to NVMe. The storage remains remote Azure Managed Disk, but the guest OS communicates through an NVMe controller instead of a SCSI controller
Simple Analogy
Imagine a highway:
- IDE = 1-lane road
- SATA = 2-lane road
- SCSI = 8-lane highway
- NVMe = 100-lane expressway
When many I/O requests arrive simultaneously, NVMe can process far more requests with lower latency.
Why VMware Still Uses SCSI?
Most operating systems support SCSI universally.
Advantages:
- Excellent compatibility
- Stable and mature
- Works with Windows, Linux, Unix
- Easy migration between platforms
The controller interface and the actual storage media are two different things
SSD can be connected through either a SCSI controller or an NVMe controller. SSD does not automatically mean NVMe.
NVMe can process many more I/O requests simultaneously.
[root@RHEL8 ]# sudo lshw -class disk -class storage
*-scsi:0
physical id: 7
logical name: scsi1
*-scsi:1
physical id: 8
logical name: scsi0
*-disk:0
description: SCSI Disk
product: Virtual Disk
vendor: Msft
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sdb
version: 1.0
size: 64GiB (68GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=1121c682-1627-4ef1-bc0f-7eeaa7dd31a4 logicalsectorsize=512 sectorsize=4096
*-disk:1
description: SCSI Disk
product: Virtual Disk
vendor: Msft
physical id: 0.0.1
bus info: scsi@0:0.0.1
logical name: /dev/sdc
version: 1.0
size: 75GiB (80GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=a2aeecc8
In bus info: scsi@0:0.0.0 is the SCSI addressing format.
scsi@Host:Channel.Target.LUN OR [Host:Channel:Target:LUN] --> HCTL
|
Field |
Value |
Meaning |
|
Host |
0 |
First SCSI controller |
|
Channel |
0 |
Channel on controller |
|
Target |
0 |
Target device ID |
|
LUN |
0 |
Logical Unit Number |
[root@RHEL8 naveen]# lsscsi
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdb
[0:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdc --> 1st SCSI controller with LUN 1
[1:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda --> 2nd SCSI controller with LUN 0
Post a Comment