Cloud Notes
Understanding storage virtualization techniques including SAN, NAS, software-defined storage, and how cloud providers deliver scalable storage services.
Storage virtualization abstracts physical storage devices into logical storage pools, presenting a unified view of storage resources regardless of their physical location or type. It enables efficient storage management, flexible allocation, and advanced features like thin provisioning and snapshots.
Storage Virtualization Architecture
| │ │ VM sees | /dev/sda (100GB disk) │ │ |
| │ │ App sees | Mounted filesystem │ │ |
| │ │ Features | Thin provisioning, Snapshots, │ │ |
| │ │ Total Physical | 24TB │ │ |
| │ │ Presented to VMs | Up to 100TB (thin provisioned) │ │ |
Types of Storage Virtualization
Block-Level Virtualization (SAN)
# Linux LVM - Block storage virtualization
# Create physical volumes
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
# Create volume group (storage pool)
sudo vgcreate storage-pool /dev/sdb /dev/sdc /dev/sdd
# Create logical volumes (virtual disks)
sudo lvcreate -n web-data -L 500G storage-pool
sudo lvcreate -n db-data -L 1T storage-pool
# Thin provisioning (allocate more than physical capacity)
sudo lvcreate --thin -n thin-pool -L 2T storage-pool
sudo lvcreate --thin -n vm-disk1 -V 500G --thinpool thin-pool storage-pool
sudo lvcreate --thin -n vm-disk2 -V 500G --thinpool thin-pool storage-pool
# Snapshots
sudo lvcreate --snapshot -n db-snapshot -L 50G storage-pool/db-dataFile-Level Virtualization (NAS)
# NFS Server setup (Network Attached Storage)
sudo apt install nfs-kernel-server
sudo mkdir -p /exports/shared-storage
# Configure NFS exports
echo "/exports/shared-storage 10.0.0.0/24(rw,sync,no_subtree_check)" | \
sudo tee -a /etc/exports
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
# Mount on client VM
sudo mount -t nfs server:/exports/shared-storage /mnt/sharedSoftware-Defined Storage (SDS)
Cloud Storage Virtualization
| Service | Type | Provider | Use Case |
|---|---|---|---|
| EBS | Block | AWS | VM disks, databases |
| S3 | Object | AWS | Files, backups, data lakes |
| EFS | File | AWS | Shared filesystem for containers |
| Azure Managed Disks | Block | Azure | VM storage |
| Persistent Disk | Block | GCP | Compute Engine VMs |
| Cloud Storage | Object | GCP | Unstructured data |
# AWS EBS - Create and attach virtual block storage
aws ec2 create-volume \
--availability-zone us-east-1a \
--size 1000 \
--volume-type gp3 \
--iops 16000 \
--throughput 1000 \
--encrypted
# Storage features in cloud
# Snapshots (point-in-time backup)
aws ec2 create-snapshot --volume-id vol-123456 --description "Daily backup"
# Cross-region replication
aws s3api put-bucket-replication --bucket my-bucket \
--replication-configuration file://replication.jsonKey Features of Storage Virtualization
- Thin Provisioning: Allocate more storage than physically available
- Snapshots: Point-in-time copies without full data duplication
- Deduplication: Eliminate duplicate data blocks
- Compression: Reduce storage space used
- Tiering: Automatically move data between fast (SSD) and slow (HDD) storage
- Replication: Mirror data for disaster recovery
Interview Questions
- What is storage virtualization and why is it important?
Storage virtualization abstracts physical storage into logical pools, enabling flexible allocation, thin provisioning, snapshots, and unified management. It's important because it improves utilization (from ~30% to 70%+), simplifies management, and enables advanced data services.
- Explain thin provisioning with an example.
Thin provisioning allocates virtual storage that exceeds actual physical capacity. Example: With 10TB physical storage, you can provision 10 VMs with 5TB virtual disks each (50TB total). Actual space is consumed only as data is written. This works because most VMs don't use their full allocation.
- What is the difference between SAN and NAS?
SAN provides block-level storage over a dedicated network (Fibre Channel or iSCSI) — VMs see raw disks. NAS provides file-level storage over standard networks (NFS, SMB) — VMs see shared directories. SAN is for high-performance databases; NAS is for shared file access.
- How does Ceph implement software-defined storage?
Ceph distributes data across commodity servers using CRUSH algorithm for placement. It provides block (RBD), file (CephFS), and object (RADOS) storage from a single cluster. Data is replicated across nodes for reliability, and the cluster self-heals when nodes fail.
- How do cloud providers implement storage virtualization at scale?
Through distributed storage systems that replicate data across multiple physical devices and availability zones. For example, AWS EBS replicates within an AZ, S3 replicates across AZs. Storage is provisioned via API, scaled elastically, and billed per-GB per-month.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Storage Virtualization.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Cloud Computing topic.
Search Terms
cloud-computing, cloud computing, cloud, computing, virtualization, storage, storage virtualization
Related Cloud Computing Topics