LVM---基本创建和使用
LVM是Logical Volume Manager(逻辑卷管理)的简写,它是LINUX环境下对磁盘分区进行管理的一种机制,LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。LVM重点在于可以弹性的调整文件系统的容量,而并非在于性能与数据安全上面(这些是RAID的功能).通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,在增删分区时无需担心某个硬盘上没有足够的连续空间,可以整合多个物理分区在一起,让这些分区看起来就像是一个磁盘一样,而且,还可以将其他物理分区加入或者从这个LVM管理的磁盘中删除,如此一来,在整个磁盘空间使用上,相当的有弹性。
LVM的基本组成块(building blocks)如下:
物理卷Physical volume (PV):
可以在上面建立卷组的块设备,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file ) 。实际的分区需要调整系统标识符(System ID)成为8e(LVM的标识符),然后再经过pvcreate的命令将它转换成LVM最底层的物理卷(PV),之后才能将这些PV加以利用,而调整SystemID的方法就是通过fdisk,物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)。
物理扩展Physical extent (PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)
LVM默认使用4MB大小的PE块,而LVM的VG最多仅能含有65534个PE,因此默认最大256G。PE是整个LVM最小的存储块,这个有点类似与文件系统的block,所有文件的写入都由PE来完成.
卷组Volume group (VG):将一组物理卷组合成为一个管理单元
所谓的LVM大磁盘就是将许多PV整合成这个VG,所以VG就是LVM组合PV形成的大磁盘。那么这个大磁盘最大可以达到多少容量呢?这与PE有关,因为每个VG最多仅能包含65534个PE。如果使用LVM默认的参数,则一个VG最大可以达到256GB的容量.
逻辑卷Logical volume (LV):虚拟分区,由物理区域(physical extents)组成
最终的VG还会被切成LV,这个LV就是最后可以被格式化使用,类似于分区。LV的设备文件提供了对lv的的访问,LV的设备文件名通常是:
/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME
逻辑扩展—LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。在同一个卷组中,LE的大小和PE是相同的,并且--对应。
LVM可以弹性更改文件系统的容量,这个怎么办到的呢,其实就是通过交换PE来进行的,将原本LV内的PE转移到其他设备中以降低LV容量,或将其他设备的PE加到此LV中加大容量.通过PV,VG,LV的规划后,再利用mkfs就可以将你的LV格式化成可利用的文件系统。
优点
比起正常的硬盘分区管理,LVM更富于弹性:
使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
缺点
在系统设置时需要更复杂的额外步骤。
-------------LVM实作流程-------------------
先分2个分区,每个分区容量均为10G,调整Sytem ID为8e
全部分区整合为一个VG,VG名称为testVG,且PE大小为16MB
全部的VG容量都丢给LV,LV的名称为testLV
将这个LV格式化为ext4的文件系统,且挂载在/mnt/lvm中
准备分区------------------:
查看系统中可用的硬盘:
[root@localhost ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 Mar 5 03:30 /dev/sda brw-rw----. 1 root disk 8, 1 Mar 5 03:30 /dev/sda1 brw-rw----. 1 root disk 8, 2 Mar 5 03:30 /dev/sda2 brw-rw----. 1 root disk 8, 16 Mar 5 03:30 /dev/sdb brw-rw----. 1 root disk 8, 32 Mar 5 03:30 /dev/sdc
准备分区并调整分区System ID 为 8e,分区结果:
[root@localhost ~]# fdisk /dev/sdbDevice Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 8e Linux LVM [root@localhost ~]# fdisk /dev/sdcDevice Boot Start End Blocks Id System /dev/sdc1 1 1306 10490413+ 8e Linux LVM
PV价段相关的命令-----------:
pvcreate:将物理分区新建成为PV
pvscan:查询当前系统里面任何具有pv的磁盘
pvdisplay:显示系统上的PV状态
pvs : 简略查看所有物理卷的状况
pvremove:将PV属性删除,让该分区不具有PV属性
lvmdiskscan: 扫描用可作物理卷的块设备
pvresize :重新设置物理卷的大小可以在LVM正在使用物理卷的时候使用这个命令
pvremove: 删除物理卷,当物理卷里的扩展没有被使用时可以删除
pvchange :改变LV的属性
防止一个或者多个物理卷的剩余空间进行物理扩展分配pvchange -x {n|y} pv分区
-x, --allocatable {y|n} : 允许或不允许分配物理扩展
-x y 允许在之前禁止进行分配的地方分配扩展
查看当前系统中具有pv的设备:
[root@localhost ~]# pvscanNo matching physical volumes found
使用刚创建的两个分区创建pv:
[root@localhost ~]# pvcreate /dev/sd{b,c}1Physical volume "/dev/sdb1" successfully createdPhysical volume "/dev/sdc1" successfully created
再次查看当前系统中具有pv的设备:
[root@localhost ~]# pvscanPV /dev/sdb1 lvm2 [10.00 GiB]PV /dev/sdc1 lvm2 [10.00 GiB]Total: 2 [20.01 GiB] / in use: 0 [0 ] / in no VG: 2 [20.01 GiB]
上面分别显示的是每个PV的信息与系统所有PV的信息,尤其最后一行,显示的是:
整体PV的量 / 已经被使用到VG的PV量 / 剩余的PV量
其实就是一个物理分区,将它变成了LVM的物理逻辑卷,供以后去用的。
显示PV的简略信息:
[root@localhost ~]# pvsPV VG Fmt Attr PSize PFree/dev/sdb1 lvm2 a-- 10.00g 10.00g/dev/sdc1 lvm2 a-- 10.00g 10.00g
PV :实际的分区设备名
VG :因为尚未分配出去,所以还是空白
Fmt :物理卷的元数据格式(lvm2或者lvm1)和lvm的版本有关
Attr :物理卷的状态:可分配(a)或者导出的(x)
PSize :物理卷的容量说明
PFree :物理卷空闲容量
更加详细的列出系统上面每个PV的信息:
[root@localhost ~]# pvdisplay"/dev/sdb1" is a new physical volume of "10.00 GiB"--- NEW Physical volume ---PV Name /dev/sdb1 <--实际的分区设备名VG Name <--因为尚未分配出去,所以还是空白PV Size 10.00 GiB <--容量说明Allocatable NO <--是否已经被分配给VGPE Size 0 <--在此PV内的PE大小,因为尚未创建VG,所以是0Total PE 0 <--共分出几个PEFree PE 0 <--剩余还有多少个PE,也就是没有被LV用掉的PE数量Allocated PE 0 <--可被分配出去的PE数量(实际能不能被分配看这个参数)PV UUID x4Wak9-RB8t-9gbQ-f2M6-uSgA-I3A1-9Uw1Lb"/dev/sdc1" is a new physical volume of "10.00 GiB"--- NEW Physical volume ---PV Name /dev/sdc1VG Name PV Size 10.00 GiBAllocatable NOPE Size 0Total PE 0Free PE 0Allocated PE 0PV UUID zIs9mx-crfV-3ECe-HWMm-3w4j-sWwe-ZF6N4O
VG价段相关的命令-----------:
vgcreate:新建VG的命令,它的参数比较多
vgs: 查看vg的摘要信息
vgscan:查看系统上是否有VG存在
vgdisplay:显示目前系统上面的VG状态
vgextend:在VG内增加额外的PV vgextend VGNAME PV的设备文件名
vgreduce:在VG内删除PV vgreduce VGNAME PV的设备文件名
vgchange:vgchange –a {y|n} VGNAME 使卷组激活或使卷组失效
vgremove:删除一个VG(删除不包含逻辑卷的卷组)
vgmerge:合并卷组
vgsplit:分割卷组
vgrename重命名卷组vgrename vgrename /dev/vg0 /dev/my_vloume_group
vgexport 和vgimport :将卷组移动到其它系统中
vgmknodes :重新创建卷组目录和逻辑卷专用文件
vfcrestore:备份卷组元数据,还可为卷组中的所有物理卷从归档中恢复卷组的元数据
每次修改卷组和逻辑卷配置时都会自动进行元数据备份和归档
元数据备份保存在/etc/lvm/backup文件中
元数据归档保存在/etc/lvm/archives中
PV的名字就是设备文件名,而VG是可自己设置名字的。
vgcreate [-s N[mgt]] VG名称 PV名称
-s:后接PE大小,单位可以是m,g,t(大小写均可)
创建名为testVG的VG:
[root@localhost ~]# vgcreate -s 8M testVG /dev/sd{b,c}1Volume group "testVG" successfully created
查看当前系统上是否有VG:
[root@localhost ~]# vgscanReading all physical volumes. This may take a while...Found volume group "testVG" using metadata type lvm2
可以看到Fmt元数据类型为lvm2
查看VG的摘要信息:
[root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFreetestVG 2 0 0 wz--n- 20.00g 20.00g
Attr卷组的状态:
w:可写入
r:只读
z:可重新定义大小
x:导出的
p:不完整的
c:群集的
更加详细的列出系统上面每个VG的信息:
[root@localhost ~]# vgdisplay--- Volume group ---VG Name testVG <--卷组名称System ID <--lvm的系统IDFormat lvm2 <--卷组的元数据格式Metadata Areas 2 <--元数据所在位置Metadata Sequence No 1 VG Access read/writeVG Status resizable <--VG的状态 可以使用vgchange改变MAX LV 0Cur LV 0 <--当前卷中的LV数Open LV 0Max PV 0Cur PV 2 <--当前VG中包含多少个PVAct PV 2 <--活动的pvVG Size 20.00 GiB <--vg的大小 等于所在pv相加PE Size 8.00 MiB <--pe的尺寸Total PE 2560 <--当前卷中所包含的PEAlloc PE / Size 0 / 0 <--pv的使用比例Free PE / Size 2560 / 20.00 GiB <--卷组中可用物理扩展数目VG UUID RgaF3G-LTrg-gXQZ-NMdq-MnhX-Wgho-ra0Mil
最后三行指的就是能够使用的PE情况,由于尚未切分出LV,所以是所有的PE均可自由使用
创建了VG以后再次使用pvdsiplay查看pv:
[root@localhost ~]# pvdisplay--- Physical volume ---PV Name /dev/sdb1VG Name testVGPV Size 10.00 GiB / not usable 4.54 MiBAllocatable yesPE Size 8.00 MiBTotal PE 1280Free PE 1280Allocated PE 0PV UUID x4Wak9-RB8t-9gbQ-f2M6-uSgA-I3A1-9Uw1Lb--- Physical volume ---PV Name /dev/sdc1VG Name testVGPV Size 10.00 GiB / not usable 4.54 MiBAllocatable yesPE Size 8.00 MiBTotal PE 1280Free PE 1280Allocated PE 0PV UUID zIs9mx-crfV-3ECe-HWMm-3w4j-sWwe-ZF6N4O
再创建了VG以后,就可以查看pe的大小了
LV阶段相关命令————–:
创造出VG这个大磁盘后,接下来为这个创建lv并对其进行分区,通过LV功能来处理。
lvcreate:新建LV
lvscan:查询系统上面的LV
lvremane:重新命名逻辑卷 lvrename vg0 lvold lvnew
lvs: 查看lv的摘要信息
lvdisplay:显示系统上面的LV状态
lvextend:在LV里面增加容量
lvreduce:在LV里面减少容量
lvremove:删除一个LV
lvchange :修改逻辑卷组的参数 lvchange -a {y|n}使lv生效或失效
lvresize:对LV进行容量大小的调整
lvcreate [-L N[mgt]] [-n LV名称] VG名称
lvcreate [-l N] [-n LV名称] VG名称
-L:后面接容量,单位是m,g,t(大小写均可),要注意的是这个数必须是PE大小
的整 数倍。
-l:后面接PE的个数,而不是容量
-n:后面接LV的名称
查看PV的大小:
[root@localhost ~]# vgdisplay | grep 'Total PE'Total PE 2560
创建一个大小为10G的LV:
[root@localhost ~]# lvcreate -L 10G -n testLV testVGLogical volume "testLV" created
查看LV的摘要信息:
[root@localhost ~]# lvsLV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync ConverttestLV testVG -wi-a---- 10.00g
Attr逻辑卷的状态:
字节1:卷类型 :镜像m ,不带初始同步的镜像M,源o ,pvmove p, 快照s ,不可用快照s,虚拟v
字节2:权限 可写入w 只读r
字节3:分配策略 持续c,正常n,任意a ,继承i,
字节4:固定的副号码m
字节5:激活a ,暂停s,不可用快照l,不可用暂停快照S,不带表格的映射d,还有i
字节6:设备开放o
更加详细的列出系统上面每个LV的信息:
[root@localhost ~]# lvdisplay--- Logical volume ---LV Path /dev/testVG/testLV <--LV的设备路径LV Name testLV <--LV的名字VG Name testVG <--卷组名LV UUID raOisN-DzwI-bKRV-bu1a-fAJm-M53L-5y26DhLV Write Access read/writeLV Creation host, time localhost.localdomain, 2014-03-05 04:20:45 +0800LV Status available# open 0LV Size 10.00 GiBCurrent LE 1280 <--LE的大小和PE一一对应Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0
VG的名称为testVG,但是LV要用全名,而不是lv的名称testLV:
/dev/testVG/yidaolv或/dev/mapper/testVG-testLV
[root@localhost ~]# ls -l /dev/{mapper/testVG-testLV,testVG/testLV} lrwxrwxrwx. 1 root root 7 Mar 5 04:20 /dev/mapper/testVG-testLV -> ../dm-0 lrwxrwxrwx. 1 root root 7 Mar 5 04:20 /dev/testVG/testLV -> ../dm-0
可以看到她们都是链接文件,它们都指向/dev/下以dm开头的文件
查看系统识别的lvm设备其实是以dm开头的设备:
[root@localhost ~]# cat /proc/partitions major minor #blocks name8 16 125829120 sdb8 17 10490413 sdb18 0 125829120 sda8 1 204800 sda18 2 51200000 sda28 32 125829120 sdc8 33 10490413 sdc1253 0 10485760 dm-0
接下来,我对LV进行分区格式化并挂载:
[root@localhost ~]# mke2fs -t ext4 /dev/testVG/testLV [root@localhost ~]# mount -t ext4 /dev/testVG/testLV /backup/ [root@localhost ~]# df -lh /backup/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/testVG-testLV9.9G 151M 9.2G 2% /backup
转载于:https://blog.51cto.com/werewolftj/1367766
LVM---基本创建和使用相关推荐
- linux LVM的创建和管理
LVM是Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力.LVM可以帮助系统管理员为应用与用户方便地分配存储空间.在LVM管理下的逻辑卷可以 ...
- LVM的创建与快照和SSM存储管理器的使用
LVM:Logical Volume Manager(逻辑卷管理) 概念(名词): PV:Physical Volume(物理卷) VG:Volume Group(卷组) LV:Logical Vol ...
- LVM的创建扩展缩减与删除
LVM Logical Volume Manager 逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 下面就来实现逻辑卷的 增 删 减 测试环境 Red Hat Enterprise ...
- 用LVM快照创建虚拟机
当我们需要批量的部署我们的XEN 或者KVM的时候,LVM的snap功能是个不错的选择. #lvcreat -L 2G -s -n lv-virt2 /dev/vg01/lv-virt1 为/d ...
- 【Linux】LVM的创建及使用
文章目录 1. 创建LVM的基本步骤 2. LVM常用命令 3. 创建使用LVM逻辑卷 1) 创建PV a. 我们已经添加了一个sdb磁盘 b. 接下来我们创建4个分区: c. 查看分好的分区: d. ...
- linux系统怎么做快照,linux LVM快照创建步骤
1.首先将硬盘sdb分4个区每个区大小200M,分别是sdb{5,6,7,8}.后将四个分区建立pv 2.之后把pv加入vg此处引入PE的概念. 由于vg是多个PE(块)组成的,而且每个vg块的PE最 ...
- Linux下的LVM创建以及Linux快照卷
通过最的学习,我加深了对LVM的理解,在这里,我将它写成博客,一是方便自己记忆,二是让Linux的入门学习者一起学习一下. 首先我们引入LVM的概念,并展开详细的说明,主要是近期学习的看法,我们先看一 ...
- GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...
- linux lvm添加磁盘,Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- [收藏]实践参考:parted创建硬盘分区并创建LVM
从RHEL5开始,RHEL有了新的分区工具,parted,最大的亮点就是可以分2TB以上的分区,而且操作简单,个人感觉比fdisk好使 现在用一块硬盘/dev/sdb 使用parted分区,并且创建L ...
最新文章
- 焦李成教授谈深度神经网络发展历程
- 用神经集认识手写数字
- [译]Effective Kotlin系列之探索高阶函数中inline修饰符(三)
- SpringSecurity OAuth2介绍
- idea断点_IDEA Debug 无法进入断点的解决方法
- 静物摄影用光技巧_摄影技巧:摄影如何用光?摄影大师总结的10点,非常受用!...
- 立根融资租赁:内部系统平台上云
- 网络KPI异常检测之时序分解算法
- gispython定义查询_Python与开源GIS:SpatiaLite 中的基本SQL数据库查询用法
- 【雷达通信】基于matlab SVM识别雷达数据【含Matlab源码 305期】
- Intellij IDEA 一些让人爱不释手的小技巧
- outlook左侧栏隐藏_Outlook 2007待办事项栏中没有全天活动
- ATTCK v10版本战术介绍执行(下篇)
- 基于BERT做中文文本分类(情感分析)
- 安卓神秘事件之点击事件不响应
- Qt控件边框颜色设定
- 7-8 输出上三角队形,数值从大到小
- HTC Android系统 自定义ROM定制图文教程
- 【WB32库开发】第12章(上)TIM1高级定时器——PWM输入捕获
- Ubuntu输入法将显示繁体更换为显示简体
热门文章
- DCMTK:读取DICOM数据集的测试程序
- VTK:PolyData之WarpSurface
- VTK:PolyData之OrientedBoundingCylinder
- OpenCV在图像中寻找轮廓
- C语言查找单链列表的第k个元素的算法(附完整源码)
- C++确定数字的奇偶校验的算法实现(附完整源码)
- OpenGL球体的Phong渲染
- C语言十进制数转换为八进制(附完整源码)
- QT的QDnsLookup类的使用
- 众唱点歌机会显示无法连接服务器,目前众多厂商唱多的服务器附加存储缺点分析...