Linux磁盘挂载、扩容演示


文章目录


前言

Linux在使用过程中由于数据量不断增大,导致磁盘空间不足,需要增加磁盘空间,主要有以下几种场景
1、直接在原有磁盘上增大空间,给某一分区扩容
2、给虚拟机新增一块磁盘,为这块磁盘新建一个分区
3、给虚拟机新增一块磁盘,并把磁盘空间扩容到指定磁盘分区上
4、增加一块磁盘,不分区直接挂载
5、LVM
以上就是本篇文章的核心内容


一、分区介绍

数据盘支持主引导记录分区MBR(Master Boot Record)和全局分区表GPT(Globally Unique Identifier Partition Table)两种分区格式,二者说明如下

分区格式最大分区容量分区数量分区说明
MBR2 TiBMBR有以下分区形式:4个主分区 3个主分区和1个扩展分区,在扩展分区中创建逻辑分区的数目没有限制,可以创建任意多个逻辑分区。分为主分区、扩展分区和逻辑分区三种类型。
GPT18 EiB(1 EiB=1,048,576 TiB)说明阿里云云盘支持的最大容量为32 TiB。Linux:分区数量无限制 Windows:128个所有分区都是主分区,没有扩展分区与逻辑分区的概念。

注意事项

MBR支持的最大分区容量为2 TiB,GPT最大支持的分区容量为18 EiB。
如果您使用的云盘容量大于2 TiB或者后续有可能会扩容到2 TiB以上,分区时请采用GPT分区格式.

硬盘的容量=主分区的容量+扩展分区的容量; 扩展分区也算主分区
扩展分区的容量=各个逻辑分区的容量之和

二、分区工具

1.fdisk

fdisk: 
	是linux和Unix系统中常见的磁盘分区工具之一.
	用于创建、删除、调整磁盘分区,以及更改分区类型等操作,它使用的是传统的MBR(主引导记录)分区表格式。
	且MBR分区表有一些限制,最多支持4个主分区或3个主分区和1个扩展分区
fdisk -l 命令检查分区表格式:
	若 Disklabel type 参数值为 dos,则分区表格式为MBR
	若 Disklabel type 参数值为 gpt,则分区表格式为GPT。

2.gdisk

是GPT(GUID分区表)磁盘分区工具,适用于GPT分区表的系统,可以解决MBR的一些限制,它支持更大的磁盘容量、更多的分区。
当对大于2T的磁盘进行分区时使用该命令操作。

三、ext4文件系统和xfs文件系统的区别

ext4支持度广,但是创建文件系统(格式化)慢,修复慢,ext4每写入一个文件,少一个inode,磁盘逐渐满
xfs文件系统,高容量,支持大存储,高性能。 inode是需要用到时,才动态产生

四、新增磁盘不分区挂载

给虚拟机增加一块磁盘,不分区进行挂载

1、xfs文件系统

前提准备,一台虚拟机,默认有一块系统盘

此时数据盘为裸设备,即只呈现为一个独立的分区(例如/dev/sdb)且不需要划分逻辑分区(例如/dev/sdb1、/dev/sdb2等)
磁盘初始化时直接在裸设备上创建文件系统即可

在这里插入图片描述
在这里插入图片描述
需求: 在虚拟机开机的情况下,新增一块10G的数据盘,格式化为xfs文件系统格式,然后挂载到/export目录下
在这里插入图片描述

1.1、扫描新增的磁盘sdb并查看磁盘

