在我们部署操作系统时,如果没有进行手动分区,采取默认的分区策略的话,就会发现,一些目录挂载的并不是普通磁盘:
就像图里看到的,出现了LVM和mapper的字样,我们通过总结LVM技术来解释下这里看到的LVM和mapper是什么。
什么是LVM
LVM(Logical Volume Manager)是Linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。简单来说,LVM技术将若干个磁盘分区连接为一个整块的卷组Volume Group,然后管理员可以在卷组内创建逻辑卷Logical Volume,而逻辑卷可以当做普通的硬盘分区一样格式化,然后将其挂载到我们需要的目录上。正是因为逻辑卷LV的动态可控,从而可以在不影响现有数据的情况下,调整磁盘大小。这里需要明确一下,LVM技术虽然引入了额外的操作,但大部分情况下的使用对硬盘性能的影响是可以忽略不计的(除非使用了LVM的快照功能,会影响写入速度)。
LVM工作原理
LVM技术首先将物理硬盘,格式化成了物理卷Physical Volume,而PV实际上是一块块大小固定的Physical Extend构成的。然后,把一个或多个PV放到一起就形成了卷组VG。最终基于VG创建逻辑卷的过程就是从VG中拿出指定数量的PE。所谓的动态调整,也就是增减PE的数量。
示例分析
回到一开始我们提到的系统默认安装时使用的LVM技术,我们知道LVM底层依赖PV的存在,通过pvs命令可以查看默认创建的PV:
[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 [root@localhost ~]#
我们可以通过vgdisplay来查看卷组情况,下面是CentOS默认安装时生成的卷组:
[root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <19.00 GiB PE Size 4.00 MiB Total PE 4863 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 0 / 0 VG UUID Bw2jrn-Kqsc-dP0g-J7A6-Bgj2-WrPo-2rtD9X [root@localhost ~]#
查询卷组中创建的逻辑卷命令为lvdisplay,这里我们看到有两块逻辑卷分别是/dev/centos/swap和/dev/centos/root:
[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID h0i0f8-oJ3l-Wj6y-fqt5-Wy2P-bWRD-fT3u2u LV Write Access read/write LV Creation host, time localhost, 2019-05-01 14:14:27 -0400 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID P4943K-e0OB-h0Sr-Hair-otF6-uWCW-jDcvXD LV Write Access read/write LV Creation host, time localhost, 2019-05-01 14:14:28 -0400 LV Status available # open 1 LV Size <17.00 GiB Current LE 4351 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@localhost ~]#
然而,我们一开始看到挂载到根目录的并不是这里的/dev/centos/root,而是/dev/mapper/centos-root,这是为什么呢?实际上这是linux在使用LVM技术管理磁盘时的一种映射方式。/dev/mapper/centos-root表示的是系统当前叫作centos的卷组VG下的root这块LV。而这两个路径下文件实际上最终都指向了同一个块设备dm-0:
清除LVM
有时候我们可能并不想使用LVM技术,只是单纯地在硬盘上存储数据。虽然通过LVM技术存储数据的硬盘是可以被另一台服务器通过LVM扫描识别到的,但在没有LVM的环境下会很麻烦。做过LVM的磁盘在本机上是无法直接格式化的,这里给出清除LVM的步骤:
# 1、根据df -h的回显获得当前挂载LV的mapper路径,然后使用lvremove对该路径上的映射磁盘进行移除LV # 2、根据vgdisplay的回显获得当前磁盘所在VG的名称,然后执行vgremove移除这个卷组VG # 3、现在就可以对硬盘使用mkfs -f进行强制格式化操作了
评论列表,共 0 条评论
暂无评论