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