运维学习18

来源:互联网 发布:上海近几年gdp数据 编辑:程序博客网 时间:2024/06/06 03:38

     第五单元 LVM管理


 lvm

lvm Logical Volume Manager,逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv  Physical Volume,物理卷,
vg  Volume Group,物理卷组
pe  physical extend,物理拓展,lvm最小的存储单元

 lvm设备的制作

首先划分lvm所用到的设备,这些设备功能id必须是linux LVM(8e)

1、lvm的建立
pvcreate /dev/vdb1         ##把物理分区做成物理卷
pvs | pvdisplay            ##查看物理卷

vgcreate vg0 /dev/vdb1         ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs | vgdisplay            ##查看逻辑卷组

lvcreate -L 200M -n lv0 vg0         ##在vg0这个组中建立lv0设备,-L 指定设备大小 -n 指定设备名称
lvs | lvdisplay                ##对逻辑卷设备进行查看


2、针对xfs文件系统-----lvm设备的扩大(只可以扩大,不可以缩小)
1)lvm扩大
lvextend -L 500M /dev/vg0/lv0      ##扩大lvm设备到500M
xfs_growfs /dev/vg0/lv0             ##扩大xfs文件系统到设备大小

2)vg扩大
pvcreate /dev/vdb2         ##在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2              ##把新建的/dev/vdb2添加到vg0中


3、针对ext文件系统-----lvm设备的扩大(可拉伸也可缩减)
1)lvm扩大
lvextend -L 2G /dev/vg0/lv0     ##扩大lvm设备到2G
resize2fs /dev/vg0/lv0         ##设备文件系统大小和设备同步

2)vg扩大
pvcreate /dev/vdb3              ##在pv中增加一块设备/dev/vdb3
vgextend vg0 /dev/vdb3          ##把新建的/dev/vdb3添加到vg0中

3)lvm缩减
umount /dev/vg0/lv0        ##卸载正在使用的设备,因为文件系统的缩减不支持在线操作
e2fsck -f /dev/vg0/lv0         ##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs /dev/vg0/lv0 1G       ##把文件系统缩减到1G
lvreduce -L 1G /dev/vg0/lv0         ##设备缩减到1G

4)vg缩减
####在vg缩减时只能缩减没有被占用的设备
pvmove 设备1 设备2                     ##把设备1上的所有数据移动到设备2上
vgreduce vg0 /dev/vdb1              ##把vg0中的/dev/vdb1删除
pvremove /dev/vdb1                  ##把/dev/vdb1上的lvm管理信息删除


   lvm快照的原理及制作

lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0
##给/dev/vg0/lv0建立快照,-L指定快照名字,-s指定快照模板设备
mount /dev/vg0/lv0-backup /usrdata
##当快照设备里的数据被更改,如果想还原,删除快照设备,重新建立快照即可


6、lvm的删除
umount -> lvremove -> vgremove -> pvremove ->fdisk /dev/vdb->partprobe




[root@server188 ~]# fdisk /dev/vdb
###############################################################
Command (m for help): n
Partition type:
   p  primary (0 primary, 0 extended, 4 free)
   e  extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):+1G
Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): t
Selected partition 1

Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
#####################################################################
以上操作为建立设备功能id是linux LVM(8e)的分区,dev/vdb{2,3,5}与/dev/vdb1类似
#####################################################################

Command (m for help): n
Partition type:
   p  primary (3 primary, 0 extended, 1 free)
   e  extended
