openEuler系统中LVM逻辑卷的创建及扩容与缩容

1、背景说明

安装好openEuler操作系统后为其增加新的磁盘进行逻辑卷的扩容与缩容

本次测试使用VMware Workstation Pro虚拟机增加一个磁盘大小为500GB,虚机不关机直接加盘后,使用ls /dev/sd* 或者fdisk -l 发现没有新加的磁盘设备Disk /dev/sdb ,重启操作系统再次检查就有新加的磁盘设备信息

[root@openEuler ~]# fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe68d90bc

Device     Boot    Start       End   Sectors Size Id Type
/dev/sda1           2048  33556479  33554432  16G 82 Linux swap / Solaris
/dev/sda2  *    33556480 209715199 176158720  84G 83 Linux


Disk /dev/sdb: 500 GiB, 536870912000 bytes, 1048576000 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

2、创建一个逻辑卷

在Linux中,创建一个逻辑卷(Logical Volume, LV)通常涉及到几个步骤,这些步骤包括创建物理卷(Physical Volume, PV)、卷组(Volume Group, VG)以及最后的逻辑卷。以下是一个简单的指南,说明如何执行这些步骤:

2.1、创建物理卷

首先,你需要一个或多个分区或磁盘来作为物理卷。假设已经有了一个/dev/sdb磁盘,并且你想要将整个磁盘用作物理卷,你可以这样做:

