linux里lvm 用来干啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux里lvm 用来干啥相关的知识,希望对你有一定的参考价值。

对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘空间。无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非常常见的问题。解决的方法通常是使用符号链接,或者一些调整分区大小的工具(比如parted)。但是,这只是一个暂时性的解决办法,不久,我们又会面临同样的问题。

  如果你是一个站点的系统管理员,管理着数量众多的、连接在Internet之上的服务器,那么你每关机一分钟,都会给公司带来很大损失。此外,使用这种方法,在修改了分区表之后,每一次都得重新启动系统。LVM(逻辑卷管理程序)可以帮助我们解决这些问题。

LVM简介

  Linux LVM可以使管理工作更加轻松。相对于硬盘和分区,LVM是从更高的层次来看待存储空间的。在使用LVM之前,先来看一些将要使用到的相关概念。

物理卷

  物理卷是指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如RAID设备)。

逻辑卷

  一个或者多个物理卷组成一个逻辑卷。对于LVM而言,逻辑卷类似于非LVM系统中的硬盘分区。逻辑卷可以包含一个文件系统(比如/home或者/usr)。

卷组

  一个或者多个逻辑卷组成一个卷组。对于LVM而言,卷组类似于非LVM系统中的物理硬盘。卷组把多个逻辑卷组合在一起,形成一个可管理的单元。

document.body.clientWidth-450) this.height=(document.body.clientWidth-450)*this.height/this.width;this.width=document.body.clientWidth-450" border="0">

LVM工作方式

  下面来看一看LVM到底是怎样工作的。每一个物理卷都被分成几个基本单元,即所谓的PE(Physical Extents)。PE的大小是可变的,但是必须和其所属卷组的物理卷相同。在每一个物理卷里,每一个PE都有一个惟一的编号。PE是一个物理存储里可以被LVM寻址的最小单元。

  每一个逻辑卷也被分成一些可被寻址的基本单位,即所谓的LE(Logical Extents)。在同一个卷组中,LE的大小和PE是相同的,很显然,LE的大小对于一个卷组中的所有逻辑卷来说都是相同的。

  在一个物理卷中,每一个PE都有一个惟一的编号,但是对于逻辑卷这并不一定是必需的。这是因为当这些PE ID号不能使用时,逻辑卷可以由一些物理卷组成。因此,LE ID号是用于识别LE以及与之相关的特定PE的。正如前面所提到的,LE和PE之间是一一对应的。每一次存储区域被寻址访问或者LE的ID被使用,都会把数据写在物理存储设备之上。

  你可能会觉得奇怪,有关逻辑卷和逻辑卷组的所有元数据都存到哪儿去了。类似的在非LVM系统中,有关分区的数据是存储在分区表中,而分区表被存储在了每一个物理卷的起始位置。VGDA(卷组描述符区域)功能就好象是LVM的分区表,它存储在每一个物理卷的起始处。

  VGDA由以下信息组成:

  ·一个PV描述符
  ·一个VG描述符
  ·LV描述符
  ·一些PE描述符

  当系统启动LV时,VG被激活,并且VGDA被加载至内存。VGDA帮助识别LV的实际存储位置。当系统想要访问存储设备时,由VGDA建立起来的映射机制就用于访问实际的物理位置来执行I/O操作。

开始工作

  下面具体看一看如何使用LVM。

  第一步:配置内核。在安装LVM之前,内核之中应该有LVM模块,可以使用以下的步骤来完成:

  #cd /usr/src/linux
  #make menuconfig

  选择Multi-device Support (RAID and LVM)子菜单,选中以下两个选项:

  
[*] Multiple devices driver support (RAID and LVM)
  < *> Logical volume manager (LVM) Support.

复制代码

