如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)

情况介绍:

一、由于硬盘或者分区的操作方式其实都一样,所以我这里就以分区为例。

二、/home分区2.6G,由如下pv组成:

/dev/sda5 100M

/dev/sda6 200M

/dev/sda7 300M

/dev/sda8 400M

/dev/sda9 500M

/dev/sda10 600M

/dev/sda11 500M

很碎对吧?^_^因为测试。

三、随机写了一堆文件进去,用量达到了2G,空闲500M

四、准备将sda6这个200M的PV卸掉(卸掉的容量必须小于空闲容量)

好了开始具体操作了。

卸载分区(缩小操作必须卸载才能进行):

umount /home

缩小分区:

e2fsck -f /dev/liuhg_disk/home

resize2fs /dev/liuhg_disk/home 2200M

首先将分区缩小到2200M这是为了给sda6腾出空间,sda6为200M,而我腾出了400M,因此应该是足够的。

缩小逻辑卷:

lvreduce -L 2200M /dev/liuhg_disk/home

分区缩小了用到的逻辑卷也要随着缩小,并查看PV使用的状态:

pvdisplay -m

显示如下:

--- Physical volume ---

PV Name /dev/sda5

VG Name liuhg_disk

PV Size 103.26 MiB / not usable 3.26 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 25

Free PE 0

Allocated PE 25

PV UUID 5lnx52-b4jc-OOfZ-f2QA-ttdQ-DZeD-Ce3rb3

--- Physical Segments ---

Physical extent 0 to 24:

Logical volume /dev/liuhg_disk/home

Logical extents 0 to 24

--- Physical volume ---

PV Name /dev/sda6

VG Name liuhg_disk

PV Size 203.92 MiB / not usable 3.92 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 50

Free PE 0 <-----太悲剧了,sda6里写满了数据一点不剩

Allocated PE 50 <-----这50PE的数据要挪走才行,否则数据就丢了,并且存放的地方也必须是连续的至少50PE

PV UUID S2ane6-nlFG-uSNR-35NP-Yxa6-cXRb-r8E8mK

--- Physical Segments ---

Physical extent 0 to 49:

Logical volume /dev/liuhg_disk/home

Logical extents 25 to 74

--- Physical volume ---

PV Name /dev/sda7

VG Name liuhg_disk

PV Size 305.89 MiB / not usable 1.89 MiB

Allocatable yes

PE Size 4.00 MiB

Total PE 76

Free PE 76 <---这个分区有76个空余,因此预计装那50个是不会有问题的

Allocated PE 0

PV UUID 9CFnlx-CAEw-CSul-Rig9-FiCN-zK0a-oGmTEP

--- Physical Segments ---

Physical extent 0 to 75:

FREE

--- Physical volume ---

PV Name /dev/sda8

VG Name liuhg_disk

PV Size 407.87 MiB / not usable 3.87 MiB

Allocatable yes

PE Size 4.00 MiB

Total PE 101

Free PE 60

Allocated PE 41

PV UUID X0I8p0-x2xr-2xLG-QQD4-jbtS-3C4i-xPn4Bl

--- Physical Segments ---

Physical extent 0 to 40:

Logical volume /dev/liuhg_disk/home

Logical extents 471 to 511

Physical extent 41 to 100:

FREE

--- Physical volume ---

PV Name /dev/sda9

VG Name liuhg_disk

PV Size 509.84 MiB / not usable 1.84 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 127

Free PE 0

Allocated PE 127

PV UUID avJQaA-oMKt-NEoJ-ojBK-2Csc-1dca-1mh6Ue

--- Physical Segments ---

Physical extent 0 to 126:

Logical volume /dev/liuhg_disk/home

Logical extents 225 to 351

--- Physical volume ---

PV Name /dev/sda10

VG Name liuhg_disk

PV Size 603.98 MiB / not usable 3.98 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 150

Free PE 0

Allocated PE 150

PV UUID JlMIAF-A49n-M6HA-ZLXf-d8nS-pfZr-YeQsKT

--- Physical Segments ---

Physical extent 0 to 149:

