centos 根目录扩容 ,添加新硬盘

本地安装了虚拟机,系统为centos7,使用过程中,渐渐地发现磁盘容量不够用了,于是在虚拟机中新增了一块硬盘。

 

 

 进入系统内查看

 

 

 

sdb是新增的硬盘,大小为120g。

接下来有两种方式,一种是普通方式直接挂载。https://blog.csdn.net/qq_39314099/article/details/106200322

这样的话只有在挂载点的目录下操作才能使用到这个新硬盘,不是很理想。

还有一种方式lvm,逻辑卷管理的方式。

LVM简单介绍
它是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过 LVM 就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。
物理存储设备(Physical Media):指系统的存储设备文件,比如 /dev/sda、/dev/sdb 等。
PV(物理卷 Physical Volume):指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如 RAID 设备)。
VG(卷组 Volume Group):类似于非 LVM 系统中的物理硬盘,一个 LVM 卷组由一个或者多个 PV(物理卷)组成。
LV(逻辑卷 Logical Volume):类似于非 LVM 系统上的磁盘分区,LV 建立在 VG 上,可以在 LV 上建立文件系统。
PE(Physical Extent):PV(物理卷)中可以分配的最小存储单元称为 PE,PE 的大小是可以指定的。
LE(Logical Extent):LV(逻辑卷)中可以分配的最小存储单元称为 LE,在同一个卷组中,LE 的大小和 PE 的大小是一样的,并且一一对应。
可以这么理解,LVM 是把硬盘的分区分成了更小的单位(PE),再用这些单元拼成更大的看上去像分区的东西(PV),进而用 PV 拼成看上去像硬盘的东西(VG),最后在这个新的硬盘上创建分区(LV)。文件系统则建立在 LV 之上,这样就在物理硬盘和文件系统中间添加了一层抽象(LVM)。下图大致描述了这些概念之间的关系:

 

 

 

对上图中的结构做个简单的介绍:
两块物理硬盘 A 和 B 组成了 LVM 的底层结构,这两块硬盘的大小、型号可以不同。PV 可以看做是硬盘上的分区,因此可以说物理硬盘 A 划分了两个分区,物理硬盘 B 划分了三个分区。然后将前三个 PV 组成一个卷组 VG1,后两个 PV 组成一个卷组 VG2。接着在卷组 VG1 上划分了两个逻辑卷 LV1 和 LV2,在卷组 VG2 上划分了一个逻辑卷 LV3。最后,在逻辑卷 LV1、LV2 和 LV3 上创建文件系统,分别挂载在 /usr、/home 和 /var 目录。

接下来操作:

1.建立新分区
使用 fdisk -l 命令查看

可以看到 /dev/sdb 是新增的硬盘。
执行 fdisk /dev/sdb 对 sdb 进行分区。

 

 

 

输入 p 查看分区表,上图显示 sdb 并没有分区。(输入m获取帮助信息)

接下来进行分区,输入 n 建立新分区,接着输入 p 选择主分区,分区号和扇区号默认即可,这样会将整个硬盘都添加到新分区中。

 

 

 如上图,分区添加成功。输入 w 写入硬盘。

再次查看:

多了一个新分区 sdb1

 

创建物理卷pv:

pvcreate /dev/sdb1

查看物理卷pv,pvdisplay

 

 

 

 

 

扩容卷组vg:
查看卷组 vgdisplay

 

 

 

将新创建的 物理卷pv :/dev/sdb1 追加到当前卷组里,也就是 "centos" 中,对应上面的 VG Name,扩容卷组。
vgextend centos /dev/sdb1

 

 可以看到,卷组已经扩容成功。

 

逻辑卷扩容 LV
lvdisplay,查看当前逻辑卷

 

扩容逻辑卷

lvextend -l +100%FREE /dev/centos/root

 

 -L 指定大小,但是可能会出现我上面的情况,指定的大小不合适。

 

 扩容文件系统
上面的操作是给逻辑卷进行扩容,还需要最后给文件系统扩容。

xfs_growfs /dev/centos/root

 

#如果一盘中分的多个区。 以下是删除其中一个区的盘,合并到根

 比如我需要将centos-home扩容到根

 

1.备份 /home 目录的数据

在进行下一步之前,确保备份`/home`目录的所有数据。你可以使用`rsync`或`cp`命令将数据复制到安全的位置。

 

2.需要卸载 home 逻辑卷。你可以使用`umount`命令来卸载:

umount /home

 

3. 删除 home 逻辑卷。 使用`lvremove`命令删除 home 逻辑卷。此操作将删除 home 逻辑卷并释放其占用的空间。

   lvremove /dev/mapper/centos-home

     如果没法删除 可以通过以下命令查看 ,检查/etc/fstab 重启

     lsof | grep /dev/mapper/centos-home 

     umount -f /dev/mapper/centos-home

     

 

 

 

4. 扩展 root 逻辑卷。  使用`lvextend`命令,你可以将释放的空间添加到 root 逻辑卷

 lvextend -l +100%FREE /dev/mapper/centos-root

 

5. 调整文件系统大小使用`xfs_growfs`命令调整 root 逻辑卷的文件系统大小以使用新的空间

  xfs_growfs /dev/mapper/centos-root

 

6.恢复 /home 的数据

现在你可以把你之前备份的`/home`数据恢复到新的`/home`目录中。

 

 

以下是同一个盘中扩了空间,合并到 根目录下

1.分区 分个lvm  。  设备繁忙不管他。 这时 lsblk 是看不到分区的

fdisk  /dev/sdc

 

2.刷新分区列表。 这样就lsblk能看到分区了

partprobe  /dev/sdc

 

3.格式化  根据自己需求格式

mkfs.xfs   /dev/sdc3      或者 mkfs.ext4

 

4.创建物理卷pv     tab不出来 手动输入

pvcreate    /dev/sdc3

查看物理卷pv

pvdisplay

 

5.扩容卷组vg      tab不出来 手动输入

vgextend centos /dev/sdc3
查看卷组

vgdisplay

 

6.逻辑卷扩容 LV

lvextend -l +100%FREE /dev/mapper/centos-root
查看当前逻辑卷

lvdisplay

 

7.调整文件系统大小

  xfs_growfs /dev/mapper/centos-root

 

 

 

#lvm 硬盘对拷

1.新挂一个盘

 

2.创建物理卷/dev/sdb1。

pvcreate /dev/sdb1

 

3.将物理卷/dev/sdb1添加到卷组centos中
vgextend centos /dev/sdb1

 

4.将物理卷/dev/sda2(需要拷贝的硬盘)上的数据迁移到物理卷/dev/sdb1上
pvmove /dev/sda2 /dev/sdb1

 

5.将文件系统/dev/centos/home扩容

xfs_growfs /dev/centos/home

 

6.修复文件系统/dev/centos/home

xfs_repair /dev/centos/home -L

 

posted @ 2021-08-06 17:52  mrdongdong  阅读(874)  评论(1编辑  收藏  举报