LVM详解;Linux逻辑卷管理
2018-02-27 11:22
696 查看
目录:
LVM技术的产生原因
LVM术语介绍
LVM快照原理
案例精析
步骤分析
实操
LVM全称是逻辑卷管理,LogicalVolumeManager(逻辑卷管理)
我们在部署服务器的时候最底层是存储设备磁盘,上层是文件系统,我们不管是做RADI还是做LVM都是为了创建文件系统,所以RAID和lvm都是为了让咱们管理存储更加方便。通过下面两幅图我们能够看到他们之间的关系
使用LVM的优点有哪些?
文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
可以在系统运行的状态下动态的扩展文件系统的大小。
可以增加新的磁盘到LVM的存储池中。
可以以镜像的方式冗余重要的数据到多个物理磁盘。
可以方便的导出整个卷组到另外一台机器。
卷组Volume Group(VG):由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)
逻辑卷Logical Volume(LV):虚拟分区,由物理区域(physical extents)组成
物理区域Physical Extent(PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)
逻辑区域Logical Extent(LE):跟PE一样,只不过站在LV的视角上是叫LE,而在VG的视角上则是叫PE,其本质是一样的
注解:分区的大小为物理边界。文件系统的大小为逻辑边界或文件系统边界
以上这些专业术语之间的逻辑关系如下图所示
所谓系统快照就是将某一时刻文件系统中的数据记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里。而其他没有改变的数据,快照区和文件系统共享。所以刚建立快照时快照区内容和文件系统的内容一样。
由于只有当数据发生改变是才会将原始数据移动到快照区,因此快照区中保存的内容比较少。
快照区的原理图如下:
在刚创建快照的时候,文件系统和快照区共享所有的PE,也就是说此时的快照区和文件系统的内容是一样的。并且在快照区中保留的一些区块,这些区块用于存储数据的(如左图的左侧三个区块)。当文件系统的某个区块的数据将要发生改变时,则会将这个区块中的原始数据移动到快照区的空留处。而那些没有被修改的区块,仍然与文件系统共享。在上图中,区块A的数据将要发生改变,所以就将区块A的数据移动到快照区中,而B到I之间的区块没有修改,仍然和文件系统共享。由此可以看出,LVM的系统快照功能也是一个备份工具。
当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制(copy-on-write)。
在写操作写入块之前,将原始数据移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。
创建snapshot的大小并不需要和原始卷一样大,其大小仅仅只需要考虑两个方面:从shapshot创建到释放这段时间内,估计块的改变量有多大;数据更新的频率。一旦 snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot立刻被释放,从而无法使用,从而导致这个snapshot无效。
建立PV
建立VG,将PV加入到VG中。
建立LV,并设置LV大小。
格式化LV或LP成你需要的文件系统。
LV删除流程:
umountFS
删除LV。
将PV从所在的VG中删除。
删除VG。
1)创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
1. 创建pv
2.创建VG
3.创建lv
4.格式化lv与挂载
2)新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3)扩展testlv至7G,要求archlinux用户的文件不能丢失
4)对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
【注解:】在做实验的时候,第一天做了一半儿,剩下的一半儿是第二天做的,然后服务器直接重启了,这就导致了一个问题。我的/usrs目录中没有任何内容,后来排查之后发现是LV并没有挂载到该目录中。也许,在真正的生产环境中,每做一个操作,都要进一步的设置,以保证这个操作不仅当前有效,而且服务器重启之后依然有效。
LVM技术的产生原因
LVM术语介绍
LVM快照原理
案例精析
步骤分析
实操
LVM技术的产生原因
LVM是存储的一种管理方式。LVM全称是逻辑卷管理,LogicalVolumeManager(逻辑卷管理)
我们在部署服务器的时候最底层是存储设备磁盘,上层是文件系统,我们不管是做RADI还是做LVM都是为了创建文件系统,所以RAID和lvm都是为了让咱们管理存储更加方便。通过下面两幅图我们能够看到他们之间的关系
使用LVM的优点有哪些?
文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
可以在系统运行的状态下动态的扩展文件系统的大小。
可以增加新的磁盘到LVM的存储池中。
可以以镜像的方式冗余重要的数据到多个物理磁盘。
可以方便的导出整个卷组到另外一台机器。
LVM术语介绍
物理卷Physical Volume(PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)卷组Volume Group(VG):由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)
逻辑卷Logical Volume(LV):虚拟分区,由物理区域(physical extents)组成
物理区域Physical Extent(PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)
逻辑区域Logical Extent(LE):跟PE一样,只不过站在LV的视角上是叫LE,而在VG的视角上则是叫PE,其本质是一样的
注解:分区的大小为物理边界。文件系统的大小为逻辑边界或文件系统边界
以上这些专业术语之间的逻辑关系如下图所示
LVM快照原理
我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照。所谓系统快照就是将某一时刻文件系统中的数据记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里。而其他没有改变的数据,快照区和文件系统共享。所以刚建立快照时快照区内容和文件系统的内容一样。
由于只有当数据发生改变是才会将原始数据移动到快照区,因此快照区中保存的内容比较少。
快照区的原理图如下:
在刚创建快照的时候,文件系统和快照区共享所有的PE,也就是说此时的快照区和文件系统的内容是一样的。并且在快照区中保留的一些区块,这些区块用于存储数据的(如左图的左侧三个区块)。当文件系统的某个区块的数据将要发生改变时,则会将这个区块中的原始数据移动到快照区的空留处。而那些没有被修改的区块,仍然与文件系统共享。在上图中,区块A的数据将要发生改变,所以就将区块A的数据移动到快照区中,而B到I之间的区块没有修改,仍然和文件系统共享。由此可以看出,LVM的系统快照功能也是一个备份工具。
当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制(copy-on-write)。
在写操作写入块之前,将原始数据移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。
创建snapshot的大小并不需要和原始卷一样大,其大小仅仅只需要考虑两个方面:从shapshot创建到释放这段时间内,估计块的改变量有多大;数据更新的频率。一旦 snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot立刻被释放,从而无法使用,从而导致这个snapshot无效。
案例精析
步骤分析
LV建立流程:建立PV
建立VG,将PV加入到VG中。
建立LV,并设置LV大小。
格式化LV或LP成你需要的文件系统。
LV删除流程:
umountFS
删除LV。
将PV从所在的VG中删除。
删除VG。
实操
练习:1)创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
1. 创建pv
[root@localhost ~]# pvcreate /dev/sda6 /dev/sdb1 //这两个分区一块儿是16G的,一块儿是4G的。 //查看pv(pvs,pvdisplay) [root@centos ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda6 lvm2 ---- 16.00g 16.00g /dev/sdb1 lvm2 ---- 4.01g 4.01g [root@centos ~]# pvdisplay "/dev/sda6" is a new physical volume of "16.00 GiB" --- NEW Physical volume --- PV Name /dev/sda6 VG Name PV Size 16.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Qj8AC0-3o4k-AWRc-vZti-daND-wdR3-ncYX9V "/dev/sdb1" is a new physical volume of "4.01 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 4.01 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID d9AIXC-iQH8-Aqfg-HgI2-8cBs-zYne-77JIJk
2.创建VG
[root@centos ~]# vgcreate -s 16M testvg /dev/sdb1 /dev/sda6 Volume group "testvg" successfully created //查看vg [root@centos ~]# vgdisplay
3.创建lv
[root@centos ~]# lvcreate -L 5G -n testlv testvg Logical volume "testlv" created. [root@centos ~]# lvdisplay //查看lv
4.格式化lv与挂载
[root@centos ~]# mke2fs -t ext4 /dev/testvg/testlv //格式化 [root@centos ~]# mount /dev/testvg/testlv /usrs/ //挂载
2)新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
[root@centos /usrs]# useradd -d /usrs/archlinux archlinux //添加用户 [root@centos /usrs]# cp -r /etc/pam.d/ ./archlinux/ //拷贝文件到家目录中
3)扩展testlv至7G,要求archlinux用户的文件不能丢失
//1.扩展逻辑卷标 [root@centos /usrs]# lvextend -L 7G /dev/testvg/testlv //2.扩展文件系统 [root@centos /usrs]# resize2fs /dev/testvg/testlv //3.查看之前存储内容 [root@centos /usrs]# ls ./archlinux/
4)对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
[root@centos /usrs]# lvcreate -L 100M -s -n snap_20180227 -p r /dev/testvg/testlv //创建快照 [root@centos /usrs]# mount /dev/testvg/snap_20180227 /mnt/ //挂载快照 [root@centos /usrs]# rm -rf /usrs/* //删除源文件内容 [root@centos /usrs]# cp -a /mnt/* /usrs/ //将快照内容拷贝回源文件 [root@centos /usrs]# ls /usrs/ //查看现在源文件的内容 [root@centos /usrs]# umount /mnt/ //卸载快照 [root@centos /usrs]#lvremove /dev/testvg/snap_20180227 //删除快照
【注解:】在做实验的时候,第一天做了一半儿,剩下的一半儿是第二天做的,然后服务器直接重启了,这就导致了一个问题。我的/usrs目录中没有任何内容,后来排查之后发现是LV并没有挂载到该目录中。也许,在真正的生产环境中,每做一个操作,都要进一步的设置,以保证这个操作不仅当前有效,而且服务器重启之后依然有效。
相关文章推荐
- LVM -- Linux 逻辑卷管理详解
- LVM -- Linux 逻辑卷管理详解(LVM)
- Linux的逻辑卷管理(LVM)详解
- Linux LVM(逻辑卷管理)
- Linux LVM(逻辑卷管理)
- Linux环境下的逻辑卷管理LVM的几个术语
- Linux LVM逻辑卷配置过程详解
- Linux中的LVM(逻辑卷管理)
- 学习日志---linux lvm逻辑卷管理补图
- Linux基础–(fdisk分区命令+LVM逻辑卷管理)
- LVM逻辑卷管理一PV/VG/LV的创建-Linux
- (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)
- Linux中的LVM(逻辑卷管理)
- Linux中LVM(逻辑卷管理)的使用
- 学习日志---linux lvm逻辑卷管理
- LINUX 逻辑卷管理: LVM
- 浅谈Linux磁盘存储管理续【逻辑卷管理(LVM)】
- GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
- Linux 磁盘管理 管理LVM逻辑卷 以及 RAID卷组成