概念

​ PV,VG,LV构成了一种易于管理拥有一个或多个硬盘的主机的文件系统,这些硬盘可能只有一个分区也可能有多个。通过将这些物理存在的分区(或称为卷)PV(physical volume)进行整合,组成一个分区(卷)组VG(volume group),进而再次进行分配形成逻辑分区(卷)LV(logical volume)。创建成功的逻辑分区对于操作系统来说会想普通分区无异,其好处是可以动态调整分区大小。管理PV,VG,LV的工具称为逻辑卷管理器LVM(logical volume manager)。

​ 需要指出的是,在某个物理卷在加入卷组时,会将物理卷的最小存储单元设定为一个固定的值,这个值称为PE(physical extent)。这个值的创建,是为了保证用统一的最小分配单元来创建逻辑卷,不至于因为分配单元大小不同而造成空间浪费。举个例子:用于远洋运输的集装箱的设计是是有着统一标准的,最重要一点是集装箱大小完全相同,这样做的好处是集装箱相互堆叠在一起不会留下多余的空隙,完全利用了空间,且便于管理。设定PE的原因也与此相同。LVM以最小分配单元来创建逻辑卷,该最小分配单元的值称为LE(logical extent)。一般来说PE=LE,且大小为2n。

LVM(逻辑分区管理)

LVM(逻辑分区管理)中的几个概念:

物理存储介质

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。

PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。 ​ VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。LVM卷组由一个或多个物理卷组成。 ​ LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。 PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。 LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。 卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。

例外附加三张图帮助大家理解他们之间的关系:

641a9ee9fef6890a153d9d1ed1ae35c9.png

9a6492adf25b5c7e5756049bf3395ba9.png

由图2可以看出 :

物理卷(PV)被由大小等同的基本单元PE组成

逻辑卷(LV)被由大小等同的基本单元LE组成

PE与LE大小相同且一一对应

一个卷组(VG)由一个或多个物理卷(PV)组成

红线部分可以看出:逻辑卷可以比物理卷更大/更小,因为逻辑卷的单元(LE)个数可以比物理卷的单元(PE)个数更多/更小,又由于PE的大小等于LE的大小,这样就可以改变分区的大小

fb620e5b93999d35c2f8afca7f66ea38.jpeg

卷管理常用命令集合:

查看显示创建删除扩容激活扫描查找
LVlvdisplaylvcreatelvremovelvextendlvchangelvscan
PVpvdisplaypvceatepvremovepvchangepvscan
VGvgdisplayvgcreatevgremovevgextendvgchangevgscan

磁盘命令

前几天在玩docker,需要大磁盘存储数据,所以顺带学习centos磁盘相关的命令

磁盘查看

isblk:查看磁盘大小和挂载情况

常用参数

-a显示所有设备信息-m显示权限信息
-b显示以字节为单位的设备大小-n不显示标题
-e排除指定设备-o输出列信息
-f显示文件系统信息-p使用key=value格式显示信息
-h显示帮助信息-r使用原始格式显示信息
-i仅使用字符-t显示拓扑结构信息
-l使用列表格式显示-V显示版本信息

磁盘分区

所有磁盘信息都在/dev/目录下

使用fdisk /dev/磁盘名称进行分区,如fdisk /dev/sdb

   a   toggle a bootable flag                                   # 切换可启动标志
   b   edit bsd disklabel                           # 编辑磁盘标记
   c   toggle the dos compatibility flag               # 切换dos兼容标志
   d   delete a partition                        # 删除一个分区
   g   create a new empty GPT partition table                  # 创建一个空的GPT分区表
   G   create an IRIX (SGI) partition table                    # 创建一个IRIX分区表
   l   list known partition types                   # 列出已知的分区类型
   m   print this menu                          # 打印菜单                   
   n   add a new partition                                       # 添加一个分区
   o   create a new empty DOS partition table                    # 创建一个空的DOS分区表
   p   print the partition table                                 # 打印分区表
   q   quit without saving changes                               # 退出不保存
   s   create a new empty Sun disklabel                          # 创建一个空的sun磁盘标签
   t   change a partition's system id                            # 改变一个分区的类型
   u   change display/entry units                                # 改变显示的单位
   v   verify the partition table                                # 验证分区表
   w   write table to disk and exit                              # 写分区表并退出
   x   extra functionality (experts only)                        # 高级功能

正常情况下添加新磁盘的命令:

  • 输入n添加新分区

  • 输入p新建主分区

  • 指定分区编号,输入1即可

  • 指定起始扇区,默认即可,不推荐更改

  • 指定结束扇区,代表分区大小,可以使用K,M,G指定分区大小,例如分配50G则输入50G即可

img

执行上述操作之后,需要输入 w 确定分区,不然不会生效 v2-948dee4f700d3a556d6f881e36bdfbc0_1440w.webp

格式化分区

mkfs 分区系统格式磁盘分区

磁盘分区完毕后自然就是要进行文件系统的格式化 格式化其实就是创建文件系统。命令就是=>mkfs(make fileststem),这个命令只是个综合命令。它会调用正确的文件系统格式化工具 功能:mkfs是个综合命令 使用: mkfs [tab] [tab]:按下两下tab键查看系统支持哪些文件系统的格式化功能。 mkfs -t [文件系统格式名]等同于mkfs.文件系统格式名。 如:mkfs -t xfs 与 mkfs.xfs相同。

挂载分区

mount暂时挂载

1.此种方式挂载只是暂时挂载,系统重启之后需要重新挂载才行 2.现在把sdb1挂载到之前创建的/root/RepositoryDisk目录下 3.挂载分区使用 mount 命令:mount 分区 挂载目录,挂载之后可以通过lsblk -f查看是否挂载成功

设置开机启动自动挂载

新创建的分区不能开机自动挂载,每次重启机器都要手动挂载。

设置开机自动挂载需要修改/etc/fstab文件 ;命令如下:

vim /etc/fstab

//打开后,在最后一行加入以下代码:

/dev/vdb1 /huichengff ext4 defaults 0 1