Linux 逻辑卷

目录

一、认识

1、概念

2、术语:

1)物理存储设备

2)物理卷

3)卷组

4)PE物理区域

5)逻辑卷

6)LE逻辑区域

7)VGDA卷组描述符区域

二、部署逻辑卷

1、物理卷管理 

2、卷组管理 

3、逻辑卷管理 

三、管理交换分区

1、命令

2、方式:

方式一

方式二 


一、认识

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。 管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

1、概念

通过LVM技术,屏蔽了磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷 上建立相应的文件系统

2、术语:

1)物理存储设备

        ——系统的存储设备文件,如:/dev/hda1、/dev/sda

2)物理卷

        ——简称PV(physical volume),物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区 具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘 等)比较,却包含有与LVM相关的管理参数。

3)卷组

        ——简称VG(Volume Group),可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少 要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。

4)PE物理区域

        ——物理区域(physical extent)是物理卷中可用于分配的最小存储单元,物理区域的 大小默认为4MB。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一 致。

5)逻辑卷

        ——简称LV(logical volume),相当于物理分区。逻辑卷建立在卷组之上,卷组中的未分配 空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷,可以 属于同一个卷组,也可以属于不同的多个卷组。

6)LE逻辑区域

        ——逻辑区域(logical extent)是逻辑卷中可用于分配的最小存储单元,逻辑区域的大 小取决于逻辑卷所在卷组中的物理区域大小。LE的大小和PE的大小一样。

7)VGDA卷组描述符区域

        ——和非LVM系统将包含分区信息的 元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理 卷起始处的卷组描述符区域中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符和一些PE描述符。

二、部署逻辑卷

常见的LVM部署命令如图:

扩容思路:

  1. 给vg进行扩容/缩减(vgextend/vgreduce)

  2. 给lv进行扩容/缩减(lvextend/lvreduce)

  3. lv虽然扩展了,但是建立在其上的文件系统需要再单独扩展,xfs需要使用xfs_growfs命令扩展(xfs不支持缩减),ext4支持扩容及缩减使用的命令时resize2fs。

    lv扩容的前提是 vg有足够的空间可以挪给lv。

    vg缩减,前提有未分配的空间可以用于缩减。  

1、物理卷管理 

[root@localhost ~]# pvcreate /dev/nvme0n2p1    # 创建物理卷pv
[root@localhost ~]# pvs                        # 查看pv,详细查看使用pvdisplay

2、卷组管理 

[root@localhost ~]# vgcreate RedHat /dev/nvme0n2p{1,2}      # 创建vg
[root@localhost ~]# vgcreate -s 1G RedHat /dev/nvme0n2p{1,2}      # -s 指定PE大小
[root@localhost ~]# vgs                                     # 查看vg

# 扩展卷组,创建后,需重启虚拟机才能看到新建的分区
[root@localhost dev]# gdisk /dev/nvme0n2    # 创建一个新的分区
# 将新创建的nvme0n2p3扩到RedHat中
[root@localhost ~]# vgextend RedHat /dev/nvme0n2p3 
  Physical volume "/dev/nvme0n2p3" successfully created.
  Volume group "RedHat" successfully extended

3、逻辑卷管理 

[root@localhost ~]# lvcreate -n RedHat_1v1 -L +1.5G RedHat

# -L 指定LV 的大小
# -n: LV 的名字
# RedHat: 你从哪个VG中创建的LV

[root@localhost ~]# lvs    # 查看lv


# 扩容(注意:使用 -L +1.5G增加1.5G,如果增加到3G,使用-L 3G)
[root@localhost ~]# lvextend -L +1.5G /dev/RedHat/RedHat_1v1 
  Size of logical volume RedHat/RedHat_1v1 changed from 1.50 GiB (384 extents) to 3.00 GiB (768 extents).
  Logical volume RedHat/RedHat_1v1 successfully resized.


[root@localhost ~]# lvs /dev/RedHat/RedHat_1v1 

# 但此时文件系统并没有扩容,原因是创建卷组时只格式化了1.5G的容量,还需再格式化剩余的容量
# 如果df . -h 没有内容显示,可能是因为之前分区重启后没有进行挂载操作
[root@localhost Redhat_1v_one]# df . -h    
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/RedHat-RedHat_1v1  1.5G   43M  1.5G   3% /Redhat_1v_one

