磁盘扩容
服务器磁盘扩容有很多种情况,主要根据系统、磁盘分区、文件系统等等对应不同的操作
这里简单介绍下centos7
系统下LVM
管理分区的情况下,如何创建新分区和扩展分区
创建新分区
使用fdisk
工具进行分区
操作步骤
- 确定磁盘名称:
fdisk -l
,确定是哪个磁盘要扩容,假设为:/dev/sda
- 输入命令:
fisk /dev/sda
,操作分区,可以根据说明划分分区 - 输入
n
(表示增加分区),回车 - 输入
p
(创建主分区),回车 - 输入
分区数字
(默认会根据已有分区+1,使用默认即可,如:已经有了sda1
和sda2
分区,那么输入3
,默认即3
),回车 - 输入分区的
start
值,默认即可,回车 - 输入分区的
end
值,(使用默认,或者根据需要分配大小。默认即当前最大值),回车 - 这时可以看到分区信息,输入
p
,新的分区/dev/sda3
后面Id
写的是83
和Linux
,还需要修改成8e
,表示Linux LVM
分区 - 输入
t
,再输入3
(最新分区号,默认就是3),最后输入8e
,回车 - 输入
w
保存,新分区创建好了,这个时候记得重启,不然后续操作无法识别到这个分区,如果想不重启可以执行partprobe
,进行分区重读
分区创建后可以通过fdisk -l
查看分区情况
fdisk
命令说明
a 设置可引导标记
b 编辑 bsd 磁盘标签
c 设置 DOS 操作系统兼容标记
d 删除一个分区
l 显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区
m 显示帮助菜单
n 新建分区
o 建立空白 DOS 分区表
p 显示分区列表
q 不保存退出
s 新建空白 SUN 磁盘标签
t 改变一个分区的系统 ID
u 改变显示记录单位
v 验证分区表
w 保存退出
x 附加功能(仅专家)
扩展分区
磁盘创建好后,需要对它格式化创建并扩容到具体的文件系统
这里介绍下pv
、vg
、lv
pv
(Phsical Volume:物理卷):pv
是vg
的组成部分,由分区构成,多块盘的时候,可以把一块盘格式化成一个主分区,然后用这个分区做成一个pv
,只有一块盘的时候,可以这块盘的某一个分区做成一个pv
,实际上一个pv
就一个分区。vg
(Volume Group:卷组):有若干个pv
组成,作用就是将pv
组成到以前,然后再重新划分空间。lv
(Logical Volume:逻辑卷):lv
就是从vg
中划分出来的卷,lv
的使用要比pv
灵活的多,可以在空间不够的情况下,增加空间。
可以说pv
是硬盘,vg
是管理硬盘的操作系统,lv
是操作系统分出来的各个分区。
套娃逻辑:pv
->vg
->lv
-> 文件系统使用(挂载到某个目录),硬盘或分区做成pv
,然后将pv
或多个pv
建立vg
,vg
上建立lv
现在开始扩容
- 创建物理卷
pv
:pvcreate /dev/sda3
- 可以使用
pvdisplay
查看物理卷信息 - 查看卷组:
vgdisplay
- 添加到已有的
vg
中:vgextend centos /dev/sda3
- 再次查看卷组:
vgdisplay
,可以看到大小增加了 - 查看当前逻辑卷:
lvdisplay
- 假设扩容
/dev/centos/root
目录20G
的大小:lvextend -L +20G /dev/centos/root
,如果是要全部的扩容,可以lvextend -l +100%FREE /dev/centos/root
- 刷新文件系统,不同的文件系统使用不同的命令,很多命令都可以看到文件系统类型,如:
df -T
、lsblk -f
xfs
格式:xfs_growfs /dev/centos/root
ext4
格式:resize2fs /dev/centos/root
- 刷新完成后,可以使用
df -h
查看文件系统大小是否增加了
pv
、vg
、lv
命令
pv
pvcreate
:根据物理盘,创建pv
,如:pvcreate /dev/sdb1
pvscan
:查询目前系统里的pv
pvdisplay
:显示pv
的状态pvremove
:将pv
属性移除,如:pvremove /dev/sdb1
pvresize
:刷新
vg
vgcreate
:创建vg
,如:vgcreate testvg /dev/sdb /dev/sdc
,创建testvg
的卷组并将sdb
和sdc
物理卷加入其中vgscan
:查找当前系统里面的vg
vgdisplay
:显示当前系统vg
的状态vgextend
:给vg
添加额外的pv
vgreduce
:在vg
内删除pv
vgchange
:设置vg
是否是启动状态vgremove
:删除一个vg
,如:vgremove testvg
lv
lvcreate
:创建lv
,如:lvcreate -l +100%FREE -n testlv testvg
,创建testlv
,大小为100%FREE
,属于testvg
lvscan
:查询当前系统的lv
lvdisplay
:显示lv
的属性lvextend
:给lv
添加容量lvredurce
:给lv
减少容量lvremove
:删除一个lv
,如:lvremove /dev/mapper/testvg-data
lvresize
:对lv
大小的容量进行调整