LVM2 ( Blog4 )

LV基本应用,扩展及缩减实现

LVM2
Logical Volume Manager, Version 2
软件方式组织多个底层硬件设备为一个抽象的逻辑设备;device: 支持RAID, LVM2, 磁盘, 分区, Multipath

LVM2实现
驱动:内核模块:dm: device mapper
用户空间管理程序:lvm
设备文件:/dev/dm-#

逻辑卷:LV;指定数量的PE,组成逻辑空间;LE(Logical Extent物理盘区):PE分配给LV之后的名字;
可以格式化;可为卷组内任意的任意大小,不危害其中的数据
缺点:损坏后,修复困难;
名称:LV_NAME
lvpath:/dev/mapper/VG_NAME-LV_NAME /dev/VG_NAME/LV_NAME

卷组:VG;相当于扩展分区(不能直接格式化使用);PE(Pysical Extent物理盘区): PV加入VG后,由VG定义;
包含物理卷;只能整个物理卷加入或收缩;
名称:VG_NAME
注意:收缩VG
1、剩余空间可承载LV;
2、收缩空间的数据,需要挪到剩余空间中;

物理卷:PV;存储元数据;

快照:创建那一刻起,瞬间完成对目标逻辑卷完成扫描其元数据,为其创建一个快照;在快照中可以访问原卷中的所有内容相当于硬链接,不能跨文件系统;只要原卷元数据改变(文件名,大小,时间戳,属主,属组,权限),就会将“将要变化的数据”备份至快照中;所以快照的大小取决于原卷变化量(对备份内容的变化量);最大大小为:原卷大小;
快照只会备份:快照那一刻之前的所有数据;之后新增加的数据,需要用:增量备份或差异备份;
位置:与原卷在同一文件系统中;同一目录下;

备份:将数据流抽成丝状(数据序列化的过程)进行复制;所以只有序列化的数据才可以备份;

物理卷管理:
创建:pvcreate device …
删除:pvremove device …
查看:pvs, pvdisplay

卷组管理:
创建:vgcreate -s PE_SIZE VG_NAME device …
扩展:vgextend VG_NAME device …
缩减:vgreduce VG_NAME device …
删除:vgremove VG_NAME
查看:vgs, vgdisplay

逻辑卷管理:
创建:lvcreate -L [+]LV_SIZE -l LE_SIZE -n LV_NAME VG_NAME
扩展:lvextend -L [+]LV_SIZE lvpath
缩减:lvreduce -L [-]LV_SIZE lvpath
删除:lvremove lvpath
快照:lvcreate -L [+]LV_SIZE -s -n LV_snap -p r lvpath
查看:lvs, lvdisplay

创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录;
新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录;
扩展testlv至7G,要求archlinux用户的文件不能丢失;
收缩testlv至3G,要求archlinux用户的文件不能丢失;
对testlv创建快照,并尝试基于快照备份数据,验证快照的功能;

创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录;
分区:
查看可用分区:
~]# fdisk -l /dev/sd[a-z]
CentOS 6,7依据不同方式划分分区:
sectors: CentOS 7
cylinders: CentOS 6
创建两个id号为”8e”的10G大小的分区:
~]# fdisk /dev/sdb
/dev/sdb11 125845504 146817023 10485760 8e Linux LVM
/dev/sdb12 146819072 167790591 10485760 8e Linux LVM
查看内核识别的分区:
~]# cat /proc/partitions
重载内核分区表:
~]# partx -a /dev/sdb
~]# partx -a /dev/sdb

创建LV:
创建PV、查看其详细信息:
~]# pvcreate /dev/sdb11 /dev/sdb12
~]# pvdisplay /dev/sdb11
“/dev/sdb11” is a new physical volume of “10.00 GiB”
— NEW Physical volume — (未加入VG前,显示其状态;)
PV Name /dev/sdb11
VG Name
PV Size 10.00 GiB
Allocatable NO (只有加入到VG中方可分配;以下均在加入指定VG或新建VG后,由VG管理生成;)
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID BfQOYB-lhc1-ccCV-LqJl-XurI-i2dS-zzA5Ri

创建VG、查看其详细信息:
~]# vgcreate -s 16M testvg /dev/sdb11 /dev/sdb12
~]# vgdisplay testvg
— Volume group —
VG Name testvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size <19.97 GiB
PE Size 16.00 MiB
Total PE 1278
Alloc PE / Size 0 / 0
Free PE / Size 1278 / <19.97 GiB
VG UUID a1y9DS-ULit-ECwP-EC0A-eROQ-wob8-DcVYM7

~]# pvdisplay /dev/sdb11
— Physical volume —
PV Name /dev/sdb11
VG Name testvg
PV Size 10.00 GiB / not usable 16.00 MiB
Allocatable yes (加入VG后,可分配;以及显示下面PE相关信息)
PE Size 16.00 MiB
Total PE 639
Free PE 639
Allocated PE 0
PV UUID BfQOYB-lhc1-ccCV-LqJl-XurI-i2dS-zzA5Ri

创建LV、查看其详细信息:
~]# lvcreate -L 5G -n testlv testvg
~]# lvdisplay testlv testvg
— Logical volume —
LV Path /dev/testvg/testlv
LV Name testlv
VG Name testvg
LV UUID POkeBt-PPXN-5JZk-Xyth-DRQh-wqmE-9q47Zf
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-11-12 15:49:12 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 8192
Block device 253:3

