LVM

    xiaoxiao2021-12-14  20

    linux磁盘到文件系统大体结构: 磁盘-->(LVM RAID等) --> 文件系统

    LVM

    Logical Volume Manage(逻辑卷管理)

    是linux环境下对底层磁盘的一种管理机制(方式),处在物理磁盘和文件系统之间

    PV

    Physical Volume(物理卷)

    VG

    Volume Group(卷组)

    LV

    Logical Volume(逻辑卷)

    最小存储单位为: PE

    总结:

    名称              最小存储单位

    硬盘              扇区(512字节)

    文件系统      block(1K 或 4K)

    RAID             chunk(512K) mdadm -c

    LVM               pe (16M 自己定义)

    步骤

    添加一块硬盘

    准备分区

    [root@localhost ~]#fdisk /dev/sdc

    [root@localhost ~]# ls /dev/sdc* /dev/sdc  /dev/sdc1  /dev/sdc2  /dev/sdc3

    制作PV

    [root@localhost ~]# rpm -qf `which pvcreate` lvm2-2.02.130-5.el7.x86_64

    [root@localhost ~]# pvcreate /dev/sdc{1,2}   Physical volume "/dev/sdc1" successfully created   Physical volume "/dev/sdc2" successfully created

    制作VG

    [root@localhost ~]# vgcreate Vg1 /dev/sdc{1,2}   Volume group "Vg1" successfully created

    制作LV

    [root@localhost ~]# lvcreate -n LV1 -L 150M Vg1           #-n 名字 #-L 大小   Rounding up size to full physical extent 152.00 MiB   Logical volume "LV1" created.

    LV层次结构图:

    各种查看:

    #pvs          #pvscan            #pvdisplay

    #vgs          #vgscan            #vgdisplay

    #lvs          #lvscan            #lvdisplay

    [root@localhost ~]# pvdisplay   --- Physical volume ---   PV Name               /dev/sdc1   VG Name               Vg1   PV Size               100.00 MiB / not usable 4.00 MiB   Allocatable           yes (but full)   PE Size               4.00 MiB   Total PE              24   Free PE               0   Allocated PE          24   PV UUID               33mepD-QNke-yXE5-Fomb-hnCe-GLE7-4DU4bU       --- Physical volume ---   PV Name               /dev/sdc2   VG Name               Vg1   PV Size               100.00 MiB / not usable 4.00 MiB   Allocatable           yes   PE Size               4.00 MiB   Total PE              24   Free PE               10   Allocated PE          14   PV UUID               tlwhsJ-33nM-77Wf-4p42-YWua-6ven-A2gom0

    创建时指定PE大小

    [root@localhost ~]# vgcreate-s 16M Vg1 /dev/sdc1 /dev/sdc2   #-s指定PE的大小

    使用: 格式化

    [root@localhost ~]# mkfs.ext4 /dev/Vg1/LV1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 38912 inodes, 155648 blocks 7782 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=33816576 19 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks:     8193, 24577, 40961, 57345, 73729 Allocating group tables: done                             Writing inode tables: done                             Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done

    挂载

    [root@localhost ~]# mount /dev/Vg1/LV1 /opt/ [root@localhost ~]# mount

    ...../dev/mapper/Vg1-LV1 on /opt type ext4 (rw,relatime,data=ordered)

    [root@localhost ~]# ll /dev/Vg1/LV1 lrwxrwxrwx 1 root root 7 Dec  2 15:42 /dev/Vg1/LV1 -> ../dm-0 [root@localhost ~]# ll /dev/mapper/Vg1-LV1 lrwxrwxrwx 1 root root 7 Dec  2 15:42 /dev/mapper/Vg1-LV1 -> ../dm-0

    LV扩展:

    LVM支持动态扩容

    [root@localhost ~]# vgs   VG   #PV #LV #SN Attr   VSize   VFree   Vg1    2   1   0 wz--n- 192.00m 40.00m [root@localhost ~]# lvs   LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert   LV1  Vg1  -wi-ao---- 152.00m

    [root@localhost ~]# lvextend -L +30M /dev/Vg1/LV1   Rounding size to boundary between physical extents: 32.00 MiB   Size of logical volume Vg1/LV1 changed from 152.00 MiB (38 extents) to 184.00 MiB (46 extents).   Logical volume LV1 successfully resized.

    [root@localhost ~]# lvs   LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert   LV1  Vg1  -wi-ao---- 184.00m

    [root@localhost ~]# df -lh Filesystem           Size  Used Avail Use% Mounted on /dev/mapper/Vg1-LV1  144M  1.6M  132M   2% /opt

    #说明 只从磁盘扩展到lv 还未到文件系统中去

    [root@localhost ~]# resize2fs /dev/Vg1/LV1 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/Vg1/LV1 is mounted on /opt; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/Vg1/LV1 is now 188416 blocks long. [root@localhost ~]# df -lh            #扩展成功 Filesystem           Size  Used Avail Use% Mounted on /dev/mapper/Vg1-LV1  175M  1.6M  161M   1% /opt

    VG扩展:

    [root@localhost ~]# vgextend Vg1 /dev/sdc3   Physical volume "/dev/sdc3" successfully created   Volume group "Vg1" successfully extended [root@localhost ~]# pvs   PV         VG   Fmt  Attr PSize  PFree   /dev/sdc1  Vg1  lvm2 a--  96.00m     0   /dev/sdc2  Vg1  lvm2 a--  96.00m  8.00m   /dev/sdc3  Vg1  lvm2 a--  96.00m 96.00m   #扩展成功

    VG缩小: [root@localhost ~]# pvs   PV         VG   Fmt  Attr PSize  PFree   /dev/sdc1  Vg1  lvm2 a--  96.00m     0   /dev/sdc2  Vg1  lvm2 a--  96.00m  8.00m   /dev/sdc3  Vg1  lvm2 a--  96.00m 96.00m [root@localhost ~]# vgreduce Vg1 /dev/sdc3   Removed "/dev/sdc3" from volume group "Vg1" [root@localhost ~]# pvs   PV         VG   Fmt  Attr PSize   PFree     /dev/sdc1  Vg1  lvm2 a--   96.00m      0   /dev/sdc2  Vg1  lvm2 a--   96.00m   8.00m   /dev/sdc3       lvm2 ---  100.00m 100.00m [root@localhost ~]# pvremove /dev/sdc3   Labels on physical volume "/dev/sdc3" successfully wiped LV移除:

    [root@localhost ~]# umount /opt/ [root@localhost ~]# lvremove /dev/Vg1/LV1 Do you really want to remove active logical volume LV1? [y/n]: y   Logical volume "LV1" successfully removed

    VG移除:

    [root@localhost ~]# vgremove Vg1   Volume group "Vg1" successfully removed

    PV移除:

    [root@localhost ~]# pvs   PV         VG   Fmt  Attr PSize   PFree     /dev/sdc1       lvm2 ---  100.00m 100.00m   /dev/sdc2       lvm2 ---  100.00m 100.00m [root@localhost ~]# pvremove /dev/sdc1   Labels on physical volume "/dev/sdc1" successfully wiped [root@localhost ~]# pvs   PV         VG   Fmt  Attr PSize   PFree     /dev/sdc2       lvm2 ---  100.00m 100.00m [root@localhost ~]# pvremove /dev/sdc2   Labels on physical volume "/dev/sdc2" successfully wiped [root@localhost ~]# pvs [root@localhost ~]#

    LVM快照

    lvm 快照有两大用途,一是用来克隆虚拟机 例如 做 xen虚拟机时, 可先新建一台完整虚拟机, 假设大小为10G 然后我们可以在这台10G虚拟机上

    创建一个3G的快照 接着通过这个3G快照启动虚拟机,做完实验后 可以直接删除快照而保持完整虚拟机的纯净

    lvm快照的第二大用途是实时备份(momet-in-time), 即为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可

    暂时保持不变,系统本身继续运行,通过备份快照来实现不中断服务的备份

    原来有一个lv的基础上

    #lvcreate -s -n lv_NAME_bak -L 200M /dev/Vg1/LV1

    #创建一个名字为lv_NAME_bak 大小 为200M的快照

    #-s snapshot -n name

    [root@localhost ~]# lvcreate -s -n lvl_sp -L 30M  /dev/Vg1/LV1   Rounding up size to full physical extent 32.00 MiB   Logical volume "lvl_sp" created. [root@localhost ~]# lvs   LV     VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert   LV1    Vg1  owi-a-s--- 152.00m                                                       lvl_sp Vg1  swi-a-s---  32.00m      LV1    0.00 [root@localhost ~]# mount /dev/Vg1/lvl_sp1 /tmp/lv1-back/

    [root@localhost ~]# cp /etc/passwd /opt/ [root@localhost ~]# ls /opt/  #LV1挂在点 lost+found/ passwd      [root@localhost ~]# ls /tmp/lv1-back/  #lvl_sp1挂在点 lost+found  passwd

    转载请注明原文地址: https://ju.6miu.com/read-964089.html

    最新回复(0)