有人可以帮忙吗?我有 2 个磁盘跨越我的主分区。一个是 460Gb,另一个是 1TB。我想删除 1TB - 我想在另一台机器上使用它。
无论如何,卷组不会使用大量空间,我只有 docker 和一些使用该磁盘的容器,而且我的 docker 容器卷无论如何都位于不同的物理磁盘上。
如果我只是删除磁盘([物理]),它会导致问题,对吧?
这是一些信息
pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <464.26 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 118850
Free PE 0
Allocated PE 118850
PV UUID DA7Q8E-zJEz-2FzO-N64t-HtU3-2Z8P-UQydU4
--- Physical volume ---
PV Name /dev/sdb1
VG Name ubuntu-vg
PV Size 931.51 GiB / not usable 4.69 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238466
Free PE 0
Allocated PE 238466
PV UUID Sp6b1v-nOj2-XXdb-GZYf-1Vej-cfdr-qLB3GU
LVM 让我有点困惑:-)
难道不只是一个简单的例子,
“将自己从 VG 中删除,并评估您正在使用剩余组成员的任何内容”?
值得注意的是,1TB 是后来添加的,所以假设它更容易删除?
任何帮助真的很感激
编辑
还有一些更多信息
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.4M 3.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 1.4T 5.1G 1.3T 1% /
同样只使用 1%
还输出lvs
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- 1.36t
编辑
pvdisplay -m
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <464.26 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 118850
Free PE 0
Allocated PE 118850
PV UUID DA7Q8E-zJEz-2FzO-N64t-HtU3-2Z8P-UQydU4
--- Physical Segments ---
Physical extent 0 to 118849:
Logical volume /dev/ubuntu-vg/ubuntu-lv
Logical extents 0 to 118849
--- Physical volume ---
PV Name /dev/sdb1
VG Name ubuntu-vg
PV Size 931.51 GiB / not usable 4.69 MiB
Allocatable NO
PE Size 4.00 MiB
Total PE 238466
Free PE 0
Allocated PE 238466
PV UUID Sp6b1v-nOj2-XXdb-GZYf-1Vej-cfdr-qLB3GU
--- Physical Segments ---
Physical extent 0 to 238465:
Logical volume /dev/ubuntu-vg/ubuntu-lv
Logical extents 118850 to 357315
编辑
输出
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squashfs /snap/core/9066
loop2 squashfs /snap/core/9289
sda
├─sda1 vfat E6CC-2695 /boot/efi
├─sda2 ext4 0909ad53-d6a7-48c7-b998-ac36c8f629b7 /boot
└─sda3 LVM2_membe DA7Q8E-zJEz-2FzO-N64t-HtU3-2Z8P-UQydU4
└─ubuntu--vg-ubuntu--lv
ext4 b64f2bf4-cd6c-4c21-9009-76faa2627a6b /
sdb
└─sdb1 LVM2_membe Sp6b1v-nOj2-XXdb-GZYf-1Vej-cfdr-qLB3GU
└─ubuntu--vg-ubuntu--lv
ext4 b64f2bf4-cd6c-4c21-9009-76faa2627a6b /
sdc xfs 1a9d0e4e-5cec-49f3-9634-37021f65da38 /gluster/bricks/2
上面的 sdc 是不同的驱动器 - 并且不相关。
答案1
由于您需要从中删除磁盘的文件系统是您的根文件系统,并且文件系统类型为ext4
,您必须首先从一些实时 Linux 启动媒体启动系统。 Ubuntu Live 可能可以很好地解决这个问题。
从外部介质启动后,运行sudo vgchange -ay ubuntu-vg
以激活卷组,以便您能够访问 LV,但不要挂载文件系统:需要卸载 ext2/3/4 文件系统才能缩小。然后将文件系统缩小到 10G(或任何您想要的大小 - 稍后可以轻松地再次扩展,甚至在线扩展):
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 10G
请注意输出的消息resize2fs
- 如果它表示文件系统无法缩小那么远,请指定更大的大小并重试。
这是在外部介质上启动时需要完成的唯一步骤;对于此后的一切,您可以正常启动系统。
此时,文件系统应该已缩小到 10G(或您指定的任何大小)。下一步是缩小 LV。至关重要的是,LV 的新大小应与文件系统的新大小完全相同或更大!您不想在缩小 LV 时切断文件系统的尾部。在这里指定稍大的尺寸是最安全的:
sudo lvreduce -L 15G /dev/mapper/ubuntu--vg-ubuntu--lv
现在,使用pvdisplay
或pvs
来查看 LVM 现在/dev/sdb1
是否认为完全免费。在 中pvdisplay
,Total PE
和 的Free PE
值sdb1
应相等 - 在pvs
输出中,该PFree
值应分别相等PSize
。如果不是这种情况,那么就该使用pvmove
:
sudo pvmove /dev/sdb1
此后,sdb1
根据 LVM,PV 肯定是完全空闲的,并且可以从 VG 中减少。
sudo vgreduce vg-ubuntu /dev/sdb1
如果您愿意,您可以从 ex-PV 中删除 LVM 签名:
sudo pvremove /dev/sdb1
但如果您无论如何都要覆盖它,则可以省略此步骤。
完成这些步骤后,缩小的文件系统的大小仍为 10G(或您指定的任何值),即使 LV 可能比这稍大一些。要解决这个问题:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
扩展文件系统时,您不必指定大小:该工具将自动扩展文件系统以匹配包含它的最内部设备的确切大小。在这种情况下,文件系统的大小将根据 LV 的大小进行调整。
稍后,如果您想扩展 LV+文件系统,只需两个命令即可完成:
sudo lvextend -L <new size> /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
即使文件系统正在使用和挂载,您也可以执行此操作。由于缩小文件系统比扩展它更困难,因此在 LVM 级别保留一定量的未分配空间可能会很有用 - 您将能够立即使用它来创建新的 LV 和/或扩展现有的 LV根据需要在同一 VG 中。
答案2
将您的评论添加到您的问题中。
如果您运行vgreduce ubuntu-vg /dev/sdb1
,并且它给出了消息/dev/sdb is still in use
,则意味着上面有数据,并且您无法在不引起问题的情况下删除它。
否则,它将成功地将其从卷组中删除,然后您可以运行pvremove /dev/sdb1
以从中删除 LVM 标签,然后从计算机中删除磁盘并在其他地方使用它。
您可以使用pvmove /dev/sdb1
,但如果您得到No extents available for allocation
,则可能意味着磁盘上没有任何可用区域来移动它。
如果运行pvdisplay -m
,则可以看到物理卷的映射数据,包括物理盘区。例如,如果您运行它并FREE
在下面看到Physical Extents
,那么您可以运行pvmove -v /dev/sdb1:<[physical_extent_with_data> /dev/sda3/:<physical_extent_free> --alloc anywhere
。就您而言,它看起来不会起作用,因为 的输出pvdisplay
显示它们已满,这就是您收到No extents available for allocation
消息的原因。
在执行任何操作之前,请确保您已备份数据。如果您想删除该磁盘,除非您可以使用lvreduce
.将来,我建议创建多个卷组,这样您只需在系统安装时重建一个卷组即可。