基于Centos6系统创建逻辑卷LVM,执行扩容,缩减,删除等操作

什么是逻辑卷?

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。举例如我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

LVM的技术需求与产生背景

企业日益变化的存储需求使得传统的磁盘分区存储显得不够灵活,磁盘空间总有一天会被数据填满,那该怎么办呢?

这个时候逻辑卷盘LVM的诞生也就顺时改进了存储技术,也大大优化在线存储技术实现磁盘在线动态管理,降低了企业的管理成本。

基本逻辑卷LVM的管理概念:

PV(Physical Volume)- 物理卷 
即物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备

VG(Volumne Group)- 卷组 
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷 
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

PE(Physical Extent)- 即物理块

LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE会影响到LVM 的最大容量!不过,在CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

现在开始我们的实验环境搭配:

我们逻辑卷的搭建全部在虚拟机上实现,如果有什么不同的配置选项,建议还是以生产环境为主要验证对象。

虚拟机是:VMware Workstation 12

系统是:Centos6.8   |  LVM版本:lvm2.2

磁盘我们采用一个分区和一个整块硬盘,容量大小分区10G,磁盘20G

(因为我们的实验环境是一个分区和一整块硬盘。但对于raid设备实现逻辑卷,生产环境中应该是比较少用,所以我们不介绍),相信您学完此方法用raid来实现逻辑卷管理,自然不在话下。

注意:分出单个磁盘分区,需要加卷标,如果是一整块硬盘就不用加卷标直接格式化就行。

哦,对了。我先要删除逻辑卷的实验环境。这个删除有意思,完全是反着来的。

接下来第一步;对单个硬盘分出一个分区  (简单磁盘分区,命令fdisk ,一大步)

wKiom1fDJgSCsiZAAAB0hYFOSng882.png-wh_50

wKioL1fDJr6jfW1UAACZWZYw8ZA880.png-wh_50

第一个磁盘分区我们分完了,看看小伙伴们,分区是不是很简单呢...

接下来第二步;独立一块硬盘我们不用分区直接拿来创建物理卷就行

把刚分好的分区与单个硬盘一起创建为物理卷(磁盘的名称以自己系统检测出来的为准我这里是sdb,sdc)

[root@localhost ~]#pvcreate /dev/sd{b1,c} (创建物理卷,命令pvcreate ,二大步)

wKioL1fDKaOR0W6SAAAkwBbJoEU806.png-wh_50

创建成功,并且用pvs看格式为lvm2 

接下来第三步;创建卷组

把/dev/sdb1和/dev/sdc组合创建为一个卷组,卷组名为vg0

[root@localhost ~]# vgcreate vg0 /dev/sd{b1,c}(创建卷组,命令vgcreate ,三大步)

wKioL1fDKwzyxfHHAAAZnLZKDuw396.png-wh_50

创建成功,并且用vgs查看VG对应的卷组名是vg0,显示PV卷有两个,共30GB的空间容量

接下来第四步;创建逻辑卷

把新增的卷组容量加入逻辑卷中,逻辑卷名为lv0

[root@localhost ~]# lvcreate -n lv0 -L 10G vg0 (创建逻辑卷,命令lvcreate ,四大步)

此命令的意思是:vg0 中分出10G的空间给lv0使用

wKiom1fDLInQqTaoAAAiYAaHUOM759.png-wh_50

显示整个逻辑卷的详细信息 lvdisplay

wKioL1fDLcWx6OSKAABenl5UIBc071.png

接下来第五步;格式化逻辑卷 

注意:我们是先创建完pv,vg和lvm之后再格式化为ext4文件系统,跟raid的格式化是反着来的。

