<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZSvirt</title>
    <description>The latest articles on DEV Community by ZSvirt (@zsvirt_community).</description>
    <link>https://dev.to/zsvirt_community</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3996235%2Fc68553ef-de15-4b8d-b0ec-2160e2041cc6.png</url>
      <title>DEV Community: ZSvirt</title>
      <link>https://dev.to/zsvirt_community</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zsvirt_community"/>
    <language>en</language>
    <item>
      <title>ZSvirt Quick Start: From ISO to Your First VM, Step by Step</title>
      <dc:creator>ZSvirt</dc:creator>
      <pubDate>Wed, 19 Aug 2026 14:55:00 +0000</pubDate>
      <link>https://dev.to/zsvirt_community/zsvirt-quick-start-from-iso-to-your-first-vm-step-by-step-4o8p</link>
      <guid>https://dev.to/zsvirt_community/zsvirt-quick-start-from-iso-to-your-first-vm-step-by-step-4o8p</guid>
      <description>&lt;p&gt;Over the past two days, we announced ZSvirt's open-source release and explained why we made this decision. Today, let's get hands-on.&lt;/p&gt;

&lt;p&gt;If you're evaluating ZSvirt, the fastest way to learn it isn't reading the entire user manual — it's &lt;strong&gt;getting a VM running with your own hands&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This tutorial walks you through a minimal end-to-end path: install the management node → initialize the platform → add hosts, storage, networks, and images → create your first VM and log in to it. When you're done, you'll have a VM that can reach the internet and open a console — which means every core platform link is working.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: low-level command and API names still use legacy fields such as &lt;code&gt;zstack-ctl&lt;/code&gt;, &lt;code&gt;zstack-cli&lt;/code&gt;, PrimaryStorage, and BackupStorage, and the built-in test image is named &lt;code&gt;ZStack-image-1.4&lt;/code&gt;. These are command-layer names and don't affect platform operations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Before You Start: One Server Is Enough
&lt;/h2&gt;

&lt;p&gt;The minimal setup is All-in-One: a single server acts as both the management node and a compute node. The hardware bar is low:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Minimum&lt;/th&gt;
&lt;th&gt;Recommended&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CPU&lt;/td&gt;
&lt;td&gt;Intel VT or AMD-V, at least 8 cores&lt;/td&gt;
&lt;td&gt;24 cores or more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;8 GB&lt;/td&gt;
&lt;td&gt;24 GB or more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System disk&lt;/td&gt;
&lt;td&gt;100 GB&lt;/td&gt;
&lt;td&gt;200 GB or more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NIC&lt;/td&gt;
&lt;td&gt;1 management NIC&lt;/td&gt;
&lt;td&gt;Separate management, storage, and service networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;Static IP&lt;/td&gt;
&lt;td&gt;Static IP with DNS/NTP configured in advance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two easily overlooked points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't use DHCP.&lt;/strong&gt; The management node IP is written into the platform configuration during installation, and changing it later is painful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sync the system time.&lt;/strong&gt; If the management node's clock is earlier than the installation package's build time, the installer will fail outright — this is the first pit most newcomers hit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also prepare the ISO installation media: &lt;code&gt;ZSvirt-x86_64-DVD-&amp;lt;version&amp;gt;.iso&lt;/code&gt;. You can boot from a physical optical drive, a USB stick, or an ISO mounted via the server's remote console. For USB creation we recommend Rufus or Fedora Media Writer — both support Legacy and UEFI boot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install the Management Node from the ISO
&lt;/h2&gt;

