我有一个 Hyper-V 虚拟机,我刚刚扩展了 VHD,并且可用空间显示在lsblk
命令中,但我无法扩展 lv,它始终显示没有可用空间。
我的配置和测试:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 51G 0 disk
├─sda1 8:1 0 128M 0 part /boot
└─sda2 8:2 0 49.9G 0 part
├─vg00-lv_raiz (dm-0) 252:0 0 6.1G 0 lvm /
├─vg00-lv_swap1 (dm-1) 252:1 0 4G 0 lvm [SWAP]
├─vg00-lv_var (dm-2) 252:2 0 6.1G 0 lvm /var
├─vg00-lv_opt (dm-3) [1] 252:3 0 3G 0 lvm /opt
├─vg00-lv_u01 (dm-4) 252:4 0 6G 0 lvm /u01
└─vg00-lv_oracle_oradata (dm-5) 252:5 0 344.7G 0 lvm /oracle/oradata
sdb 8:16 0 210G 0 disk /oracle/archive
sdc 8:32 0 40G 0 disk /oracle
sdd 8:48 0 500G 0 disk
└─sdd1 8:49 0 320G 0 part
└─vg00-lv_oracle_oradata (dm-5) 252:5 0 344.7G 0 lvm /oracle/oradata
你看,SDD 有 500GB,我需要将所有可用空间扩展到只有 344GB 的 LV lv_oracle_oradata
[root@dbmega oracle 21:57:50]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-lv_raiz 5.9G 1.7G 3.9G 31% /
tmpfs 24G 0 24G 0% /dev/shm
/dev/sda1 124M 52M 67M 44% /boot
/dev/mapper/vg00-lv_opt 2.9G 5.8M 2.8G 1% /opt
/dev/mapper/vg00-lv_u01 5.8G 2.5G 3.0G 46% /u01
/dev/sdc 35G 23G 11G 69% /oracle
/dev/mapper/vg00-lv_var 5.9G 1.3G 4.4G 23% /var
/dev/sdb 197G 75G 113G 41% /oracle/archive
//10.10.10.2/Backup_Oracle 3.7T 994G 2.7T 27% /oracle/backup
/dev/mapper/vg00-lv_oracle_oradata 340G 317G 5.3G 99% /oracle/oradata
当我尝试使用
[root@dbmega oracle 22:03:32]# lvresize -L +1GB /dev/mapper/vg00-lv_oracle_oradata
Extending logical volume lv_oracle_oradata to 345.69 GiB
Insufficient free space: 32 extents needed, but only 0 available
我怎样才能延长这个时间而不丢失任何数据,有些文章建议删除分区。
答案1
是的,您的空间sdd
是 500G,但其上的 LVM PV 分区大小为 320G。这意味着,您有一个未分配的空间,但目前 LVM 无法使用它。在运行之前lvresize
,您确实需要使这个空间可用。
始终查看vgs
、pvs
和lvs
以查看 LVM 状态,特别是有多少可用空间等等。如果在进行更改之前运行它,您将看到您的 VG 确实没有足够的空间来扩大卷。(这些命令将输出简要信息; 、 和 提供更详细的vgdisplay
输出pvdisplay
。lvdisplay
)
第一种方法是扩大分区。使用fdisk
,您应该删除此分区并在其原位置创建更大的分区。仔细查看创建分区的起始扇区是否完全相同,如果它询问是否找到签名,请回答“否”(不擦除)。或者,您可以使用growpart
。这两种变体在这里都描述过很多次,搜索有关如何在不丢失数据的情况下调整分区大小的信息。这可能需要重新启动主机。当您在 500G 分区上有 320G PV 时,您可以继续使用pvresize /dev/sdd1
。
或者,您也可以sdd2
在可用空间上创建一个额外的分区,使用 在其上创建 LVM 标签pvcreate /dev/sdd2
,然后使用 将其添加到 LVM vgextend vg00 /dev/sdd2
。
两种方法都会将丢失的 180G 添加到 VG,但第一种方式可能需要重新启动并且通常比较困难,而第二种方式肯定是在线的并且更容易,但会使磁盘处于有点脏的状态(两个 LVM PV 分区都是同一个 VG 的成员)。
现在您可以运行lvresize
。不要忘记resize2fs
或无论您的文件系统工具是什么,都要使文件系统填充卷!