LV格式化及挂载:
格式化:
~]# mke2fs -t ext4 /dev/testvg/testlv
查看文件系统属性:
~]# blkid /dev/testvg/testlv
/dev/testvg/testlv: UUID=”8acca7c8-05d8-40a6-afdf-72478ee66da3″ TYPE=”ext4″
创建挂载点:
~]# mkdir -v /users
挂载:
~]# mount /dev/testvg/testlv /users
注意:挂载的设备和查看的结果不同;

查看挂载状态:
~]# mount
/dev/mapper/testvg-testlv on /users type ext4 (rw,relatime,seclabel,data=ordered)

新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录;
创建以/users/archlinux家目录的archlinu用户:
~]# useradd -d /users/archlinux archlinux
~]# tail -1 /etc/passwd
archlinux:x:1005:1005::/users/archlinux:/bin/bash
切换至archlinux用户并完成复制文件:
~]# su – archlinux
~]$ cp -r /etc/pam.d .

扩展testlv至7G,要求archlinux用户的文件不能丢失;
扩展逻辑边界
~]# lvextend -L 7G /dev/testvg/testlv
查看文件系统大小
~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 4.8G 21M 4.6G 1% /users <–仍显示5G
扩展物理边界
~]# resize2fs /dev/testvg/testlv
~]# df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 6.8G 23M 6.4G 1% /users <–显示7G
查看文件是否损坏:
~]# cat /users/archlinux/.bashrc
没有损坏;

收缩testlv至3G,要求archlinux用户的文件不能丢失;
卸载:
~]# umount /users
检测:
~]# e2fsck -f /dev/mapper/testvg-testlv
缩减物理边界:
~]# resize2fs /dev/mapper/testvg-testlv 3G
缩减逻辑边界:
~]# lvreduce -L 3G /dev/mapper/testvg-testlv
挂载:
~]# mount /dev/mapper/testvg-testlv /users/
查看文件系统大小:
~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
查看文件是否损坏:
~]# cat /users/archlinux/.bashrc
没有损坏

对testlv创建快照,并尝试基于快照备份数据,验证快照的功能;
创建快照:
~]# lvcreate -L 200M -s -n testlv_snap -p r /dev/mapper/testvg-testlv
~]# ls /dev/testvg/
testlv testlv_snap
注意:快照路径与原卷路径在同一个文件系统;
挂载快照:
~]# mount -r /dev/testvg/testlv_snap /mnt
~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
/dev/mapper/testvg-testlv_snap 2.9G 16M 2.7G 1% /mnt
注意:原卷与快照卷大小相同;注意:Filesystem下路径是否相同;别挂载失误,导致悲剧;
查看快照中的内容:
~]# ls /mnt
archlinux lost+found
修改原卷中的内容:
~]# echo “123” >> /users/archlinux/.bashrc
查看快照中是否也变化:
~]# cat /mnt/archlinux/.bashrc
没有改变;
备份快照卷:
~]# mkdir -pv /media/backup/testlv_snap
~]# cp -a /mnt/* /media/backup/testlv_snap
删除快照卷:
~]# umount /mnt
~]# lvremove /dev/testvg/testlv_snap
恢复原卷至备份快照的那一刻:
~]# rm -rf /users/*
~]# cp -a /media/backup/testlv_snap/* /users
~]# cat /users/archlinux/.bashrc

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89045

(0)
逆神阳逆神阳
上一篇 2017-11-27
下一篇 2017-11-27

相关推荐

  • Linux下的find命令详解

    Linux下的find命令详解 在linux下有两种查找符合条件文件的命令,是locate和find。我们来说说find这个命令。 find: 实时查找工具,遍历查找指定路径下的所有的文件来找到符合条件的文件。 特点:查找文件比locate速度略慢,查找文件很精确,并且是实时进行查找的。 使用方法:find [OPTIONS] [查找起始路径] [查找条件]…

    Linux干货 2018-03-20
  • N25_第十一周的作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 2、描述创建私有CA的过程,以及为客户端发来的证书请求进行办法证书。 3、描述DNS查询过程以及DNS服务器类别。          第一段:主机到运营商的DNS服务器(递归)    &nbs…

    Linux干货 2017-02-22
  • Linux中一些常用的命令(一)

    ls命令 ls命令:用来列出当前目录的内容或指定目录,是使用频率较高的命令 -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等 -a:列出所有隐藏文件和目录 -h:以人类可读的方式将文件或者目录大小显示出来 -R:把当前目录下的目录的所有内容列出来(递归) -d:显示…

    Linux干货 2017-03-30
  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • nfs

    NFS 服务 : Network File system 网络文件系统效果: 好像在本机硬盘一样原理: 当用户去访问 映射成本地系统 // 原理 挂载属性: vsftpd 是应用程序,(内核支持) nfs 是一个文件系统应用: 局域网(最多用于) — 依赖网络 应用层 app httpd 80 vsftpd 传输层 tcp/ipinternet层…

    Linux干货 2018-02-05
  • HTTP

    使用CentOS 7和CentOS 6实现以下任务 配置四个基于名称的虚拟主机;discuzXwordpressdrupal1.在conf.d下新建并编辑虚拟主机配置文件]# cd /etc/httpd/conf.d/]# vim vhost.confcentos6配置   [root@ _93_ conf.d]#&n…

    Linux干货 2016-10-12