Linux逻辑卷管理LVM

简介: 目前我们用的物理磁盘有内存限制,当我们把磁盘占满了,如果将文件放在其他磁盘对于以后的维护很是麻烦,单靠物理磁盘是无法解决空间增长的问题的这个时候逻辑卷就起到了很重要的作用,这篇文章的学习目标是,了解逻辑卷的优势特点,学会如何创建逻辑卷并且扩展逻辑卷。

前言


 目前我们用的物理磁盘有内存限制,当我们把磁盘占满了,如果将文件放在其他磁盘对于以后的维护很是麻烦,单靠物理磁盘是无法解决空间增长的问题的这个时候逻辑卷就起到了很重要的作用,这篇文章的学习目标是,了解逻辑卷的优势特点,学会如何创建逻辑卷并且扩展逻辑卷。


一、逻辑卷简介


目的:管理磁盘的一种方式,性质与基本磁盘无异

特点:随意扩张大小,解决了物理磁盘空间有限的问题。

术语:PV:物理卷(Physical   volume)

         VG:卷组(Volume   Group)

         LV:逻辑卷(Logical   Volume)


二、创建逻辑卷


  创建逻辑卷比创建基本分区多了三步:


变成物理卷————>加入卷组————>在卷组中抽出空间,制作逻辑卷


1、准备物理磁盘


5a15f658acad4688b53432b8c28d25b1.png


可以看到我们sdd、sdf、sdg、sdh、sdi都是可以用的物理磁盘,接下来我将以sdd磁盘来做例子。


2、将物理磁盘转换成物理卷-PV


命令:pvcreate   /dev/sdd


402ec15af2544c52b4fe3da7b1f248e7.png


这个时候sdd磁盘已经转换成了物理卷可以通过pvs命令查看


1d76ba4a6ced45a59d5e0747f54937ee.png


pvs表头信息解读:

  1. ● PV:物理卷
  2. ● VG:卷组
  3. ● Fmt:类型
  4. ● Attr:属性
  5. ● PSize:大小
  6. ● PFree:空余空间


可以看到sdd现在是PV物理卷了,因为还没有加入到卷组,所以VG那一列是空的。空余空间5G。

3、创建卷组


命令:vgcreate   卷组名  /dev/sdd


//创建卷组名为vg1并将sdd加入到vg1卷组
[root@localhost ~]# vgcreate  vg1 /dev/sdd
  Volume group "vg1" successfully created
//查看卷组信息
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <19.02g     0 
  vg1      1   0   0 wz--n-  <5.00g <5.00g


vgs表头解读:

  • ● VG:卷组名
  • ● #PV:物理卷数
  • ● #LV:逻辑卷数
  • ● #SN:编号
  • ● Attr:属性
  • ● VSize:大小
  • ● VFree:可用空间


4、创建逻辑卷


命令:lvcreate  -L  逻辑卷空间大小    -n   逻辑卷名    卷组名

-L:跟空间大小

-n:跟逻辑卷名


//创建逻辑卷lv1抽取vg1卷组的空间4G给逻辑卷lv1
[root@localhost ~]# lvcreate -L 4G -n lv1 vg1
  Logical volume "lv1" created.

5、创建文件系统并挂载


命令同划分基本区间

创建文件系统:mkfs.ext4   /dev/卷组名/逻辑卷名

挂载:mount   /dev/卷组名/逻辑卷名     /挂载点


(1)创建文件系统

b1dcfce44691452b82dc5939667fd424.png


(2) 挂载

01493e067c8c4b16afc1ed80d867019f.png


到这,逻辑卷就创建成功了。


三、VG管理及扩容LV


 用逻辑卷的主要原因是因为逻辑卷可以任意大小,接下来就要介绍如何扩容LV逻辑卷的空间。


1、VG管理(扩大VG)


以原来的VG内存用光为前提,这个时候我们需要扩大VG。

命令:vgextend


1)创建PV,将另一块磁盘转换为物理卷(以sdf为例)

b0f47adfa39745068274587f3269934f.png


2)扩展VG,将PV增加到VG中

2c653e3473cc425284bf14ae8bc11716.png


将sdf加入到vg1中,vgs的输出结果可看到vg1中有两个物理卷,一个上面创建逻辑卷,总空间变为了10G,可用空间是6G,到这VG扩展结束了,还差最后的LV扩容就真正的扩大了逻辑卷的空间。


2、LV扩容


 刚刚扩大了VG,现在需要抽取VG的空间到LV中,以达到扩大逻辑卷空间的效果。


(1)lv扩容


命令:lvextend  -L  需要扩展到多大   /dev/抽取卷组名/逻辑卷名


//从vg1中抽取内存到lv1中将lv1的内存扩展到5G,扩大逻辑卷空间
[root@localhost ~]# lvextend -L 5G /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 4.00 GiB (1024 extents) to 5.00 GiB (1280 extents).
  Logical volume vg1/lv1 successfully resized.
//查看文件系统当前内存,发现lv1的内存并没有扩大
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1               ext4      2.0G  6.0M  1.8G    1% /mnt/disk1
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5
/dev/sdb6               ext4      2.4G  7.3M  2.2G    1% /mnt/disk6
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/disk3
/dev/mapper/vg1-lv1     ext4      3.9G   16M  3.6G    1% /mnt/lv1


从查看文件系统当前内存来看,lv1的内存并没有扩大,我们需要进行最后一步FS扩容。


(2)FS扩容


命令:resize2fs     /dev/vg1/lv1


//FS扩容
[root@localhost ~]# resize2fs  /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg1/lv1 is now 1310720 blocks long.
//查看挂载信息,发现lv1的内存变为了5G
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1               ext4      2.0G  6.0M  1.8G    1% /mnt/disk1
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5
/dev/sdb6               ext4      2.4G  7.3M  2.2G    1% /mnt/disk6
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/disk3
/dev/mapper/vg1-lv1     ext4      4.8G   16M  4.6G    1% /mnt/lv1


这个时候可以看到lv1的内存扩大了。


如果VG中还有空间能够使用,可以直接进行lv扩容步骤进行逻辑卷扩容。


//查看卷组vg信息,发现vg1还有5G可用,这个时候我们可以直接扩容lv
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.02g    0 
  vg1      2   1   0 wz--n-   9.99g 4.99g
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.02g    0 
  vg1      2   1   0 wz--n-   9.99g 4.99g
//将lv1扩容到8G
[root@localhost ~]# lvextend -L 8G /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 5.00 GiB (1280 extents) to 8.00 GiB (2048 extents).
  Logical volume vg1/lv1 successfully resized.
//FS扩容
[root@localhost ~]# resize2fs  /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg1/lv1 is now 2097152 blocks long.
//查看挂载信息发现lv1的内存被扩展到8G
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1               ext4      2.0G  6.0M  1.8G    1% /mnt/disk1
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5
/dev/sdb6               ext4      2.4G  7.3M  2.2G    1% /mnt/disk6
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/disk3
/dev/mapper/vg1-lv1     ext4      7.8G   18M  7.4G    1% /mnt/lv1


逻辑卷管理到这就结束了,文章所用的挂载全是临时挂载,重启电脑后这些挂载信息都会被清空,但是分区以及分好的逻辑卷都是存在的,永久挂载以后会讲解,为了防止出错导致打不开系统先不介绍永久挂载,临时挂载不影响当前学习。



相关文章
|
1月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
2月前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
42 0
|
24天前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
1月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
1月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
158 1
|
1月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
2月前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
42 11
|
2月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
27 1
|
2月前
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
275 9
|
2月前
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。