Storage that supports critical applications without capacity crises, risky refreshes, or finger-pointing between the reseller, integrator and operator.
Enterprise
Storage.
Storage is a ten-year relationship disguised as a purchase order. ModernOps assesses how your data actually moves, designs and sizes the platform around it, then procures, deploys, migrates and documents it with a tested way back at every step. If you want, the same team runs it.
Defensible sizing and protocol design across block, file, object, parallel and software-defined platforms.
Visible latency, IOPS and capacity, documented failover, and migrations that follow runbooks instead of memory.
Throughput and scale that a general-purpose array alone will not deliver.
Key design
considerations.
Performance class or capacity class.
Paying flash-performance prices for cold data is the most common sizing mistake we correct. The workload’s latency and concurrency profile picks the tier, not the badge on the bezel.
Full is a failure mode.
One assessment found a primary array at 91 percent capacity while still serving healthy 0.4 millisecond reads at 48,000 peak IOPS. Good latency does not eliminate capacity risk. Growth math does, and it has to include snapshot, replication and recovery overhead, not just raw terabytes.
One blast radius.
Production arrays doubling as backup targets is a pattern assessments keep finding. An array failure or ransomware event then takes the data and its recovery copy together. The recovery copy lives on separate infrastructure, full stop.
Own the refresh or subscribe to it.
Evergreen-style subscriptions versus buy-and-refresh cycles have genuinely different five-year math depending on growth rate. We model both before the bill of materials exists.
Immutability has strings attached.
Time-locked snapshots, SnapLock-class retention and dual approval for destructive actions genuinely blunt ransomware. They also change how deletes, eradications and emergency capacity moves are authorized. Design the authorization path before you need it at 2 a.m., and rehearse the recovery, not just the lock.
Reference
architectures.
HA controller pairs sized for hypervisor datastores, including the Proxmox decision our field guide exists for: shared block SAN with multipathing, NFS simplicity, or Ceph, chosen by snapshot behavior, thin-provisioning needs, failure domains and the team that has to run it. Includes migrations off ESXi-era designs.
C-series and capacity-flash arrays consolidating aging spindles and file sprawl without tier-one performance pricing.
Controller, NVMe and capacity-pack upgrades on running arrays. Expansion as an operation, not a project.
Failed, unsupported or single-head arrays replaced with modern HA platforms, native file services included, through staged migration, demonstrated cutover procedures, rollback plans and knowledge transfer. One current implementation replaces exactly this: an out-of-support single-controller array, rebuilt as a two-site platform with file services on the array instead of on aging Windows servers.
SnapMirror-class replication paired with tamper-proof snapshots, SnapLock retention, multi-admin verification for destructive actions, encrypted replication, anomaly detection feeding the SIEM, and recurring recovery validation. Designed with the data protection practice so storage-native protection and separate backup infrastructure cover different failure modes instead of sharing one.
VAST-class disaggregated platforms, software-defined Ceph, and partner-delivered parallel architectures for research and AI pipelines, with cloud tiers like Azure NetApp Files, Managed Lustre and Blob where burst or archive economics win. One recent design scoped 500 terabytes to a petabyte of tiered parallel storage behind a 36-node accelerated cluster. Deep GPU-side design lives on the AI & Accelerated Compute page.
Supported
platforms.
ONTAP across AFF and C-series: performance pairs, capacity consolidation, disk shelf expansion, SupportEdge lifecycles and deployment services. Plus the resilience layer most quotes skip: SnapLock, tamper-proof snapshots, multi-admin verification and recovery modernization, designed and operationalized, not just licensed. Keystone available where consumption pricing fits.
FlashArray from X-series performance to capacity tiers, Evergreen subscription economics modeled honestly against buy-and-refresh, and in-place NVMe, port and capacity expansion on running arrays. Current work includes two-site implementations with native file services replacing aging Windows file servers.
Naming note: Pure Storage now operates under the Everpure brand; we use the name buyers still search.
Disaggregated shared-everything architecture for file, object and AI throughput at scales where controller-pair designs run out of road. We architect and quote VAST for data-intensive and research workloads.
PlatformCeph
Software-defined storage we do not just recommend: ModernOps’ own production platform runs shared all-NVMe Ceph under Proxmox VE with replicated storage across the cluster. We know where Ceph shines, and we will tell you where it does not: small clusters and teams without the operational appetite should buy an array.
PlatformCloud storage tiers
Azure NetApp Files for persistent shared file services, Managed Lustre for parallel scratch, Blob for object and archive. Designed as tiers in one architecture with owned platforms, not as a separate universe.
Qumulo, DDN, VDURA, Dell PowerStore.
The ModernOps
difference.
| Dimension | The old model | ModernOps |
|---|---|---|
| Platform selection | The incumbent vendor or the renewal date decides | Workload behavior, protocol, growth and operating model decide, vendor-flexibly |
| Capacity planning | Expansion starts when the array is nearly full | Utilization, protection overhead, growth and recovery headroom are baselined before sizing |
| Performance | Investigated after users complain | Latency, IOPS, throughput and replication validated at handoff and monitored after |
| Architecture | Every workload forced onto one general-purpose array | Block, file, object, parallel, software-defined and cloud tiers matched to the workload |
| Migration | A maintenance window and tribal knowledge | Sequenced waves, acceptance criteria, demonstrated cutover, documented rollback |
| Protection | Snapshots, replicas and backups configured separately, sometimes on one failure domain | Storage-native protection aligned with isolated backup and DR, immutability where supported |
| Lifecycle | Reseller ships it, someone else inherits it | One accountability line from design through optional managed operations |
The first
30 days.
| Phase | What happens | What you hold at the end |
|---|---|---|
| Assess and architect · Days 0 to 10 | Inventory arrays, file services, protocols, fabrics, capacity, performance, support status, replication, backup dependencies and growth. Confirm success criteria and evaluate vendor architectures. | A current-state baseline, prioritized risks, workload requirements, target architecture and sizing assumptions. |
| Build and migrate · Days 10 to 24 | Finalize design and prerequisites, coordinate logistics, rack and configure, integrate with compute and network, create storage services, stage data, run migration waves under change control. | A new platform coming online in controlled checkpoints instead of one high-risk cutover. |
| Validate and optimize · Days 24 to 30 | Validate capacity, latency, IOPS, failover, snapshots, replication, backup integration and alerting. Deliver runbooks, as-built documentation and knowledge transfer or managed handoff. | An operable platform baseline, verified acceptance criteria and a prioritized optimization roadmap. |
Thirty days gets you from assessment to a validated first production milestone. Hardware lead times, petabyte-scale data movement and application testing then run in planned waves on their own timeline.
Engagement
models.
We price both because we sell the arrays and we operate storage for managed clients every day. The boundary is explicit: this page is the assess, design, procure, deploy and migrate motion. Ongoing capacity, performance, replication, firmware and health operations live in Storage as a Service, whether we sold the platform or inherited it.
Proven
results.
91 percent full at 0.4 milliseconds.
One assessment caught a primary array running healthy latency while nearly out of capacity. Performance dashboards do not warn you about growth. Baselines do.
From one failed controller to two sites.
A current implementation replaces an out-of-support single-head array with a two-site platform, native file services and a demonstrated cutover with rollback, documented and handed over.
We run what we recommend.
ModernOps’ own platform runs shared all-NVMe Ceph in production, with the runbooks to prove it.
Frequently asked
questions.
01 /Performance flash or capacity flash: how do we decide?
02 /Do snapshots replace backups?
03 /Is an evergreen-style subscription actually cheaper than buying again?
04 /Our array is end of life or already failing. How fast can you move?
05 /How are cutovers managed?
06 /What storage should we run under Proxmox?
07 /How is capacity actually planned?
08 /What can the array itself do against ransomware?
09 /Can you handle AI, HPC or research-scale storage?
10 /What is the difference between this and Storage as a Service?
Tell us about
your arrays.
Platform, capacity and growth: whatever you have. We will map the sizing and migration path against it.

