Linux 下使用 LVM 快速合并磁盘进行扩容操作

栏目: 服务器 · 发布时间: 5年前

内容简介:这两天给公司搭建素材管理系统,根据公司现有业务量,还不需要使用到非常专业的服务器,就使用一台普通机器来做素材管理,平时也作为公司内部开发部门的测试服务器,系统采用CentOS 7,采购硬盘的时候采购了2块2T的机械盘作为存储盘,根据业务划分,开发部门并不需要2T这么大的空间,而素材管理2T又有些不够,所以这里就打算使用LVM将两块数据盘进行合并,之后划分三分之一给开发部门,剩下的给素材管理做存储。还是说一说现在的机器配置吧主板使用的是 七彩虹iH110-HD Pro V20 mini-itx (17x17

前言

这两天给公司搭建素材管理系统,根据公司现有业务量,还不需要使用到非常专业的服务器,就使用一台普通机器来做素材管理,平时也作为公司内部开发部门的测试服务器,系统采用CentOS 7,采购硬盘的时候采购了2块2T的机械盘作为存储盘,根据业务划分,开发部门并不需要2T这么大的空间,而素材管理2T又有些不够,所以这里就打算使用LVM将两块数据盘进行合并,之后划分三分之一给开发部门,剩下的给素材管理做存储。

配置

还是说一说现在的机器配置吧

主板使用的是 七彩虹iH110-HD Pro V20 mini-itx (17x17)

内存使用 威刚8G DDR4 2400

系统盘使用的使用 联想 SL700 NGFF MSATA 250G 插主板上的M.2接口

数据盘 希捷 酷鱼2T 硬盘2块

CPU使用 G4560

机箱使用Tt Core V1

电源 tt Smart 500W

这里选择小机箱是方便放进机柜里面,装好之后的图

Linux 下使用 LVM 快速合并磁盘进行扩容操作

操作

一切准备就绪之后就开始进行磁盘的合并了,LVM的使用非常简单,这里根据我司的业务需要,需要对两块磁盘进行合并,然后再进行划分,我们按照步骤一步步操作,只要按照顺序来就行了。

首先切换到root账户下面,我这里在根目录创建两个文件夹方便后面进行挂载,目录名称为 Development 和 MediaFiles

[root@localhost /]# mkdir Development MediaFiles
[root@localhost /]# ll
总用量 20
lrwxrwxrwx.   1 root root    7 Nov 26 17:38 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Nov 26 18:00 boot
drwxr-xr-x.  20 root root 3280 Nov 27 11:59 dev
drwxr-xr-x.   2 root root    6 Nov 27 14:35 Development
drwxr-xr-x.  83 root root 8192 Nov 26 19:14 etc
drwxr-xr-x.   2 root root    6 Apr 11  2018 home
lrwxrwxrwx.   1 root root    7 Nov 26 17:38 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 26 17:38 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Nov 27 14:35 MediaFiles
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   3 root root   16 Nov 26 17:39 opt
dr-xr-xr-x. 147 root root    0 Nov 26 19:01 proc
dr-xr-x---.   4 root root  180 Nov 26 19:04 root
drwxr-xr-x.  27 root root  860 Nov 27 10:55 run
lrwxrwxrwx.   1 root root    8 Nov 26 17:38 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x.  13 root root    0 Nov 26 19:01 sys
drwxrwxrwt.  10 root root 4096 Nov 27 14:35 tmp
drwxr-xr-x.  13 root root  155 Nov 26 17:38 usr
drwxr-xr-x.  20 root root  282 Nov 26 18:00 var
[root@localhost /]#

执行fdisk -l 查看磁盘信息

[root@localhost /]# fdisk -l

磁盘 /dev/sda:2000.4 GB, 2000398934016 字节,3907029168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节


磁盘 /dev/sdb:2000.4 GB, 2000398934016 字节,3907029168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节


磁盘 /dev/sdc:240.1 GB, 240057409536 字节,468862128 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009fc44

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1   *        2048     2099199     1048576   83  Linux
/dev/sdc2         2099200   468860927   233380864   8e  Linux LVM

磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:8321 MB, 8321499136 字节,16252928 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:177.0 GB, 176966074368 字节,345636864 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@localhost /]#

我这里的数据盘是 /dev/sda 和 /dev/sdb, 也就是即将合并的两个磁盘,使用pvcreate命令创建物理卷,pvscan命令查看创建之后的列表信息

[root@localhost /]# pvcreate /dev/sda
  Physical volume "/dev/sda" successfully created.
[root@localhost /]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@localhost /]# pvscan 
  PV /dev/sdc2   VG centos          lvm2 [<222.57 GiB / 4.00 MiB free]
  PV /dev/sdb                       lvm2 [<1.82 TiB]
  PV /dev/sda                       lvm2 [<1.82 TiB]
  Total: 3 [<3.86 TiB] / in use: 1 [<222.57 GiB] / in no VG: 2 [<3.64 TiB]
[root@localhost /]#

可以看到创建的物理卷实际大小为1.8T,并不是2.0T,其中 /dev/sdc2是安装系统的时候自行选择的lvm模式,这个不用管,如果想对系统盘进行扩容也可以使用类似方法。

接着创建卷组,如果不知道什么叫卷组,可以去找找LVM的资料,介绍的很详细。创建组的命令是vgcreate,我这里给卷组命名为 MYLVM,使用/dev/sda 创建卷组(格式 vgcreate [自定义LVM名称] [设备]),然后使用vgextend 命令把 /dev/sdb扩展上去(格式 vgextend [自定义vg名称] [设备])

