Console Login

Why Centralized SANs Are Killing Your I/O: The Case for Local SSD RAID in 2012

The I/O Bottleneck: Why Your "Cloud" Is Slowing Down

Let’s be honest. The term "Cloud Computing" has been thrown around since 2010 like it’s a magic wand that solves scaling issues. But any system administrator who has tried to run a high-transaction MySQL database on a generic cloud instance knows the dirty truth: Disk I/O is the silent killer.

I recently audited a Magento deployment for a client in Oslo. They were hosting on a major international provider, paying a premium for "elastic scaling." Yet, every time they sent a newsletter, the site crawled. The CPU load was 0.5. The RAM was 40% free. But the site was unresponsive. Why? Because their "Enterprise Cloud Storage" was actually a massive SAN located three racks away, sharing bandwidth with 500 other noisy neighbors.

In 2012, latency is the new downtime. If you are building for the Nordic market, you need to understand why moving away from centralized SANs to local high-performance storage is the only logical architectural decision.

Diagnosing the Wait State

When your server feels sluggish but `top` shows low CPU usage, you are likely suffering from I/O Wait (`%iowait`). This happens when the CPU is idle, waiting for the disk subsystem to retrieve data. On a centralized SAN, your read/write request has to traverse the network, go through the storage controller, queue up behind other tenants, and finally hit the platter.

Here is how we caught the bottleneck on that Magento server using iostat (part of the sysstat package):

root@server1:~# iostat -x 1
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.50    0.00    1.20   45.30    0.00   49.00

Device:         rrqm/s   wrqm/s     r/s     w/s   svctm   %util
sda               0.00    12.00   55.00   30.00   11.50   98.20

Look at %iowait: 45.30%. The CPU is spending half its life doing nothing. Look at %util: 98.20%. The disk is saturated with a mere 85 IOPS (55 reads + 30 writes). This is typical behavior for a spinning hard disk (HDD) inside a congested SAN environment. It effectively kills your Time To First Byte (TTFB).

The Solution: Local SSD RAID-10

The industry is shifting. While massive object storage (like what we saw emerge in 2010 with OpenStack Swift) is great for archiving backups, it is terrible for live databases. For production workloads, we need Solid State Drives (SSDs) attached locally to the hypervisor.

At CoolVDS, we abandoned SANs for our primary compute nodes. We utilize local RAID-10 arrays built with enterprise-grade SSDs. This reduces the physical path the data travels, dropping latency from 5-10ms (SAN) to under 0.5ms (Local SSD).

Optimizing MySQL for SSD

Simply moving to SSD isn't enough; you must tell your database it can push harder. Standard configurations in /etc/my.cnf are often tuned for rotating rust. If you are on a CoolVDS instance, you should adjust your InnoDB settings to take advantage of the higher IOPS.

[mysqld]
# Default is usually 200, which is too low for SSD
innodb_io_capacity = 2000

# Disable the doublewrite buffer if you trust your filesystem/RAID controller
# (Use with caution, but offers performance gains)
# innodb_doublewrite = 0

# Ensure we are using O_DIRECT to bypass OS cache for data
innodb_flush_method = O_DIRECT

After applying these changes and restarting the service (`service mysqld restart`), we saw query execution times on the client's shop drop by 70%. The disk wasn't the bottleneck anymore; the application code was.

Distributed Filesystems: GlusterFS

Sometimes you need shared storage across multiple web servers, for example, to store user-uploaded images. In 2010, the answer was NFS, which is a single point of failure. In 2012, we use GlusterFS. It allows us to aggregate disk space from multiple nodes into a single global namespace without a central metadata server.

Here is a quick setup for a replicated volume across two nodes (Server A and Server B), ensuring high availability:

# On both servers, install GlusterFS (assuming EPEL repo is active)
yum install glusterfs-server
service glusterd start

# On Server A, probe Server B
gluster peer probe server-b.coolvds.internal

# Create a Replicated Volume (RAID-1 is the logic here)
gluster volume create web_data replica 2 transport tcp \
server-a:/data/gluster/brick1 \
server-b:/data/gluster/brick1

# Start the volume
gluster volume start web_data

This setup ensures that if Server A goes down, Server B serves the files instantly. No downtime. This is how you build resilience without expensive hardware load balancers.

Pro Tip: When mounting GlusterFS on your web nodes, use the `backup-volfile-servers` option. If the first node is down during boot, the client will query the backup node for the volume configuration. Reliability is in the details.

Data Sovereignty and The Nordic Advantage

Performance isn't the only metric. We are operating under the Norwegian Personal Data Act (Personopplysningsloven) and the EU Data Protection Directive (95/46/EC). Hosting your data on US-controlled clouds introduces legal grey areas regarding Safe Harbor.

By keeping your infrastructure physically located in Norway, you satisfy the requirements of Datatilsynet (The Norwegian Data Protection Authority). Furthermore, the latency advantage is undeniable. Pinging an instance in Oslo from Bergen takes ~8ms via NIX (Norwegian Internet Exchange). Pinging a server in Amsterdam or Frankfurt can take 30-50ms.

The CoolVDS Architecture

We don't believe in "noisy neighbors." We use KVM (Kernel-based Virtual Machine) virtualization, not OpenVZ containerization, for our premium tiers. This ensures rigorous hardware isolation. When you buy 4 cores on CoolVDS, you get 4 cores, not a timeshare on an overloaded CPU.

While the industry buzzes about upcoming PCIe storage standards (often referred to in draft specs as NVMe storage technology), the current reliable standard is high-end SATA/SAS SSDs in RAID-10. We maximize this throughput to ensure your VPS Norway deployment can handle sudden traffic spikes without entering the dreaded `iowait` state.

Feature Traditional SAN VPS CoolVDS Local Storage
Random Read IOPS 150 - 300 10,000+
Latency 5ms - 20ms < 1ms
Neighbor Impact High Isolated

Conclusion

The lessons from 2010 taught us that "infinite storage" often comes with "infinite latency." Don't let your infrastructure be the reason your application fails. Whether you need ddos protection or raw I/O throughput, the underlying hardware matters.

Stop guessing your performance bottlenecks. Log into your current server, run iostat -x 1, and if you see double-digit wait times, it’s time to move.

Ready for real performance? Deploy a KVM SSD instance on CoolVDS today and drop your wait times to zero.