LVM 合并磁盘完成扩容
系统采用CentOS 7,采购硬盘的时候采购了2块2T的机械盘作为存储盘,根据业务划分,开发部门并不需要2T这么大的空间,而素材管理2T又有些不够,所以这里就打算使用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
执行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 字节
我这里的数据盘是 /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]
可以看到创建的物理卷实际大小为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 /]# vgcreate MYLVM /dev/sdb Volume group "MYLVM" successfully extended
这个使用可以用vgscan查看创建的卷组信息
[root@localhost /]# vgscan
Reading volume groups from cache.
Found volume group "MYLVM" using metadata type lvm2
Found volume group "MYLVM" using metadata type lvm2
接下来创建逻辑卷,使用 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.
这里首先创建了一个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 ]
可以看到两块磁盘剩余空间总和为3.86T,但是实际上空间并没有3.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
创建分区会占用一些空间,所以创建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 ]
然后需要对分区进行格式化,我这里使用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 /]# 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
可以看到分区已经挂载成功,如果需要删除,只需要倒叙执行对应的删除操作就可以了,顺序如下
umount (卸载)
lvremove (删除逻辑卷)
vgremove (删除卷组)
pvremove (删除物理卷)
为了让系统在启动的时候能够自动挂载分区,需要在 /etc/fstab 写入如下配置
/dev/MYLVM/DEV_DATA /Development ext4 defaults 0 0 /dev/MYLVM/MEDIA_DATA /MediaFiles ext4 defaults 0 0

评论