[root@localhost /]# vgcreate MYLVM /dev/sda
  Volume group "MYLVM" successfully created
[root@localhost /]# vgextend MYLVM /dev/sdb
  Volume group "MYLVM" successfully extended
[root@localhost /]#

这个使用可以用vgscan查看创建的卷组信息

[root@localhost /]# vgscan 
  Reading volume groups from cache.
  Found volume group "MYLVM" using metadata type lvm2
  Found volume group "centos" using metadata type lvm2
[root@localhost /]#

接下来创建逻辑卷,使用 lvcreate 命令,可以理解为分区,根据业务需要,我这里把卷组分为两个区,一个是给开发部门,一个给设计部门做素材存储,命令的使用方法是 lvcreate -L[自定义分区大小] -n[自定义分区名称] [vg名称]

[root@localhost /]# lvcreate -L800G -n DEV_DATA MYLVM
  Wiping ext4 signature on /dev/MYLVM/DEV_DATA.
  Logical volume "DEV_DATA" created.
[root@localhost /]#

这里首先创建了一个800G的分区出来,这个时候我们不要着急创建另外一个分区,使用 pvscan 命令先查看一下剩下的空间还有多少,以便充分利用空间

[root@localhost /]# pvscan 
  PV /dev/sda    VG MYLVM           lvm2 [<1.82 TiB / <1.04 TiB free]
  PV /dev/sdb    VG MYLVM           lvm2 [<1.82 TiB / <1.82 TiB free]
  PV /dev/sdc2   VG centos          lvm2 [<222.57 GiB / 4.00 MiB free]
  Total: 3 [<3.86 TiB] / in use: 3 [<3.86 TiB] / in no VG: 0 [0   ]
[root@localhost /]#

可以看到两块磁盘剩余空间总和为2.86T,但是实际上空间并没有2.86T那么大,如果万一创建错了,可以使用 lvremove 进行删除操作

[root@localhost /]# lvremove /dev/MYLVM/MEDIA_DATA 
Do you really want to remove active logical volume MYLVM/MEDIA_DATA? [y/n]: y
  Logical volume "MEDIA_DATA" successfully removed
[root@localhost /]#

创建分区会占用一些空间,所以创建2.85T空间差不多,如果实在需要精确可以换算成G

[root@localhost /]# lvcreate -L2.85T -n MEDIA_DATA MYLVM
  Rounding up size to full physical extent 2.85 TiB
  Logical volume "MEDIA_DATA" created.
[root@localhost /]# pvscan 
  PV /dev/sda    VG MYLVM           lvm2 [<1.82 TiB / <7.63 GiB free]
  PV /dev/sdb    VG MYLVM           lvm2 [<1.82 TiB / 0    free]
  PV /dev/sdc2   VG centos          lvm2 [<222.57 GiB / 4.00 MiB free]
  Total: 3 [<3.86 TiB] / in use: 3 [<3.86 TiB] / in no VG: 0 [0   ]
[root@localhost /]#

创建完后使用lvscan查看一下分区信息

[root@localhost /]# lvscan 
  ACTIVE            '/dev/MYLVM/DEV_DATA' [800.00 GiB] inherit
  ACTIVE            '/dev/MYLVM/MEDIA_DATA' [2.85 TiB] inherit
  ACTIVE            '/dev/centos/swap' [7.75 GiB] inherit
  ACTIVE            '/dev/centos/home' [164.81 GiB] inherit
  ACTIVE            '/dev/centos/root' [50.00 GiB] inherit
[root@localhost /]#

然后需要对分区进行格式化,我这里使用ext4格式

[root@localhost /]# mkfs.ext4 /dev/MYLVM/DEV_DATA 
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
52428800 inodes, 209715200 blocks
10485760 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2357198848
6400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成     

[root@localhost /]# mkfs.ext4 /dev/MYLVM/MEDIA_DATA 
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
191266816 inodes, 765041664 blocks
38252083 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2912944128
23348 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成       

[root@localhost /]#

这个时候就可以进行挂载了

[root@localhost /]# mount /dev/MYLVM/DEV_DATA /Development/
[root@localhost /]# mount /dev/MYLVM/MEDIA_DATA /MediaFiles/

使用 df -lh 命令可以查看详细信息

[root@localhost /]# df -lh
文件系统                      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root        50G  1.3G   49G    3% /
devtmpfs                      3.8G     0  3.8G    0% /dev
tmpfs                         3.8G     0  3.8G    0% /dev/shm
tmpfs                         3.8G  9.1M  3.8G    1% /run
tmpfs                         3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sdc1                    1014M  146M  869M   15% /boot
/dev/mapper/centos-home       165G   33M  165G    1% /home
tmpfs                         771M     0  771M    0% /run/user/0
/dev/mapper/MYLVM-DEV_DATA    788G   73M  748G    1% /Development
/dev/mapper/MYLVM-MEDIA_DATA  2.9T   89M  2.7T    1% /MediaFiles
[root@localhost /]#

可以看到分区已经挂载成功,如果需要删除,只需要倒叙执行对应的删除操作就可以了,顺序如下

umount (卸载)

lvremove (删除逻辑卷)

vgremove (删除卷组)

pvremove (删除物理卷)

最后

LVM实际上有很多实用的命令,比如修改调整卷组和逻辑盘的容量,重命名等操作都比较简单。

本文链接:https://www.92ez.com/?action=show&id=23475

!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!!小黑屋

提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

追踪Linux TCP/IP代码运行

追踪Linux TCP/IP代码运行

秦健 / 北京航空航天大学出版社 / 2010-4-1 / 69.00元

本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、 TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。一起来看看 《追踪Linux TCP/IP代码运行》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具