# 使用xfs_growfs文件系统扩容(自动把所有未格式化的容量扩容,只能增不能减)
[root@localhost ~]# xfs_growfs /dev/RedHat/RedHat_1v1 
[root@localhost ~]# df . -h    # 扩容后再次查看
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  5.5G   12G  32% /

# 使用ext文件系统扩容
[root@localhost ~]# umount /Redhat_1v_one     # 先取消挂载
#检测文件系统,resize2fs之前会提示先要检测文件系统
[root@localhost ~]# e2fsck -f /dev/RedHat/RedHat_1v1 
[root@localhost ~]# resize /dev/RedHat/RedHat_1v1 3G    #重置文件系统大小
[root@localhost ~]# lvreduce -L 3G /dev/RedHat/RedHat_1v1 
[root@localhost ~]# lvresize -L 3G /dev/RedHat/RedHat_1v1 
[root@localhost ~]# mount /dev/RedHat/RedHat_1v1 /Redhat_1v_one/    # 重新挂载
[root@localhost ~]# df -h

xfs文件系统,只能扩容,不能缩减,用多少扩多少

ext文件系统,既支持扩容(使用resize2fs文件系统扩容),也支持缩减

无论是xfs还是ext4的逻辑卷调整大小都可以用该命令 lvresize -r -L 大小 -n lv设 备名

三、管理交换分区

在Linux系统中,swap交换分区的作用类似于Windows系统中“虚拟内存”。当有程序被调入内存后,但是该程序又不是常被CPU所取用时,那么这些不常被使用的程序将会被放到硬盘的swap交换分区当中, 而将速度较快的内存空间释放给真正需要的程序使用,以避免由于物理内存不足而造成的系统效能低的问题。如果系统没有swap交换分区,或者现有交换分区的容量不够用时,可扩展swap交换分区。

1、命令

        mkswap 分区设备名                        将指定的分区格式化为swap交换文件系统

        swapon 交换分区设备名 | -a           启用(或激活)指定的交换分区或所有交换分区

        swapoff 交换分区设备名 | -a           禁用指定的交换分区或所有交换分区

        swapoff -s                                        查看交换分区的使用情况

        free -m                                             以兆字节为单位显示物理内存、交换分区的使用情况

2、方式:

扩展swap交换分区的方式有两种:

  •         以磁盘分区的方式扩展swap交换分区
  •         以镜像文件的方式扩展swap交换分区

方式一

# 新建分区扩展交换空间
# 创建一个新的分区nvme0n2p4
[root@localhost ~]# fdisk /dev/nvme0n2

# 将nvme0n2p4格式化为swap交换文件系统
[root@localhost ~]# mkswap /dev/nvme0n2p4
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=1b83b30a-bd1b-4ea1-bf54-ff16115646dd

# 启用nvme0n2p4交换分区
[root@localhost ~]# swapon /dev/nvme0n2p4

# 查看nvme0n2p4的使用情况 或者使用cat /proc/swaps命令
[root@localhost ~]# swapon -s
Filename				Type		Size		Used		Priority
/dev/dm-1                               partition	2097148		0		-2    #系统
/dev/nvme0n2p4                          partition	1048572		0		-3    #新建交换分区

# 关闭交换分区
[root@localhost ~]# swapoff /dev/nvme0n2p4 

# 写入/etc/fstab/,实现开机挂载
[root@localhost ~]# vim /etc/fstab
/dev/nvme0n2p4  swap swap defaults 0 0

方式二 

# 使用一个文件来扩展交换空间
# if=input file     of=output file    /dev/zero生成一个无限长度的零字节数据
# 创建一个文件/swap,从无限零资源去读,每一块大小为1M,一共有1024块
[root@localhost ~]# dd if=/dev/zero of=/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.06877 s, 133 MB/s

[root@localhost /]# ll -h    #此时已生成swap的交换空间
...
-rw-r--r--.   1 root root 1.0G Oct  7 13:42 swap
...

# 格式化交换空间
[root@localhost /]# mkswap swap

# 激活当前的交换空间
[root@localhost /]# swapon swap

# 查看当前的虚拟内存
[root@localhost /]# swapon -s
Filename				Type		Size		Used		Priority
/dev/dm-1                               partition	2097148		0		-2
/swap                                   file		1048572		0		-3

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值