IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 逻辑卷与分区大小调整 -> 正文阅读

[系统运维]逻辑卷与分区大小调整

构建 LVM 逻辑卷

逻辑卷管理(Logical Volume Manager,LVM)通过在硬盘和分区之上建立一个逻辑层,将磁盘或分区划分为相同大小的 PE(Physical Extents)单元,不同的磁盘或分区可以划归到同一个卷组(VG,Volume Group),在 VG 上可以创建逻辑卷(LV,Logical Volume),在 LV 上可以创建文件系统。
相较于直接使用磁盘分区的方式,LVM 的优势在于弹性调整文件系统的容量:

  • 文件系统不再受限于物理磁盘的大小,可以分布在多个磁盘中。
    例如,您可以购买3块4TB的弹性云硬盘并使用 LVM 创建一个将近12TB的超大文件系统。
  • 可以动态调整逻辑卷大小,不需要对磁盘重新分区。
    当 LVM 卷组的空间无法满足您的需求时,您可以单独购买弹性云硬盘并挂载到相应的云服务器上,然后将其添加到 LVM 卷组中进行扩容操作。

0??:准备工作:

  • 两个空分区(没有创建文件系统),假设有 /dev/sda4/dev/sdb 两个分区
  • 已使用 root 用户登录服务器

1??:创建物理卷 PV

$ pvcreate /dev/sda4 /dev/vdd /dev/sdb

创建成功,如图所示(因为sdb 分区之前创建了文件系统,所以要擦除)

image-20220502232349117

通过以下命令,查看现在系统中的物理卷

$ lvmdiskscan | grep LVM

# 或者
$ pvdisplay

image-20220502232931798

2??:创建卷组 VG

创建一个名为 lvm_demo 的卷组

$ vgcreate lvm_demo /dev/sda4 /dev/sdb

创建成功则如图所示

image-20220502233130004

可以通过以下命令,向卷组中添加新的物理卷

# vgextend 卷组名 新物理卷路径
# 假设有一个物理卷为 sda5
$ vgextend lvm_demo /dev/sda5

通过 vgsvgdisplay 等命令可以查看当前系统中的卷组信息

image-20220502233558388

3??:创建逻辑卷 LV

创建大小是500MB,名为 lv_demo 的逻辑卷

$ lvcreate -L 500MB -n lv_demo lvm_demo

创建成功后,如图所示,物理卷 /dev/sda4 被使用了 500MB 的空间

image-20220502234004687

4??:创建并挂载文件系统

$ mkfs.ext4 /dev/lvm_demo/lv_demo

创建成功后,如图所示

image-20220502234158114

挂载至目录 /tmp/test

$ mkdir /tmp/test
$ mount /dev/lvm_demo/lv_demo /tmp/test/ 

说明:

? 通过 fdisk -l 可以看到逻辑卷 /dev/lvm_demo/lv_demo 的信息

可以通过 df -TH 命令查看是否挂载成功

image-20220502234654141

5??:动态扩展逻辑卷及文件系统大小

扩展前提:

? 仅当卷组 VG 容量有剩余时,LV 容量可动态扩展。扩展 LV 容量后,需一并扩展创建在该 LV 上的文件系统的大小。

扩展逻辑卷大小,增加 500MB

# lvextend [-L +/- <增减容量>] <逻辑卷路径>
$ lvextend -L +500MB /dev/lvm_demo/lv_demo

image-20220502235332821

说明:如图所示 两个物理卷被使用了 1000MB 的空间

image-20220502235913830

此时逻辑卷虽然变为 1000MB,但是文件系统并没有变大,还需要执行以下命令

$ resize2fs /dev/lvm_demo/lv_demo

image-20220502235507641

最后可以通过 df -h 命令,查看容量是否变为 1000MB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiOL2q2F-1652022822997)(E:/%E7%AC%94%E8%AE%B0/pic/image-20220502235714069.png)]

压缩逻辑卷

