<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Zpool on inetshell</title><link>https://inet.sh/es/tags/zpool/</link><description>Recent content in Zpool on inetshell</description><generator>Hugo</generator><language>es</language><lastBuildDate>Wed, 19 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://inet.sh/es/tags/zpool/index.xml" rel="self" type="application/rss+xml"/><item><title>Importar un pool ZFS después de un apagón</title><link>https://inet.sh/es/posts/zfs/importar-pool-despues-apagado/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/zfs/importar-pool-despues-apagado/</guid><description>zpool import -F y zpool import -f para importar un pool ZFS sucio después de un corte de luz, y scrub para verificar.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>Pool no importa tras apagón: <code>zpool import -f</code>, si hace falta <code>-F</code> (rewind txgs), luego <code>zpool scrub</code>.</p>
<p>Tras un corte de luz el pool a menudo <strong>existe</strong> en los discos pero <code>zpool status</code> no lo muestra: quedó exportado sucio o el host arrancó sin él. No hagas <code>zpool create</code> sobre esos discos.</p>
<h2 id="ver-qué-hay">Ver qué hay</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool import
</span></span></code></pre></td></tr></table>
</div>
</div><p>Lista pools importables con su nombre (<code>VOL1</code> en el ejemplo) y si están <code>FAULTED</code> / <code>UNAVAIL</code>.</p>
<h2 id="importar">Importar</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool import -f VOL1
</span></span></code></pre></td></tr></table>
</div>
</div><p><code>-f</code> = “sé que puede estar importado en otro host”. Es el caso típico después de un crash: ZFS cree que el otro lado todavía lo tiene.</p>
<p>Si <code>-f</code> no basta porque las últimas txgs quedaron a medias:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool import -F VOL1
</span></span></code></pre></td></tr></table>
</div>
</div><p><code>-F</code> <strong>rebobina</strong> a un txg anterior consistente. Puedes perder los segundos de writes del apagón. Es preferible a un pool que no monta.</p>
<p><code>-n</code> simula:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool import -F -n VOL1
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="después-scrub">Después: scrub</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool scrub VOL1
</span></span><span class="line"><span class="cl">zpool status VOL1
</span></span></code></pre></td></tr></table>
</div>
</div><p>El scrub confirma que el rewind no dejó checksum errors. Déjalo terminar antes de borrar snapshots “por si acaso”.</p>
<h2 id="qué-no-hacer">Qué no hacer</h2>
<ul>
<li><code>zpool create</code> sobre los mismos <code>sdX</code> destruye las etiquetas.</li>
<li><code>-F</code> no es el primer recurso: prueba <code>-f</code> primero.</li>
<li>Si el pool es raíz (<code>rpool</code> / <code>bpool</code> de Proxmox), importa desde un live USB, no desde el sistema que no arranca.</li>
</ul>
<p>Ver también: <a href="/es/posts/zfs/reemplazar-discos/">reemplazar discos</a>, <a href="/es/posts/zfs/comandos-basicos/">comandos básicos</a>.</p>
]]></content:encoded></item><item><title>Reemplazar un disco en un pool ZFS</title><link>https://inet.sh/es/posts/zfs/reemplazar-discos/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/zfs/reemplazar-discos/</guid><description>zpool replace -f para cambiar un disco OFFLINE o por GUID en ZFS on Linux / Proxmox, y esperar el resilver.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>Disco OFFLINE: <code>zpool replace -f &lt;GUID&gt; /dev/disk/by-id/…</code> — el GUID lo da <code>zpool status</code>, no <code>/dev/sdX</code>.</p>
<p>Proxmox documenta el caso: <a href="https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev">ZFS on Linux — change a failed device</a>. El síntoma es un vdev <code>OFFLINE</code> / <code>FAULTED</code> y un número largo en vez de <code>sde</code>.</p>
<h2 id="estado">Estado</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool status vol1
</span></span></code></pre></td></tr></table>
</div>
</div><p>Ejemplo: el miembro muerto aparece como GUID:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">1894156996840098641  OFFLINE
</span></span></code></pre></td></tr></table>
</div>
</div><p>Eso pasa cuando el kernel ya no tiene <code>/dev/sdX</code> para ese disco (lo arrancaste, se fue, o cambió de letra).</p>
<h2 id="replace">Replace</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool replace -f vol1 <span class="m">1894156996840098641</span> /dev/disk/by-id/ata-NEWDISK
</span></span></code></pre></td></tr></table>
</div>
</div><p><code>-f</code> fuerza si ZFS todavía “recuerda” el disco viejo. El destino debe ser <strong>al menos</strong> del mismo tamaño (mejor, by-id, no <code>sde</code>).</p>
<p>Si el disco nuevo <strong>es</strong> el mismo slot y ZFS lo ve:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool replace vol1 /dev/disk/by-id/ata-OLDDISK /dev/disk/by-id/ata-NEWDISK
</span></span></code></pre></td></tr></table>
</div>
</div><p>o, autodetect del recambio en el mismo sitio:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool replace vol1 /dev/disk/by-id/ata-OLDDISK
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="esperar-el-resilver">Esperar el resilver</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool status vol1
</span></span><span class="line"><span class="cl">watch -n <span class="m">5</span> zpool status vol1
</span></span></code></pre></td></tr></table>
</div>
</div><p>No apagues el host, no exportes el pool, no hagas otro replace en el mismo vdev hasta <code>resilvered</code>. En RAIDZ1 estás un disco abajo: un segundo fallo en ese periodo es pérdida.</p>
<h2 id="después">Después</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool detach vol1 <span class="m">1894156996840098641</span>   <span class="c1"># solo si quedó como spare/old y status lo pide</span>
</span></span><span class="line"><span class="cl">zpool labelclear /dev/sdOLD             <span class="c1"># si reusas el disco viejo en otra máquina</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Ver también: <a href="/es/posts/zfs/importar-pool-despues-apagado/">import después de apagón</a>.</p>
]]></content:encoded></item><item><title>ZFS: cheat sheet de comandos (pool, compression, cache, log)</title><link>https://inet.sh/es/posts/zfs/comandos-basicos/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/zfs/comandos-basicos/</guid><description>Cheat sheet de ZFS: zpool create raidz, export/import, compression lz4, L2ARC, SLOG, labelclear y destroy.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>Cheat sheet: <code>zpool create</code>, export/import, <code>lz4</code>, L2ARC, SLOG, <code>labelclear</code>, destroy — lo de las 2 a.m.</p>
<p>Referencia corta. Los procedimientos largos están enlazados al final.</p>
<h2 id="pool">Pool</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool create vol1 raidz sda sdb sdc
</span></span><span class="line"><span class="cl">zpool status vol1
</span></span><span class="line"><span class="cl">zpool <span class="nb">export</span> vol1
</span></span><span class="line"><span class="cl">zpool import -f vol1
</span></span><span class="line"><span class="cl">zpool destroy tank          <span class="c1"># irreversible</span>
</span></span><span class="line"><span class="cl">zpool labelclear ada0       <span class="c1"># limpia etiquetas ZFS de un disco suelto</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><code>raidz</code> aquí es RAIDZ1 (una paridad). Para dos: <code>raidz2</code>. Identifica discos por <code>/dev/disk/by-id/…</code>, no por <code>sdX</code> que se reordenan.</p>
<h2 id="mountpoint">Mountpoint</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zfs unmount vol1
</span></span><span class="line"><span class="cl">zfs <span class="nb">set</span> <span class="nv">mountpoint</span><span class="o">=</span>/mnt/vol1 vol1
</span></span><span class="line"><span class="cl">zfs mount vol1
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="l2arc-cache-y-slog-zil">L2ARC (cache) y SLOG (ZIL)</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zpool add vol1 cache &lt;disk-id&gt;
</span></span><span class="line"><span class="cl">zpool add vol1 log &lt;disk-id&gt;
</span></span><span class="line"><span class="cl">zpool add vol1 log mirror &lt;disk-id-a&gt; &lt;disk-id-b&gt;
</span></span><span class="line"><span class="cl">zpool remove vol1 &lt;device&gt;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Cache = lecturas calientes. Log = sync writes (NFS, VMs). Un SLOG USB “rápido” es peor que no tener SLOG: si muere a mitad de un txg, duele. Espeja el log.</p>
<h2 id="compression">Compression</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">zfs <span class="nb">set</span> <span class="nv">compression</span><span class="o">=</span>lz4 newvol
</span></span><span class="line"><span class="cl">zfs <span class="nb">set</span> <span class="nv">compression</span><span class="o">=</span>off newvol
</span></span><span class="line"><span class="cl">zfs get compressratio newvol
</span></span></code></pre></td></tr></table>
</div>
</div><p><code>lz4</code> es el default razonable en OpenZFS moderno. <code>zstd</code> comprime más y cuesta CPU. La propiedad se hereda a datasets hijos que no la pisen.</p>
<h2 id="ver-también">Ver también</h2>
<ul>
<li><a href="/es/posts/zfs/importar-pool-despues-apagado/">Importar después de un apagón</a></li>
<li><a href="/es/posts/zfs/reemplazar-discos/">Reemplazar discos</a></li>
<li><a href="/es/posts/zfs/cifrado/">Cifrado nativo</a></li>
</ul>
]]></content:encoded></item></channel></rss>