<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Storage on Barn</title>
    <link>https://barn.pgsty.com/tags/storage/</link>
    <description>Recent content in Storage on Barn</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Wed, 11 Nov 2026 00:00:00 +0800</lastBuildDate>
    
    
      <atom:link href="https://barn.pgsty.com/tags/storage/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>In-place root growth: recovery and native acceptance</title>
        <link>https://barn.pgsty.com/blog/design/root-disk-growth/</link>
        <pubDate>Wed, 11 Nov 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/design/root-disk-growth/</guid>
        <description>&lt;p&gt;&lt;strong&gt;Status (2026-11-11):&lt;/strong&gt; The unreleased development build implements &lt;code&gt;barn resize -D&lt;/code&gt;, with ext4 and XFS acceptance on macOS/arm64 using QEMU/HVF guests. Released 1.1.0 still limits resize to CPU/memory. See &lt;a href=&#34;../vm-resource-overrides/&#34;&gt;VM specification design&lt;/a&gt; for input precedence and &lt;a href=&#34;https://barn.pgsty.com/docs/reference/cli/#root-disk-growth&#34;&gt;root growth&lt;/a&gt; for the command contract.&lt;/p&gt;&#xA;&lt;h2 id=&#34;scope&#34;&gt;Supported scope&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a9374782-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-a9374782-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;barn resize -D 128GiB meta&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;BARN_DISK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;128GiB barn resize meta&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The target is an absolute root capacity. Growth is supported; shrinking is rejected. Repeating a completed target neither changes the image nor restarts the VM. CPU/memory changes may accompany growth; scale does not multiply disk size. Changes to images, architecture, data disks, networking, and shares still require explicit recreation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Barn 0.7.0: simpler test labs and automatic recovery</title>
        <link>https://barn.pgsty.com/blog/release/0.7.0/</link>
        <pubDate>Wed, 16 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/0.7.0/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Note&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Historical release record (&lt;code&gt;0.7.0&lt;/code&gt;). Old release downloads are retired; use the &lt;a href=&#34;https://barn.pgsty.com/docs/start/installation/&#34;&gt;installation guide&lt;/a&gt; for the current release.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Barn 0.7.0 streamlines first-run startup and recovery for local test labs: re-running &lt;code&gt;barn up&lt;/code&gt; finishes interrupted work, retries guest bootstrap stages, and updates guest helper scripts in place without restarting running VMs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-changed&#34;&gt;What changed&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Shorter first run.&lt;/strong&gt; Interactive &lt;code&gt;up&lt;/code&gt; can generate the default inventory, install missing host tools, and bring an intact inactive Barn network back online. Fast checks stay quiet while longer tasks display progress and a compact summary.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Independent guest stages.&lt;/strong&gt; Data disks, host shares, guest hostnames, node-to-node SSH, and private networking initialize independently. If an optional stage fails, Barn reports the specific limitation while keeping management SSH available, and subsequent &lt;code&gt;up&lt;/code&gt; runs skip stages that are already healthy.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automatic test-disk recovery.&lt;/strong&gt; Healthy filesystems are mounted as-is; unrecognized or confirmed-corrupt filesystems on test data disks are reformatted and remounted with an explicit data-loss notice. Transient probe failures, missing devices, busy mounts, and host I/O errors never trigger formatting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fewer manual fixes.&lt;/strong&gt; Unwritable host shares fall back to read-only and recover on the next &lt;code&gt;up&lt;/code&gt; once permissions are fixed. Occupied automatic SSH forward ports are reassigned for stopped guests. Interrupted image downloads resume automatically and fail over across official repositories while enforcing SHA-256 digest verification.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clean output and backward-compatible state.&lt;/strong&gt; Guest warnings are stored in a disposable cache outside the schema-2 VM documents and node directories, so older Barn binaries can still inspect and manage the deployment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrade-notes&#34;&gt;Upgrade notes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Re-running &lt;code&gt;up&lt;/code&gt; performs guest recovery (there is no separate &lt;code&gt;repair&lt;/code&gt; command), whereas &lt;code&gt;start&lt;/code&gt; powers on existing nodes without applying inventory changes. Passing &lt;code&gt;--no-wait&lt;/code&gt; skips readiness and recovery checks. See the &lt;a href=&#34;https://barn.pgsty.com/docs/start/storage/&#34;&gt;storage guide&lt;/a&gt; for data-disk recovery rules.&lt;/li&gt;&#xA;&lt;li&gt;A guest with working management SSH and optional stage warnings returns exit code &lt;code&gt;0&lt;/code&gt;. Automation that requires every optional feature should inspect &lt;code&gt;nodes[].warnings&lt;/code&gt; and &lt;code&gt;nodes[].repairs&lt;/code&gt; in &lt;code&gt;--json&lt;/code&gt; or &lt;code&gt;--yaml&lt;/code&gt; output.&lt;/li&gt;&#xA;&lt;li&gt;If an earlier 0.6.0 bootstrap failed after deleting the staged control-node private key, &lt;code&gt;up&lt;/code&gt; restores management SSH and reports a &lt;code&gt;control-ssh&lt;/code&gt; warning; run &lt;code&gt;barn plan&lt;/code&gt; and &lt;code&gt;barn recreate&lt;/code&gt; on the control node if it needs peer-to-peer SSH.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;install-or-upgrade&#34;&gt;Install or upgrade&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f55180d8-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f55180d8-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fLO https://github.com/pgsty/barn/releases/download/v0.7.0/install.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x install.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;BARN_VERSION&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.7.0 ./install.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;barn version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;barn up&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The release includes macOS and Linux (&lt;code&gt;amd64&lt;/code&gt;/&lt;code&gt;arm64&lt;/code&gt;) archives, Linux DEB/RPM packages, the installer script, checksums, SBOMs, and a Homebrew formula.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Barn 0.4.0: one command, working data disks, one voice</title>
        <link>https://barn.pgsty.com/blog/release/0.4.0/</link>
        <pubDate>Wed, 02 Sep 2026 18:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/0.4.0/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Note&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Historical release record (&lt;code&gt;0.4.0&lt;/code&gt;). Old release downloads are retired; use the &lt;a href=&#34;https://barn.pgsty.com/docs/start/installation/&#34;&gt;installation guide&lt;/a&gt; for the current release.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Barn 0.4.0 turns the first run into a single command, makes default data disks work out of the box on Debian and Ubuntu images, and unifies output formatting across all CLI commands while keeping the Pigsty inventory format, fixed-IP deployment model, state layout, and embedded catalog revision &lt;code&gt;2026082903&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-changed&#34;&gt;What changed&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Single-command first run.&lt;/strong&gt; When run in an interactive terminal on a host where the fixed-IP network has not been installed yet, &lt;code&gt;barn up&lt;/code&gt; automatically invokes &lt;code&gt;barn setup&lt;/code&gt;: it prints the host preparation plan, asks for confirmation before the privileged step, and continues directly into VM startup. &lt;code&gt;barn init&lt;/code&gt; now points to &lt;code&gt;barn up&lt;/code&gt; as the next command.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;vm_disks[].fs&lt;/code&gt; defaults to &lt;code&gt;auto&lt;/code&gt;.&lt;/strong&gt; Blank data disks are formatted as XFS when the guest has &lt;code&gt;mkfs.xfs&lt;/code&gt; and fall back to ext4 otherwise, matching Pigsty&amp;rsquo;s Vagrant workflow. Previously, the &lt;code&gt;xfs&lt;/code&gt; default failed on upstream Debian and Ubuntu cloud images that shipped without &lt;code&gt;xfsprogs&lt;/code&gt;. Existing deployments created under the old default are not flagged as configuration drift and keep their persistent disks intact.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clearer guest bootstrap errors.&lt;/strong&gt; Guest failure markers now capture the failing command&amp;rsquo;s last output line, so &lt;code&gt;up&lt;/code&gt; reports &lt;code&gt;guest bootstrap failed during data-disks: xfs requested but mkfs.xfs is unavailable&lt;/code&gt; rather than a bare exit status.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unified CLI output.&lt;/strong&gt; Lifecycle commands and &lt;code&gt;status&lt;/code&gt; print a consistent node table and, after &lt;code&gt;up&lt;/code&gt;, a &lt;code&gt;next: barn ssh &amp;lt;node&amp;gt;&lt;/code&gt; hint. &lt;code&gt;plan&lt;/code&gt; and &lt;code&gt;validate&lt;/code&gt; print a single summary line when no changes are needed, while &lt;code&gt;image list&lt;/code&gt;, &lt;code&gt;network status&lt;/code&gt;, &lt;code&gt;doctor&lt;/code&gt;, and preflight errors use plain prose without internal error codes (&lt;code&gt;spec hash&lt;/code&gt; and internal metadata remain available via &lt;code&gt;--json&lt;/code&gt;). Unknown-node errors list the available node names.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Standard SSH command pass-through.&lt;/strong&gt; &lt;code&gt;barn ssh &amp;lt;node&amp;gt; -- &#39;df -h /data; id&#39;&lt;/code&gt; forwards the remote command string to OpenSSH unchanged.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrading&#34;&gt;Upgrading&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;If a Debian 12/13 or Ubuntu node created with 0.3.0 or earlier failed to mount &lt;code&gt;/data&lt;/code&gt;, run &lt;code&gt;barn recreate &amp;lt;node&amp;gt;&lt;/code&gt; once so the disk formats as ext4. Non-interactive automation running &lt;code&gt;up&lt;/code&gt; on an unprepared host without a TTY should still run &lt;code&gt;barn setup --yes&lt;/code&gt; beforehand.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
