记录一下实习的时候为服务器扩容的一些步骤啥的。以前好像没有给 linux 服务器 / 虚拟机扩容过。
(说起来之前编译 OpenWRT 的 Ubuntu 只要空间不够了我就重开一个加大内容了。现在想想咋还能没研究过给根目录扩容呢……)
以下为正文
示例机器为:
1 CentOS release 6.5 (Final
-
添加磁盘到需要扩容的机器上
-
使用
lsblk
查看磁盘情况
可以看到,机器加载了磁盘
sdc
,但是未挂载 -
使用
fdisk -l
查看磁盘分区情况
可以看到,sdc
并未分区 -
使用
fdisk
创建新分区1
2
3fdisk /dev/sdc
# 其中/sdc根据你要分区的磁盘标识进行修改
# lsblk中可以查看到fdisk 后会进行命令界面
输入
n
,表示新建一个分区输入
p
,表示新建分区类型为主分区(相对e
是扩展分区)输入
1
,表示分区号为 1,即为sdc1
其他内容默认即可,直接回车
最后输入
w
,表示保存退出
-
此时输入
lsblk
,检查sdc1
分区是否正确创建
可以看到,sdc1
已经正确被创建,但是依旧没有被挂载 -
创建分区之后,我们需要对分区进行格式化操作
由于我们需要对根目录进行扩容,所以需要先确保根目录的文件系统格式,比如ext3
、ext4
使用命令
lsblk -fs
查看当前磁盘分区格式
可以看到,挂载点为根目录的分区是VolGroup-lv_root (dm-0)
,分区格式是ext4
所以我们同样也把
sdc1
格式化为ext4
格式使用
mkfs
命令进行格式化1
2mkfs -t ext4 /dev/sdc1
#mkfs -t 分区格式 要格式化的分区至此,我们已经为新磁盘进行了分区和格式化操作了。但是要想让新加的 100G 加到以前的根目录分区的话,我们需要用到 linux 中的 LVM 技术,即逻辑卷管理。详见 [知乎:操作系统概念中,分区和卷的区别是什么?](操作系统概念中,分区和卷的区别是什么? - 知乎 (zhihu.com))
-
由于我们的机器上已经有 vg 卷了,所以我们需要知道它的卷名和卷路径,使用
vgdisplay -v
查看
这里,我们需要获取VG NAME
的值,后续扩容需要用到。但是这个卷组下还有两个 LV,我们需要为根目录(root) 的 LV 扩容而不是给交换分区(swap) 扩容,所以也需要把根目录的LV Path
记住。 -
使用
pvcreate /dev/sdc1
创建物理卷
可以看见物理卷已经被成功创建了这里扯一下 PV、VG、LV 的关系,LVM 是逻辑卷管理(Logical Volume Manager),其中 LV 是逻辑卷的意思。而逻辑卷对应的就是物理卷,即 PV(physical volume)。而逻辑卷是建立在卷组之上的,即 VG(Volume Group)。即:多个物理卷在一起组成卷组,然后可以在卷组织上建立逻辑卷,逻辑卷能够和正常的分区一样使用。
此处借用一张 CSDN 博客上的图,其中 PE 不做涉入。 -
使用
pvdisplay
命令查看物理卷
可以看到/dev/sdc1
已经创建好了物理卷,但是VG Name
一栏为空,说明它不属于任意卷组 -
使用命令将物理卷添加至卷组
1
2vgextend VolGroup /dev/sdc1
# vgextend 卷组名 物理卷名其中卷组名即为第 7 步的
VG Name
-
使用命令扩展逻辑卷
1
2lvextend -L +99.9G /dev/VolGroup/lv_root
# lvextend -L +扩展大小 扩展逻辑卷路径其中扩展逻辑卷路径即为第 7 步的
LV Path
其中扩展大小如果为 100 的话会产生报错,报错内容为剩余空间不足,我们稍微缩小一点即可。发生这种情况可能是因为 linux 计算空间的问题,这里我也不清楚具体原因。
-
扩展之后并不是即时完成的,还需要使用命令增长文件系统,这个命令根据不同分区格式各不相同,这里我使用的是
ext4
的命令。1
2resize2fs /dev/VolGroup/lv_root
# resize2fs 增长逻辑卷路径其中增长逻辑卷路径同样为第 7 步的
LV Path
增长成功,使用df -h
查看: