linux硬盘lvm管理格式化和扩展、挂载

一:相关概念

1:物理卷:通常一个分区或者一个硬盘就可以建立一个物理卷,物理卷的最小单位是PE,一般默认是4MB。
2:卷组:将多个物理卷组合到一起,成为一个卷组。
3:虚拟卷:其实就是在卷组的基础上再次划分,最小单位是LE,与PE一样,并且一一对应。逻辑卷跟物理卷没有本质区别,只是站在不同的层次来看罢了。

二:为什么划分磁盘,还要建立逻辑卷这些东东?

1:首先一块磁盘放在桌子上,跟一块板砖没什么区别,想要使用它必须经过一番处理才行,最重要的就是格式化,格式化操作可以让一块磁盘满足当前的文件系统,因为不同的文件系统对应不同的格式,并且几乎不能通用。
2:因为一个操作系统中,一个分区就可以是一个文件系统,就拿Linux来说,/ 下的很多目录都有特定的作用,所以将他们在磁盘上分开是有必要的。
3:逻辑卷,可以看成一个高级的磁盘管理工具,因为物理上的磁盘一旦划分好了之后不容易再改变,如果从逻辑上对磁盘进行划分,那么就可以实现动态的扩容及其他处理,注意哟,是逻辑上的,不用将磁盘“劈了”再拼起来!

三、LVM术语

PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
VG(Volumne Group)-卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组