注:如果在安装Linux系统时已经安装了LVM相关软件包,上面几步操作可以省略掉,直接到第二步.

  第二步:检查驱动器上空闲硬盘空间的总量。这可以通过以下命令来未完成:

  # df -h
  Filesystem Size Used Avail Use% Mounted on
  /dev/hda1 3.1G 2.7G 398M 87% /
  /dev/hda2 4.0G 3.2G 806M 80% /home
  /dev/hda5 2.1G 1.0G 1.1G 48% /var

  第三步:在硬盘上创建一个LVM分区。使用fdisk或者其它的分区工具来创建一个LVM分区。Linux LVM的分区类型为8e。

  # fdisk /dev/hda
  press p (to print the partition table) and n (to create a new partition)

  第四步:创建一个物理卷。下述命令将在分区的起始处创建一个卷组描述符:

  # pvcreate /dev/hda6
  pvcreate -- -physical volume "/dev/hda6" successfully created
  # pvcreate /dev/hda7
  pvcreate- -- physical volume "/dev/hda7" successfully created

  第五步:创建一个卷组。通过下面的方法创建一个新的卷组,并且添加两个物理卷:

  # vgcreate test_lvm /dev/hda6 /dev/hda7

  vgcreate- -- INFO: using default physical extent size 4 MB
  vgcreate- -- INFO: maximum logical volume size is 255.99 Gigabyte
  vgcreate- -- doing automatic backup of volume group "test_lvm"
  vgcreate- -- volume group "test_lvm" successfully created and activated

  上述命令将创建一个名为test_lvm,包含有/dev/hda6和/dev/hda7两个物理卷的卷组。使用下面命令来激活卷组:

  # vgchange -ay test_lvm

  使用“vgdisplay”命令来查看所建立卷组的细节信息。

  # vgdisplay
  --- Volume group ---
  VG Name test_lvm
  VG Access read/write
  VG Status available/resizable
  VG # 0
  MAX LV 256
  Cur LV 1
  Open LV 0
  MAX LV Size 255.99 GB
  Max PV 256
  Cur PV 2
  Act PV 2
  VG Size 3.91 GB
  PE Size 4 MB
  Total PE 1000
  Alloc PE / Size 256 / 1 GB
  Free PE / Size 744 / 2.91 GB
  VG UUID T34zIt-HDPs-uo6r-cBDT-UjEq-EEPB-GF435E

  第六步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷:

  # lvcreate -L2G -nlogvol1 test_lvm

  第七步:创建文件系统。在该逻辑卷上选择使用reiserfs日志文件系统:

  # mkreiserfs /dev/test_lvm/logvol1

  使用mount命令来加载新创建的文件系统。

  # mount -t reiserfs /dev/test_lvm/logvol1 /mnt/lv1

  第八步:在/etc/fstab和/etc/lilo.conf中添加一个入口。在/etc/fstab中加入以下入口,在启动时加载文件系统:

  /dev/test_lvm/logvol1 /mnt/lv1 reiserfs defaults 1 1

  如果没有覆盖原来的内核,那么拷贝一份重新编译后的内核,并且在启动时选择是否使用LVM。下面是LILO文件的内容:

  image = /boot/lvm_kernel_image
  label = linux-lvm
  root = /dev/hda1
  initrd = /boot/init_image
  ramdisk = 8192

  添加以上内容后,使用以下命令重新加载LILO:

  #/sbin/lilo

  第九步:修改逻辑卷的大小。可以使用lvextend命令方便地修改逻辑卷的大小,增加逻辑卷大小的方法如下:

  # lvextend -L 1G /dev/test_lvm/logvol1
  lvextend -- extending logical volume "/dev/test_lvm/logvol1" to 3GB
  lvextend -- doing automatic backup of volume group "test_lvm"
  lvextend -- logical volume "/dev/test_lvm/logvol1" successfully extended

  
  类似的,减小逻辑卷大小的方法如下:

  # lvreduce -L-1G /dev/test_lvm/lv1
  lvreduce -- -Warning: reducing active logical volume to 2GB
  lvreduce- -- This may destroy your data (filesystem etc.)
  lvreduce -- -do you really want to reduce "/dev/test_lvm/lv1"? [y/n]: y
  lvreduce- -- doing automatic backup of volume group "test_lvm"
  lvreduce- -- logical volume "/dev/test_lvm/lv1" successfully reduced

复制代码

总结

  从上面的讨论可以看到,LVM具有很好的可扩展性,并且使用起来很直观。一旦卷组建立起来以后,根据需求调整每一个逻辑卷的大小也非常容易。

LVM操作的相关命令:
fdisk -l :查看系统中都认到了那些物理硬盘
pvdisplay:查看系统中已经创建好的物理卷
pvcreate:创建一个新的物理卷
pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)
vgdisplay:查看系统中的卷组
vgcreate:创建一个新的卷组
vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)
vgremove:删除一个卷组
lvdisplay:查看系统中已经创建好的逻辑卷
lvcreate:创建一个新的逻辑卷
lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)
lvremove:从系统中删除一个逻辑卷
mkfs:基于逻辑卷创建一个相应类型的文件系统
mkdir -p $mount_piont:创建一个挂载目录
创建好的文件系统位于:
/dev/$create_vg_name/$lv_name
mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统

vgscan:读取系统中创建的所有卷组
vgchange -a y :激活所有卷组 (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)
vgchange -a n :关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行

裸设备使用:
1.先lvreate
2. raw /dev/raw/raw0 /dev/mapper/vgname-lvname
3.修改 /etc/sysconfig/rawdevices,添加:
/dev/raw/raw0 /dev/mapper/vgname-lvname
4.执行命令; service rawdevices restart,使得/etc/sysconfig/rawdevices文件中的裸设备配置生效
5.执行/sbin/schkconfig rawdevices on 使得系统重启后,裸设备能自动加载

6.修改裸设备的属主,使得相应权限的用户对裸设备有读写权限
chown -R owner:group /dev/raw/raw0
7.将修改裸设备属主修改命令加入到系统启动执行脚本/etc/rc.local中,使得系统启动后裸设备的属主保持不变.
参考技术A

