LVM介绍

一、基本知识

1. LVM是 Logical Volume Manager(逻辑卷管理)的简写它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

 

2. 物理卷(Physical Volume PV)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

 

3. 卷组(Volume Group VG)卷组类似于非LVM系统中的物理硬盘,由物理卷组成。在一个卷组当中可以包含多个物理卷,卷组的边界大小就取决于底层物理卷加起来总共有多大,PV组合起来的大小就是VG的大小。

 

4. 逻辑卷(Logical Volume LV)LVM的逻辑卷类似于非LVM系统中的硬盘分区,每一个逻辑卷就是一个独立的文件系统,当做一个独立的分区来使用。一个VG可以划分出多个LV来,所有LV大小相加不能超过VG的边界。逻辑卷才是真正意义上的可以动态扩展和缩减的设备。

 

5. 物理块(Physical Extend PE)物理块是数据在磁盘上的存取单位,也就是每进行一次I/O操作,最小传输的数据大小。 物理卷只有加入卷组后才有PE。

 

6. 逻辑块(Logical Extend LE)件系统管理的是一个逻辑空间,这个逻辑空间就象一个大的数组,数组的每个元素就是文件系统操作的基本单位――逻辑块,逻辑块是从0开始编号的,而且,逻辑块是连续的。通过逻辑块看到的就是卷组中的一个个PE。

 


二、操作练习

1. 删除一个分区:

  # fdisk /dev/vdb

  对/dev/vdb硬盘进行操作

  # d  

  删除命令   

  # 2

  选择删除的分区

wKioL1VZmQ_zh252AALispSfiOA022.jpg



2. 先创建分区:

  # fdisk -l

  创建之前 查看分区

wKioL1VZmSqRnwN9AAbYodd7X9I796.jpg

  在/dev/vdb 上创建3个分区:

  vdb2  10G

  vdb3  5G

  vdb4  4G

  # fdisk /dev/vdb

  在硬盘/dev/vdb上创建分区

  # n

  新建

  # p

  选择主分区

  # 2

  分区号2

  

  回车

  # +10G

  分区大小10G

  # t

  指定分区类型

  # 2

  要指定的分区号

  # 8e

  8e表示分区使用LVM类型,输入大写L可以查看分区类型的标识

  # p

  查看分区

wKiom1VZl83RPIk5AAV7J9qSNvQ933.jpg

wKiom1VZl93D4jqOAAZO6f6u1WE054.jpg

  # partprobe /dev/vdb 

  重读分区表,确保内核可以看到最新的分区

  # cat /proc/partitions 

  查看分区表信息 分区没有问题

wKioL1VZmWeSXr28AALRqP5M-SQ872.jpg

 

 

3. 实现物理卷PV的创建

  # pvcreate /dev/vdb{2,3,4}

wKiom1VZl_uRE9WCAAIoD3moaOE469.jpg

  # pvs 

  查看当前系统的pv

  # pvdisplay 

  查看pv详细信息

  # pvdisplay /dev/vdb2 

  查看某个PV的详细信息

wKioL1VZmYPzJic4AAL7TSCNPUY623.jpg

  物理卷只有加入卷组后才有PE

  # pvscan 

  扫描当前系统下一共有多少个PV

wKioL1VZmZHA-7hOAAK5ILxlquI745.jpg

 

 

4. 实现卷组VG的创建

  # vgcreate testvg /dev/vdb{2,3} 

  创建VG

wKiom1VZmCWz5_oZAAEYaNNBO7g573.jpg

  # vgs 

  查看当前系统的vg

wKioL1VZmayBR4FOAAFYwumNIlU391.jpg

  # vgdisplay 

  查看vg的详细信息

wKiom1VZmIGyOphUAAPN3g3pKcQ778.jpg

  可以使用pvs查看一个vg中有几个pv

 

 

5. 实现逻辑卷LV的创建

  # lvcreate -L 10G -n testlv testvg

wKiom1VZmKThKJ--AAEACFphwOU820.jpg

  # lvs 

  查看lv信息