PE(Physical Extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(Logical Extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
如下图所示PV、VG、LV三者关系:

1.fdisk命令菜单常用参数如下所示:

  • d:(del)删除一个分区。
  • n:(new)新建一个新分区。
  • p:(print)打印分区表。
  • q:(quit)放弃不保存。
  • t:改变分区类型
  • w:(write)把分区写进分区表,保存并退出。

四、常用命令

PV:Physical(物理卷)

​ pvcreate、pvs 、pvdisplay 、pvremove、pvmove、pvscan

VG:Volume Group(卷组)

​ vgcreate、vgs、vgdisplay、vgremove、vgrename、vgreduce、vgextent、vgscan

LV:logical Volume(逻辑卷)

​ lvcreate、lvs、lvdisplay、lvremove、lvextend、lvresize、lvscan、lvrename

五、操作步骤

第一步:添加一块硬盘;

第二步:(如果需要进行分区)磁盘划分使用命令 。

fdisk /dev/sdb

第三步:创建物理卷,使用命令pvcreate。已经划分好,但是还不能使用,因为还没有格式化,但是这里不着急进行格式化操作,我们先创建好,最后再格式化磁盘。

# pvdisplay、pvscan、pvs用于查看物理卷
pvdisplay

# 创建物理卷
pvcreate /dev/sdb1 /dev/sdb2

# 查看
pvs

第四步:添加到一个卷组层里,使用命令vgcreate,这一步实际上是在逻辑上将分区组合在了一起。

# 使用vgdosplay、vgscan、vgs命令查看卷组
vgscan

# 添加到VG_NAME卷组里
vgcreate vgdata /dev/sdb1 /dev/sdb2

# vgscan:显示当前VG相关信息
# vgdisplay:显示目前系统上的VG状态
# vgextend:在VG内增加额外的PV
# vgreduce:在VG内一处PV
# vgchange:设定VG是否启动(active)
# vgremove:删除一个VG

第五步创建逻辑卷,使用命令lvcreate,这里拿出来15G,用来挂载到/data目录下使用。多出来的部分暂时也不格式化,留待以后使用。

# lvcreate –n LV_NAME –L SIZE VG_NAME 
lvcreate -n lvdata -L 15G vgdata
# 或者 lvcreate -n lvdata -l 100%FREE vgdata  // 需要调整 “-l”的参数 , “l” 后面的参数要根据 实际vgdisplay的信息中“Total PE”的数量来修改,需与之相等或者略小;

lvscan

# /dev/vgdata/lvdata 形式的一个逻辑卷

# lvscan:查询系统上的LV
# lvdisplay:显示系统上的LV详细信息
# lvextend:增加LV的容量
# lvreduce:减少LV的容量
# lvremove:删除一个LV
# lvresize:对LV进行容量大小的调整

第六步创建了lv后,格式化lv,使用命令mkfs.ext4或者mkfs.xfs

mkfs.xfs /dev/vgdata/lvdata

第七步:如果不分区,挂载硬盘整块使用。

1.格式化:

mkfs -t xfs /dev/sdb

# xfs是磁盘的格式化个格式

# 或者
mke2fs -t xfs -b 2048 /dev/sdb
# 格式化分区,并指定block的大小为2048 Bytes
  1. 手动挂载硬盘:
mkdir -p  /data

mount /dev/vgdata/lvdata /data
  1. 开机自启挂载
vim /etc/fstab

/dev/vgdata/lvdata /data  xfs  defaults  0  0 

# fstab中的挂载配置,没有挂载的自动挂载
mount -a

第八步:确认

df –Th 

lsblk

六、扩容卷组

如果在使用过程中,发现要使用的空间大于卷组的空间,可以对卷组进行扩容,把新的物理卷(PV)加入到卷组中,语法为

# vgextend VG_NAME device1 ... devicen

vgextend <VG_NAME> /dev/sdc

七、扩容逻辑卷

# 使用lvextend扩容lv,+SIZE代表增加的空间
# lvextend -L +50G /dev/VG_NAME/LV_NAME
lvextend -L +SIZE /dev/VG_NAME/LV_NAME
# 或者 lvextend -l +100%FREE /dev/VG_NAME/LV_NAME 

# 并调整文件系统的大小
resize2fs device /dev/VG_NAME/LV_NAME

八、linux系统分区

在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。

  • fdisk

# 列出系统分区
fdisk ~l

# 建立分区
fdisk /dev/sdb
# 千万不要在当前的硬盘上尝试使用 fdisk,
# 这会完整删除整个系统,一定要再找一块硬盘,或者使用虚拟机。

fdisk 交互命令

命令 说 明
a 设置可引导标记
b 编辑 bsd 磁盘标签
c 设置 DOS 操作系统兼容标记
d 删除一个分区
1 显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区
m 显示帮助菜单
n 新建分区
0 建立空白 DOS 分区表
P 显示分区列表
q 不保存退出
s 新建空白 SUN 磁盘标签
t 改变一个分区的系统 ID
u 改变显示记录单位
V 验证分区表
w 保存退出
X 附加功能(仅专家)
  • parted 命令创建分区

parted /dev/sdb

parted常见的交互命令

parted交互命令 说 明
check NUMBER 做一次简单的文件系统检测
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER 复制文件系统到另一个分区
help [COMMAND] 显示所有的命令帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标(分区表)
mkfs NUMBER FS-TYPE 在分区上建立文件系统
mkpart PART-TYPE [FS-TYPE] START END 创建一个分区
mkpartfs PART-TYPE FS-TYPE START END 创建分区,并建立文件系统
move NUMBER START END 移动分区
name NUMBER NAME 给分区命名
print [devices|free|list,all|NUMBER] 显示分区表、活动设备、空闲空间、所有分区
quit 退出
rescue START END 修复丢失的分区
resize NUMBER START END 修改分区大小
rm NUMBER 删除分区
select DEVICE 选择需要编辑的设备
set NUMBER FLAG STATE 改变分区标记
toggle [NUMBER [FLAG]] 切换分区表的状态
unit UNIT 设置默认的单位
Version 显示版本

注意,parted 调整已经挂载使用的分区时,是不会影响分区中的数据的,也就是说,数据不会丢失。但是一定要先卸载分区,再调整分区大小,否则数据是会出现问题的。另外,要调整大小的分区必须已经建立了文件系统(格式化),否则会报错。

posted @ 2022-11-04 00:34  Eric小星  阅读(685)  评论(0编辑  收藏  举报