LVM(  Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM 可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用 LVM  管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过 LVM  可以直接扩展文件系统跨越磁盘

它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在 LVM  中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

参考技术B lvm是linux逻辑卷组管理,用来对磁盘分区进行管理的一种技术。追问

能不能讲一下它有什么作用,有什么优点

追答

你还是仔细阅读一下。百度百科里的LVM吧。
我觉得会比我讲解的更详细。因为具体的使用方法,功能,作用,优点。这不是一两句就能说清楚的。就算我说清楚,你是否能理解也是另当别论,最好的方式还是你自己看相关的技术文档。

参考技术C LVM是逻辑卷管理的简称,他是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相比,提供了更好的灵活性。
LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小。另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移,这样可以减少操作成本。
LVM对比直接使用物理存储,具有以下好处:
1、灵活的容量,当使用逻辑卷时,文件系统能扩展到多个磁盘上,你能聚合多个磁盘或磁盘分区成单一的逻辑卷。
2、可伸缩的存储池,你能使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备。
3、在线的数据再分配,你能在线移动数据,数据能在磁盘在线的情况下重新分配,比如你能在线更换可热插拔的磁盘。
4、方便的设备命名,逻辑卷能按你觉得方便的方式来起所有名称。
5、磁盘条块化,你能生成一个逻辑卷,他的数据能被条块化存储在2个或更多的磁盘上,这样能明显提升数据吞吐量。
6、映像卷,逻辑卷提供方便的方法来映像你的数据。
7、卷快照,使用逻辑卷,你能获得设备快照用来一致性备份或测试数据更新效果而不影响真实数据。

linux--lvm2学习

内核模块dm可以实现以下功能

快照:保留数据当时状态,提供数据另外访问路径。如果访问快照里面的数据没改变,那么会使用原来路径,如果发生改变则访问快照数据。可以用来进行备份。

多路径:每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已

LVM2:

  物理卷(PV):

  物理盘区(PE):逻辑存储单位

  逻辑卷组(VG):为LV提供统一接口容器。镜像功能:在不同物理卷中都存放一份相同数据

  逻辑卷(LV):动态扩展缩减的文件系统

  逻辑分区(LE):指定多个PE为一个LE

  快照卷:为逻辑卷预留空间创建快照

 

LVM操作:

pv:pvcreate,pvremove,pvscan,pvdisplay,pvmove

vg:vgcreate,vgremove,vgextend,vgreduce,vgs,vgscan

lv:lvcreate,lvremove,lvextend,lvreduce,lvresize,lvs,lvdisplay

 

[root@localhost ~]# pvcreate /dev/sdd{1,2}
Physical volume "/dev/sdd1" successfully created.
Physical volume "/dev/sdd2" successfully created.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 lvm2 --- 1.41g 1.41g
/dev/sdd2 lvm2 --- 599.00m 599.00m

详细信息查看pvdisplay 

[root@localhost ~]# pvscan
PV /dev/sda2 VG rhel lvm2 [<93.82 GiB / 4.00 MiB free]
PV /dev/sde2 lvm2 [699.00 MiB]
PV /dev/sdf1 lvm2 [600.00 MiB]
PV /dev/sdd2 lvm2 [599.00 MiB]
PV /dev/sdf2 lvm2 [1.41 GiB]
PV /dev/sde1 lvm2 [<1.32 GiB]
PV /dev/sdd1 lvm2 [1.41 GiB]
Total: 7 [99.81 GiB] / in use: 1 [<93.82 GiB] / in no VG: 6 [<6.00 GiB]

 

 

 vg操作:

vgcreate  vgname   path_to_pv  -s指定pe大小默认4M

[root@localhost ~]# vgs                                                                       -------------------查看vg
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <93.82g 4.00m
[root@localhost ~]# vgcreate yellow /dev/sd{d,e,f}{1,2}                      -------------------创建vg
Volume group "yellow" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 0 0 wz--n- <5.98g <5.98g
[root@localhost ~]# vgdisplay yellow
--- Volume group ---
VG Name yellow
System ID 
Format lvm2
Metadata Areas 6
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 6
Act PV 6
VG Size <5.98 GiB
PE Size 4.00 MiB
Total PE 1530
Alloc PE / Size 0 / 0 
Free PE / Size 1530 / <5.98 GiB
VG UUID u5fZZK-BWLN-RtSt-kvL9-cyfr-oJUW-F0e52L

[root@localhost ~]# vgremove yellow                         --------------删除vg
Volume group "yellow" successfully removed

  

从vg中删除pv:

[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m
/dev/sdf2 yellow lvm2 a-- 1.41g 1.41g
[root@localhost ~]# pvmove /dev/sdf2                                 -----------------先把pv数据移动到其他vg
No data to move for yellow.
[root@localhost ~]# vgreduce yellow /dev/sdf2                    -----------------从vg中删除vg
Removed "/dev/sdf2" from volume group "yellow"
[root@localhost ~]# vgs                            
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 5 0 0 wz--n- <4.57g <4.57g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m
/dev/sdf2 lvm2 --- 1.41g 1.41g
[root@localhost ~]# pvremove /dev/sdf2                             --------------------删除pv
Labels on physical volume "/dev/sdf2" successfully wiped.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m

 加入一个vg

[root@localhost ~]# pvcreate /dev/sdf2
Physical volume "/dev/sdf2" successfully created.
[root@localhost ~]# vgextend yellow /dev/sdf2
Volume group "yellow" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 0 0 wz--n- <5.98g <5.98g

 

 lv操作:

创建lv:

lvcreate -n  lv_name  -L (大小KMG)[-l  多少个盘区]  vg_name

[root@localhost ~]# lvcreate -L 80M -n testlv yellow 
Logical volume "testlv" created.

 

[root@localhost ~]# lvdisplay /dev/yellow/testlv 
--- Logical volume ---
LV Path /dev/yellow/testlv
LV Name testlv
VG Name yellow
LV UUID 1zCsL4-YEZt-Nh1P-RTAw-dH7R-LG7B-1cVx5D
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-05-30 23:47:15 +0800
LV Status available
# open 0
LV Size 80.00 MiB
Current LE 20
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2

 

[root@localhost ~]# mkfs.ext4 -j /dev/yellow/testlv   -------------创建文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
20480 inodes, 81920 blocks
4096 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
10 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成 
正在写入inode表: 完成 
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@localhost ~]# mount /dev/yellow/testlv /mnt/             --------挂在到相关目录

 

 

逻辑卷移除:

移除前确认挂载点已经umount

[root@localhost ~]# lvremove /dev/mapper/yellow-testlv 
Logical volume yellow/testlv contains a filesystem in use.
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvremove /dev/mapper/yellow-testlv 
Do you really want to remove active logical volume yellow/testlv? [y/n]: y
Logical volume "testlv" successfully removed

 

 

 

扩展逻辑卷:

lvextend -L [+]#(加号表示扩展多少,#表示扩展到多少)

[root@localhost mapper]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu
[root@localhost mapper]# vgs                                           ---------------------扩展前查看vg free有足够大小
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 1 0 wz--n- <5.98g <5.49g
[root@localhost mapper]# lvextend -L 2G /dev/yellow/qq 
Size of logical volume yellow/qq changed from 500.00 MiB (125 extents) to 2.00 GiB (512 extents).
Logical volume yellow/qq successfully resized.
[root@localhost mapper]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu

 

 

缩减逻辑卷:

1、不能在线缩减,得先卸载。

2、确保缩减后大小能承载原有数据

3、缩减之前强行检查文件,确保文件系统处于一致性检查

[root@localhost mapper]# umount /uuu

[root@localhost mapper]# e2fsck -f /dev/mapper/yellow-qq 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mapper/yellow-qq: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks

[root@localhost mapper]# lvreduce -L 1G /dev/yellow/qq
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce yellow/qq? [y/n]: y
Size of logical volume yellow/qq changed from 2.00 GiB (512 extents) to 1.00 GiB (256 extents).
Logical volume yellow/qq successfully resized.

[root@localhost mapper]# mount /dev/yellow/qq /uuu
[root@localhost mapper]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu

 

 

快照卷:


1、生命周期内数据增长量不能超过快照卷大小(可以指定lv中数据量大小)

2、快照卷是只读的

3、跟原卷在同一个卷组

lvcreate  -L(大小)   -s(快照卷) -p r|w   lv_name 

[root@localhost mapper]# lvcreate -L 10M -n testlv_snap -s /dev/yellow/qq -p r
Rounding up size to full physical extent 12.00 MiB
Logical volume "testlv_snap" created.

 

镜像卷:

[root@localhost mapper]# lvcreate -L 1G -m1 -n bbq yellow /dev/sdf1 /dev/sdf2 /dev/sde1
Logical volume "bbq" created.
[root@localhost mapper]# lvs -a -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
root rhel -wi-ao---- 90.00g /dev/sda2(976)
swap rhel -wi-ao---- 3.81g /dev/sda2(0)
bbq yellow rwi-a-r--- 1.00g 100.00 bbq_rimage_0(0),bbq_rimage_1(0)
[bbq_rimage_0] yellow iwi-aor--- 1.00g /dev/sdf2(1)
[bbq_rimage_1] yellow iwi-aor--- 1.00g /dev/sde1(1)
[bbq_rmeta_0] yellow ewi-aor--- 4.00m /dev/sdf2(0)
[bbq_rmeta_1] yellow ewi-aor--- 4.00m /dev/sde1(0)
qq yellow owi-aos--- 1.00g /dev/sdd1(0)
testlv_snap yellow sri-aos--- 12.00m qq 0.10 /dev/sdd1(256)

[root@localhost mapper]# lvdisplay /dev/yellow/bbq
--- Logical volume ---
LV Path /dev/yellow/bbq
LV Name bbq
VG Name yellow
LV UUID mVwhvG-djHj-0jdM-6MlR-T4iG-0vNx-PHz8s4
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-05-31 01:25:13 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:10

[root@localhost ~]# lvextend bbq /dev/sde1

[root@localhost ~]# lvconvert -m1 /dev/yellow/bbq /dev/sde1 /dev/sdf1 /dev/sdf2

 

 

参考:

https://blog.csdn.net/cybertan/article/details/7623356

https://blog.csdn.net/yanggd1987/article/details/48676347

以上是关于linux里lvm 用来干啥的主要内容,如果未能解决你的问题,请参考以下文章

Linux下配置RAID5 LVM逻辑卷及磁盘配额的实验

linux可以干啥?

Linux LVM介绍及管理

linux 下面X11库是干啥的

linux 怎么对非lvm根分区dev/sda2 进行扩容

linux lvm 中的lv扩充影响里面的数据吗? 怎么扩充?