[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan   #vm虚拟机开机添加磁盘后,需要执行此扫描操作才能加载到新的磁盘

[root@localhost ~]# lsblk                                            #查看磁盘,如下所示
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk                             #新磁盘并未挂载使用
sr0              11:0    1  973M  0 rom

[root@localhost ~]# fdisk -l                                 #查看磁盘信息
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bbd17

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

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


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


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

1.2、格式化磁盘为xfs格式

[root@localhost ~]# mkfs.xfs /dev/sdb                    #格式化磁盘为xfs文件系统
meta-data=/dev/sdb               isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

1.3、创建挂载目录并执行挂载命令

[root@localhost ~]# mkdir /export
[root@localhost ~]# mount /dev/sdb /export
1.3.1、补充:挂载命令区别
		#(推荐)对文件系统的数据安全性和性能都有一定要求(数据安全性和性能适中)
			sudo mount /dev/sdb /export
		#对文件系统的数据安全性要求较高(数据安全性较高、性能偏低)
			sudo mount -o rw,atime,sync,barrier,data=journal /dev/sdb /export
		#对文件系统的性能要求较高(性能较高、数据安全性偏低)
			sudo mount -o defaults,noatime,nodiratime,nobarrier,nodelalloc,data=writeback /dev/sdb /export

1.4、查看是否挂载成功,并配置永久挂载

[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.6M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.3G   16G    8% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb                xfs        10G   33M   10G    1% /export

#永久挂载
[root@localhost ~]# cp /etc/fstab /etc/fstab.bak
[root@localhost ~]# echo `blkid /dev/sdb | awk '{print $2}' | sed 's/\"//g'` /export xfs defaults 0 0 >> /etc/fstab

1.5、再次检查是否挂载成功

[root@localhost ~]# mount -a
[root@localhost ~]# lsblk -f   
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         e1600514-efea-4aaa-800a-7d0bfc975081   /boot
└─sda2          LVM2_member                 ALYsNi-u8eW-woZO-AKq3-3FGo-v9es-ootOJJ 
  ├─centos-root xfs                         1a62e5d9-fd8a-4a7b-8666-4e6d68b60e8f   /
  └─centos-swap swap                        aaa5d597-e346-42ea-8840-f4fbd6e02e73   [SWAP]
sdb             xfs                        6f4d2957-6e19-4e82-a66a-f897084749c9   /export
sr0             iso9660     CentOS 7 x86_64 2020-11-03-14-55-29-00

2、ext4文件系统

2.1、格式化sdb磁盘为ext4格式

[root@localhost ~]# mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 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

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

2.2、创建挂载目录并执行挂载

[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb /data

配置永久挂载和检查命令如上xfs时一致,不在此过多描述~~至此,新增磁盘不分区挂载的两种文件系统演示完成

五、新增磁盘分区挂载

还是上述的sdb磁盘,对sdb盘进行分区后挂载

1、xfs格式文件系统

1.1、磁盘分区

因为sdb磁盘大小并未超过2T,因此使用fdisk命令进行MBR分区操作

[root@localhost ~]# fdisk -u /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x263fdde7 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p                                   <---- 显示该数据盘的分区情况,确认该磁盘是否已存在分区

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x263fdde7

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n                                  <---- 创建一个新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p                                  <---- 定新创建的分区为”主分区“。如需创建扩展分区,本步骤请输入 e
分区号 (1-4,默认 1)<---- 输入磁盘分区号
起始 扇区 (2048-20971519,默认为 2048)<---- 输入磁盘扇区起始值
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+9G  <---- 输入磁盘扇区结束值
分区 1 已设置为 Linux 类型,大小设为 9 GiB

命令(输入 m 获取帮助):p                                  <---- 显示该数据盘的分区情况,确认该磁盘是否已存在分区

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x263fdde7

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    18876415     9437184   83  Linux

命令(输入 m 获取帮助):w                                  <----  保存分区表并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

1.2、必须先格式化磁盘,创建目录并挂载

[root@localhost ~]# mkfs.xfs -f /dev/sdb1 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=589824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2359296, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@localhost ~]# mkdir /export
[root@localhost ~]# mount /dev/sdb1 /export

1.3、检查是否挂载成功

[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0    9G  0 part /export
sr0              11:0    1  973M  0 rom  
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.6M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.3G   16G    8% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1               xfs       9.0G   33M  9.0G    1% /export           <-----  分区后挂载成功

2、ext4格式文件系统

注意事项: 分区命令以及检查挂载是否成功跟xfs格式系统一致,只不过挂载命令不同,因此,此处不再过多描述分区过程,只描述一下挂载过程

[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 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

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

[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data

3、当磁盘超过2T时,如何分区?

当所使用的硬盘大小超过2TB或预计会超过2TB,需要创建GPT分区

fdisk工具不支持创建GPT分区,因此需要使用parted工具实现
[root@localhost ~]#  yum install -y parted      #安装分区工具
[root@localhost ~]# lsblk                       #确认数据盘是否已经挂载
[root@localhost ~]# parted                      #打开parted工具
		1) 执行 select /dev/sdb ,选择需要分区的磁盘;
		2) 执行 mklabel gpt ,将分区格式设置为GPT;
		3) 执行 mkpart primary 1 100% ,将整个磁盘从第1 MB到全盘划分为1个主分区。
			注: mkpart命令的完整形式为
				 mkpart [part-type name fs-type] start end ,其中当start的取值达到分区对齐时,
				磁盘获得最佳性能。
		4) 执行 align-check optimal 1 检查分区是否对齐,如果返回 1 not aligned,则分区未对齐。
			注: 可以通过计算最佳分区模式的起始扇区值来确定保证分区对齐
				计算公式为: ([optimal_io_size]+[alignment_offset]) / [physical_block_size] 。
				公式中对应的参数值为:
		   		cat /sys/block/vdb/queue/optimal_io_size
		   		cat /sys/block/vdb/alignment_offset
		   		cat /sys/block/vdb/queue/physical_block_size
		   		cat /sys/block/vdb/queue/minimum_io_size
		在直接操作裸盘时,start 取“1”、“2048s”或“1040kb”均可以达到分区对齐。
	5) 执行 p 查看新建分区的详细信息。
	6) 执行 q ,退出parted分区工具。GPT过程分区图如下所示
	7) 此时执行 `lsblk` 可以看到 /dev/vdb下已经增加了“/dev/vdb1”的新分区
	8)  格式化分区后的磁盘并挂载给新目录