[root@openEuler ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

2.2、创建卷组

接下来,需要创建一个卷组来管理物理卷。可以指定一个名字和物理卷列表来创建卷组

[root@openEuler ~]# vgcreate backupvg /dev/sdb
  Volume group "backupvg" successfully created

在这个例子中,backupvg是卷组的名称,/dev/sdb是你之前创建的物理卷。

vgdisplay 命令用于显示有关LVM(Logical Volume Manager)卷组(Volume Group, VG)的信息

[root@openEuler ~]# vgdisplay backupvg
  --- Volume group ---
  VG Name               backupvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <500.00 GiB
  PE Size               4.00 MiB
  Total PE              127999
  Alloc PE / Size       0 / 0   
  Free  PE / Size       127999 / <500.00 GiB
  VG UUID               Y4PDcZ-Wfnu-pkor-sTug-Zg5g-Th17-QijJSg

如果删除卷组,请执行如下操作

[root@openEuler ~]# vgremove backupvg
  Volume group "backupvg" successfully removed

2.3、创建逻辑卷

最后,可以在卷组上创建逻辑卷。需要指定逻辑卷的大小和名称
vcreate -L 200G -n backuplv backupvg

[root@openEuler ~]# lvcreate -L 200G -n backuplv backupvg
  Logical volume "backuplv" created.l

在这个例子中,-L 200G指定了逻辑卷的大小为200GB,-n backuplv指定了逻辑卷的名称为backuplv,而backupvg是之前创建的卷组的名称。

2.4、格式化逻辑卷

在逻辑卷创建完成后,你需要将其格式化为一个文件系统。假设你想要使用ext4文件系统,可以这样做
mkfs.ext4 /dev/backupvg/backuplv

[root@openEuler ~]# mkfs.ext4 /dev/backupvg/backuplv
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 52428800 4k blocks and 13107200 inodes
Filesystem UUID: e4c1f2d9-19c6-4d12-9d80-d3004980c2de
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done  

注意,/dev/backupvg/backuplv是逻辑卷的设备路径,它可能会根据你的系统配置有所不同。可以使用lvdisplay命令来查看逻辑卷的设备路径。

使用lvs 和 lvdisplay 显示逻辑卷信息

[root@openEuler ~]# lvs
  LV       VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  backuplv backupvg -wi-a----- 200.00g                                                    

[root@openEuler ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/backupvg/backuplv
  LV Name                backuplv
  VG Name                backupvg
  LV UUID                Hh4Biz-PF4X-7RWx-RNT7-pn4a-Z7SE-06CKeT
  LV Write Access        read/write
  LV Creation host, time openEuler, 2024-06-20 11:06:36 +0800
  LV Status              available
  # open                 0
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

2.5、 挂载逻辑卷

现在,可以将逻辑卷挂载到一个目录上,以便在文件系统中访问它
mkdir /backup
mount /dev/backupvg/backuplv /backup
在这里插入图片描述
在这个例子中,/backup是你想要挂载逻辑卷的目录。

2.6、 设置逻辑卷开机自动挂载

如果你想要在系统启动时自动挂载逻辑卷,可以编辑/etc/fstab文件并添加相应的行

echo '/dev/backupvg/backuplv/backup ext4 defaults 0 2' | tee -a /etc/fstab

这将会在系统启动时自动挂载逻辑卷到/backup目录。

请注意,在执行这些操作时,请确保你有足够的权限(通常普通用户需要使用sudo),并且谨慎操作以避免数据丢失。

3、扩展逻辑卷

在Linux中,当使用LVM(Logical Volume Manager)时,你可以很容易地扩展逻辑卷(Logical Volume, LV)以获取更多的存储空间

3.1、检查现有LVM结构

首先,你需要知道系统中的PV(Physical Volume, 物理卷)、VG(Volume Group, 卷组)和LV(Logical Volume, 逻辑卷)的状态和大小。

使用pvdisplay、vgdisplay和lvdisplay命令可以查看这些信息。

[root@openEuler ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               backupvg
  PV Size               500.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              127999
  Free PE               76799
  Allocated PE          51200
  PV UUID               7WmQyh-dDXL-JL5d-miB6-j5mS-Yv1G-Kd9TnL
   
[root@openEuler ~]# vgdisplay
  --- Volume group ---
  VG Name               backupvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <500.00 GiB
  PE Size               4.00 MiB
  Total PE              127999
  Alloc PE / Size       51200 / 200.00 GiB
  Free  PE / Size       76799 / <300.00 GiB
  VG UUID               uRzOv7-A4B2-AAen-5uY9-16Fo-vEac-dk9vps
   
[root@openEuler ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/backupvg/backuplv
  LV Name                backuplv
  VG Name                backupvg
  LV UUID                Hh4Biz-PF4X-7RWx-RNT7-pn4a-Z7SE-06CKeT
  LV Write Access        read/write
  LV Creation host, time openEuler, 2024-06-20 11:06:36 +0800
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

3.2、添加物理存储空间

如果你需要更多的物理存储空间,你可以添加一个新的磁盘、分区或者一个现有的未使用的磁盘空间到一个VG中。这可以通过vgextend命令完成。

例如,如果你有一个新的物理卷/dev/sdb1并且你想要将它添加到名为backupvg的VG中,可以这样做

vgextend backupvg /dev/sdb1

3.3、扩展逻辑卷

一旦你有足够的空间在VG中,你就可以使用lvextend命令来扩展LV。

例如,如果你想要扩展名为backupvg 的LV到400GB,可以这样做

lvextend -L 400G /dev/backupvg/backuplv

或者,如果你想要将LV扩展到VG中的所有可用空间,可以使用-l +100%FREE选项:

lvextend -l +100%FREE /dev/backupvg/backuplv

3.4、调整文件系统大小(如果需要)

如果你的LV上有一个文件系统(如ext4、xfs等),并且你已经扩展了LV,你还需要调整文件系统的大小以使用新的空间。

  • 对于ext4文件系统,使用resize2fs命令:
    resize2fs /dev/backupvg/backuplv
[root@openEuler ~]# resize2fs /dev/backupvg/backuplv
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/backupvg/backuplv is mounted on /backup; on-line resizing required
old_desc_blocks = 25, new_desc_blocks = 63
The filesystem on /dev/backupvg/backuplv is now 131070976 (4k) blocks long.
  • 对于xfs文件系统,使用xfs_growfs命令:
xfs_growfs /dev/backupvg/backuplv

注意:不是所有的文件系统都支持在线调整大小。在某些情况下,你可能需要卸载文件系统,扩展LV,然后重新挂载并调整文件系统大小。

3.5、 验证更改

使用lvdisplay和df -h命令来验证你的LV和文件系统是否已经被正确地扩展。

[root@openEuler ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       4.0M     0  4.0M   0% /dev
tmpfs                          1.7G     0  1.7G   0% /dev/shm
tmpfs                          673M  9.1M  664M   2% /run
tmpfs                          4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/sda2                       83G   22G   56G  29% /
tmpfs                          1.7G  8.0K  1.7G   1% /tmp
/dev/mapper/backupvg-backuplv  400G   28K  398G   1% /backup

4、缩容逻辑卷

在Linux中,逻辑卷(Logical Volume, LV)的缩容是一个需要谨慎操作的过程,因为一旦数据丢失,恢复可能会非常困难。以下是执行逻辑卷缩容的基本步骤:

4.1、备份数据:

在执行任何缩容操作之前,请确保备份了逻辑卷上的所有数据。

4.2、检查文件系统:

确保文件系统是健康的,并且没有错误。对于ext4文件系统,可以使用fsck命令进行检查。

4.3、卸载文件系统:

如果逻辑卷正在被用作文件系统,并且该文件系统当前正在被挂载,你需要先卸载它。

umount /backup

4.4、检查文件系统是否真正卸载:

使用df -h或mount命令确保文件系统不再挂载。

4.5、缩小文件系统:

根据你的文件系统类型,使用相应的工具来缩小文件系统。对于ext4,可以使用resize2fs命令。

resize2fs /dev/backupvg/backuplv <new_size_in_sectors_or_bytes>

注意:<new_size_in_sectors_or_bytes>应该小于或等于逻辑卷当前的大小,并且应该是一个合理的值,以确保文件系统完整无损。

或者,如果你想要将文件系统缩小到开始创建的大小(例如200G),可以这样做

[root@openEuler ~]# resize2fs /dev/backupvg/backuplv 200G
resize2fs 1.47.0 (5-Feb-2023)
Please run 'e2fsck -f /dev/backupvg/backuplv' first.

-- 提示首先执行e2fsck -f /dev/backupvg/backuplv

[root@openEuler ~]# e2fsck -f /dev/backupvg/backuplv
e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/backupvg/backuplv: 11/32768000 files (0.0% non-contiguous), 2337051/131070976 blocks
-- 再次执行
[root@openEuler ~]# resize2fs /dev/backupvg/backuplv 200G
resize2fs 1.47.0 (5-Feb-2023)
Resizing the filesystem on /dev/backupvg/backuplv to 52428800 (4k) blocks.
The filesystem on /dev/backupvg/backuplv is now 52428800 (4k) blocks long.

4.6、缩小逻辑卷:

使用lvreduce命令来缩小逻辑卷。
lvreduce -L <new_size_in_GB> /dev/backupvg/backuplv

[root@openEuler ~]# lvreduce -L 200G /dev/backupvg/backuplv
  File system ext4 found on backupvg/backuplv.
  File system size (200.00 GiB) is equal to the requested size (200.00 GiB).
  File system reduce is not needed, skipping.
  Size of logical volume backupvg/backuplv changed from <500.00 GiB (127999 extents) to 200.00 GiB (51200 extents).
  Logical volume backupvg/backuplv successfully resized.
[root@openEuler ~]# 
[root@openEuler ~]# lvs
  LV       VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  backuplv backupvg -wi-a----- 200.00g                                                    
[root@openEuler ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/backupvg/backuplv
  LV Name                backuplv
  VG Name                backupvg
  LV UUID                Hh4Biz-PF4X-7RWx-RNT7-pn4a-Z7SE-06CKeT
  LV Write Access        read/write
  LV Creation host, time openEuler, 2024-06-20 11:06:36 +0800
  LV Status              available
  # open                 0
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   

或者,使用-r选项自动调整文件系统大小(但这可能不是所有文件系统都支持)

lvreduce -r -L <new_size_in_GB> /dev/mapper/vgname-lvname

注意:<new_size_in_GB>是你想要将逻辑卷缩小到的新大小。

4.7、重新挂载文件系统:

如果之前卸载了文件系统,现在你可以重新挂载它。

[root@openEuler ~]# mount /dev/backupvg/backuplv /backup
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.

[root@openEuler ~]# systemctl daemon-reload

[root@openEuler ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       4.0M     0  4.0M   0% /dev
tmpfs                          1.7G     0  1.7G   0% /dev/shm
tmpfs                          673M  9.1M  664M   2% /run
tmpfs                          4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/sda2                       83G   22G   56G  29% /
tmpfs                          1.7G  8.0K  1.7G   1% /tmp
/dev/mapper/backupvg-backuplv  196G   28K  187G   1% /backup

4.8、检查文件系统和逻辑卷的状态:

使用df -h、lvdisplay和vgdisplay等命令来检查文件系统和逻辑卷的状态,确保一切正常。

请注意,在执行这些操作时,请务必小心,因为错误的操作可能会导致数据丢失。如果你不确定如何执行这些步骤,或者担心数据丢失,请考虑寻求专业的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/726129.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MAVEN-SNAPSHOT和RELEASE + 打包到远程仓库

一、快照版本SNAPSHOT和发布版本RELEASE区别 快照版本SNAPSHOT和发布版本RELEASE区别-CSDN博客 在使⽤maven过程中&#xff0c;我们在开发阶段经常性的会有很多公共库处于不稳定状态&#xff0c;随时需要修改并发布&#xff0c;可能⼀天就要发布⼀次&#xff0c;遇到bug时&am…

[面试题]Kafka

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

git merge(3个模式) 与 git rebase 图文详解区别

目录 1 git merge1.1 模式一&#xff1a;fast-forward(–ff)1.2 模式二&#xff1a;non-Fast-forward(–no-ff)1.3 模式三&#xff1a;fast-forward only(–ff-only) 2 git rebase3 区别 1 git merge git merge有好几种不同的模式 默认情况下你直接使用 git merge 命令&#x…

怎么还有人不清楚H3C认证考试流程?给你整理得明明白白

最近不少人都在后台问H3CIE资格认证考试&#xff08;全称&#xff1a;H3C认证路由交换互联网络专家&#xff09;&#xff0c;今天咱们就来聊一聊这个考试流程。第一次报考H3CIE-RS的考生需先参加新华三人才研学中心认可的H3CIE-RS认证培训。 H3C授权培训中心可在新华三官网查询…

迅为RK3568驱动教程第十八期-PWM

系统性PWM课程&#xff0c;完全掌握PWM。采用框架学习法&#xff0c;从基础知识、PWM子系统框架、API函数理论由面到点&#xff0c;逐个击破。通过SG90舵机&#xff0c;呼吸灯的控制把理论转为动手能力。最后从零实现输入捕获驱动程序&#xff0c;深入探究&#xff0c;体验一把…

Python爬虫小白入门(四)PhatomJS+Selenium篇下

一、前言 前文介绍了PhatomJS 和Selenium 的用法&#xff0c;工具准备完毕&#xff0c;我们来看看如何使用它们来改造我们之前写的小爬虫。 我们的目的是模拟页面下拉到底部&#xff0c;然后页面会刷出新的内容&#xff0c;每次会加载10张新图片。 大体思路是&#xff0c;用S…

list的特性及使用

1、list的介绍 1.list是序列容器&#xff0c;允许在序列的任何位置进行时间复杂度为o(1)的插入和删除操作&#xff0c;并且由双向迭代器。 2.list的底层是双链表&#xff0c;双链表不是物理上连续的储存空间&#xff0c;而是不同的地址空间通过next和prev指针连接成顺序表。 …

【每天学会一个渗透测试工具】AppScan安装及使用指南

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 https://www.hcl-software.com/appscan AppScan是一种综合型漏洞扫描工具&#xff0c;采用SaaS解决方案&#xff0c;它将所以…

【Tello无人机】使用Matlab完成控制器的设计—建模

模型辨识篇 在实际的无人机系统中&#xff0c;控制器的设计至关重要&#xff0c;它直接影响无人机的稳定性和响应能力。然而&#xff0c;要设计出高效、可靠的控制器&#xff0c;首先必须准确理解无人机的动态行为&#xff0c;这就需要通过收集输入输出数据来辨识其运动学模型。…

天池人脸识别项目复现

1 项目背景 #c 概述 项目的目的 图像分类是整个计算机视觉领域中最基础的任务&#xff0c;也是最重要的任务之⼀&#xff0c;最适合拿来进⾏学习实践。为了让新⼿们能够⼀次性体验⼀个⼯业级别的图像分类任务的完整流程&#xff0c;本次我们选择带领⼤家完成⼀个对图片中⼈脸进…

从0开始C++(二):类、对象、封装

目录 类&对象的概念 类的内容 对象的创建 ● 栈内存对象 ● 堆内存对象 封装 类&对象的概念 类和对象是一个比较抽象的概念&#xff0c;这里直接用一个实例方便理解。 类&#xff1a;类是一个抽象的概念&#xff0c;用来描述同一类对象的特点&#xff08;比如&am…

从零开始如何学习人工智能?

说说我自己的情况&#xff1a;我接触AI的时候&#xff0c;是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻&#xff0c;人工智能第一次出现我面前&#xff0c;当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料&#xff0c;看视频。随着了解的深入&am…

第 三 方 组 件 e l e m e n t - u i[Vue]

一、组件之间的传值 组件可以由内部的Data提供数据&#xff0c;也可以由父组件通过prop的方式传值。 兄弟组件之间可以通过Vuex等统一数据源提供数据共享 第一种 Movie.vue <template><div><h1>我才不要和你做朋友</h1></div></template&…

怎么为自己的VPS选择合适的CPU和RAM?

为网站选择VPS&#xff08;虚拟专用服务器&#xff09;与为家庭或办公室选择台式机或笔记本电脑没有什么不同。基本上&#xff0c;您要做的就是查看硬件配置并比较功能和价格。 然而&#xff0c;虽然您可能对个人计算机所需的资源类型有一个粗略的估计&#xff0c;但为服务器获…

API接口测试要注意什么?API接口如何开发?

API接口怎么保证数据安全&#xff1f;如何安全调用邮件API接口&#xff1f; API接口不仅能够确保系统的稳定性和可靠性&#xff0c;还能提高开发效率和用户满意度。然而&#xff0c;要进行有效的API接口测试&#xff0c;需要注意多个方面。AokSend将介绍一些关键点&#xff0c…

全面赋能,永久免费!讯飞星火API能力正式免费开放

2023年5月&#xff0c;讯飞星火正式发布&#xff0c;迅速成为千万用户获取知识、学习知识的“超级助手”&#xff0c;成为解放生产力、释放想象力的“超级杠杆”。 2024年5月&#xff0c;讯飞星火API能力正式免费开放&#xff0c;携手生态开发者加快大模型赋能刚需场景。 领…

【软件工程】【22.10】p1

关键字&#xff1a; 软件需求分类、性能需求、数据流图加工、用例关系、捕获系统功能用例、RUP设计层术语、故障、调试、集成测试、需求分析过程、CMMI实践部件、CMMI能力等级 软件需求规约基本性质、模块控制、协作、UML结点、事件、RUP体系结构、RUP移交、静态评估技术、测…

Java共享台球室无人系统支持微信小程序+微信公众号

共享台球室无人系统 &#x1f3b1; 创新台球体验 近年来&#xff0c;共享经济如火如荼&#xff0c;从共享单车到共享汽车&#xff0c;无一不改变着我们的生活方式。而如今&#xff0c;这一模式已经渗透到了更多领域&#xff0c;共享台球室便是其中之一。不同于传统的台球室&a…

DOPE-FITC在细胞定位、动态追踪等方面的应用-星戈瑞

DOPE-FITC作为一种荧光标记磷脂&#xff0c;在细胞生物学研究中发挥着科研作用。其荧光特性和与细胞膜的亲和性&#xff0c;使其成为细胞定位、动态追踪等方面的工具。 细胞定位 DOPE-FITC能够有效地标记细胞膜&#xff0c;使得细胞膜在荧光显微镜下呈现出明亮的绿色荧光。这种…

triton矩阵乘以及缓存优化

这里triton.cdiv(M, META[BLOCK_SIZE_M]) * triton.cdiv(N, META[BLOCK_SIZE_N])&#xff0c;所以grid的形状是一维的。 观察函数内部 pid tl.program_id(axis0)&#xff0c;因为grid是一维的&#xff0c;所以这里就是总块数&#xff0c;我们假设实际A*BC&#xff0c; A&…