<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Xfs on HiDa</title><link>https://www.0niu.cn/tags/xfs/</link><description>Recent content in Xfs on HiDa</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 25 Jun 2023 10:08:00 +0800</lastBuildDate><atom:link href="https://www.0niu.cn/tags/xfs/index.xml" rel="self" type="application/rss+xml"/><item><title>扩展LVM磁盘空间</title><link>https://www.0niu.cn/posts/extend-lvm-disk-space/</link><pubDate>Sun, 25 Jun 2023 10:08:00 +0800</pubDate><guid>https://www.0niu.cn/posts/extend-lvm-disk-space/</guid><description>&lt;p>在虚拟化环境中，随着业务增长，磁盘空间不足是常见问题。本文记录在 CentOS 7/8 环境下扩展 LVM 磁盘空间的完整流程。&lt;/p>
&lt;h2 id="扩展虚拟机磁盘">扩展虚拟机磁盘&lt;/h2>
&lt;p>首先在虚拟化平台（VMware / KVM / Proxmox 等）上扩大虚拟磁盘容量。以 VMware 为例：&lt;/p>
&lt;ol>
&lt;li>关闭虚拟机（部分平台支持在线扩容）&lt;/li>
&lt;li>编辑虚拟机设置，将磁盘容量从原来的 50GB 扩展到 100GB&lt;/li>
&lt;li>启动虚拟机&lt;/li>
&lt;/ol>
&lt;p>扩展后，操作系统层面不会自动识别新增的空间，需要手动操作。&lt;/p></description><content>&lt;p>在虚拟化环境中，随着业务增长，磁盘空间不足是常见问题。本文记录在 CentOS 7/8 环境下扩展 LVM 磁盘空间的完整流程。&lt;/p>
&lt;h2 id="扩展虚拟机磁盘">扩展虚拟机磁盘&lt;/h2>
&lt;p>首先在虚拟化平台（VMware / KVM / Proxmox 等）上扩大虚拟磁盘容量。以 VMware 为例：&lt;/p>
&lt;ol>
&lt;li>关闭虚拟机（部分平台支持在线扩容）&lt;/li>
&lt;li>编辑虚拟机设置，将磁盘容量从原来的 50GB 扩展到 100GB&lt;/li>
&lt;li>启动虚拟机&lt;/li>
&lt;/ol>
&lt;p>扩展后，操作系统层面不会自动识别新增的空间，需要手动操作。&lt;/p>
&lt;h2 id="确认当前磁盘状态">确认当前磁盘状态&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看块设备信息&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lsblk
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看磁盘分区表&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fdisk -l /dev/sda
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看PV/VG/LV状态&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pvdisplay
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>vgdisplay
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lvdisplay
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>假设当前磁盘 &lt;code>/dev/sda&lt;/code> 有一个分区 &lt;code>/dev/sda1&lt;/code>，PV 为 &lt;code>/dev/sda1&lt;/code>，VG 名为 &lt;code>centos&lt;/code>，LV 名为 &lt;code>root&lt;/code>，挂载点为 &lt;code>/&lt;/code>。&lt;/p>
&lt;h2 id="使用-growpart-扩展分区">使用 growpart 扩展分区&lt;/h2>
&lt;p>growpart 可以在不破坏数据的情况下扩展已有分区，使其占用新增的磁盘空间。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 安装 cloud-utils-growpart（如果未安装）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>yum install -y cloud-utils-growpart
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 扩展分区（磁盘设备 + 分区编号）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>growpart /dev/sda &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>执行后可以用 &lt;code>fdisk -l /dev/sda&lt;/code> 确认分区大小已扩展。&lt;/p>
&lt;h2 id="扩展-lvm-物理卷和逻辑卷">扩展 LVM 物理卷和逻辑卷&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 让LVM识别扩展后的PV&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pvresize /dev/sda1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看VG可用空间&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>vgdisplay centos | grep &lt;span style="color:#e6db74">&amp;#34;Free&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 将所有可用空间扩展到LV&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lvextend -l +100%FREE /dev/centos/root
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 或者指定具体大小&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lvextend -L +50G /dev/centos/root
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="扩展文件系统">扩展文件系统&lt;/h2>
&lt;p>逻辑卷扩展后，还需要扩展文件系统才能实际使用新增空间。&lt;/p>
&lt;h3 id="xfs-文件系统centos-7-默认">XFS 文件系统（CentOS 7 默认）&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>xfs_growfs /
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>注意：XFS 只支持扩容，不支持缩容。&lt;code>xfs_growfs&lt;/code> 后面跟的是挂载点，不是设备路径。&lt;/p>
&lt;h3 id="ext4-文件系统">ext4 文件系统&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>resize2fs /dev/centos/root
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="验证结果">验证结果&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>df -h /
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>此时应该能看到文件系统容量已扩展到目标大小。&lt;/p>
&lt;h2 id="总结">总结&lt;/h2>
&lt;p>整个流程可归纳为以下四步：&lt;/p>
&lt;ol>
&lt;li>在虚拟化平台扩展虚拟磁盘&lt;/li>
&lt;li>&lt;code>growpart&lt;/code> 扩展分区&lt;/li>
&lt;li>&lt;code>pvresize&lt;/code> + &lt;code>lvextend&lt;/code> 扩展 PV 和 LV&lt;/li>
&lt;li>&lt;code>xfs_growfs&lt;/code> / &lt;code>resize2fs&lt;/code> 扩展文件系统&lt;/li>
&lt;/ol>
&lt;h2 id="常见问题">常见问题&lt;/h2>
&lt;p>&lt;strong>Q: growpart 报错 &amp;ldquo;NOCHANGE: partition 1 is size XXXXX it cannot be grown&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>这说明分区已经是磁盘末尾且无法扩展，或者分区表类型不支持。检查是否已经扩展到最大，或者考虑新增分区后创建新的 PV 加入 VG。&lt;/p>
&lt;p>&lt;strong>Q: pvresize 报错 &amp;ldquo;Device /dev/sda1 not found&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>分区可能没有被内核重新识别，执行 &lt;code>partprobe /dev/sda&lt;/code> 后重试。&lt;/p>
&lt;p>&lt;strong>Q: 能否在线操作？&lt;/strong>&lt;/p>
&lt;p>以上所有步骤均支持在线操作（不重启、不卸载），前提是虚拟化平台支持在线扩容磁盘。&lt;/p></content></item></channel></rss>