LVM——如何让你的磁盘空间可大可小

逻辑卷管理器(LVM)

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

允许在多个物理设备间重新组织文件系统

         将设备指定为物理卷

         用一个或者多个物理卷来创建一个卷组

         物理卷是用固定大小的物理区域(Physical Extent,PE )来定义的

         在物理卷上创建的逻辑卷是由物理区域(PE )组成

         可以在逻辑卷上创建文件系统

LVM: Logical Volume Manager,Version:2

         dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

         设备名:/dev/dm-#

         软链接:

         /dev/mapper/VG_NAME-LV_NAME

            /dev/mapper/vol0-root

         /dev/VG_NAME/LV_NAME

            /dev/vol0/root

LVM可以弹性的更改LVM的容量

通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量

lvm.png

pv管理工具:

pvs:简要pv信息显示

pvdisplay:显示pv的详细信息

pvcreate /dev/DEVICE:创建pv或增加pv磁盘

pvmove /dev/DEVICE:把某块磁盘中使用的PE数据块,搬到其他磁盘中去

pvremove /dev/DEVICE…:将磁盘pv属性移除,不具有pv属性

vg管理工具:

vgs:简要vg信息显示

vgdisplay:显示vg的详细信息

vgcreate [-s #[kKmMgG]] VolumeGroupName /dev/DEVICE….:创建vg

    -s:指定LVM中块(PE)的大小

vgextend VGName /dev/DEVICE….:扩展vg

vgreduce VGName /dev/DEVICE….:从vg中移除某块磁盘设备

    注意:vgreduce移除磁盘空间需要先移动该磁盘空间中被使用的PE块,使用pvmove命令

vgremove VGName:将磁盘vg属性移除,不具有vg属性

lv管理工具:

lvs:简要lv信息显示

lvdisplay:显示lv的详细信息

lvcreate -L #[mMgGtT] -n LVName VGName :创建lv

    -L:指定lv空间的大小

    -n:指定lv的名字,在磁盘上表示为/dev/VGName/LVName

lvextend -L [+]#[mMgGtT] /dev/DEVICE….:扩展vg

    +表示在当前系统的基础上增加#的空间

    不写+表示把当前系统扩展成#的空间

lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName:缩减lv磁盘空间

    -表示在当前系统的基础上减少#的空间

    不写-表示把当前系统缩减成#的空间

    注意:要缩减lv的磁盘空间,要先缩减文件系统的空间

lvremove LVName:将磁盘vg属性移除,不具有vg属性

重设文件系统大小:

resize2fs device

    当前lv有多大,扩展到多大

resize2fs device #[mMgGtT]

    当前文件系统改变成#的空间大小

扩展逻辑卷:

# lvextend -L [+]#[mMgGtT] /dev/VGName/LVName

# resizefs /dev/VGName/LVName

    扩展逻辑卷需要先扩展lv的空间,在扩展文件系统大小,可以在线扩展


百分百使用vg空间:

        # lvextend -r -l +100%FREE /dev/VGName/LVName

缩减逻辑卷:

# umount /dev/VGName/LVName

# e2fsck -f /dev/VGName/LVName

# resizefs /dev/VGName/LVName #[mMgGtT]

# lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName

# mount /dev/VGName/LVName

注意:缩减有可能导致文件数据丢失,且原文件已经占用20G空间,则缩减不能低于20G

文件系统阶段:

要想真正使用lvm,必须对新建立的lv进行格式化挂载

# mke2fs -t ext4 /dev/VAName/LVName

# mount /dev/VAName/LVName /DIR

逻辑卷管理器快照:

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择

快照只有在它们和原来的逻辑卷不同时才会消耗空间

         在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间

         当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中

         快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据

         建立快照的卷大小只需要原始逻辑卷的15% ~20%就够了,也可以使用lvextend放大快照

为现有逻辑卷创建快照:

注意:快照卷和原卷是在同一目录下

# lvcreate -L #[mMgGtT] -s -n snap-data -p r /dev/VGName/snap-data

         -L:大小

         -n:快照卷

         -s:原卷

         -p:快照卷数据(-r 只读)

挂载快照:

# mkdir -p /mnt/snap

# mount -o ro /dev/VGName/snap-data /mnt/snap

删除快照:

# umount /mnt/databackup

# lvremove /dev/VGName/snap-data

    移除快照要使用设备名

作业:1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG ;要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

[root@CentOS6 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /media/CentOS_6.8_Final
sda      8:0    0  100G  0 disk
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0 97.8G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0   10G  0 disk
sdc      8:32   0   10G  0 disk
sdd      8:48   0   10G  0 disk
[root@CentOS6 ~]# pvs
[root@CentOS6 ~]# pvcreate /dev/sd{b,c}
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@CentOS6 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sdb        lvm2 ---- 10.00g 10.00g
  /dev/sdc        lvm2 ---- 10.00g 10.00g
[root@CentOS6 ~]# vgcreate -s 16MB testvg /dev/sd{b,c}
  Volume group "testvg" successfully created
[root@CentOS6 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  testvg   2   0   0 wz--n- 19.97g 19.97g
[root@CentOS6 ~]# vgdisplay
  --- Volume group ---
  VG Name               testvg
......
  VG Size               19.97 GiB
  PE Size               16.00 MiB
......
  Free  PE / Size       1278 / 19.97 GiB
  VG UUID               pqeXTx-cqR6-MVCv-JhFK-V14f-U2kn-3i3y7y
[root@CentOS6 ~]# pvs
  PV         VG     Fmt  Attr PSize PFree
  /dev/sdb   testvg lvm2 a--u 9.98g 9.98g
  /dev/sdc   testvg lvm2 a--u 9.98g 9.98g
[root@CentOS6 ~]# lvcreate -L 5G -n testlv testvg
  Logical volume "testlv" created.
[root@CentOS6 ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv testvg -wi-a----- 5.00g
[root@CentOS6 ~]# mkfs.ext4 /dev/testvg/testlv
....
[root@CentOS6 ~]# mkdir /users
[root@CentOS6 ~]# mount /dev/testvg/testlv /users
[root@CentOS6 ~]# cd /users
[root@CentOS6 users]# ls
lost+found
[root@CentOS6 users]# cp /etc/fstab /etc/issue /etc/rc.d -r ./
[root@CentOS6 users]# ls
fstab  issue  lost+found  rc.d

2、新建用户archlinux,要求其家目录为/users/archlinux,而后su 切换至archlinux用户,复制/etc/pam.d目录至自己的家目录

[root@CentOS6 users]# useradd -d /users/archlinux archlinux
[root@CentOS6 users]# su - archlinux
[archlinux@CentOS6 ~]$ pwd
/users/archlinux
[archlinux@CentOS6 ~]$ cp /etc/pam.d -r ./
[archlinux@CentOS6 ~]$ ls
pam.d
[archlinux@CentOS6 ~]$ ls ../
archlinux  fstab  issue  lost+found  rc.d

3、扩展testlv至7G

[root@CentOS6 users]# lvextend -L 7G /dev/testvg/testlv
  Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
  Logical volume testlv successfully resized.
[root@CentOS6 users]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      4.8G   11M  4.6G   1% /users
[root@CentOS6 users]# resize2fs /dev/testvg/testlv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/testvg/testlv is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/testvg/testlv to 1835008 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 1835008 blocks long.
[root@CentOS6 users]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      6.8G   12M  6.5G   1% /users

4、收缩testlv至3G

[root@CentOS6 ~]# umount /users
[root@CentOS6 ~]# e2fsck -f /dev/testvg/testlv
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 533/458752 files (0.0% non-contiguous), 64627/1835008 blocks
[root@CentOS6 ~]# resize2fs /dev/testvg/testlv 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.
[root@CentOS6 ~]# lvreduce -L -4G /dev/testvg/testlv
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
  Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
  Logical volume testlv successfully resized.
[root@CentOS6 ~]# mount /dev/testvg/testlv /users
[root@CentOS6 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      2.9G  8.3M  2.7G   1% /users
[root@CentOS6 ~]# ls /users/
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 ~]# ls /users/archlinux/
pam.d

5 、对testlv 创建快照,并尝试基于快照备份数据,验正快照的功能

[root@CentOS6 ~]# cd /users
[root@CentOS6 users]# lvcreate -L 500M -s -n snap_lv -p r /dev/testvg/testlv               //创建快照卷
  Rounding up size to full physical extent 512.00 MiB
  Logical volume "snap_lv" created.
[root@CentOS6 users]# lvs
  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  snap_lv testvg sri-a-s--- 512.00m      testlv 0.00                                   
  testlv  testvg owi-aos---   3.00g                                                    
[root@CentOS6 users]# mount /dev/testvg/snap_lv /mnt                 //快照卷和原卷在同一磁盘中,挂载快照卷到/mnt目录下
mount: block device /dev/mapper/testvg-snap_lv is write-protected, mounting read-only
[root@CentOS6 users]# pwd
/users
[root@CentOS6 users]# ls
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 users]# ls /mnt
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 users]# echo xxx > /users/issue                 //以下为验证快照卷功能
[root@CentOS6 users]# cat /users/issue
xxx
[root@CentOS6 users]# cat /mnt/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
[root@CentOS6 users]# rm /users/fstab 
rm: remove regular file `/users/fstab'? y
[root@CentOS6 users]# ls
archlinux  issue  lost+found  rc.d
[root@CentOS6 users]# ls /mnt/
archlinux  fstab  issue  lost+found  rc.d


原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/41122

(0)
megedugaomegedugao
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • LAMP 通过使用脚本的方式安装并部署Discuz

    该脚本有很多辅助的部分,主要是为了让脚本在中途运行失败可以多次运行,所产生的结果是预期的,与第一运行并成功的结果是一样的。初次摄入bash脚本有很多不足,敬请指正。 所需要的软件 apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 Discuz_X3.2_SC_UTF8.zip freetype-2.5.4.tar.gz htt…

    Linux干货 2016-04-05
  • Mariadb数据库复制系列(二):主主复制

       实验二:MySQL双主复制架构的实现 双主的实现方式与主/从类似,仅是两个主机即使主节点,又是对方的从节点双主模型容易造成数据的不一致性,因此要慎用! 1、实验环境 2、在两个节点上安装mariadb-server服务 3、修改两个节点的服务器配置文件 4、两个节点上各自启动服务,各授权一个具有复制权限的用户 5、查看两个节点的二进制日志的状态 6、在…

    Linux干货 2016-11-24
  • mysql/mariadb基于ssl的主从复制

     当mysql/mariadb跨越互联网进行复制时别人可以窃取到mysql/mariadb的复制信息, 这些信息是明文的, 因此存在不安全性, 这里通过ssl对复制的信息进行加密      1. 创建证书中心 在主服务器上创建证书中心 cd /etc/pki/CA 生成私钥 (umask&…

    Linux干货 2016-12-05
  • 计算机组成及Linux入门知识

    计算机的基本组成: 存储器:     实现记忆功能的部件用来存放计算程序及参与运算的各种数据 运算器:     负责数据的算术运算和逻辑运算即数据的加工处理 控制器:     负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问 输入设备:    实现计算程序和原始数据的输入 输出设备:    实现计算结果输出 组成的联系: 图一 图二 计算…

    Linux干货 2016-09-16
  • Vim编辑工具用法的总结

    描述:    Vim是一款强大的命令行界面的文本编辑器,是vi的高级版本,先说下学习它的原因:  1,所有的UNIX Like 系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;  2,很多软件的编辑接口都会主动调用vi  3,vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设…

    Linux干货 2016-08-11
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04