&lt;p&gt;Boot from the ISO and the installer enters &lt;strong&gt;Install ZSvirt&lt;/strong&gt; by default — no manual selection needed. You'll land on the &lt;strong&gt;INSTALLATION SUMMARY&lt;/strong&gt; screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F647yen1hmg7xjwxpa6qn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F647yen1hmg7xjwxpa6qn.png" alt="Booting from the ISO" width="799" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F96vbncsyrlyuxrweqlq0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F96vbncsyrlyuxrweqlq0.png" alt="INSTALLATION SUMMARY screen" width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Complete the four configuration items in order:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Installation Destination (system disk)&lt;/strong&gt;: select a disk as the system disk and click &lt;strong&gt;Done&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fklc38w18pbqq7hx3lsgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fklc38w18pbqq7hx3lsgj.png" alt="Selecting the system disk" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Software Selection (installation mode)&lt;/strong&gt;: choose &lt;strong&gt;ZSvirt Management Node&lt;/strong&gt; and click &lt;strong&gt;Done&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fppossns5sitjqc6mvqwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fppossns5sitjqc6mvqwv.png" alt="Selecting the ZSvirt Management Node installation mode" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Network &amp;amp; Host Name&lt;/strong&gt;: click &lt;strong&gt;Configure...&lt;/strong&gt; to open the NIC settings, switch &lt;strong&gt;IPv4 Settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Method&lt;/strong&gt; to &lt;strong&gt;Manual&lt;/strong&gt;, click &lt;strong&gt;Add&lt;/strong&gt;, and fill in your planned IP, netmask, and gateway:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fswnyih86a9pf4fbqnfic.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fswnyih86a9pf4fbqnfic.png" alt="Configuring the ens3 IPv4 address" width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't forget to enable &lt;strong&gt;Connect automatically with priority (0)&lt;/strong&gt; on the &lt;strong&gt;General&lt;/strong&gt; tab — otherwise the NIC won't come up after reboot:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjlpl2sx8tq51x0dujm4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjlpl2sx8tq51x0dujm4b.png" alt="Enabling automatic NIC activation" width="500" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Root Password&lt;/strong&gt;: enter the root password twice and click &lt;strong&gt;Done&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdiy9atddwj0p8tsxqcj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdiy9atddwj0p8tsxqcj8.png" alt="Setting the root password" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once all four items are ready, click &lt;strong&gt;Begin Installation&lt;/strong&gt;. The system then reboots automatically and continues installing the ZSvirt management node service:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3aihay3opei4vle5ndf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3aihay3opei4vle5ndf2.png" alt="Beginning the installation" width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqlnyblowsugvugo2yyp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqlnyblowsugvugo2yyp8.png" alt="Automatic management node service installation" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the system enters the TUI and &lt;strong&gt;both MN and UI show Running&lt;/strong&gt;, the management node is ready:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvia32k6n5vuya3t2ivwp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvia32k6n5vuya3t2ivwp.png" alt="TUI showing MN and UI as Running" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want extra assurance, log in and run two quick checks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;zstack-ctl status
zstack-ctl show_configuration | &lt;span class="nb"&gt;grep &lt;/span&gt;management.server.ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the installation fails, check &lt;code&gt;/tmp/zstack_installation-*.log&lt;/code&gt; first; for Web UI issues, look at &lt;code&gt;/usr/local/zstack/zstack-ui/logs/ui-install.log&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Initialize the Platform
&lt;/h2&gt;

&lt;p&gt;Point your browser at the &lt;strong&gt;management node IP&lt;/strong&gt; and log in with the default credentials &lt;strong&gt;admin/password&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuchvpp5klciiep7493kw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuchvpp5klciiep7493kw.png" alt="Logging in to the ZSvirt management platform" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ In production, always change the default password immediately after your first login. It's a good habit even in test environments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On first login, the platform guides you through creating a datacenter and a cluster. QuickStart only needs one of each: name the datacenter &lt;strong&gt;Datacenter-1&lt;/strong&gt; and the cluster &lt;strong&gt;Cluster-1&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gisavx4d5186dpi6bth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gisavx4d5186dpi6bth.png" alt="Creating a datacenter" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe0s9zy11xmznog1an4yv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe0s9zy11xmznog1an4yv.png" alt="Creating a cluster" width="799" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conceptually, a datacenter hosts a group of compute, storage, and network resources, while a cluster organizes hosts, datastores, and distributed switches. Create them first — everything else attaches underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add the Management Node as a Host
&lt;/h2&gt;

&lt;p&gt;The All-in-One trick is to add the management node itself as a host. Enter a name, the IP address (the management node IP), and the root password, click &lt;strong&gt;OK&lt;/strong&gt;, and wait until the host shows as connected:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgpixdgrcn0cit2czbe01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgpixdgrcn0cit2czbe01.png" alt="Adding a host" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If this step fails, nine times out of ten it's SSH connectivity or a wrong root password — test manually with &lt;code&gt;ssh root@&amp;lt;host IP&amp;gt;&lt;/code&gt; first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Add a Datastore and Image Storage
&lt;/h2&gt;