在这里插入图片描述
剩余格式化、创建目录、挂载步骤跟上述如出一辙,不再过多描述

六、不新增磁盘,在原磁盘基础上增加容量后,对原有磁盘扩容

1、原磁盘是xfs文件系统的分区扩容

需求: 直接给 /export 分区扩容,由原来的9G容量扩容到50G

因为演示机器是vm虚拟机,不是云服务器.因此在扩容前先对/export目录进行备份,防止数据丢失

1.1、备份数据盘并关机

将其备份文件存放到其他机器中去

[root@localhost ~]# tar -zcf export.tar.gz /export
[root@localhost ~]# scp export.tar.gz 192.168.56.130:/export/
[root@localhost ~]# fdisk -l   #记住dev/sdb1分区的开始位置(start),即2048
[root@localhost ~]# init 0

1.2、扩容磁盘

在这里插入图片描述

1.3、重启机器,并查看分区的容量情况

可以看到分区/dev/sdb1容量为9GB,而整块磁盘是53.7GB。
在这里插入图片描述

1.4、卸载分区所挂载的目录

[root@localhost ~]# umount /export
[root@localhost ~]# df -h   #卸载后再次查看并没有sdb1分区了
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.6M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.3G   16G    8% /
/dev/sda1               1014M  138M  877M   14% /boot
tmpfs                     98M     0   98M    0% /run/user/0

1.5、删除旧分区并重新创建分区

[root@localhost ~]# fdisk -u /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p                                          <---- 显示该数据盘的分区情况,确认该磁盘是否已存在分区

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf88e986a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    18876415     9437184   83  Linux

命令(输入 m 获取帮助):d                                        <---- 删除旧分区
已选择分区 1
分区 1 已删除

命令(输入 m 获取帮助):n    <---- 创建一个新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p   <---- 创建一个新的主分区
分区号 (1-4,默认 1)<---- 新的分区号,默认为1
起始 扇区 (2048-104857599,默认为 2048)<---- 新的分区起始扇区
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599)<---- 新的分区结束扇区,默认就是全部空间
将使用默认值 104857599
分区 1 已设置为 Linux 类型,大小设为 50 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf88e986a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   104857599    52427776   83  Linux

命令(输入 m 获取帮助):w   <---- 保存并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

1.6、查看与重新识别分区大小

在这里插入图片描述

[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.6M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.3G   16G    8% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1               xfs       9.0G   33M  9.0G    1% /export

#重新识别分区大小
[root@localhost ~]# xfs_growfs -d /export
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=589824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2359296, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#重新识别分区大小后再次检查 确实扩容到了50G,如果目录内容有丢失,可使用备份进行恢复
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.6M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.3G   16G    8% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1               xfs        50G   34M   50G    1% /export

2、原磁盘是ext4文件系统的分区扩容

前几步操作与原磁盘是xfs文件系统的分区扩容中的步骤一致。
分别是
	备份数据盘并关机-->
		扩容磁盘-->
			重启机器,并查看分区的容量情况-->
				卸载分区所挂载的目录-->
					删除旧分区并重新创建分区

接下来就是ext4的步骤

2.1、查看与检测

在这里插入图片描述
对新分区进行检测

[root@localhost ~]# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/sdb1: 11/3276800 files (0.0% non-contiguous), 251790/13106944 blocks

对新分区进行更正

[root@localhost ~]# resize2fs /dev/sdb1
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is now 13106944 blocks long.

重新加载挂载信息

[root@localhost ~]# mount /dev/sdb1 /export
[root@localhost ~]# echo `blkid /dev/sdb1 | awk '{print $2}' | sed 's/\"//g'` /export ext4 defaults 0 0 >> /etc/fstab
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.6M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.3G   16G    8% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1               ext4       50G   53M   47G    1% /export

3、原磁盘是xfs文件系统且没有分区的磁盘扩容

在这里插入图片描述

在原sdc磁盘中增加20G容量,由原来的10G扩容至20G
[root@localhost ~]# xfs_growfs -d /data  #对分区进行更正

sdc增加容量后,如下图所示
在这里插入图片描述
原磁盘扩容后截图
在这里插入图片描述

4、原磁盘是ext4文件系统且没有分区的磁盘扩容

1、把sdd磁盘格式化为ext4后挂载到/data1目录
2、备份data1目录下的数据
3、关机
4、扩容sdd磁盘容量,在原来10G容量的基础上增加20G容量
5、开机,然后通过fdisk -l查看sdd磁盘总容量为30G
6、执行检测命令      e2fsck -f /dev/sdd
7、执行磁盘容量更正命令 resize2fs /dev/sdd
8、检查df -Th data1目录容量的大小

七、新增一块磁盘,对原有磁盘扩容

1、原磁盘是xfs文件系统且分区的扩容

对/export目录进行备份
在这里插入图片描述

[root@localhost ~]# fdisk -l  #查看要扩容分区的分区文件系统id,如下图所示为83

在这里插入图片描述
对sdd磁盘进行以下分区操作

[root@localhost ~]# fdisk -u /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xa99f71ee 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n   <----创建主分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  <----创建主分区  
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t  <----修改分区文件系统id
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

 024  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):83               <----和上述查出来的id保持一致
