Linux硬盘分区

逻辑卷管理(LVM)由于其多层映射,使其拥有非常灵活磁盘管理方案:

  1. 硬盘分区使用 fdisk
  2. 创建物理卷使用 pvcreate
  3. 创建卷组并给卷组增加分区 vgcreate
  4. 创建新的逻辑卷使用 lvcreate

Linux硬盘分区

1. 磁盘

物理磁盘(物理硬盘)

就是电脑上那块(或多块)沉得可以砸死人的东西

虚拟磁盘

使用RAID技术组合的多个物理磁盘组称为一个虚拟磁盘,此时电脑将多个物理磁盘看成一个,这一个我们成为虚拟磁盘。

【逻辑磁盘】

虚拟磁盘可以在逻辑上再次进行划分,划分出的磁盘称为逻辑磁盘。比如,有4个各100G大小的物理磁盘,通过RAID技术组合成一个虚拟磁盘,这个虚拟磁盘有400G大小,但是操作系统不需要这么大的磁盘,所以,又再可以对这个虚拟磁盘进行划分,将它划分成4个逻辑磁盘,每个各100G大小,这里有一个问题,划分前和划分后都是4个各100G大小的磁盘,那还不如不划分呢,何必浪费功夫?实际上,划分后的这100G大小的逻辑磁盘,可能并不一定位于同一块物理磁盘上,它可能各占了每个磁盘的25G,又或者各占了其中两个硬盘的50G,也就是说它可能是跨多个物理磁盘的,这样提高了IO效率。

2. 分区

分区和逻辑磁盘并不是同一个概念,实际上操作系统看到的磁盘是一个单独的物理磁盘或者是一个逻辑磁盘,OS会认为自己看到的就是一个物理磁盘(而不管它实际可能是一个逻辑磁盘),在此基础上,操作系统可以对这个自己看到的物理磁盘(实际上可能是逻辑磁盘)进行分区、格式化等操作。

以Windows操作系统为例,假设有一块400G的硬盘,如果我们未进行分区,那么系统会默认有一个主分区,也就是C盘,打开“我的电脑”只会显示一个C盘。稍微了解Windows分区的朋友可能知道,Windows分区时必须有一个主分区,或者一个主分区一个扩展分区(就是一块硬盘分成了主分区和扩展分区),当处于后者时,我们又可以把扩展分区分成多个逻辑分区(也就是我们常见的D、E、F盘),示意图如下: 
Linux硬盘分区

3. LVM

LVM是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

4. PV(物理卷 physical volume)

LVM将操作系统识别到的物理磁盘或物理磁盘分区或RAID逻辑磁盘映射为新名字,称为PV。

物理卷可以理解为硬盘分区,如果硬盘未分区,那么整块硬盘就是物理卷;物理卷也指和磁盘分区具有同样功能的设备(如RAID)。

注意:物理卷是分区或者硬盘在LVM结构下“转化”的结果,和分区、磁盘等(我们称之为基本的物理存储介质)的不同之处在于包含有与LVM相关的管理参数。如:http://man.linuxde.net/pvcreate 将硬盘分区转化为物理卷。

5. VG(卷组 volume group)

多个物理卷可以被逻辑的放在一个组中,称为卷组,卷组是一个虚拟的大存储空间,逻辑上是连续的,卷组会将所有的物理卷首尾相连,组成一个逻辑上连续编址的大存储池。这就是卷组。

类似于类似于非LVM系统中的物理硬盘,我们在卷组之上再按照逻辑(注意是逻辑,并不是按照物理分块,因为有可能出现跨物理介质的情况)进行分区就得到逻辑卷。

LV(逻辑卷 logical VoLUNme)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。 
若干个逻辑区块经过连续组合组成逻辑卷,这就是逻辑卷管理器所提供的最终可用来存储数据的单位。生成的逻辑卷,在主机看来还是和普通磁盘一样,可以对其进行分区、格式化等。 
逻辑卷和前面的逻辑磁盘的一个区别是,逻辑磁盘的容量划分完成后,不好改变大小,而逻辑卷的容量可以随时进行改变。

可以做这样一个设想来理解以上三者的关系:如果把PV比作地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV。

再举个例子,我们可以将物理卷想象成构造房子的砖瓦(当然假设房子完全仅有砖瓦构建),将卷组理解为砖瓦(物理卷)建构而成的房子,最后我们将房子分为客厅、厨房、卧室等(逻辑卷),而不用在意砖瓦(物理卷)是怎么排列的。

其他术语

PP(物理区块 physical partition)

在逻辑上将一个卷组分割成连续的小块,逻辑卷管理器(LVM)会记录物理区块的大小(有几个扇区组成)和序号的偏移。这相当于在卷组这个大池中顺序分割,如果PP的大小是4MB,那么这就相当于它包含了8192个实际物理磁盘上的扇区(因为一个物理扇区的大小是512bytes)。如果PV是实际的物理磁盘,则这8192个扇区就是连续的,如果PV本身是有RAID虚拟化后提供的,则这8192个扇区可能位于若干条带中,物理上不一定连续。

LP(逻辑区块logical partition)

物理区块可以再次组成逻辑区块,一个逻辑区块可以对应一个物理区块,也可以对应多个物理区块,当对应多个物理区块时,又分为两种情况: 
一种是多个物理区块组成一个大的逻辑区块,类似于RAID0。另一种是一个逻辑区块对应几份物理区块,这几份物理区块每一份的内容都一样,类似于RAID1,多个物理区块互为镜像,然后用一个逻辑区块来代表他们,往这个逻辑区块写数据,也就同时写入了这个逻辑区块对应的几份物理区块中。

对应命令

fdisk 是对物理磁盘和虚拟磁盘进行分区的工具,分区后会形成一个个硬盘分区,如果未对硬盘分区分卷,则整个硬盘分区就是一个物理卷,可以对其进行挂载;

pvdisplaypvcreate, pvremove , pvscan 是对物理卷进行操作,可以对其进行挂载;

vgdisplay vgcreate, vgremove vgextend ,vgreduce 是对卷组进行操作;

lvdisplaylvcreate , lvremove 是对逻辑卷进行操作,可以对其进行挂载。

mkfs  是对硬盘分区进行格式化成相应的文件系统。

参考

  1. pvcreate命令 . http://man.linuxde.net/pvcreate
  2. 4 个 lvcreate 常用命令举例 . https://www.linuxidc.com/Linux/2015-03/115465.htm