LVM

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值