Category
Compute
1. Introduction
What this service is
Local SSD is a high-performance, physically attached (host-local) solid-state drive option for Google Cloud Compute Engine virtual machines (VMs). It provides very low latency and high throughput for temporary data.
Simple explanation (one paragraph)
Use Local SSD when you need extremely fast disk performance on a VM—faster than network-attached disks—and you can tolerate the data being temporary. It’s commonly used for caches, scratch space, temporary processing, and high-speed staging during compute jobs.
Technical explanation (one paragraph)
Local SSD is ephemeral block storage that is directly attached to the physical host running your Compute Engine VM (typically exposed as NVMe or SCSI devices). Because it is not network-attached, it delivers high IOPS and throughput with low latency. The tradeoff is durability: Local SSD data does not persist if the VM is stopped/terminated or if the VM is moved to a different host (for example, during certain maintenance or failure scenarios). You typically pair it with durable storage such as Persistent Disk / Hyperdisk, Cloud Storage, or a database for authoritative data.
What problem it solves
Local SSD solves the “I need disk speed now” problem for compute workloads that are bottlenecked by storage latency/IOPS, especially when the data is disposable or reconstructable (caches, scratch, intermediate outputs). It’s a key building block for performance-sensitive architectures in the Compute category on Google Cloud.
2. What is Local SSD?
Official purpose
Local SSD provides high-performance ephemeral local block storage for Compute Engine VMs. It is designed for workloads that need very fast read/write access to temporary data.
Core capabilities – Attach one or more Local SSD devices to a VM (subject to machine type and platform support). – Use Local SSD as raw block devices, format them with a filesystem (ext4, xfs, etc.), or combine multiple devices using RAID for higher throughput. – Achieve very low latency and high IOPS compared to network-attached block storage.
Major components – Compute Engine VM instance: Local SSD is not a standalone service; it is configured as part of a VM. – Local SSD device(s): Presented to the guest OS as block devices (commonly NVMe). – Guest OS filesystem / RAID layer: You decide how to format and mount devices, and whether to use RAID (mdadm) for performance.
Service type – Ephemeral block storage attached to Compute Engine instances (in the Compute category).
Scope (regional/global/zonal/project-scoped, etc.) – Local SSD is zonal in practice because it is tied to a VM running in a specific zone and on a specific host. – It is project-scoped in the sense that you allocate it as part of VM resources in a project, but it is not a separately managed “disk resource” you can move around independently.
How it fits into the Google Cloud ecosystem – Works with Compute Engine directly and indirectly supports performance architectures for: – Google Kubernetes Engine (GKE) nodes (Local SSD-backed ephemeral volumes for pods, depending on GKE mode and node configuration). – Data analytics / HPC jobs on Compute Engine. – High-performance caching layers in front of durable stores (Cloud Storage, Persistent Disk / Hyperdisk, Cloud SQL, etc.).
Name status (renamed/legacy/deprecated?)
As of the latest generally available Compute Engine storage options, “Local SSD” is still the current product name used in Google Cloud documentation. Verify any newly introduced variants or platform-specific behaviors in the official docs if you are planning a production design:
– https://cloud.google.com/compute/docs/disks/local-ssd
3. Why use Local SSD?
Business reasons
- Faster time-to-results: Shorter job runtimes for data processing, builds, and simulations translate to lower compute time and faster delivery.
- Cost efficiency for temporary performance: For workloads where the dataset is transient, it can be more economical to use ephemeral high-speed storage than to overprovision durable storage or compute.
Technical reasons
- Very low latency: Local attachment avoids network hops inherent in network-attached block storage.
- High IOPS/throughput: Suitable for high-IO workloads (indexes, shuffle, temporary sort/merge, build artifacts).
- Predictable performance: Especially useful when you want consistently high performance for scratch space.
Operational reasons
- Simple lifecycle: Local SSD exists only with the VM; provisioning is part of instance creation.
- No snapshot/backup management: Because it is not meant for durability, you don’t manage snapshots; you manage recreation.
Security / compliance reasons
- Good fit for non-authoritative data: Store derived or temporary data that can be re-generated.
- Encryption at rest: Google Cloud encrypts data at rest by default. (Key-management options for Local SSD may differ from durable disks—verify CMEK support in official docs for your exact platform and needs.)
Scalability / performance reasons
- Scale-out throughput: Use multiple Local SSDs and/or scale horizontally across multiple VMs.
- Fast local staging: Pull from Cloud Storage to Local SSD, process locally, push results back.
When teams should choose Local SSD
Choose Local SSD when: – Data is temporary or reconstructable (cache/scratch/intermediate). – You need maximum disk performance on Compute Engine VMs. – You can design around data loss on stop/terminate/host move scenarios. – You can keep authoritative data on durable storage and treat Local SSD as a performance tier.
When teams should not choose Local SSD
Avoid Local SSD when: – You need durable storage (persistent across VM stop/terminate, snapshots, backups). – You require easy detach/reattach to other instances. – Your compliance requires specific key management features not supported by Local SSD (verify). – Your workload cannot tolerate data loss or needs strong durability guarantees.
4. Where is Local SSD used?
Industries
- Financial services: Low-latency analytics, backtesting scratch space, risk simulations.
- Gaming: Asset caches, match servers, temporary state caches.
- Media & entertainment: Transcoding scratch, temporary render caches.
- Adtech/Martech: Real-time bidding intermediate storage, fast ETL staging.
- Life sciences: Genomics pipelines temporary files, compute-heavy workflows.
- Manufacturing/IoT: High-throughput time-series pre-processing caches.
- Software/SaaS: CI/CD build caches and artifact staging.
Team types
- Cloud platform teams building standardized VM templates.
- SRE/DevOps teams optimizing latency and throughput.
- Data engineering teams running batch ETL and Spark-like workloads.
- HPC teams running MPI/compute simulations.
- Application teams needing high-speed caching on VMs.
Workloads
- Cache layers (HTTP caches, object caches, DB caches).
- Build systems (compilation caches, dependency caches).
- Batch analytics intermediate shuffle/sort data.
- Temporary database storage (only if designed for ephemeral behavior—e.g., read replicas, rebuildable indexes, or non-critical staging).
- High-speed staging for data ingestion and transformation.
Architectures
- Tiered storage architecture: Durable store (Cloud Storage / PD / Hyperdisk) + Local SSD cache tier.
- Ephemeral compute: Autoscaled instance groups where each VM uses Local SSD for scratch.
- Pipeline staging: Dataflow-like patterns on VMs: download → process → upload.
Production vs dev/test usage
- Production: Common for caches and performance scratch where data can be lost safely.
- Dev/test: Great for performance testing, CI runners, and reproducible build caches (as long as you accept ephemeral behavior).
5. Top Use Cases and Scenarios
Below are realistic scenarios where Local SSD is a strong fit. Each includes the problem, why Local SSD fits, and an example.
1) High-speed application cache on Compute Engine
- Problem: Application latency is dominated by disk reads/writes for cached objects.
- Why Local SSD fits: Low latency and high IOPS make cache access fast.
- Example: A microservice stores rendered templates and frequently accessed blobs on Local SSD; authoritative objects remain in Cloud Storage.
2) CI/CD build and dependency cache
- Problem: Build pipelines waste time downloading dependencies and writing build artifacts.
- Why Local SSD fits: Fast local storage speeds up dependency unpacking and compilation.
- Example: Self-hosted CI runners on Compute Engine store Maven/npm caches on Local SSD; build outputs upload to Artifact Registry or Cloud Storage.
3) Batch ETL scratch space
- Problem: ETL jobs create many intermediate files (sorts, joins, partitions).
- Why Local SSD fits: High sequential throughput and IOPS reduce ETL runtime.
- Example: Nightly job downloads parquet files from Cloud Storage, processes locally using Local SSD scratch, and uploads aggregated results.
4) Temporary “shuffle” storage for distributed processing
- Problem: Distributed compute frameworks use heavy local disk I/O for shuffle.
- Why Local SSD fits: Lower shuffle spill time improves job completion time.
- Example: A VM-based Spark cluster uses Local SSD for shuffle and spill directories; durable inputs/outputs are in Cloud Storage.
5) High-performance content processing (transcode/render scratch)
- Problem: Media processing writes huge intermediate files.
- Why Local SSD fits: Excellent throughput for large-file sequential workloads.
- Example: Transcode workers stage video segments on Local SSD and upload final outputs to Cloud Storage.
6) Database acceleration for ephemeral or rebuildable components
- Problem: A DB workload is I/O bound for temporary tables or rebuildable indexes.
- Why Local SSD fits: Put non-authoritative structures on Local SSD for speed.
- Example: A reporting pipeline uses Local SSD for temporary tables and sorting; source-of-truth data remains on durable disks.
7) ML feature preprocessing cache
- Problem: Feature preprocessing repeatedly reads/writes intermediate tensors/files.
- Why Local SSD fits: Fast local staging can reduce training pipeline bottlenecks.
- Example: Training jobs on Compute Engine stage TFRecord shards to Local SSD, train, and checkpoint to durable storage.
8) Gaming server temporary state/cache
- Problem: Game servers need fast local access to session caches and hot assets.
- Why Local SSD fits: Improves tick stability and reduces jitter tied to disk I/O.
- Example: Match servers use Local SSD for cached assets and logs; critical events stream to Cloud Logging / Pub/Sub.
9) High-speed log processing buffer
- Problem: Log ingestion bursts overwhelm slower disks.
- Why Local SSD fits: High ingest throughput buffers bursts reliably (while VM runs).
- Example: A VM-based ingestion tier writes raw logs to Local SSD and batches uploads to Cloud Storage.
10) Temporary staging for data migration or re-indexing
- Problem: Large migrations and reindex operations require fast staging.
- Why Local SSD fits: Local staging avoids repeated remote disk I/O.
- Example: Reindex job pulls from a database export in Cloud Storage, processes on Local SSD, then writes indexes to a durable database/storage.
11) API response caching / edge-like caching inside a region
- Problem: High read traffic causes expensive backend calls.
- Why Local SSD fits: Cheap, fast on-VM caching reduces backend load.
- Example: A VM fleet behind an internal load balancer uses Local SSD to store cached API responses.
12) Temporary workspace for security scanning / malware analysis sandboxes
- Problem: Sandboxes process many files with heavy I/O and must be disposable.
- Why Local SSD fits: Fast and ephemeral aligns with “destroy after analysis.”
- Example: Disposable scanning VMs write samples and extracted artifacts to Local SSD; results are pushed to a durable store.
6. Core Features
Feature availability can vary by machine series, zone, and guest OS. Always confirm in the official Local SSD documentation for your chosen instance type and region/zone: https://cloud.google.com/compute/docs/disks/local-ssd
Feature 1: Host-local, ephemeral block storage
- What it does: Provides block devices physically attached to the VM’s host.
- Why it matters: Minimizes latency and maximizes throughput versus networked storage.
- Practical benefit: Faster scratch operations, caching, and staging.
- Limitations/caveats: Data is not durable across VM stop/terminate and host changes.
Feature 2: High performance (low latency, high IOPS/throughput)
- What it does: Enables very fast read/write operations.
- Why it matters: Storage bottlenecks are common; Local SSD can materially reduce job runtimes.
- Practical benefit: Better throughput for pipelines, builds, and media workloads.
- Limitations/caveats: Actual performance depends on machine type, CPU/memory, block size, queue depth, and filesystem/RAID tuning.
Feature 3: Multiple devices per VM (scaling performance with striping)
- What it does: Lets you attach multiple Local SSD devices (subject to limits).
- Why it matters: You can increase aggregate throughput/IOPS by striping (RAID 0).
- Practical benefit: Better performance for large parallel I/O workloads.
- Limitations/caveats: RAID 0 increases failure domain for that scratch volume—design for loss.
Feature 4: NVMe or SCSI device interfaces (platform dependent)
- What it does: Exposes Local SSD as NVMe or SCSI devices to the guest OS.
- Why it matters: NVMe often yields better performance and modern tooling support.
- Practical benefit: Higher I/O queue depth and potentially lower latency.
- Limitations/caveats: Device naming and driver support differ across OS images and kernel versions.
Feature 5: Instance lifecycle-coupled provisioning
- What it does: Local SSD is created/allocated with the VM and released with it.
- Why it matters: Simplifies provisioning—no separate disk resource management.
- Practical benefit: Easy ephemeral compute patterns with managed instance groups.
- Limitations/caveats: No “detach and move” workflow like Persistent Disk / Hyperdisk.
Feature 6: Encryption at rest by default
- What it does: Data is encrypted at rest by Google Cloud.
- Why it matters: Helps meet baseline security expectations.
- Practical benefit: Reduced need for application-level encryption for non-sensitive scratch (though you may still require it for compliance).
- Limitations/caveats: Customer-managed encryption key (CMEK) support and controls can differ from durable disks—verify in official docs if required by policy.
Feature 7: Suitable for ephemeral Kubernetes storage (design dependent)
- What it does: Local SSD can back certain ephemeral storage patterns for containers running on Compute Engine nodes.
- Why it matters: Containers may need fast scratch volumes.
- Practical benefit: Faster build pods, ML preprocessing pods, transient caches.
- Limitations/caveats: Behavior depends on GKE mode and node config; Local SSD is not a drop-in replacement for persistent volumes.
Feature 8: Works with standard Linux filesystems and tools
- What it does: You can format and mount it like any other block device.
- Why it matters: Easy adoption for Linux workloads.
- Practical benefit: Use ext4/xfs, LVM, mdadm, fstrim, etc.
- Limitations/caveats: You must handle formatting/mounting (and re-creation) yourself.
7. Architecture and How It Works
High-level service architecture
- Control plane: Compute Engine API provisions a VM with one or more Local SSD devices attached.
- Data plane: The guest OS reads/writes directly to the Local SSD devices on the host.
- Durability boundary: Local SSD data is durable only within the lifetime of that VM on that host. If the VM is stopped/terminated or moved to another host, Local SSD content should be considered lost.
Request/data/control flow (conceptual)
- You create a VM with Local SSD using the Google Cloud Console,
gcloud, or API. - Compute Engine schedules the VM onto a host that can provide Local SSD capacity.
- The guest OS detects one or more new block devices (often
/dev/nvme*). - You format/mount devices (or RAID them).
- Your application reads/writes temporary data at high speed.
- On VM stop/terminate or host move events, Local SSD data is discarded.
Integrations with related services
- Cloud Storage: Common durable source/target for input/output datasets; use Local SSD as a staging layer.
- Persistent Disk / Hyperdisk: Keep authoritative state on durable block storage; use Local SSD for cache/scratch.
- Cloud Logging / Cloud Monitoring: Observe VM metrics; export logs rather than keeping them only on Local SSD.
- Managed Instance Groups (MIGs): Horizontal scaling of ephemeral workers using Local SSD for scratch.
- GKE: Node-local storage patterns for ephemeral workloads (verify exact current features in GKE docs).
Dependency services
- Compute Engine: Local SSD is a Compute Engine feature; it does not exist independently.
- VPC networking: Not directly required for local I/O, but almost always required for data ingress/egress, management, and monitoring.
Security/authentication model
- Access is controlled by IAM for Compute Engine resources:
- Who can create/modify instances with Local SSD.
- Who can SSH into instances and read local data.
- On the VM, standard OS-level permissions apply (Linux filesystem permissions, sudo, etc.).
Networking model
- Local SSD traffic is not network traffic; it’s local I/O within the host.
- But typical architectures use network for:
- Pulling input data (Cloud Storage, APIs).
- Pushing results.
- Remote administration (IAP TCP forwarding, SSH).
- Monitoring/logging export.
Monitoring/logging/governance considerations
- Track:
- VM disk throughput/IOPS (via Cloud Monitoring metrics for instances; exact metrics vary).
- Application-level latency for operations using Local SSD.
- Capacity usage (filesystem utilization).
- Governance:
- Use labels/tags for VM resources to track workloads using Local SSD (cost allocation, inventory).
- Use OS policies or startup scripts to enforce formatting/mounting standards.
Simple architecture diagram (Mermaid)
flowchart LR
A[Cloud Storage\n(durable)] -->|download inputs| B[Compute Engine VM]
B --> C[Local SSD\n(ephemeral scratch/cache)]
B -->|upload outputs| A
B --> D[Cloud Monitoring & Logging]
Production-style architecture diagram (Mermaid)
flowchart TB
subgraph VPC[Google Cloud VPC]
ILB[Internal/External Load Balancer] --> MIG[MIG: Compute Engine Workers\n(Local SSD for scratch)]
MIG -->|reads/writes| LSSD[(Local SSD\nEphemeral)]
MIG -->|writes logs/metrics| Ops[Cloud Logging & Monitoring]
MIG -->|fetch secrets via IAM| IAM[IAM / Service Accounts]
end
subgraph Durable[Durable Data Layer]
GCS[Cloud Storage\nData Lake / Artifacts]
PD[Persistent Disk / Hyperdisk\nAuthoritative State]
DB[(Managed DB\n(e.g., Cloud SQL/Spanner))]
end
MIG -->|stage input/output| GCS
MIG -->|read/write durable state| PD
MIG -->|queries| DB
8. Prerequisites
Account/project requirements
- A Google Cloud project with billing enabled.
- Compute Engine API enabled.
Permissions / IAM roles
Minimum permissions to run the lab (choose one approach):
– For learning in a sandbox project:
– roles/compute.admin (broad; simplest for labs)
– roles/iam.serviceAccountUser (if attaching/using service accounts)
– For least privilege (more complex):
– Permissions to create instances, set metadata, use images, and manage firewall rules.
– If you use IAP for SSH: roles for IAP TCP tunneling (verify current roles in IAP docs).
Billing requirements
- Local SSD is billable; there is no general free tier for Local SSD.
- You will also pay for the VM while it runs.
CLI/SDK/tools needed
- Google Cloud CLI (
gcloud) installed and authenticated: - https://cloud.google.com/sdk/docs/install
- An SSH client (built-in on macOS/Linux; Windows via PowerShell/WSL or Cloud Shell).
Region/zone availability
- Local SSD availability varies by:
- Zone
- Machine series/type
- Capacity in that zone
Always confirm availability for your chosen zone and machine type: - https://cloud.google.com/compute/docs/disks/local-ssd
Quotas/limits
- Compute Engine quotas apply:
- CPUs/instances per region
- Local SSD / resources per zone (availability/capacity constraints)
Check quotas in the Cloud Console and verify Local SSD attachment limits for your machine type in docs.
Prerequisite services
- Compute Engine
- (Optional but recommended) Cloud Logging/Monitoring are enabled by default for most projects.
9. Pricing / Cost
Do not rely on static numbers in blog posts for pricing. Local SSD pricing is region-dependent and can change. Always check the official pricing pages and your project’s billing reports.
Current pricing model (how you are charged)
Local SSD is charged based on: – Allocated Local SSD capacity attached to your VM (not “used bytes”). – Time the Local SSD is provisioned (commonly tied to VM runtime; if the VM stops and Local SSD is released, charges typically stop—verify current behavior in official docs). – Pricing varies by region/zone and may vary by platform.
Official pricing references:
– Compute disk pricing (includes Local SSD): https://cloud.google.com/compute/disks-pricing
– Pricing calculator: https://cloud.google.com/products/calculator
Pricing dimensions
- GB-month (or equivalent) for Local SSD capacity.
- Compute Engine VM costs: CPU and memory (and any GPU/TPU if used).
- OS licensing: Some OS images have licensing costs.
Free tier
- Local SSD is generally not included in the Google Cloud Free Tier. Verify current Free Tier details:
- https://cloud.google.com/free
Main cost drivers
- VM size and runtime (vCPU/memory): Usually the largest cost component.
- Number/size of Local SSD devices: You pay for provisioned Local SSD capacity while attached.
- Scale-out: Many worker VMs with Local SSD can multiply costs quickly.
- Data transfer: – Ingress to Cloud Storage is often free, but egress and inter-zone/inter-region transfers can cost money. – Pulling large datasets repeatedly can become a major cost driver.
Hidden/indirect costs to watch
- Re-download/recompute costs: Because Local SSD is ephemeral, you may repeatedly rehydrate caches from Cloud Storage or databases.
- Operational overhead: Startup scripts to format/mount/RAID, plus monitoring and alerts.
- Capacity constraints: If Local SSD capacity is limited in a zone, you may need to use a more expensive zone/region or larger instances.
Network/data transfer implications
- Using Local SSD does not itself incur network charges, but the typical pattern is:
- Download from Cloud Storage to Local SSD → local compute → upload results.
- If your compute and storage are in different regions/zones, data transfer can dominate cost and latency. Prefer co-locating compute and storage in the same region when possible.
How to optimize cost
- Use Local SSD only for performance-critical, temporary data.
- Prefer autoscaling and short-lived VMs for batch workloads (MIG + autoscaler).
- Keep durable datasets in-region; avoid cross-region transfers.
- Consider whether Persistent Disk / Hyperdisk performance tiers meet your needs at lower operational risk.
- Avoid overprovisioning Local SSD count/size “just in case”—measure I/O requirements.
Example low-cost starter estimate (how to think about it)
A starter lab VM cost is typically composed of:
– VM runtime (e.g., small general-purpose instance for <1 hour)
– 1 Local SSD device attached during that runtime
To estimate:
1. Go to the pricing calculator: https://cloud.google.com/products/calculator
2. Add a Compute Engine VM with your chosen machine type and hours.
3. Add Local SSD capacity.
4. Ensure region/zone matches your deployment.
Example production cost considerations
For production pipelines using Local SSD: – Costs scale with: – number of workers – concurrency window (hours per day) – Local SSD per worker – If the workload runs 24/7, Local SSD charges become continuous and may not be cost-optimal compared to durable disks with sufficient performance. – Design for cache warmup and data locality to avoid repeated expensive downloads.
10. Step-by-Step Hands-On Tutorial
This lab builds a real, minimal setup: a Compute Engine VM with Local SSD, formatted and mounted, then validated with a quick performance sanity check. It also demonstrates the ephemeral nature conceptually and includes cleanup.
Objective
- Create a Compute Engine VM in Google Cloud with Local SSD attached.
- Identify the Local SSD device in Linux.
- Format and mount it safely.
- Verify it works by writing/reading data.
- Clean up resources to avoid charges.
Lab Overview
You will: 1. Pick a zone where Local SSD is available. 2. Create a VM with one Local SSD (NVMe interface where supported). 3. SSH into the VM. 4. Format and mount the Local SSD. 5. Run simple I/O checks. 6. Clean up the VM (which releases Local SSD).
Notes: – Device names vary by OS and interface (NVMe vs SCSI). – Local SSD is ephemeral. Treat everything stored on it as disposable. – Commands below assume Debian/Ubuntu-like Linux.
Step 1: Set project, region/zone, and enable APIs
Open Cloud Shell (recommended) or use your local terminal.
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
Enable Compute Engine API (no output means it was already enabled):
gcloud services enable compute.googleapis.com
Choose a zone. Availability varies, so you may need to try another zone if capacity is unavailable.
gcloud config set compute/zone us-central1-a
Expected outcome: Compute Engine API is enabled; your default zone is set.
Step 2: Create a VM with Local SSD
Create a VM (example uses an Ubuntu image family; you can switch to Debian if preferred).
gcloud compute instances create localssd-lab-1 \
--machine-type=n2-standard-2 \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--boot-disk-size=20GB \
--local-ssd=interface=nvme
If your chosen machine type or zone doesn’t support Local SSD, you may see an error such as: – “Local SSD is not supported for the selected machine type” – “Insufficient resources” / capacity errors
If that happens: – Try a different zone in the same region. – Try a different machine series supported by Local SSD. – Verify supported configurations in official docs.
Expected outcome: A VM named localssd-lab-1 is created with one Local SSD attached.
Step 3: SSH into the VM and identify the Local SSD device
SSH in:
gcloud compute ssh localssd-lab-1
List block devices:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL
Look for an unmounted device that matches the Local SSD size. On NVMe, it often looks like:
– /dev/nvme0n1, /dev/nvme0n2, etc.
Also check dmesg for NVMe devices:
dmesg | grep -i nvme | tail -n 50
Expected outcome: You can see an unmounted block device representing the Local SSD.
Step 4: Format the Local SSD and mount it
Warning: Formatting erases all data on the target device. Double-check the device name.
Assume the device is /dev/nvme0n1 (adjust if yours differs). Create a filesystem:
sudo mkfs.ext4 -F /dev/nvme0n1
Create a mount point and mount it:
sudo mkdir -p /mnt/localssd
sudo mount /dev/nvme0n1 /mnt/localssd
Verify:
df -h /mnt/localssd
mount | grep localssd
Expected outcome: /mnt/localssd is mounted and shows available capacity.
Optional (recommended for automation): mount via UUID
Get the UUID:
sudo blkid /dev/nvme0n1
Then add an /etc/fstab entry (example—verify the UUID and filesystem type):
echo 'UUID=YOUR_UUID_HERE /mnt/localssd ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
This helps remount after reboot. (Remember: reboot is different from stop/terminate. Local SSD is expected to survive a simple reboot, but you should verify behavior for your exact maintenance/lifecycle scenario in the official docs.)
Step 5: Write data and run basic I/O checks
Write a test file:
time dd if=/dev/zero of=/mnt/localssd/testfile.bin bs=256M count=4 oflag=direct status=progress
Read it back:
time dd if=/mnt/localssd/testfile.bin of=/dev/null bs=256M iflag=direct status=progress
Create many small files (metadata-heavy test):
mkdir -p /mnt/localssd/smallfiles
time bash -c 'for i in $(seq 1 20000); do echo $i > /mnt/localssd/smallfiles/f_$i; done'
Expected outcome: Commands complete successfully and demonstrate that Local SSD is working and fast.
For deeper benchmarking, consider
fio, but be mindful that uncontrolled benchmarks can consume CPU and impact shared environments. If you usefio, install it and run a short test:
bash sudo apt-get update && sudo apt-get install -y fio fio --name=randrw --directory=/mnt/localssd --size=2G --bs=4k --rw=randrw --iodepth=32 --numjobs=4 --runtime=30 --time_based --group_reporting
Step 6 (Optional): Demonstrate persistence boundaries (reboot vs stop)
- Reboot test (usually retains Local SSD contents):
1. Create a marker file:
bash echo "hello localssd" | sudo tee /mnt/localssd/marker.txt2. Reboot:bash sudo reboot3. SSH back in and check:bash cat /mnt/localssd/marker.txt - Stop/Start behavior: Local SSD is ephemeral and is generally not preserved across stop/start. The exact workflow and behavior can vary; verify current behavior in official docs before relying on any persistence across lifecycle actions.
Expected outcome: Reboot typically preserves data; stop/terminate does not.
Validation
Run the following to validate correct setup:
-
Local SSD is mounted:
bash df -h | grep -E '/mnt/localssd' -
You can write and read:
bash echo OK | sudo tee /mnt/localssd/ok.txt cat /mnt/localssd/ok.txt -
Performance sanity check (optional): –
ddread/write tests complete without errors.
Troubleshooting
Common issues and fixes:
1) VM creation fails: Local SSD not supported – Cause: Machine series/zone doesn’t support Local SSD. – Fix: – Try a different machine type (e.g., N2 vs E2). – Try a different zone. – Confirm in docs: https://cloud.google.com/compute/docs/disks/local-ssd
2) VM creation fails: insufficient capacity – Cause: Local SSD capacity in a zone can be constrained. – Fix: – Try a different zone. – Use smaller/larger machine type (availability can differ). – Consider reservations for production (capacity planning).
3) Can’t find the Local SSD device
– Cause: Device naming differs (NVMe vs SCSI), or you’re looking at the boot disk.
– Fix:
– Use lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL
– Check /dev/disk/by-id/
– Inspect dmesg
4) Mount disappears after reboot
– Cause: /etc/fstab not configured (or wrong UUID).
– Fix:
– Mount by UUID and ensure nofail is set to avoid boot issues.
– Re-check blkid and fstab syntax.
5) Permission denied when writing
– Cause: Mount point permissions.
– Fix:
– Adjust ownership:
bash
sudo chown -R $USER:$USER /mnt/localssd
Cleanup
To avoid ongoing charges, delete the VM (which also releases Local SSD):
gcloud compute instances delete localssd-lab-1 --quiet
Expected outcome: The VM is deleted, and Local SSD charges stop with it.
11. Best Practices
Architecture best practices
- Treat Local SSD as disposable: Design so loss of Local SSD data is a non-event.
- Keep authoritative data elsewhere: Use Cloud Storage, Persistent Disk/Hyperdisk, or managed databases as the source of truth.
- Warm caches deliberately: If using Local SSD as cache, plan a warmup strategy and accept cache misses after restarts.
- Use tiered storage: Durable storage for state + Local SSD for hot/temp data yields a good performance/cost balance.
IAM/security best practices
- Restrict who can:
- create instances with Local SSD
- SSH into instances
- change instance metadata (startup scripts can exfiltrate data)
- Prefer OS Login and IAP for SSH access where appropriate (verify your org’s standard).
Cost best practices
- Use Local SSD only for workloads that demonstrate measurable benefit.
- Autoscale worker pools; shut down when idle.
- Avoid cross-region data movement; place compute near data.
Performance best practices
- Consider striping (RAID 0) across multiple Local SSDs for higher throughput (when supported and needed).
- Choose filesystem settings appropriate to workload (ext4 vs xfs; mount options).
- Benchmark with representative I/O patterns (block size, concurrency), not just sequential
dd.
Reliability best practices
- Store checkpoints and outputs on durable storage frequently enough to meet RPO/RTO.
- For pipelines: make tasks idempotent so they can restart after VM replacement.
- Use managed instance groups with health checks for ephemeral workers.
Operations best practices
- Use startup scripts or images to:
- detect Local SSD devices
- format if needed
- mount consistently
- Export logs/metrics externally (Cloud Logging/Monitoring). Don’t rely on Local SSD for log retention.
- Apply labels for ownership, environment, cost center.
Governance/tagging/naming best practices
- Naming pattern example:
mig-etl-workers-localssd-prodvm-ci-runner-localssd-dev-01- Labels:
env=prod|devteam=data-platformpurpose=etl-scratchcost-center=1234
12. Security Considerations
Identity and access model
- IAM governs control-plane actions: who can create/modify/delete instances with Local SSD.
- OS access governs data-plane access: anyone with root/admin on the VM can read Local SSD contents.
- Prefer:
- least privilege IAM roles
- OS Login with MFA/SSO if available
- IAP-based SSH to reduce public exposure
Encryption
- Google Cloud encrypts data at rest by default.
- If you have requirements for:
- customer-managed encryption keys (CMEK)
- customer-supplied encryption keys (CSEK)
- specific HSM-backed controls
Verify in official docs whether and how Local SSD supports those controls, and design accordingly. Local SSD is not the same as Persistent Disk/Hyperdisk in manageability.
Network exposure
- Local SSD itself isn’t exposed to the network, but the VM is.
- Reduce VM exposure:
- no public IP unless required
- firewall rules scoped to known sources
- use IAP / bastion patterns for admin access
Secrets handling
- Don’t store secrets only on Local SSD.
- Use Secret Manager or your org’s secrets solution; deliver secrets via:
- Secret Manager access at runtime using service account permissions
- short-lived tokens
- Avoid embedding secrets in instance metadata startup scripts.
Audit/logging
- Use Cloud Audit Logs to track Compute Engine API actions (instance creation/deletion).
- Use Cloud Logging agent / Ops Agent as needed for OS/application logs.
- Ensure logs are exported to a durable sink (Cloud Storage, BigQuery, SIEM) if required.
Compliance considerations
- Local SSD is best for non-authoritative and non-sensitive temporary data unless you have validated encryption/key-management requirements with official docs and internal compliance.
- Ensure data classification policies explicitly allow ephemeral local storage for the chosen data type.
Common security mistakes
- Treating Local SSD like a durable disk and storing primary data there.
- Leaving SSH open to the internet with weak access controls.
- Storing secrets or sensitive dumps on Local SSD and forgetting to export necessary audit trails.
Secure deployment recommendations
- Use private subnets and IAP for management.
- Enforce OS patching and hardening (CIS where applicable).
- Apply least privilege IAM and service account scopes.
- Keep sensitive authoritative data on durable managed storage with proper encryption and access controls.
13. Limitations and Gotchas
This section is intentionally direct. Local SSD is excellent at one thing—fast ephemeral storage—and unforgiving if treated like durable storage.
Durability and lifecycle
- Data loss on stop/terminate: Local SSD content is ephemeral. If the VM is stopped/terminated, data is not preserved.
- Host events: If the VM is moved to another host due to maintenance or failure, Local SSD data should be assumed lost. The exact behavior can depend on platform/machine series—verify in official docs.
No snapshots / backups like durable disks
- Local SSD is not designed for snapshots the way Persistent Disk/Hyperdisk is. Plan to persist anything important elsewhere.
Availability constraints
- Local SSD capacity can be constrained in specific zones.
- You may see “insufficient capacity” errors, especially at scale.
Machine type / platform constraints
- Not every machine series supports Local SSD.
- Attachment limits (how many devices you can add) vary by machine series/type.
- Interface type (NVMe vs SCSI) varies.
Operational gotchas
- Device names can change: Don’t hardcode
/dev/nvme0n1in production scripts—use stable identifiers (UUID,/dev/disk/by-id/). - Formatting on first boot: You must format before use; automate this.
- Mount failures can break boot: Incorrect
/etc/fstabentries can cause boot problems. Usenofailand test carefully.
Pricing surprises
- Local SSD charges accrue while provisioned/attached to running VMs (typical). If you leave many instances running, costs scale quickly.
- Indirect cost: rehydrating caches repeatedly from Cloud Storage can increase network/data processing costs.
Compatibility issues
- Some specialized OS images or older kernels may not handle NVMe devices as expected.
- Container orchestration integration is nuanced—Local SSD is not a universal “persistent volume.”
Migration challenges
- Moving from Local SSD to durable storage requires redesign:
- data persistence
- backup/snapshot strategy
- performance tuning
14. Comparison with Alternatives
Local SSD is one point in a broader storage design space. Here’s how it compares to common alternatives.
Key alternatives in Google Cloud
- Persistent Disk (PD): Durable network-attached block storage for VMs.
- Hyperdisk: Newer generation of durable block storage options with configurable performance (where available).
- Filestore: Managed NFS file storage.
- Cloud Storage: Object storage for durable blobs.
- Memorystore: Managed in-memory caching (Redis/Memcached).
Nearest services in other clouds
- AWS EC2 Instance Store: Ephemeral host-attached storage similar in concept.
- Azure Temporary Disk: Ephemeral local storage on Azure VMs (varies by VM family).
Open-source/self-managed alternatives
- Self-managed NVMe in colocation/on-prem
- Caching layers like Redis (self-hosted) on local disks (but then you manage durability/replication)
Comparison table
| Option | Best For | Strengths | Weaknesses | When to Choose |
|---|---|---|---|---|
| Google Cloud Local SSD | Ultra-fast temporary scratch/cache on Compute Engine | Very low latency; high IOPS/throughput; simple attachment | Ephemeral; no detach/reattach; lifecycle/host constraints | When data is disposable and performance matters most |
| Persistent Disk (Standard/Balanced/SSD) | General durable VM block storage | Durable; snapshots; flexible | Higher latency than host-local; network-attached | When you need durability and standard VM storage patterns |
| Hyperdisk | Durable block storage with performance tuning (where available) | Durable; performance options; modern features | Availability/feature set varies; still network-attached | When you need durability but higher performance than classic PD tiers |
| Filestore (NFS) | Shared POSIX file storage | Shared filesystem; managed | Not for ultra-low-latency local scratch; cost | When multiple VMs need shared files |
| Cloud Storage | Durable object storage | Very durable; scalable; cheap per GB | Not block storage; higher latency; app changes | Data lake, artifacts, backups, large datasets |
| Memorystore | Low-latency caching | Managed; very fast; replication options | Cost; data size limited vs disks | Hot key-value caching with low latency needs |
| AWS EC2 Instance Store | AWS equivalent ephemeral local storage | Similar performance pattern | AWS-specific; ephemeral | If you’re on AWS and need host-local scratch |
| Azure Temporary Disk | Azure equivalent ephemeral local storage | Similar pattern | Azure-specific; ephemeral | If you’re on Azure and need scratch |
15. Real-World Example
Enterprise example: Media processing pipeline at scale
- Problem: A media company transcodes large video files into multiple bitrates. The transcode process creates heavy intermediate I/O and temporary files. Using only network-attached disks increases runtime and cost.
- Proposed architecture
- Cloud Storage bucket stores source videos and final outputs.
- Managed instance group of Compute Engine workers with Local SSD for scratch.
- Workers:
- download source to Local SSD
- transcode and write intermediates to Local SSD
- upload final artifacts back to Cloud Storage
- Cloud Monitoring tracks job success, instance health, and throughput.
- Why Local SSD was chosen
- Intermediate files are temporary and can be recreated.
- Transcoding is I/O heavy and benefits from very fast local storage.
- Worker nodes are replaceable; job orchestration retries failures.
- Expected outcomes
- Reduced transcode wall-clock time.
- Better worker density per region due to faster scratch.
- Lower overall compute hours (even if Local SSD adds cost) because jobs finish faster.
Startup/small-team example: Faster CI runners for a monorepo
- Problem: A startup’s monorepo builds are slow; build steps repeatedly download dependencies and perform heavy local compilation. Managed CI minutes are expensive, and self-hosted runners are underperforming with standard disks.
- Proposed architecture
- Compute Engine VM template for CI runners with one Local SSD.
- Startup script formats/mounts Local SSD and sets build cache directories there.
- Build outputs and long-term caches are pushed to Cloud Storage/Artifact Registry.
- Why Local SSD was chosen
- CI caches are rebuildable; losing them is acceptable.
- High I/O compilation and dependency extraction benefit from fast local storage.
- Expected outcomes
- Faster builds and reduced developer wait time.
- Predictable build performance on ephemeral runners.
- Cost control via autoscaling runners during peak hours.
16. FAQ
1) Is Local SSD the same as Persistent Disk or Hyperdisk?
No. Local SSD is ephemeral host-attached storage. Persistent Disk and Hyperdisk are durable network-attached block storage services with snapshot/restore and detach/attach capabilities.
2) Does Local SSD persist across VM reboot?
Typically, Local SSD data persists across a guest OS reboot, but not across VM stop/terminate or host migration events. Verify exact lifecycle behavior in official docs for your instance type.
3) Does Local SSD persist across VM stop/start?
In general, no—Local SSD is ephemeral, and data should be assumed lost when the VM is stopped and restarted. Confirm current behavior in docs.
4) Can I take snapshots of Local SSD?
Local SSD is not designed for standard disk snapshots like Persistent Disk/Hyperdisk. Treat it as scratch/cache and persist important data elsewhere.
5) Can I detach a Local SSD and attach it to another VM?
No. Local SSD is tied to the VM/host lifecycle and is not a portable disk resource.
6) What interface does Local SSD use—NVMe or SCSI?
It can be NVMe or SCSI depending on the VM platform and configuration. NVMe is common for modern machine types. Verify per machine series.
7) How big is a Local SSD?
Local SSD capacity is provided in fixed increments per device and varies by platform over time. Check the official docs for current sizes and limits.
8) How many Local SSDs can I attach to one VM?
Limits depend on the machine series/type and zone. Consult the Local SSD documentation and machine type specs.
9) Is Local SSD encrypted at rest?
Google Cloud encrypts data at rest by default. For customer-managed key requirements, verify Local SSD key-management support in official docs.
10) Is Local SSD good for databases?
It can be used for non-authoritative database components (temporary tables, caches, rebuildable indexes) if your design tolerates data loss. For primary database storage, use durable storage.
11) Is Local SSD cheaper than Persistent Disk/Hyperdisk?
Not necessarily. The right choice depends on required performance, durability, and runtime. Local SSD can reduce compute hours by speeding up jobs, which can offset its cost.
12) Can I use Local SSD with managed instance groups (MIGs)?
Yes, commonly. It’s a good match for ephemeral worker fleets where instances can be replaced and tasks retried.
13) How do I mount Local SSD reliably if device names change?
Use stable identifiers:
– filesystem UUIDs (blkid)
– /dev/disk/by-id/ symlinks
Avoid hardcoding /dev/nvme0n1 in production.
14) What happens to Local SSD data if the host fails?
You should assume the data is lost. Design your application to rehydrate from durable storage or recompute.
15) Should I use Local SSD for logs?
You can use it as a temporary buffer, but do not rely on it for retention. Export logs to Cloud Logging or a durable sink.
16) Can containers use Local SSD on GKE?
There are patterns to use node-local storage (including Local SSD-backed ephemeral storage) depending on GKE configuration. Verify the current GKE guidance for Local SSD usage.
17) What’s the simplest safe pattern for Local SSD?
“Download → process using Local SSD → upload results → delete VM.” Keep authoritative state elsewhere.
17. Top Online Resources to Learn Local SSD
| Resource Type | Name | Why It Is Useful |
|---|---|---|
| Official documentation | Local SSD overview (Compute Engine) — https://cloud.google.com/compute/docs/disks/local-ssd | Primary source for supported machine types, lifecycle behavior, and configuration guidance |
| Official pricing | Compute disk pricing (includes Local SSD) — https://cloud.google.com/compute/disks-pricing | Official pricing model and region-dependent SKUs |
| Official calculator | Google Cloud Pricing Calculator — https://cloud.google.com/products/calculator | Build estimates for VM + Local SSD + data transfer |
| Official docs (storage choices) | Compute Engine disks overview — https://cloud.google.com/compute/docs/disks | Helps decide between Local SSD, Persistent Disk, Hyperdisk |
| Official tutorial-style docs | Compute Engine instances docs — https://cloud.google.com/compute/docs/instances | Covers VM lifecycle actions that affect Local SSD durability |
| Official monitoring | Cloud Monitoring — https://cloud.google.com/monitoring/docs | Monitor VM performance and disk-related metrics |
| Official logging | Cloud Logging — https://cloud.google.com/logging/docs | Export logs off ephemeral disks |
| Architecture guidance | Google Cloud Architecture Center — https://cloud.google.com/architecture | Reference architectures for compute/storage patterns (use search for performance/HPC) |
| Kubernetes guidance (verify applicability) | GKE storage docs — https://cloud.google.com/kubernetes-engine/docs/concepts/storage-overview | For understanding how local/ephemeral storage works in Kubernetes on Google Cloud |
| Video learning | Google Cloud Tech YouTube — https://www.youtube.com/googlecloudtech | Often includes deep dives on Compute Engine storage concepts |
| Community (reputable) | Server Fault / Unix & Linux Q&A on NVMe, mdadm, filesystem tuning | Practical OS-level tuning and troubleshooting (validate against Google Cloud docs) |
18. Training and Certification Providers
| Institute | Suitable Audience | Likely Learning Focus | Mode | Website URL |
|---|---|---|---|---|
| DevOpsSchool.com | DevOps engineers, SREs, platform teams | Google Cloud operations, CI/CD, infrastructure practices (verify course catalog) | Check website | https://www.devopsschool.com/ |
| ScmGalaxy.com | Beginners to intermediate engineers | DevOps/SCM foundations and tooling (verify offerings) | Check website | https://www.scmgalaxy.com/ |
| CLoudOpsNow.in | Cloud ops practitioners | Cloud operations and reliability topics (verify offerings) | Check website | https://cloudopsnow.in/ |
| SreSchool.com | SREs, operations teams | SRE principles, monitoring, incident response (verify offerings) | Check website | https://sreschool.com/ |
| AiOpsSchool.com | Ops + ML/automation learners | AIOps concepts, automation in operations (verify offerings) | Check website | https://aiopsschool.com/ |
19. Top Trainers
| Platform/Site | Likely Specialization | Suitable Audience | Website URL |
|---|---|---|---|
| RajeshKumar.xyz | DevOps/cloud training resources (verify specifics) | Beginners to working professionals | https://rajeshkumar.xyz/ |
| devopstrainer.in | DevOps training and mentorship (verify specifics) | DevOps engineers, SREs | https://devopstrainer.in/ |
| devopsfreelancer.com | DevOps freelance/training services (verify specifics) | Teams needing targeted help | https://devopsfreelancer.com/ |
| devopssupport.in | DevOps support/training resources (verify specifics) | Ops/DevOps teams | https://devopssupport.in/ |
20. Top Consulting Companies
| Company Name | Likely Service Area | Where They May Help | Consulting Use Case Examples | Website URL |
|---|---|---|---|---|
| cotocus.com | Cloud/DevOps consulting (verify service catalog) | Architecture, automation, operations | Designing VM worker fleets using Local SSD for ETL; building startup scripts and golden images; cost optimization | https://cotocus.com/ |
| DevOpsSchool.com | DevOps consulting and enablement (verify service catalog) | DevOps transformation, tooling, training | Implementing CI runners on Compute Engine with Local SSD caches; setting up monitoring and governance | https://www.devopsschool.com/ |
| DEVOPSCONSULTING.IN | DevOps consulting (verify service catalog) | Delivery pipelines, infrastructure automation | Migrating batch workloads to Google Cloud with Local SSD scratch; performance tuning and IaC standardization | https://devopsconsulting.in/ |
21. Career and Learning Roadmap
What to learn before Local SSD
- Google Cloud fundamentals:
- Projects, billing, IAM, VPC basics
- Compute Engine basics:
- VM creation, images, machine types, metadata/startup scripts
- Linux fundamentals:
- Block devices, partitions, filesystems (ext4/xfs), mounting, permissions
- Basic storage concepts:
- IOPS, throughput, latency, queue depth
- durability vs performance tradeoffs
What to learn after Local SSD
- Durable storage design on Google Cloud:
- Persistent Disk and Hyperdisk performance tuning
- Cloud Storage lifecycle policies and optimization
- Automation:
- Infrastructure as Code (Terraform for Compute Engine)
- Golden images (Packer) and startup scripts
- Observability:
- Cloud Monitoring dashboards and alerting for VM fleets
- Log export pipelines
- Reliability patterns:
- Managed instance groups, autoscaling, health checks
- Idempotent batch job design and checkpointing
Job roles that use it
- Cloud Engineer / Infrastructure Engineer
- DevOps Engineer
- Site Reliability Engineer (SRE)
- Data Engineer (VM-based pipelines)
- HPC / Performance Engineer
- Platform Engineer
Certification path (Google Cloud)
Local SSD is part of Compute Engine knowledge. It’s commonly relevant to:
– Associate Cloud Engineer
– Professional Cloud Architect
– Professional Cloud DevOps Engineer
Use Local SSD as a practical topic within Compute Engine storage and performance domains.
Project ideas for practice
- ETL worker fleet: Build a MIG that stages data from Cloud Storage to Local SSD, processes it, and uploads results.
- CI runner template: Create a VM image/startup script that mounts Local SSD and configures build caches.
- Performance lab: Benchmark PD vs Hyperdisk vs Local SSD with
fiounder multiple block sizes and queue depths. - Resilient caching: Implement an app that uses Local SSD for cache but repopulates automatically after VM replacement.
22. Glossary
- Block storage: Storage presented as a raw device (like
/dev/nvme0n1) that you format with a filesystem. - Cache: Temporary storage of frequently accessed data to reduce latency and backend load.
- Compute Engine: Google Cloud’s Infrastructure-as-a-Service (IaaS) for VMs.
- Durability: Likelihood that data remains intact and available across failures and lifecycle events.
- Ephemeral storage: Temporary storage that can be lost when an instance stops, terminates, or moves hosts.
- Filesystem: Data structure (ext4, xfs) used by an OS to organize files on a disk.
- Host maintenance: Events where the cloud provider performs maintenance on the physical host; can trigger VM restarts/migrations depending on configuration and platform.
- IOPS: Input/Output Operations Per Second—how many reads/writes a disk can perform per second.
- Latency: Time it takes to complete an I/O operation.
- Local SSD: Google Cloud Compute Engine host-attached SSD for ephemeral high performance.
- MIG (Managed Instance Group): A group of identical VMs managed as a fleet, with autoscaling and healing.
- Mount: Making a filesystem accessible at a directory path (e.g.,
/mnt/localssd). - NVMe: A high-performance storage interface commonly used for SSDs.
- Persistent Disk / Hyperdisk: Durable network-attached block storage options for Compute Engine.
- RAID 0 (striping): Combines multiple disks into one volume to increase performance; no redundancy.
- Throughput: Amount of data read/written per unit time (e.g., MB/s, GB/s).
- Zonal resource: A resource tied to a specific zone in a region.
23. Summary
Local SSD in Google Cloud Compute Engine (Compute) is host-attached, ultra-fast ephemeral block storage designed for scratch space and caching. It matters because it can significantly reduce latency and runtime for I/O-heavy workloads, often improving overall system efficiency when paired with durable storage for authoritative data.
Key points to remember: – Cost: You pay for provisioned Local SSD capacity while it’s attached (plus VM runtime). Use the official pricing pages and calculator for accurate regional estimates. – Security: Data is encrypted at rest by default, but key-management and compliance requirements should be validated in official docs for your specific needs. – When to use: Caches, scratch space, intermediate pipeline data, build artifacts—anything reconstructable. – When not to use: Primary data, anything requiring snapshots/backups, or workflows needing detach/attach portability.
Next learning step: Compare Local SSD with Persistent Disk and Hyperdisk for your workload’s performance and durability requirements, then practice automation with startup scripts or Terraform to mount and manage Local SSD consistently at scale.