linux服务器新添加一块硬盘,可以直接将盘格式化挂载就能用,比如挂载在/usr/local目录,但是这样有一个弊端,就是如果这一块磁盘满了,后续想要扩容的话,不能继续挂载这个/usr/local挂载点上,对扩容造成一定的麻烦,为此我们建议采用lvm的方式,这样可以支持动态扩容磁盘。下面介绍详细的操作方式。
1,查看新增的磁盘,需要使用root权限
fdisk -l
看到有一个新增的100G磁盘
2,对磁盘进行分区
fdisk /dev/xvdb
1,输入:n
表示创建一个新的分区(new的意思)
2,输入:p
表示创建一个基本分区(p是基本分区,e是扩展分区)
3,选择分区编号,1~4,默认使用1,直接按回车即可。
4,选择分区起始点,使用默认即可,直接按回车。
5,选择分区终点,使用默认即可,直接按回车。
6,分区完成。
3,更改分区编号
我们需要将分区类型改成linux lvm卷才能创建lvm。
输入:t
输入t表示更改分区编号
输入:L
大写的L表示查看所有编号
这里我们选择8e
输入:8e
回车即可
4,保存退出
输入:w
表示写入磁盘(write)
在进行下一步之前,我们说明一下pv、vg、lv的关系。
一个硬盘f分区组成一个pv(物理卷)
一个或者多个pv组成一个vg(卷组)
一个vg可以划分出多个lv(逻辑卷)
5,创建pv
输入:pvcreate /dev/xvdb1
此时的磁盘分区是xvdb1,而不是xvdb了。
6,创建vg
输入:vgcreate vg_group /dev/xvdb1
此处的vg_group是vg组的名字,可以自定义。
查看创建的vg
输入:vgdisplay
可以看到已经成功创建
7,创建lv
输入:lvcreate -L 60G -n vg_usr vg_group
-L后面是要分给lv的大小
-n新建一个名字为vg_usr的lv
使用的vg是vg_group
8,格式化lv
查看系统的文件类型
输入:df -Th
文件类型是ext4
格式化lv
输入:mkfs.ext4 /dev/vg_group/vg_usr
mkfs后面是文件类型。
9,编辑/etc/fstab文件,创建磁盘开机自动挂载
vim /etc/fstab
在文件最后加入一行
第一列:要挂载的磁盘
第二列:挂载点
第三列:文件类型
第四列:挂载选项,详细参考man mount. 下面列出一些常用的选项:
auto: 系统自动挂载,fstab默认就是这个选项
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async.
第五列:为dump选项,设置是否让备份程序dump备份文件系统,0为忽略,1为备份。
第六列:为fsck选项,告诉fsck程序以什么顺序检查文件系统,0为忽略。
10,重新挂载
mount -a
11,查看是否挂载成功
至此,新磁盘创建lvm已完成,后续可以随时扩容lvm。
20171220更新
扩容lvm
lvextend -L +100G /dev/mapper/vg_group-vg_user
之后使用resize2fs进行更新
resize2fs /dev/mapper/vg_group-vg_user
即可扩容完成
如果resize2fs出现错误:
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg_group-vg_user
Couldn't find valid filesystem superblock.
则使用下面的方式
xfs_growfs /dev/mapper/vg_group-vg_user