加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

lvm逻辑卷管理器

发布时间:2020-12-14 00:40:38 所属栏目:Linux 来源:网络整理
导读:LVM:Logical Volume Manager 。LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无

  LVM:Logical Volume Manager 。LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便。

?

LVM的基本组成部分如下:

物理卷 (PV)一个可供存储LVM的块设备. 例如: 一块硬盘,一个MBR或GPT分区,一个回环文件,一个被内核映射的设备 (例如?dm-crypt).它包含一个特殊的LVM头。

卷组 (VG):物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV.

逻辑卷 (LV):"虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。

物理块 (PE):一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

?

创建lvm步骤

1、fdisk进行分区,并将磁盘分区格式调整成lvm。(如果是某个分区需要此步骤,如果是某块硬盘略过此步)

?????? #fdisk

????????????? t

????????????? 8e

?

2、创建pv物理卷(可以将某个分区划分为pv,也可以将某块硬盘化为pv)

?????? 查看pv命令

??? ?????? # pvdisplay??????????

?????? ?????? # pvs

?

?????? 创建pv步骤???????? ??????

?????? ?????? # pvcreate /dev/sda3(某分区) /dev/sdb(某硬盘)

?

注意:如创建某个硬盘如/dev/sda创建的pv时报错(如下):

Device /dev/sda excluded by a filter

原因:此硬盘已经分区,存在分区表,可以将某个分区划分为pv如/dev/sda1等,如果要将/dev/sda整个硬盘划分为pv可以破坏硬盘/dev/sda的分区表,然后再创建

破坏分区表的两种方法:

??? # dd if=/dev/urandom of=/dev/sda bs=512 count=1

??? # wipefs?-a?/dev/sda

???

3、创建vg卷组

?????? 查看vg命令:

?????? ?????? # vgs

?????? ?????? # vgdisplay

?

?????? 创建vg步骤1:

?????? ?????? # vgcreate [-s 16M] VG_Name /dev/sda3 /dev/sdb??

????????????? ?????? -s 16M #指定PE大小为16M,如不指定默认为4M

?????? 步骤2(扩展vg时用):

?????? ?????? # vgextend VG_Name /dev/sda4

?

4、创建lv逻辑卷

?????? 查看lv命令

?????? ?????? # lvs

?????? ?????? # lvdisplay

?

?????? 创建lv步骤1:

?????? # lvcreate -L #[mMgGtT] -n LV_Name VG_Name

????????????? -l 3000 ???# 3000为pe的个数

?????? ?????? -L 8G????? ? # 8G为实际容量容量,建议采用此方法

?????? 步骤2:对创建好的lv逻辑卷生成文件系统

?????? ?????? # mke2fs -t ext4 /dev/VG_Name/LV_Name

?????? 步骤3:将lv挂载

?????? ?????? # mount /dev/VG_Name/LV_Name /media

?

5、扩大lv逻辑卷

方法一:

?????? 步骤1:扩大逻辑卷

?????? ?????? # lvextend -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name???

????????????? ?????? -l +100%FREE? ???????????????????????? #将所有剩余空间都进行扩展

?

?????? 步骤2:将扩大的逻辑卷空间进行文件系统扩展调整

? ? ? ? ? ? ? (1)ext系列扩展文件系统采用此命令

?????? ?????? ?????? # resize2fs /dev/VG_Name/LV_Name

? ? ? ? ? ? ? (2)xfs系列扩展文件系统采用此命令,注意:要接挂载的目录/media

?????? ?????? ?????? # xfs_growfs /media???? ????

?

方法二:

?????? 可通过一条命令直接扩展文件系统,替代步骤1和步骤2,包括ext,xfs? ??

?????? ?????? # lvextend -r -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name?????? ?

?

6、缩减lv逻辑卷:只有ext系列支持缩减,xfs不支持缩减

?????? 步骤一:取消挂载

?????? ?????? # umount ?/dev/VG_Name/LV_Name

?????? 步骤2:检查文件系统完整性

?????? ?????? # e2fsck -f /dev/VG_Name/LV_Name? ?

?????? 步骤3:缩减文件系统容量

?????? ?????? # resize2fs /dev/VG_Name/LV_Name #[mMgGtT]????? ?????

?????? 步骤4:缩减逻辑卷容量

?????? ?????? # lvreduce -L [-]#[mMgGtT] /dev/ VG_Name/LV_Name

?????? 步骤5:重新挂载缩减好的逻辑卷

?????? ?????? # mount ?/dev/VG_Name/LV_Name ?/media

??

7、快照:创建快照相当于针对某个逻辑卷lv创建了还原点。快照卷和原逻辑卷lv在同一个卷组vg中。

?????? 需要查看vg中空间是不是够创建快照,创建快照也相当于创建一个lv

?

创建快照:

?????? # lvcreate? -L #[mGgGtT] -p r -s -n snapshot_lv_name /dev/VG_Name/LV_Name

????????????? -p r? # 设置快照为只读属性

????????????? -s??? # 创建快照

?????? 示例:

????????????? # lvcreate -L 1G -p r -s -n kuaizhao /dev/VG_Name/LV_Name??? ?

?

? ? ? ?注意:快照可以像一般的lv一样挂载,xfs的快照挂载的时候需要给mount加扩展选项 # mount -o nouuid,ro

?

快照还原:

?????? 步骤1:取消快照和逻辑卷的挂载

??????   # umount /users

?????? 步骤2:将快照合并到源lv上,注意还原后快照自动删除

??????   # lvconvert --merge /dev/VG_Name /kuaizhao

?

lvm创建举例:

1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
# pvcreate /dev/sdb /dev/sdc                 #创建pv
# vgcreate -s 16M  testvg /dev/sdb  /dev/sdc     #创建vg
# lvcreate -L 5G -n testlv testvg             #创建lv
# mkfs.ext4 /dev/testvg/testlv                #创建lv的文件系统
# mkdir  /users                              #创建挂载目录
# mount /dev/testvg/testlv /users/            #挂载

2) 扩展testlv至7G,要求archlinux用户的文件不能丢失
# cp -a /etc/ /users/      #复制测试文件
# lvextend -r -L 7G -n /dev/testvg/testlv      #扩展lv到7G 3) 收缩testlv至3G,要求archlinux用户的文件不能丢失
# umount /users/ #卸载
# e2fsck -f /dev/testvg/testlv            #检查文件系统
# resize2fs /dev/testvg/testlv 3G          #缩减文件系统
# lvreduce -L 3G /dev/testvg/testlv        #缩减lv容量
# mount /dev/testvg/testlv /users/         #挂载

4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
# lvcreate -L 1G -p r -s -n kuaizhao /dev/testvg/testlv   #创建快照
# rm /users/etc/passwd                     #删除文件测试
# umount /users/
# lvconvert --merge /dev/testvg/kuaizhao            #快照恢复
# mount /dev/testvg/testlv /users/              #重新挂载恢复后的lv
# ls /users/etc/passwd                        #查看文件是否恢复

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读