概念
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建立物理卷时建立的。
例外附加三张图帮助大家理解他们之间的关系:


由图2可以看出 :
物理卷(PV)被由大小等同的基本单元PE组成
逻辑卷(LV)被由大小等同的基本单元LE组成
PE与LE大小相同且一一对应
一个卷组(VG)由一个或多个物理卷(PV)组成
红线部分可以看出:逻辑卷可以比物理卷更大/更小,因为逻辑卷的单元(LE)个数可以比物理卷的单元(PE)个数更多/更小,又由于PE的大小等于LE的大小,这样就可以改变分区的大小

卷管理常用命令集合:
| 查看显示 | 创建 | 删除 | 扩容 | 激活 | 扫描查找 | |
|---|---|---|---|---|---|---|
| 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
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即可

执行上述操作之后,需要输入 w 确定分区,不然不会生效

格式化分区
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