{"id":990,"date":"2026-10-31T22:45:52","date_gmt":"2026-10-31T22:45:52","guid":{"rendered":"https:\/\/windows-vps.org\/blog\/?p=990"},"modified":"2026-10-31T22:45:52","modified_gmt":"2026-10-31T22:45:52","slug":"windows-failover-cluster-without-shared-storage-s2d-vps","status":"publish","type":"post","link":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/","title":{"rendered":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers that already have local disks. Microsoft&#8217;s documentation is clear about what it needs, and most of that list is exactly what a VPS plan does not provide. Running the validation wizard before renting anything saves a week of invoices, because the failures are not subtle &#8211; the cluster service simply refuses to form. This walks through what S2D requires, what a typical <a href=\"https:\/\/windows-vps.org\/\">Windows VPS product<\/a> can actually supply, and the cheaper designs that solve the same problem.<\/p>\n\n<h2 class=\"wp-block-heading\">What Storage Spaces Direct actually requires<\/h2>\n<p class=\"wp-block-paragraph\">The hardware list is short and rigid: two or more servers running Windows Server Datacenter, each with at least two drives for capacity and ideally two NVMe or SSD for cache, all drives visible as raw block devices with no RAID controller in front of them, and at least one RDMA-capable network adapter per node at 10 Gbps or better. Datacenter edition is mandatory &#8211; Standard cannot join an S2D cluster.<\/p>\n<p class=\"wp-block-paragraph\">Every node must match in drive count and size, be joined to the same AD domain, resolve each other by name, and reach every cluster port. The CPU and memory guidance is modest &#8211; 2 cores and 4 GB per node for a small two-node cluster &#8211; which is what makes people assume a VPS will work. The disks and the network are the blockers.<\/p>\n\n<h2 class=\"wp-block-heading\">Why most VPS plans cannot meet it<\/h2>\n<p class=\"wp-block-paragraph\">A typical VPS gives you one virtual disk on a shared array, presented as SCSI or virtio. S2D wants to own the physical media and build its own pool from raw disks; a virtual disk behind the hypervisor&#8217;s storage layer is not that. A second &#8220;data disk&#8221; is another volume on the same array, not a raw device the guest can claim.<\/p>\n<p class=\"wp-block-paragraph\">The network is the second blocker. S2D needs its own cluster and storage networks, and RDMA over Converged Ethernet or iWARP requires a dedicated adapter. Most VPS plans expose one virtio NIC and sometimes a second one on request; neither passes through RoCE, and even 10 Gbps between nodes is optimistic when the vSwitch is shared. Without a cluster network, S2D falls back to TCP but throughput drops by half or more.<\/p>\n\n<h2 class=\"wp-block-heading\">The validation wizard failures you will hit<\/h2>\n<p class=\"wp-block-paragraph\">Run <code>Test-Cluster -Node node1,node2 -Include \"Storage Spaces Direct\", \"Inventory\", \"Network\", \"System Configuration\"<\/code> and expect specific failures. &#8220;The cluster does not have a quorum witness&#8221; arrives if you skipped witness configuration. &#8220;Drive is not exposed as a raw block device&#8221; arrives on every virtual disk. &#8220;No RDMA-capable network adapter was found&#8221; arrives on any vNIC.<\/p>\n<p class=\"wp-block-paragraph\">Other common ones: nodes with different disk sizes, disks that still carry a partition table (<code>Clear-Disk -Number 2 -RemoveData<\/code> fixes that on a raw device), and time skew over 5 minutes between nodes. The wizard collects all of it into a report &#8211; read it fully before arguing with the provider, because in most cases the answer is &#8220;the platform cannot do this&#8221; rather than a configuration mistake.<\/p>\n\n<h2 class=\"wp-block-heading\">Witness options when you only have two nodes<\/h2>\n<p class=\"wp-block-paragraph\">A two-node cluster cannot hold quorum by itself, so it needs a witness. The classic choice is a file share witness on a third machine; the modern choice is a cloud witness in Azure Blob Storage, which costs pennies a month and does not need a third server. Create it with <code>Set-ClusterQuorum -CloudWitness -AccountName &lt;storageaccount&gt; -AccessKey &lt;key&gt;<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">Cloud witness works with any Windows Server 2016+ failover cluster, S2D or not, and it is the only witness option that survives a whole-site outage without someone hosting a file share. If your data must not leave a jurisdiction, use a file share witness on a host in a third location instead &#8211; but then you own patch management on that host, which is the cost the cloud witness removed.<\/p>\n\n<h2 class=\"wp-block-heading\">S2D versus a two-node file server with DFS-R<\/h2>\n<p class=\"wp-block-paragraph\">The comparison matters more than the technology. S2D gives you a single namespace, block-level replication, automatic rebuilds and VM storage that failover in seconds. DFS-R gives you two independent file servers, file-level replication on a 15-minute schedule (or nearer real time with custom settings), and no shared write target &#8211; which means no automatic failover of open files.<\/p>\n<p class=\"wp-block-paragraph\">For a small team reading and writing Office documents, DFS-R plus client-side failover through a DFS namespace is adequate and costs two ordinary servers. For anything with a database, a VM disk or open-file writes, DFS-R is the wrong tool: it does not replicate open files, and a conflict resolution on a 2 GB PST is not something anyone wants to witness.<\/p>\n\n<h2 class=\"wp-block-heading\">The cost math on two VPS nodes<\/h2>\n<p class=\"wp-block-paragraph\">Two nodes at 4 vCPU, 16 GB and 500 GB local NVMe with a second NIC cost roughly double one larger VPS before any S2D requirement is met. Add Windows Server Datacenter licensing per core across two 4-core nodes and the annual line item gets serious.<\/p>\n<p class=\"wp-block-paragraph\">A single VPS with 8 vCPU and 32 GB and a nightly backup plus a warm standby restored from image costs less than half. It fails over in minutes rather than seconds, which for most small workloads is an acceptable RTO. The break-even is usually around the point where a one-hour outage genuinely costs more than the second node.<\/p>\n\n<h2 class=\"wp-block-heading\">Providers that can do it, and what to ask for<\/h2>\n<p class=\"wp-block-paragraph\">A few providers sell bare-metal or &#8220;private cloud&#8221; nodes where you get the physical disks and two physical NICs. Ask three questions before renting: are disks passed through as raw NVMe or SATA devices with no RAID in front, are two RDMA-capable NICs on separate VLANs available, and is Windows Server Datacenter licensing included or BYOL. Any &#8220;no&#8221; ends the S2D plan.<\/p>\n<p class=\"wp-block-paragraph\">If the answer is yes to all three, budget for at least three nodes rather than two &#8211; two-node S2D works but leaves zero redundancy during a rebuild, and a rebuild of a 2 TB drive takes hours. Three nodes also make the witness a formality rather than a critical dependency.<\/p>\n\n<h2 class=\"wp-block-heading\">When to pick something else<\/h2>\n<p class=\"wp-block-paragraph\">Pick something else when the requirement is a shared file share rather than block storage: a Windows Server failover cluster with a file share role and DFS-R, or a NAS appliance, is simpler and cheaper. Pick something else when the uptime target is met by a backup and a documented restore. Pick something else when the team has no one who has rebuilt a degraded storage pool at 3 a.m.<\/p>\n<p class=\"wp-block-paragraph\">S2D is the right tool when you have physical hardware you control, at least three nodes, RDMA networking and a workload (Hyper-V VMs, SQL, clustered file server) that genuinely needs cluster-grade failover. On a virtual server with one virtual disk and one vNIC, it is the wrong layer for the job &#8211; and the validation wizard will say so in the first ten minutes. Try the <a href=\"https:\/\/windows-vps.org\/\">Windows RDP VPS platform<\/a> for the single-node workloads and keep the S2D designs for bare metal.<\/p>","protected":false},"excerpt":{"rendered":"<p>Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers that already have local disks. Microsoft&#8217;s documentation is clear about what it needs, and most of that list is exactly what a VPS plan does not provide. Running &#8230; <a title=\"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes\" class=\"read-more\" href=\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\" aria-label=\"Read more about A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-990","post","type-post","status-publish","format-standard","hentry","category-tutorials-guides"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes - Windows VPS Blog<\/title>\n<meta name=\"description\" content=\"Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes\" \/>\n<meta property=\"og:description\" content=\"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes\" \/>\n<meta property=\"og:url\" content=\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\" \/>\n<meta property=\"og:site_name\" content=\"Windows VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-31T22:45:52+00:00\" \/>\n<meta name=\"author\" content=\"windows-vps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@myxiechengxuan\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"windows-vps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\",\"url\":\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\",\"name\":\"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes - Windows VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/#website\"},\"datePublished\":\"2026-10-31T22:45:52+00:00\",\"author\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58\"},\"description\":\"Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers\",\"breadcrumb\":{\"@id\":\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/windows-vps.org\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#website\",\"url\":\"https:\/\/windows-vps.org\/blog\/\",\"name\":\"Windows VPS Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/windows-vps.org\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58\",\"name\":\"windows-vps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g\",\"caption\":\"windows-vps\"},\"sameAs\":[\"https:\/\/windows-vps.org\/blog\",\"https:\/\/x.com\/myxiechengxuan\"],\"url\":\"https:\/\/windows-vps.org\/blog\/author\/myxiechengxuan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes - Windows VPS Blog","description":"Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/","og_locale":"en_US","og_type":"article","og_title":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes","og_description":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes","og_url":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/","og_site_name":"Windows VPS Blog","article_published_time":"2026-10-31T22:45:52+00:00","author":"windows-vps","twitter_card":"summary_large_image","twitter_creator":"@myxiechengxuan","twitter_misc":{"Written by":"windows-vps","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/","url":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/","name":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes - Windows VPS Blog","isPartOf":{"@id":"https:\/\/windows-vps.org\/blog\/#website"},"datePublished":"2026-10-31T22:45:52+00:00","author":{"@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58"},"description":"Storage Spaces Direct is the answer to a specific problem: you want a block-storage cluster with no SAN, no shared JBOD and no vendor lock-in, on servers","breadcrumb":{"@id":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/windows-vps.org\/blog\/windows-failover-cluster-without-shared-storage-s2d-vps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/windows-vps.org\/blog\/"},{"@type":"ListItem","position":2,"name":"A Windows Failover Cluster Without Shared Storage: Storage Spaces Direct on Two VPS Nodes"}]},{"@type":"WebSite","@id":"https:\/\/windows-vps.org\/blog\/#website","url":"https:\/\/windows-vps.org\/blog\/","name":"Windows VPS Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/windows-vps.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/44caceed916d0db318aa08d5623a7a58","name":"windows-vps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/windows-vps.org\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3f2573db5afcd1a6ab9abcc5d48fc8e42584bc87ab9d98cc156e5b2097766dd9?s=96&d=mm&r=g","caption":"windows-vps"},"sameAs":["https:\/\/windows-vps.org\/blog","https:\/\/x.com\/myxiechengxuan"],"url":"https:\/\/windows-vps.org\/blog\/author\/myxiechengxuan\/"}]}},"_links":{"self":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/comments?post=990"}],"version-history":[{"count":1,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/990\/revisions"}],"predecessor-version":[{"id":991,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/posts\/990\/revisions\/991"}],"wp:attachment":[{"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/media?parent=990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/categories?post=990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/windows-vps.org\/blog\/wp-json\/wp\/v2\/tags?post=990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}