&lt;p&gt;VM disks live on datastores; system images live on image storage. You need both.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Datastore&lt;/strong&gt;: for testing, a local datastore is fine. Enter a name and a mount path (don't reuse the system root or a temp directory), then click &lt;strong&gt;OK&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0je9wmg83a0q47yffddp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0je9wmg83a0q47yffddp.png" alt="Adding a datastore" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: local datastores work for single-host verification but can't do cross-host migration. To try live migration later, switch to shared storage that all hosts can access.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Image storage&lt;/strong&gt;: enter a name, the image storage IP (again the management node IP), and the password, click &lt;strong&gt;Test Connection&lt;/strong&gt;, select &lt;strong&gt;Local Directory&lt;/strong&gt;, and click &lt;strong&gt;OK&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvoryx2er7r90kixr2qhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvoryx2er7r90kixr2qhj.png" alt="Adding image storage" width="799" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then add a system image (qcow2 or raw). For testing, the defaults are fine — just click &lt;strong&gt;OK&lt;/strong&gt;. The system automatically provisions a test image, &lt;code&gt;ZStack-image-1.4&lt;/code&gt;, which you can use right away to verify VM creation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnxp2bji75ckhz6s8ong9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnxp2bji75ckhz6s8ong9.png" alt="Adding an image" width="799" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Import speed depends on the network path between the image storage, management node, hosts, and datastores, so be patient with large images. If it fails, first confirm the platform can read the image URL or local path (&lt;code&gt;curl -I &amp;lt;image URL&amp;gt;&lt;/code&gt; or &lt;code&gt;qemu-img info &amp;lt;image file&amp;gt;&lt;/code&gt; are handy).&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Create the Network
&lt;/h2&gt;

&lt;p&gt;Create a distributed switch and a distributed port group. Using vlan-2344 as an example, configure the VLAN ID, IP allocation method, and DNS, then click &lt;strong&gt;OK&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkiczs4rf2fpbw1m6n7i9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkiczs4rf2fpbw1m6n7i9.png" alt="Creating a distributed switch and port group" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For quick verification, &lt;strong&gt;enable IP address management and DHCP&lt;/strong&gt; so VMs get IPs automatically.&lt;/li&gt;
&lt;li&gt;Don't let the network segment overlap the gateway, DHCP service IP, or existing service addresses — this is the second most common pit, and it's why most "VM got no IP" reports happen.&lt;/li&gt;
&lt;li&gt;All hosts in the cluster need a physical interface or bond with the same name; when using VLANs, the switch-side trunk/access configuration must match the platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 6: Create Your First VM
&lt;/h2&gt;

&lt;p&gt;Click &lt;strong&gt;Create VM&lt;/strong&gt;, enter a name, select the &lt;strong&gt;system image&lt;/strong&gt; you just imported for disk 1, pick &lt;strong&gt;NIC 1&lt;/strong&gt;, and confirm:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F11mcaom2pfrszibdu4jf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F11mcaom2pfrszibdu4jf.png" alt="Creating a VM" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the VM shows as Running and the console reaches a login screen, you're most of the way there.&lt;/p&gt;

&lt;p&gt;Log in to the guest and run a quick verification:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip addr
ip route
ping &lt;span class="nt"&gt;-c&lt;/span&gt; 4 &amp;lt;gateway IP&amp;gt;
ping &lt;span class="nt"&gt;-c&lt;/span&gt; 4 1.1.1.1
ping &lt;span class="nt"&gt;-c&lt;/span&gt; 4 example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reading the results is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gateway reachable&lt;/strong&gt; → distributed switch, port group, DHCP, and VLAN are all working;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;External IP reachable&lt;/strong&gt; → upstream routing works;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain resolves and responds&lt;/strong&gt; → DNS works.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 7: Double-Check via CLI (Optional)
&lt;/h2&gt;

&lt;p&gt;If you prefer the command line, run a full-chain health check on the management node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;zstack-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LogInByAccount accountName=admin password=&amp;lt;admin password&amp;gt;

QueryHost fields=uuid,name,managementIp,state,status
QueryPrimaryStorage fields=uuid,name,type,state,status,availableCapacity,totalCapacity
QueryBackupStorage fields=uuid,name,type,state,status,availableCapacity,totalCapacity
QueryL3Network fields=uuid,name,type
QueryImage fields=uuid,name,state,status
QueryVmInstance name=vm-test-01 fields=uuid,name,state,hostUuid,vmNics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host state=Enabled status=Connected
PrimaryStorage state=Enabled status=Connected
BackupStorage state=Enabled status=Connected
Image state=Enabled status=Ready
VmInstance state=Running
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything matches, the compute-storage-network-image-VM chain is fully working.&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Check first&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Installation script exits&lt;/td&gt;
&lt;td&gt;System time, root privileges, &lt;code&gt;/tmp/zstack_installation-*.log&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failed to add host&lt;/td&gt;
&lt;td&gt;SSH connectivity, root password, time sync, firewall&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failed to add image&lt;/td&gt;
&lt;td&gt;Image URL readability, image format, free image storage capacity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VM gets no IP&lt;/td&gt;
&lt;td&gt;Segment overlapping gateway/reserved addresses, DHCP enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Console won't open&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;zstack-ctl status&lt;/code&gt;, browser certificate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a more complete list, see the &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Once the minimal environment works, continue in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Change the default password&lt;/strong&gt; and create individual admin accounts;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure NTP&lt;/strong&gt; so the management node, hosts, and storage share the same time;&lt;/li&gt;
&lt;li&gt;Switch the local datastore to &lt;strong&gt;shared storage&lt;/strong&gt; and try cross-host live migration;&lt;/li&gt;
&lt;li&gt;Build standard &lt;strong&gt;Linux/Windows template images&lt;/strong&gt; and install VMTools for complete in-guest monitoring;&lt;/li&gt;
&lt;li&gt;When you need dual-node high availability, see the HA chapter of the &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A fully illustrated step-by-step reference is also available on the &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;documentation site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you run into issues during deployment, feel free to open an issue on &lt;a href="https://github.com/zsvirt/zsvirt/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt; or join the technical discussion on GitHub Discussions.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/zsvirt/zsvirt" rel="noopener noreferrer"&gt;https://github.com/zsvirt/zsvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download Center: &lt;a href="https://zsvirt.io/download" rel="noopener noreferrer"&gt;https://zsvirt.io/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation Center: &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;https://zsvirt.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Community
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue reports&lt;/strong&gt;: &lt;a href="https://github.com/zsvirt/zsvirt/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community discussions&lt;/strong&gt;: &lt;a href="https://github.com/ZSvirt/zsvirt/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social media&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;YouTube: &lt;a href="https://youtube.com/@ZSvirt" rel="noopener noreferrer"&gt;https://youtube.com/@ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/zsvirt-community/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/zsvirt-community/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;X/Twitter: &lt;a href="https://x.com/ZSvirt" rel="noopener noreferrer"&gt;https://x.com/ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="//community@zsvirt.io"&gt;community@zsvirt.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>virtualmachine</category>
      <category>opensource</category>
      <category>zsvirt</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Why We Open-Sourced ZSvirt?</title>
      <dc:creator>ZSvirt</dc:creator>
      <pubDate>Tue, 18 Aug 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/zsvirt_community/why-we-open-sourced-zsvirt-1457</link>
      <guid>https://dev.to/zsvirt_community/why-we-open-sourced-zsvirt-1457</guid>
      <description>&lt;p&gt;&lt;em&gt;Yesterday, we open-sourced ZSvirt. Today, we want to talk about why.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ZSvirt didn't start life as an open-source project. Its commercial counterpart, &lt;a href="https://www.zstack.io/product/virtualization/zsphere/" rel="noopener noreferrer"&gt;ZStack ZSphere&lt;/a&gt;, is a virtualization platform built by &lt;a href="https://zstack.io" rel="noopener noreferrer"&gt;ZStack&lt;/a&gt;'s engineering team over years of large-scale VMware replacement work — continuously developed, validated in real production environments, and deeply optimized.&lt;/p&gt;

&lt;p&gt;The codebase now released as ZSvirt v1.0.0 has been running in demanding production environments for a long time. In these environments, the control plane manages more than 10,000 hosts, and a single VM can carry up to 768 vCPUs. For workloads this critical, makeshift maintenance is simply not an option.&lt;/p&gt;

&lt;p&gt;That history matters to us, because virtualization is not a field where a demo alone proves long-term value.&lt;/p&gt;

&lt;p&gt;A hypervisor's real worth is proven in critical moments and under pressure: when a disk fails, when you live-migrate during peak hours, when an audit deadline lands.&lt;/p&gt;

&lt;p&gt;We've been through enough of these moments to believe that ZSvirt is ready for scrutiny from a wider community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Now? Why Open Source?
&lt;/h2&gt;

&lt;p&gt;Two years ago, this decision wouldn't have felt as urgent.&lt;/p&gt;

&lt;p&gt;Since &lt;a href="https://www.broadcom.com/company/news/articles/cloud/vmware-by-broadcom-business-transformation" rel="noopener noreferrer"&gt;Broadcom acquired VMware&lt;/a&gt;, the way we talk to infrastructure administrators has changed. Teams running vSphere — and teams also running Hyper-V, Proxmox VE, or Nutanix — are re-evaluating their virtualization strategy, often under cost and budget pressure.&lt;/p&gt;

&lt;p&gt;In these conversations, the questions we keep hearing are not about features. They are:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Can we read the code?" "Can we audit it?" "If the vendor's strategy changes down the road, how do we protect ourselves?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We could have answered these questions with promises. Instead, we chose to answer with a public repository. ZSvirt v1.0.0 is the first release to open the complete source code, build scripts, a signed installation ISO, and the accompanying documentation.&lt;/p&gt;

&lt;p&gt;More importantly, in our view, "zero vendor lock-in" should live in the license and the code itself — not as a tagline in a product brochure. The virtualization layer carries a large share of an enterprise's business-critical workloads. If users can't read, audit, or build from the code themselves, a critical part of their infrastructure remains a dependency they don't fully control. Our belief is simple: infrastructure this important should not be subject to any single vendor's commercial decisions — including our own.&lt;/p&gt;

&lt;p&gt;We understand that people may have questions about this decision, because we'd ask the same ones. An infrastructure open-source project launched by a commercial company naturally raises legitimate concerns: will the license change as the project grows? Is this an open-core play that keeps the real capabilities hidden?&lt;/p&gt;

&lt;p&gt;So we want to state our commitments publicly.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Transparent Business Model
&lt;/h2&gt;

&lt;p&gt;We will clearly define the boundary between the community edition and the commercial offering.&lt;/p&gt;

&lt;p&gt;What stays open, always:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The virtualization platform itself, including compute, storage, and network virtualization;&lt;/li&gt;
&lt;li&gt;The full API surface;&lt;/li&gt;
&lt;li&gt;ZMigrate, our free and unlimited migration tool;&lt;/li&gt;
&lt;li&gt;The Terraform Provider and Go, Python, and Java SDKs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What's commercial:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise-grade support services from ZStack;&lt;/li&gt;
&lt;li&gt;Capabilities exclusive to the enterprise edition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will maintain public documentation that spells out which capabilities belong to the community edition and which to the commercial edition — and we will not move already-open features behind a paywall. That commitment applies to future releases as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the license: ZSvirt will continue to be released under GPL 3.0. The license will not change.&lt;/strong&gt; We want that to be clear from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where We Fit
&lt;/h2&gt;

&lt;p&gt;We don't believe ZSvirt is the only right choice for every organization, and we're not here to dismiss approaches the industry has widely adopted. Organizations have different infrastructure needs. ZSvirt is built for teams and individuals who want enterprise-grade capability, openness, and control at the same time.&lt;/p&gt;

&lt;p&gt;There are several valid paths in virtualization, each serving different operational needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public cloud managed services&lt;/strong&gt;: the provider runs operations; you pay per workload.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hyperconverged infrastructure platforms&lt;/strong&gt;: integrated hardware and software from a single vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A self-built KVM stack&lt;/strong&gt;: for teams with deep Linux expertise willing to build their own toolchain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes-native virtualization&lt;/strong&gt;: for organizations all-in on Kubernetes, managing infrastructure cloud-natively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight single-node virtualization&lt;/strong&gt;: for small deployments and edge scenarios that don't need a full cluster control plane.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many enterprise teams, though, have a different set of needs. They want to keep the familiar operating model of a traditional virtualization platform while gaining the openness, flexibility, and control that come with an open foundation. These teams typically manage infrastructure around familiar concepts — clusters, hosts, VMs, networks, and datastores — and need production-grade capabilities. At the same time, they want to avoid hardware and platform lock-in, don't want Kubernetes as a prerequisite for managing VMs, and want a fully open API.&lt;/p&gt;

&lt;p&gt;For these teams, ZSvirt offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale&lt;/strong&gt;: a single control plane managing 10,000+ hosts;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Openness&lt;/strong&gt;: 2,000+ asynchronous RESTful/OpenAPI endpoints, with Go, Python, and Java SDKs;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: native Secure Boot, vTPM 2.0, VM encryption, and built-in key management;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Networking&lt;/strong&gt;: distributed switches and port groups, plus SR-IOV-accelerated networking with live migration support;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Migration&lt;/strong&gt;: ZMigrate, an agentless migration tool running at the virtualization layer, cutting over in as little as 5 minutes;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise capabilities&lt;/strong&gt;: HA, DRS, snapshots, backup, alerting, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your organization is looking for that balance, ZSvirt is built for you. If another approach fits your needs better, we respect that — and encourage you to adopt the platform that best suits your environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Community
&lt;/h2&gt;

&lt;p&gt;For us, open-sourcing ZSvirt is not a one-time launch event. It's the start of a long-term collaboration.&lt;/p&gt;

&lt;p&gt;Concretely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A public roadmap, updated quarterly&lt;/strong&gt;, so users and contributors can see where the platform is heading;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully public contribution guidelines&lt;/strong&gt; — contributions of every kind are welcome, from docs and testing to code;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A predictable community process&lt;/strong&gt;: technical discussions happen on GitHub Discussions; bugs and documentation issues are tracked in GitHub Issues, with the engineering team responsible for each module participating directly. We respond to issues on business days.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We look forward to the community shaping where ZSvirt goes next — open collaboration builds stronger software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ZSvirt
&lt;/h2&gt;

&lt;p&gt;Download the ISO — published with checksums and cryptographic signatures — and explore ZSvirt in your own environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/zsvirt/zsvirt" rel="noopener noreferrer"&gt;https://github.com/zsvirt/zsvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Downloads: &lt;a href="https://zsvirt.io/download" rel="noopener noreferrer"&gt;https://zsvirt.io/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation: &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;https://zsvirt.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Star or watch the ZSvirt repository to follow new releases, development progress, and technical discussions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Community
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue reports&lt;/strong&gt;: &lt;a href="https://github.com/zsvirt/zsvirt/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community discussions&lt;/strong&gt;: &lt;a href="https://github.com/ZSvirt/zsvirt/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social media&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;YouTube: &lt;a href="https://youtube.com/@ZSvirt" rel="noopener noreferrer"&gt;https://youtube.com/@ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/zsvirt-community/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/zsvirt-community/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;X/Twitter: &lt;a href="https://x.com/ZSvirt" rel="noopener noreferrer"&gt;https://x.com/ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Reddit: &lt;a href="https://www.reddit.com/r/ZSvirt/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/ZSvirt/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="//community@zsvirt.io"&gt;community@zsvirt.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>virtualmachine</category>
      <category>cloudnative</category>
      <category>kubernetes</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ZSvirt is Open Source: Enterprise-Grade Virtualization, Now Open to the Community</title>
      <dc:creator>ZSvirt</dc:creator>
      <pubDate>Mon, 17 Aug 2026 02:29:17 +0000</pubDate>
      <link>https://dev.to/zsvirt_community/zsvirt-is-open-source-enterprise-grade-virtualization-now-open-to-the-community-2ee7</link>
      <guid>https://dev.to/zsvirt_community/zsvirt-is-open-source-enterprise-grade-virtualization-now-open-to-the-community-2ee7</guid>
      <description>&lt;p&gt;&lt;em&gt;ZSvirt is now officially open source under the GPL 3.0 license. The full source code is available on GitHub, and ISO installation images and technical documentation are available on the community site.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3baasc2eqykdxeslildb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3baasc2eqykdxeslildb.png" alt="zsvirt.io" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KUALA LUMPUR / SHANGHAI, August 12, 2026&lt;/strong&gt; — &lt;a href="https://github.com/zsvirt/zsvirt" rel="noopener noreferrer"&gt;ZSvirt&lt;/a&gt;, launched by infrastructure vendor &lt;a href="https://zstack-cloud.com" rel="noopener noreferrer"&gt;ZStack&lt;/a&gt;, today officially announced its open-source release under the GPL 3.0 license. The complete source code, ISO installation images, and technical documentation are now available at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/zsvirt/zsvirt" rel="noopener noreferrer"&gt;https://github.com/zsvirt/zsvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community site: &lt;a href="https://zsvirt.io" rel="noopener noreferrer"&gt;https://zsvirt.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since &lt;a href="https://blogs.vmware.com/china/2024/03/12/vmware-by-broadcom-%E4%BA%A7%E5%93%81%E5%90%91%E8%AE%A2%E9%98%85%E8%BD%AC%E5%9E%8B/" rel="noopener noreferrer"&gt;Broadcom's acquisition of VMware&lt;/a&gt; and the licensing changes that followed, more organizations are re-evaluating their virtualization strategy around TCO, looking for greater flexibility, transparency, and control over how they run workloads. ZSvirt is going open source at this moment to give teams evaluating alternatives an open, proven option — one that doesn't require changing existing operational habits.&lt;/p&gt;

&lt;p&gt;ZSvirt brings the enterprise-proven &lt;a href="https://www.zstack-cloud.com/" rel="noopener noreferrer"&gt;ZStack ZSphere&lt;/a&gt; virtualization engine to the open-source world. As a lightweight, scalable platform, it gives teams full control over their infrastructure — from homelabs to hyperscale production environments — without vendor lock-in. Unlike approaches that require adopting an entirely new operational model, ZSvirt keeps the familiar VM-centric workflows around clusters, hosts, virtual machines, storage, and networking, while letting users evaluate, deploy, and take part in the platform's evolution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Capabilities
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Large-scale virtualization&lt;/strong&gt;: a single control plane manages 10,000+ hosts; a single VM supports up to 768 vCPUs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless VMware migration&lt;/strong&gt;: 100% agentless migration. The built-in ZMigrate toolset runs entirely at the virtualization layer, with full-disk block copy and background incremental sync, cutting over in as little as 5 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in security&lt;/strong&gt;: native VM Secure Boot, vTPM 2.0, VM encryption, security-group microsegmentation, and immutable audit logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open integration&lt;/strong&gt;: 2,000+ production-ready RESTful/OpenAPI endpoints, a native Terraform Provider, and Go, Python, and Java SDKs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Proven in Production
&lt;/h2&gt;

&lt;p&gt;ZSvirt runs the same enterprise-grade engine as ZSphere, validated in more than 1,000 production environments — including VMware replacement projects — across finance, healthcare, education, manufacturing, transportation, and other industries. Today, we're opening that engine to the community under GPL 3.0, helping organizations migrate and upgrade their virtualization platforms without disrupting their business.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0dti5dfepw28ha1lljky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0dti5dfepw28ha1lljky.png" alt="User Cases" width="799" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Future of Open Virtualization Together
&lt;/h2&gt;

&lt;p&gt;Over the next six to twelve months, the ZSvirt project will focus on accelerating platform maturity, expanding ecosystem compatibility, and improving operational efficiency across diverse infrastructure environments. The project roadmap, contribution guidelines, and governance documents will remain public, so users and contributors can follow where the platform is heading. Technical discussions happen on GitHub Discussions; bugs and documentation issues are tracked in GitHub Issues and handled directly by the engineering teams responsible for each module.&lt;/p&gt;

&lt;h2&gt;
  
  
  License and Governance
&lt;/h2&gt;

&lt;p&gt;ZSvirt is released under GPL 3.0. This strong copyleft license allows anyone to freely use, modify, and redistribute the source code, while requiring derivative works to be released under GPL 3.0 as well. We'll detail the boundary between the community and commercial editions in a follow-up post.&lt;/p&gt;

&lt;p&gt;This ensures that every improvement flows back to the community — and that ZSvirt remains free and open, permanently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download Center: &lt;a href="https://zsvirt.io/download" rel="noopener noreferrer"&gt;https://zsvirt.io/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation Center: &lt;a href="https://zsvirt.io/docs" rel="noopener noreferrer"&gt;https://zsvirt.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Community
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue reports&lt;/strong&gt;: &lt;a href="https://github.com/zsvirt/zsvirt/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community discussions&lt;/strong&gt;: &lt;a href="https://github.com/ZSvirt/zsvirt/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social media&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;YouTube: &lt;a href="https://youtube.com/@ZSvirt" rel="noopener noreferrer"&gt;https://youtube.com/@ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/zsvirt-community/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/zsvirt-community/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;X/Twitter: &lt;a href="https://x.com/ZSvirt" rel="noopener noreferrer"&gt;https://x.com/ZSvirt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="//community@zsvirt.io"&gt;community@zsvirt.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>virtualmachine</category>
      <category>opensource</category>
      <category>cloudnative</category>
      <category>gpl</category>
    </item>
  </channel>
</rss>