已将分区“Linux”的类型更改为“Linux”

命令(输入 m 获取帮助):w                       <----保存并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

解除/export目录的挂载

[root@localhost ~]# umount /export

创建物理卷

使用 pvcreate 命令将 /dev/sdb1 和 /dev/sdd 变成 LVM 的物理卷(PV)
[root@localhost ~]#  pvcreate /dev/sdb1 /dev/sdd1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdd1" successfully created.

创建卷组,将两个物理卷组合到一起

[root@localhost ~]# vgcreate vg_export /dev/sdb1 /dev/sdd1
  Volume group "vg_export" successfully created

创建逻辑卷

在新的卷组中创建一个逻辑卷,将整个卷组的空间分配给这个逻辑卷
[root@localhost ~]# lvcreate -l 100%FREE -n lv_export vg_export
  Logical volume "lv_export" created.

创建新的xfs文件系统

[root@localhost ~]# mkfs.xfs /dev/vg_export/lv_export
meta-data=/dev/vg_export/lv_export isize=512    agcount=4, agsize=4587008 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=18348032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=8959, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载新的逻辑卷

将新的逻辑卷挂载到原 /export 目录
[root@localhost ~]# df -Th
文件系统                        类型      容量  已用  可用 已用% 挂载点
devtmpfs                        devtmpfs  475M     0  475M    0% /dev
tmpfs                           tmpfs     487M     0  487M    0% /dev/shm
tmpfs                           tmpfs     487M  7.6M  479M    2% /run
tmpfs                           tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root         xfs        17G  1.3G   16G    8% /
/dev/sdc                        xfs        20G   33M   20G    1% /data
/dev/sda1                       xfs      1014M  138M  877M   14% /boot
tmpfs                           tmpfs      98M     0   98M    0% /run/user/0
/dev/mapper/vg_export-lv_export xfs        70G   33M   70G    1% /export    <----由50G扩容到了70G

检查export目录,如果丢失数据则使用备份进行数据恢复

2、原磁盘是ext4文件系统且分区的扩容

步骤跟上述一样,只需要将最后的逻辑卷格式化为ext4文件系统,然后重新挂载就行

八、创建逻辑卷

在这里插入图片描述

思路: PV----VG---LV
1、安装工具
[root@localhost ~]# yum install -y lvm2

2、查看磁盘
[root@localhost ~]# lsblk

3、创建物理卷PV  (从下到上一步一步添加)
[root@localhost ~]# pvcreate /dev/sde
#查看当前PV
[root@localhost ~]#	pvscan
[root@localhost ~]#	pvs

4、创建卷组vg
[root@localhost ~]#	vgcreate   datavg  /dev/sde      (datavg是卷组的名字)

5、查看卷组信息
[root@localhost ~]#	vgscan  vgs

[root@localhost ~]# pvscan     ##得到回显  pv/dev/sde  加入到了VG datavg    容量XXfree

6、创建逻辑卷LV
[root@localhost ~]# lvcreate -L 200M -n lv1 datavg      -L指定lv的大小    lv1为逻辑卷名称  datavg卷组名称
[root@localhost ~]# lvcreate -L 300M -n lv2 datavg