[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0 (格式化逻辑卷,命令mkfs.ext4,五大步)

wKioL1fDLuPAMpTqAABy2zmYY0c911.png

接下来第六步;挂载逻辑卷(挂载逻辑卷之前要先把逻辑卷路径写入配置文件fstab)

vim /etc/fstab (挂载逻辑卷修改fstab文件,六大步1)

wKiom1fDMGeg5EyoAAA-NWQgAX4473.png

[root@localhost ~]# mount /dev/vg0/lv0 /mnt/lv0/ (挂载逻辑卷,六大步2)

注意;先要在创建挂载目录,用mkdir -p /mnt/lv0 ,(-p递归创建目录,妈的老跟我说基什么什么,记不住。)

到此基本算成功搭起了逻辑卷,往下就是一些简单修改测试了。不过您可以尝试reboot下看配置是否永久生效!

wKioL1fDMNSQ5xGfAAAmCgjDoFg016.png

接下来第七步;在已挂载的逻辑卷内拷贝文件测试 

拷贝文件测试的时候我老是cp不成功加-r也不成功,后来经过几次折腾忽然想起了别名alias。仿佛一语惊醒梦我中人

因为默认系统给cp命令做了一个别名,默认是cp -i选项。所以在复制文件不想提示就在cp别名前面加个注释就行。

拷贝文件测试与写入文件测试均不受影响,可正常执行

[root@localhost ~]# cd /mnt/lv0/  (在逻辑卷下测试文件,七大步)

[root@localhost lv0]# dd if=/dev/zero of=f1 bs=1M count=1024

wKioL1fDOTTgqnzYAAAvKzgxxdc693.pngwKioL1fDOTSwKKIHAAAWUenzyqo380.png

接下来第八步;扩展逻辑卷(前提卷组有空间)

[root@localhost ~]# lvextend -L +10G /dev/vg0/lv0  (扩展逻辑卷,命令lvextend,八大步)

在lv0逻辑卷中原有的基础上增加了10G空间,原有10G+10G等于20G扩容成功

wKiom1fDOyPyXCHJAAA2_f2IcXc141.png

wKioL1fDOyOgijn4AAA7TQwBC8g796.png

以上扩容逻辑卷可能存在磁盘数据不同步问题,实际已增加,但是不显示(我一次增加成功并显示)
如果新增空间没显示记得同步下;

resize2fs /dev/vg0/lv0 (只能同步ext系列文件系统)

接下来第九步;扩展卷组(前提卷物理卷有空间)

先把磁盘创建为物理卷 

[root@localhost~]# pvcreate /dev/sdd  (扩展卷组,命令vgextend,九大步)

我创建了一个20G的物理卷,原来逻辑卷是30G还剩10G

wKioL1fDPa-xM3IcAAAbM75CR2k682.png

把物理卷加入卷组

[root@localhost~]# vgextend vg0 /dev/sdd

我对组加入了一个20G的物理卷,原来逻辑卷是30G还剩10G,增加后总共50G空间还剩30G空间

wKiom1fDPgiTGDd4AAAZMoKsMzg444.pngwKiom1fDP1WCoLRzAABTtY55RqI266.png

扩展卷组成功 (df命令是看当前系统已挂载文件系统信息)

注意:如果用df命令 查看文件系统大小,但实际扩容空间是不显示的。因为你增加的是空间容量并不是格式化后

的文件系统容量,所以你需要执行第八步的同步命令来新增文件系统容量

[root@localhost ~]# resize2fs /dev/vg0/lv0

wKiom1fDQv-i9sCNAAAdGUzP04s208.png

wKiom1fDQwCi5OeYAAAgFo3YcGY878.png

接下来第十步;缩减逻辑卷空间(前提必须离线操作) (缩减文件系统空间,命令resize2fs,十大步)

先卸载逻辑卷系统 umount /mnt/lv0

wKioL1fDRKmi2QWnAAAeM2TwCQQ693.png

 再缩减文件系统,先执行e2fsck -f命令检查文件系统信息

[root@localhost ~]# e2fsck -f /dev/vg0/lv0

[root@localhost ~]# resize2fs /dev/vg0/lv0 10G

wKiom1fDS0Xgm-fLAABM5UJGVN0081.png 

[root@localhost ~]# lvreduce /dev/vg0/lv0 -L 10G

再挂载 

wKioL1fDTISzAVrYAAAkrBtqj-w445.png

wKiom1fDTRCQRP4DAAAvM2s7afQ355.png

wKiom1fDTY_irQHpAAAokBajS3w548.png

到此逻辑卷卷缩减成功。

接下来第十一步;缩减卷组(前提必须离线操作) (缩减卷组空间,命令vgreduce,十一大步)

先卸载逻辑卷系统 umount /mnt/lv0,再查看pv信息

wKioL1fDTqvjgc-NAAAw7PGeWkw349.png

[root@localhost ~]# vgreduce vg0 /dev/sdd

将vg0组的sdd磁盘移除该组

wKiom1fDT3CQ_2jVAAAqotifZmk701.png

查看vgs信息,空间少了

wKiom1fDT9CADqvFAAARcTxI7bM465.png

到此vg0组的空间缩减成功。

接下来第十二步最后一步;删除逻辑卷 (这个有意思,是把创建LVM的步骤反过来操作,十二大步)

正确执行以下四条命令,方可彻底删除逻辑卷,特别简单。

1,umount /mnt/lv0  (先逻辑卷的lv0挂载取消)

2,lvremove /dev/vg0/lv0 (用lvremove 命令后面跟设备地址移除LV)

3,vgremove vg0 (用vgremove 加卷组名,移除vg0卷组)

4,pvremove /dev/sdb1 /dev/sdc /dev/sdd (移除所有PV物理卷)

wKioL1fDVAnx0sBcAACJvAsr90c579.png

到此结束整个测验。(有需要补充的可以留言,欢迎指正)

后面的关于逻辑卷快照的相关测验,后续奉上。学习太累了,睡觉困的一笔

本文出自 “51eA” 博客,请务必保留此出处http://51eat.blog.51cto.com/11892702/1843663

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
========================================================== 一:MySQL主从复制规划 主库:(MySQLmaster)IP:10.0.0.52PROT:3306从库1:(MySQLslave)IP:10.0.0.52PORT:3307从库2:(MySQLslave)IP:10.0.0.52PORT:3308 ========================================================== 二:检查环境 (1)检

openstack-M版安装部署 - 2016-08-29 22:08:06

[openstack 信息简介 ] Openstack 项目是一个开源的云计算平台,它为广大云平台提供了可大规模扩展的平台,全世界的云计算技术人员创造了这个项目,通过一组相互关联的服务来提供了 Iaas 基础解决方案,每一个服务都通过提供自身的 API 来提供服务,个人或者企业完全可以根据自身的需求来安装一部分或者全部的服务。 通过下面一张表格来描述一下当前 openstack 的各个组件及功能。 Service Project name Description Dashboard Horizon 通过提
一、前言 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如 Perforce 、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线
一、Ansible介绍 1 、简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory
挂载概念简述 : 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“ 挂载 ”,此目录即为“ 挂载点 ”,解除此关联关系的过程称之为“ 卸载 ” 1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问 2.挂载点:mount_point,用于作为另一个文件系统的访问入口; (1) 事先存在; (2) 应该使用未被或不会被其它进程使用到的目录; (3) 挂载点下原有的文件将会被隐藏; 挂载与卸载 挂载方法 :mount DECE MOUNT_
mha下载地址,需要翻墙 https://code.google.com/p/mysql-master-ha/ 管理软件 mha4mysql-manager-0.52-0.noarch.rpm 节点软件 mha4mysql-node-0.52-0.noarch.rpm 环境介绍Centos6.7X64192.168.30.210monitor192.168.30.211db1(master)192.168.30.212db2(备master)192.168.30.213db3192.168.30.214d
我在刚开始接触IO重定向时,经历了由懂到不懂然后了然的过程,当然现在的我也不可能说对于IO重定向就彻底懂了,只是在解决一些问题或实现某些结果时不会因为IO重定向的问题而迷惑了。 什么叫IO重定向? 为了解释这个问题,我们要先明白什么叫IO,什么叫做程序的数据流。 什么叫IO? 在Linux或计算机领域IO指的是信息的输入和输出。 在Linux中可用于输入的设备:文件(Linux中一切皆文件) 具体包括:键盘设备、文件系统上的常规文件、网卡等。 在Linux中用于输出的设备:文件 具体包括:显示器、文件系统
认真的测试过网上的大多数文章和版本,真正能一次性测试通过的文章太少了,需要反复的推敲,反复的查阅资料,才能真正的测试成功,所以,在此背景下,总结了Rsync,加上自己的理解分享出来; 1、 原理篇 Rsync,故名思议,是一个远程数据同步工具,可以镜像整个目录树和文件系统,也可以保持源文件的权限,时间和软硬链接,可以优化数据,文件重复数据的删除,也可以在LAN/WAN之间快速的同步多台主机的数据,这主要得益于Rsync的压缩和Rsync的核心算法,其算法,是本地和远程两台主机之间的文件达到同步并保持一致,

运维监控平台之ganglia - 2016-08-29 17:08:10

1、ganglia简介 Ganglia 是一款为 HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以 监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的 gmond 守护进程来采 集 CPU 、内存、硬盘利用率、 I/O 负载、网络流量情况等方面的数据,然后汇总到 gmetad 守护进程下,使用 rrdtool 存储数据,最后将历史数据以曲线方式通过 PHP 页面呈现。 Ganglia 的特点如下: 良好的扩展性,分层架构设计能够适应大规模服务器集群的需要 负载开销低,支持高并发 广
本文主要介绍zabbix在linux及windows下客户端的安装,网卡流量监控配置。 一、linux客户端安装 1. 编译软件 #useraddzabbix-s/sbin/nologin-M#./configure--prefix=/usr/local/zabbix-agent--enable-agent#makemakeinstall 2. 修改 agetn 配置 Server=127.0.0.1,192.168.115.31#本机即是agent和server127.0.0.1地址不可删除Server