? 假设 /tmp/test 文件夹需要的最大容量是 500MB,现在想要压缩逻辑卷 lvm_demo_lv_demo,由 1000MB 变为 500MB,并且将分区 /dev/sdb 移出卷组 lv_demo,用作其他用途。

?? 注意:压缩逻辑卷前,要保证逻辑卷的总容量大于逻辑卷所有文件的总容量。

1??:对 LVM 强制执行文件系统检测

$ e2fsck -f /dev/mapper/lvm_demo-lv_demo

image-20220503150518372

2??:调整文件系统大小

压缩为文件系统大小为 500M (其中文件总共小于500M)

# 大小单位可以为 'K', 'M', 'G', 'T',大小写均可
$ resize2fs /dev/lvm_demo/lv_demo 500M

image-20220503150937640

注意:resize2fs 的大小参数不支持小数。

如:

$ resize2fs /dev/lvm_demo/lv_demo 0.5G
# 报错
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: 无效的新大小(Invalid new size):500MB

3??:压缩逻辑卷大小

# 压缩逻辑卷至 500MB
$ lvreduce -L 500M /dev/lvm_demo/lv_demo

image-20220503152749462

通过 pvs 可以看到 /dev/sdb 完全空闲,可以将其移出
image-20220503153230353

4??:将物理卷 /dev/sdb 移出卷组 lvm_demo

$ vgreduce lvm_demo /dev/sdb

image-20220503153151385

通过 vgs 可以看到 卷组的情况

image-20220503153554887

5??:擦除物理卷 /dev/sdb

$ pvremove /dev/sdb

image-20220503153647412

之后就可以将 /dev/sdb 用作其他用途了

非 LVM 分区调整分区大小

总的来说调整分区大小步骤就是:

  • 1、卸载分区 —> 2、扩容或缩小分区和文件系统 —> 3、重新挂载分区

但是在非 LVM 分区,可以在线扩容,但是不可以在线缩小分区(在线即挂载了目录)。

? 如图所示,不能够在线调整文件系统(ext4)的大小,必需要先卸载分区(umount)才能调整大小。但是根目录( / )在系统运行状态是不能卸载的。

image-20220508210814926

? 不同的文件系统格式下可以做的操作有所不同,这里只以 ext4 为例。

? ext4支持扩容和缩小,home分区(你的私人分区)扩容或缩小均可以在root用户登录做卸载后调整,其他分区必须进救援模式进行扩容或缩小。

扩容分区

扩容分区可以通过将待扩容分区的相邻分区,划分到一起进行扩容。 ===> 参考

或者构建逻辑卷进行扩容,这里不再赘述。

缩小分区

? 现有一个分区 /dev/sdb1,大小为 500MB,但是平常最多只会使用 250MB,所以计划缩小分区为 250MB

? 通过 df -TH 查看挂载分区的使用情况 (以下图片仅供参考)

image-20220508213437396

1??:卸载待修改分区(/dev/sdb1)

umount /dev/sdb1

2??:检查该分区,并且缩小文件系统的大小

# 先检查格式系统
$ e2fsck –f /dev/sdb1
#开启journal,在系统事故,或者掉电的情况下, journal 可以帮助文件系统找回丢失的文件。 (可选)
$ tune2fs -o has_journal /dev/sdb1

# 缩小文件系统大小,缩小为 250M
resize2fs -f /dev/sdb1 250M

3??:缩小分区大小

$ fdisk /dev/sdb1

# 1.删除原分区 /dev/sdb1
# 2.创建新分区 /dev/sdb1    ===> 容量只有一半(根据Unit大小和扇区起始位置计算即可)
# 3.创建新分区 /dev/sdb2  (可选)  ===> 默认即可

4??:调整文件系统,并挂载

# 让文件系统自动适应分区
resize2fs -f /dev/sdb1

# 重新挂载到文件夹
mount /dev/sdb1 /tmp/test
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 13:09:20  更:2022-05-09 13:09:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:28:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码