7、查看逻辑卷信息
[root@localhost ~]#    lvs     ## 得到回显      /dev/datavg/lv1    200m

这时候看lsblk  去看看/dev/sdb???? 
##格式化,创建文件系统挂载
[root@localhost ~]# mkfs.xfs /dev/datavg/lv1 -f
[root@localhost ~]# mkfs.ext4 /dev/datavg/lv2

[root@localhost ~]# mkdir /mnt/lv1   /mnt/lv2  

临时挂载
[root@localhost ~]# mount /dev/datavg/lv1  /mnt/lv1
[root@localhost ~]# mount /dev/datavg/lv2   /mnt/lv2

永久挂载(uuid方法)
[root@localhost ~]# vim /etc/fstab

验证自动挂载功能是否生效
[root@localhost ~]# mount -a
#至此,通过LVM创建逻辑卷完成

九、扩容逻辑卷–扩容已有磁盘容量,来扩展逻辑卷(LV)的容量

在这里插入图片描述
在这里插入图片描述
参考: https://help.aliyun.com/zh/ecs/use-cases/extend-an-lv-by-using-lvm?spm=a2c4g.11186623.0.0.149e26efriKq4c#ce5180ec1awy5

1、扩容磁盘(例如扩容云盘/dev/vdb)。
   为目标磁盘扩容容量(例如新增10 GiB容量)。
	您可以通过lsblk命令查看云盘是否分区。如上图的示例,则表示云盘/dev/vdb未分区,/dev/vdc已分区。
2、扩容物理卷pv
    执行以下命令,确定已扩容的云盘或云盘分区对应的物理卷名称,后续命令需使用:
		pvs -a -o +devices
	运行以下命令,扩容云盘对应的物理卷:
		pvresize /dev/vdb
3、扩容逻辑卷和文件系统
	运行以下命令,获取逻辑卷路径、名称、所属卷组等信息,后续操作步骤需使用:
		lvdisplay
		LV Path:逻辑卷路径,例如/dev/vg_01/lv01。
		LV Name:逻辑卷名称,例如lv01。
		VG Name:逻辑卷所属的卷组名称,例如vg_01。
		LV Size:逻辑卷的大小,图示信息为59 GiB。
	运行以下命令,扩容逻辑卷:
		lvextend -L +10G /dev/vg_01/lv01
	运行以下命令,扩容逻辑卷文件系统:
		ext4文件系统: resize2fs /dev/vg_01/lv01
		xfs文件系统: xfs_growfs /media/lv01

十、扩容逻辑卷–通过新增云盘,来扩展逻辑卷(LV)的容量

在这里插入图片描述

1、添加一块新盘
2、用新增云盘创建物理卷
	pvcreate /dev/vdd
3、扩容卷组
	vgextend vg_01 /dev/vdd
4、查看扩容后的卷组信息
	vgs
5、扩容逻辑卷和文件系统
	lvextend -L +20G /dev/vg_01/lv01
	ext4文件系统: resize2fs /dev/vg_01/lv01
	xfs文件系统: xfs_growfs /media/lv01

十一、移除逻辑卷

移除思路
  	先取消挂载-->移除lv-->在移除vg-->在移除pv (从上到下一步一步移除)

 vim /etc/fstab
 取消对应的uuid挂载
 
 lvremove /dev/vg2/lv2  
  #先移除lv

 vgremove /dev/vg2
  #再移除vg

 pvremove /dev/sdc
  #移除pv
  #如果一个pv做了两个vg,不能移除pv
 
 如果有分区 删除普通分区(创建分区倒回去)
 fdisk /dev/sdd
 输入d 、对应的分区号 、w(保存)

十二、减小vg卷组

pvs  查看

pvmove /dev/sdb /dev/sdc    将sdb数据迁移到sdc    

vgreduce datavg /dev/sdb     将sdb从卷组中踢出来

pvscan

查看变化。数据迁移完成
注意事项:
	只有在同一个卷组下才能进行迁移。
	pv不能跨越vg
	lv不能跨越vg
	系统中可以创建多个vg
	vg中可以创建多个lv

十三、修复文件系统

文件系统类型 
xfs   
	xfs_repair  /dev/sdb1 (修复)
	mkfs.xfs  xxxxx     -f 格式化
	
ext4  
 	fsck -y /dev/sdb1 (修复)
	mkfs.ext4 xxxx

十四、扩容/分区两种方法示例

1、在/分区原磁盘的基础上增加容量,进行扩容

2、新增一块磁盘,用于给/分区扩容

上述两种方法参考https://blog.csdn.net/Hlroliu/article/details/109764269文章即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值