Select (default e): e
Selected partition 4
First sector (6293504-20971519, default 6293504):
Using default value 6293504
Last sector, +sectors or +size{K,M,G} (6293504-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 7 GiB is set
####################################################################
理论上一个设备最多可以划分四个分区,当然如果需要多于4个分区的话,必须将第4个分区化为逻辑分区。
####################################################################


Command (m for help): p

   Device Boot      Start         End      Blocks  Id  System
/dev/vdb1            2048     2099199    1048576   8e  Linux LVM
/dev/vdb2         2099200     4196351    1048576   8e  Linux LVM
/dev/vdb3         4196352     6293503    1048576   8e  Linux LVM
/dev/vdb4         6293504   20971519     7339008    5 Extended
/dev/vdb5         6295552     8392703    1048576   8e  Linux LVM

Command (m for help): wq
The partition table has been altered!
[root@server188 ~]# partprobe


  lvm设备的拉伸

##将/dev/mapper/vg0-lv0格式化为ext格式
[root@server188 ~]# umount /dev/mapper/vg0-lv0
[root@server188 ~]# mkfs.ext4 /dev/mapper/vg0-lv0

[root@server188 ~]# lvextend -L 2G /dev/vg0/lv0     ##此时要扩展到2G,但vg中容量<2G,因此vg中加入新的物理卷
  Extending logical volume lv0 to 2.00GiB
  Insufficient free space: 387 extentsneeded, but only 130 available

     添加新的pv,使vg容量增大
[root@server188 ~]# pvcreate /dev/vdb2
  Physical volume "/dev/vdb2"successfully created
[root@server188 ~]# vgextend vg0 /dev/vdb2
  Volume group "vg0"successfully extended
[root@server188 ~]# vgs
  VG  #PV #LV #SN Attr   VSizeVFree
  vg0   2   1   0 wz--n- 1.99g 1.50g


          拉伸设备
[root@server188 ~]# lvextend -L 2G /dev/vg0/lv0
  Extending logical volume lv0 to 2.00GiB
  Logical volume lv0 successfullyresized
[root@server188 ~]# resize2fs /dev/vg0/lv0
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 2097152 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 2097152 blocks long.

[root@server188 ~]# mount /dev/vg0/lv0 /usrdata/
[root@server188 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
.......         ......  ...     ...
/dev/mapper/vg0-lv0  2.0G  2.9M 1.9G   1% /usrdata


       lvm设备的缩减
[root@server188 ~]# umount /dev/vg0/lv0
[root@server188 ~]# e2fsck -f /dev/vg0/lv0
[root@server188 ~]# resize2fs /dev/vg0/lv0 200M
[root@server188 ~]# lvreduce -L 200M /dev/vg0/lv0
 

********vg的缩减
##缩减没有被使用的/dev/vdb2
[root@server188 ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree  
  /dev/vdb1  vg0 lvm2 a--  1020.00m  820.00m
  /dev/vdb2  vg0 lvm2 a--  1020.00m 1020.00m
[root@server188 ~]# vgreduce vg0 /dev/vdb2
  Removed "/dev/vdb2" fromvolume group "vg0"
[root@server188 ~]# pvremove /dev/vdb2
  Labels on physical volume"/dev/vdb2" successfully wiped
[root@server177 ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree 
  /dev/vdb1  vg0 lvm2 a--  1020.00m 820.00m



##缩减正在被使用的/dev/vdb1,要先将/dev/vdb1中的数据移动到/dev/vdb2上,最后再移除
[root@server188 ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree  
  /dev/vdb1  vg0 lvm2 a--  1020.00m  820.00m
  /dev/vdb2  vg0  lvm2a--  1020.00m 1020.00m
[root@server188 ~]# pvmove /dev/vdb1 /dev/vdb2
  /dev/vdb1: Moved: 100.0%
[root@server188 ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree  
  /dev/vdb1  vg0 lvm2 a--  1020.00m 1020.00m
  /dev/vdb2  vg0 lvm2 a--  1020.00m  820.00m
[root@server188 ~]# vgreduce vg0 /dev/vdb1
  Removed "/dev/vdb1" fromvolume group "vg0"
[root@server188 ~]# pvremove /dev/vdb1
  Labels on physical volume"/dev/vdb1" successfully wiped
[root@server188 ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree 
  /dev/vdb2  vg0 lvm2 a--  1020.00m 820.00m



       lvm快照
[root@server188 ~]# mount /dev/mapper/vg0-lv0 /usrdata/
[root@server188 ~]# touch /usrdata/file{1..10}

[root@server188 ~]# umount /usrdata/
[root@server188 ~]# lvcreate -L 30M -n lv0-back -s /dev/vg0/lv0
  Rounding up size to full physicalextent 32.00 MiB
  Logical volume "lv0-back"created
[root@server188 ~]# mount /dev/vg0/lv0-back /usrdata/
[root@server188 ~]# ls /usrdata/
file1   file2  file4 file6  file8  lost+found
file10  file3  file5 file7  file9


       lvm的删除
[root@server188 ~]# umount /dev/mapper/vg0-lv0--back
[root@server188 ~]# lvremove /dev/vg0/lv0
[root@server188 ~]# vgremove vg0
  Volume group "vg0"successfully removed
[root@server188 ~]# pvs
  No device found for PV EPJAqQ-zBhQ-03nT-gL6w-ih2F-RsbA-5GpUNf.
  PV         VG  Fmt  Attr PSize PFree
  /dev/vdb1       lvm2 a-- 1.00g 1.00g
  /dev/vdb2       lvm2 a-- 1.00g 1.00g
[root@server188 ~]# pvremove /dev/vdb{1..2}
  No device found for PVEPJAqQ-zBhQ-03nT-gL6w-ih2F-RsbA-5GpUNf.
  Labels on physical volume"/dev/vdb1" successfully wiped
  Labels on physical volume"/dev/vdb2" successfully wiped
[root@server188 ~]# fdisk /dev/vdb  ##在此处d删除划分的设备分区
[root@server188 ~]# partprobe

 

0 0
原创粉丝点击