Logical volume /dev/liuhg_disk/home

Logical extents 75 to 224

--- Physical volume ---

PV Name /dev/sda11

VG Name liuhg_disk

PV Size 478.47 MiB / not usable 2.47 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 119

Free PE 0

Allocated PE 119

PV UUID xnHJNA-tDVx-dryX-KM1x-g96Y-sptI-9iUOcU

--- Physical Segments ---

Physical extent 0 to 118:

Logical volume /dev/liuhg_disk/home

Logical extents 352 to 470

将sda6设置为离线状态:

pvchange -xn /dev/sda6

使用pvdisplay -m

显示如下:

……

--- Physical volume ---

PV Name /dev/sda6

VG Name liuhg_disk

PV Size 203.92 MiB / not usable 3.92 MiB

Allocatable NO <-----表示已经关闭了该PV

PE Size 4.00 MiB

Total PE 50

Free PE 0

Allocated PE 50

PV UUID S2ane6-nlFG-uSNR-35NP-Yxa6-cXRb-r8E8mK

……

将sda6的数据移走:

pvmove -i 1 /dev/sda6

-i 1是每1秒钟报告一次数据迁移的进度。

[root@liuhg /]# pvmove -i 1 /dev/sda6

/dev/sda6: Moved: 38.0%

/dev/sda6: Moved: 84.0%

/dev/sda6: Moved: 100.0%

重新用pvdisplay -m

显示如下:

……

--- Physical volume ---

PV Name /dev/sda6

VG Name liuhg_disk

PV Size 203.92 MiB / not usable 3.92 MiB

Allocatable NO

PE Size 4.00 MiB

Total PE 50

Free PE 50 <----显示完全空闲和Total PE数一致

Allocated PE 0

PV UUID S2ane6-nlFG-uSNR-35NP-Yxa6-cXRb-r8E8mK

……

从卷组里把sda6删除:

[root@liuhg /]# vgreduce liuhg_disk /dev/sda6

Removed "/dev/sda6" from volume group "liuhg_disk"

pvdisplay -m再看看吧:

--- NEW Physical volume --- <-----还告诉你这是一个新的PV ^_^

PV Name /dev/sda6

VG Name <-----空了

PV Size 203.92 MiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID S2ane6-nlFG-uSNR-35NP-Yxa6-cXRb-r8E8mK

到此vgdisplay -v能看到已经没有了/dev/sda6了。重新挂载/home

[root@liuhg /]# mount /dev/liuhg_disk/home /home

[root@liuhg /]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 2.0G 546M 1.3G 30% /

tmpfs 504M 0 504M 0% /dev/shm

/dev/mapper/liuhg_disk-home

2.2G 1.8G 42M 98% /home

进去看看数据,一个都没丢。

(0)

相关推荐

  • Linux硬盘GPT分区和MBR分区

    之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历。最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来。经过多方查询资料,终于弄明白了硬盘分区的一些概念。下面将其 ...

  • 怎么在笔记本电脑中创建硬盘的分区

    有的小伙伴在使用笔记本电脑中,想要创建硬盘的分区,但是却不知道如何创建,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,右击此电脑图标,接着点击弹出窗口中的管理选项.2. 第二步,来到下图所示的 ...

  • 在Linux系统中批量删除多个文件的方法总结

    当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理.rsync实际 ...

  • 彻底删除Linux中oracle信息--单实例

    彻底删除Linux中oracle信息.想要把Linux中oracle信息彻底删除的小伙伴们,快来了解一下吧. 操作方法 01 [root@node2 /]# rm -rf /u01 目的:删除安装目录 ...

  • Linux系统中tr命令删除和替换文本字符的基本用法

    通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...

  • linux lvm深入了解

    Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区 ...

  • Linux(Unix)中误删除的文件恢复方法

    在Linux下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。 1. 在数据库open的时候,直接删除users表空间中的数据文件。 复制代码 代码如下: ...

  • Linux系统中的文件类型及文件扩展名详解

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  • Linux文件系统中的inode节点详细介绍

    一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会 ...