概念

​ 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

卷管理常用命令集合:

查看显示 创建 删除 扩容 激活 扫描查找
LV lvdisplay lvcreate lvremove lvextend lvchange lvscan
PV pvdisplay pvceate pvremove pvchange pvscan
VG vgdisplay vgcreate vgremove vgextend vgchange vgscan

磁盘命令

前几天在玩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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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文件 ;命令如下:

1
vim /etc/fstab

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

1
/dev/vdb1 /huichengff ext4 defaults 0 1