wKioL1VZmi_Dxal2AAGX6wwmiTw537.jpg

  # lvdisplay /dev/testvg/testlv 

  查看lv的详细信息

 wKiom1VZmMjwn02lAASs-Wj-cmM913.jpg

  # mke2fs -j /dev/testvg/testlv

  格式化,建立文件系统

  # mount /dev/testvg/testlv /test

  挂载

wKioL1VZmlKTNRYAAAPN9DTT-74819.jpg

  lv的真实路径/dev/mapper/testvg-testlv 所以不能使用-创建卷组名

  # ls -l /dev/mapper

wKiom1VZmOaBhNvZAAJPxmlIJZw266.jpg

  # ls -l /dev/testvg

wKioL1VZmmvhXWnPAAFG9rpb7BE022.jpg

  开机自动挂载

  vim /etc/fstab

  加上 /dev/myvg/testlv  /users ext3 defaults,acl 0 0

  echo /dev/testvg/testlv /test ext3 defaults,acl 0 0 >> /etc/fstab

  # mount -a 

  检查挂载是否有问题

 


三、应用

1. 扩展逻辑卷

  扩展的前提是并不影响逻辑卷原有的数据。扩展的风险其实非常小。

  文件系统边界我们称为逻辑边界,逻辑边界是紧靠在物理边界上创建的。

      第一步 先扩展物理边界

      第二部 扩展逻辑边界

  # df -lh 

  查看磁盘大小

wKiom1VZmbPg9J7dAAGyIidWsk0226.jpg

  当前逻辑卷为10G

  # lvextend -L 12G /dev/testvg/testlv 

  只扩展了物理边界,扩展到12G。

  再扩展逻辑边界

  # resize2fs -p /dev/testvg/testlv

wKioL1VZmzqSSrtUAAL-U1YT2bQ189.jpg

 

 

2. 缩减逻辑卷

  缩减的前提是并不影响逻辑卷原有的数据,缩减逻辑卷的风险是很大的。

 

  第一步 缩减逻辑边界

  第二部 缩减物理边界

 

  注意:

    (1)、不能在线缩减,得先卸载;

    (2)、确保缩减后的空间大小依然能存储原有的所有数据;

    (3)、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态。

 

  # df -lh 

  确保缩减后的空间不会小于已经使用的空间

  # umount /test    

  # e2fsck -f /dev/testvg/testlv

  检查文件系统的正确性

wKiom1VZmc_TX8lXAAOJNh7-M9U959.jpg

  # resize2fs /dev/testvg/testlv 3G

  缩减逻辑边界

wKioL1VZm1eQ_2wfAAKIJ_L6aWc344.jpg

  # lvreduce -L 3G /dev/testvg/testlv

  缩减物理边界

wKioL1VZm2KwxxJaAAMTZgkAPek723.jpg

  # mount -a 

  挂载

 

 

3. 快照卷

 快照能够保留我们创建快照那一刻的数据。

 创建快照卷时要注意:

(1) 生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;

(2) 快照卷应该是只读的;

(3) 跟原卷在同一卷组内。

 使用命令:

lvcreate 

-s 表示快照卷

-n 为快照命名

-p r | w 指定权限

  # lvcreate -L #(如1GB,此处表示创建快照的大小) -s(表示创建快照) -n(后接快照名) SLV_NAME -p(后面接权限) r /PATH/TO/LV(要创建快照的卷)

    # lvcreate -L 100M -n testsnap -s -p r /dev/testvg/testlv

wKiom1VZmfLi960wAAEt_bAyIHE224.jpg

    # lvs

wKiom1VZmjDydC5JAAI3jghMfp4779.jpg

  # mount /dev/testvg/testsnap /mnt

    挂载快照

wKiom1VZmj6CW53XAAGPYG0XKes401.jpg

    快照创建后 原卷的改变不会影响快照中的数据的

    做完全备份

# tar -jcf /tmp/test.tar.bz2 /mnt/* 

备份快照

# umount /mnt

  # lvremove /dev/testvg/testsnap

wKioL1VZm8SC99wpAAHYDU3Ye8w265.jpg

       还原

# tar xf /tmp/users.tar.bz2 -C ./         

-C 展开在什么地方去

 


你可能感兴趣的:(linux,lvm,磁盘)