CentOS6.8 配置LVM
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
基本的逻辑卷管理概念:
PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
摘自:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html
逻辑卷、卷组、物理卷、硬盘的关系图:

简单的理解LVM,就是把多块物理硬盘合并起来,变成一块大硬盘,然后根据自己的需求来划分实际的挂载大小磁盘;
1.查看目前服务器的磁盘
[root@localhost ~]# fdisk -l 磁盘 /dev/sdc: MB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节 磁盘 /dev/sdb: MB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节 磁盘 /dev/sdd: MB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节
目前服务上有三块未使用硬盘,/dev/sdb,/dev/sdc,/dev/sdd,下面我们首先创建一下物理卷
2.创建物理卷
[root@localhost ~]# pvcreate /dev/sd{b,c}
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
3.创建卷组,我们基于/dev/sdb, /dev/sdc 来创建卷组;
[root@localhost ~]# vgcreate vg /dev/sd{b,c}
Volume group "vg" successfully created
4.创建逻辑卷,在vg 卷组上创建逻辑卷lv1;
[root@localhost ~]# lvcreate -n lv1 -L 8G vg
Logical volume "lv1" created.
5.创建完成以后我们查看下我们逻辑卷、物理卷、卷组相关信息
i.查看物理卷信息
[root@localhost ~]# pvdisplay /dev/sdc #也可以通过pvs查看
--- Physical volume ---
PV Name /dev/sdc #物理卷名字
VG Name vg #属于vg卷组
PV Size 5.00 GiB / not usable 4.00 MiB #物理卷的大小
Allocatable yes
PE Size 4.00 MiB #PE大小,PE是lVM最小的存储单位,于磁盘的扇区,文件系统的block类似;
Total PE
Free PE
Allocated PE
PV UUID OkxuWM-b0oI-UsGz-zAmN-NBeO-dP5q-m3tp8M
ii.查看卷组信息
[root@localhost ~]# vgdisplay vg # vgs 也可以查看
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 9.99 GiB #vg总共大小,因为我这边使用的两块硬盘的
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 8.00 GiB
Free PE / Size / 1.99 GiB
VG UUID vAtU6L-meiS-Y5FV-OtII-6zX0-plUe-c7K5LA
iii.查看逻辑卷信息
[root@localhost ~]# lvdisplay /dev/vg/lv1 #通过lvs 也可以查看
--- Logical volume ---
LV Path /dev/vg/lv1
LV Name lv1
VG Name vg
LV UUID 51qmlr-suvX-TyMF-DOBZ-bL4r-0AEk-cxF96q
LV Write Access read/write
LV Creation host, time localhost.localdomain, -- :: +
LV Status available
# open
LV Size 8.00 GiB # 当前lv大小
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :
6.创建文件系统
[root@localhost ~]# mkfs.ext4 /dev/vg/lv1 # 基于lv1 创建文件系统
mke2fs 1.42. (-Dec-)
文件系统标签=
OS type: Linux
块大小= (log=)
分块大小= (log=)
Stride= blocks, Stripe width= blocks
inodes, blocks
blocks (5.00%) reserved for the super user
第一个数据块=
Maximum filesystem blocks=
block groups
blocks per group, fragments per group
inodes per group
Superblock backups stored on blocks:
, , , , , , , Allocating group tables: 完成
正在写入inode表: 完成
Creating journal ( blocks): 完成
Writing superblocks and filesystem accounting information: 完成
7.挂载(mount)lv1
[root@localhost ~]# mount /dev/vg/lv1 /opt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 14G % /
devtmpfs 982M 982M % /dev
tmpfs 993M 993M % /dev/shm
tmpfs 993M 9.0M 984M % /run
tmpfs 993M 993M % /sys/fs/cgroup
/dev/sr0 .3G .3G % /mnt
/dev/sda1 1014M 125M 890M % /boot
tmpfs 199M 199M % /run/user/
/dev/mapper/vg-lv1 .8G 36M .3G % /opt
8.当lv1 空间不足的时候,我们需要来扩展下lv1,扩展逻辑卷lv1
# 查看卷组剩余空间
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- <.00g
vg wz--n- .99g .99g
# 将剩余的空间均扩展到lv1
[root@localhost ~]# lvextend /dev/vg/lv1 -L +.99g
Rounding size to boundary between physical extents: 1.99 GiB.
Size of logical volume vg/lv1 changed from 8.00 GiB ( extents) to 9.99 GiB ( extents).
Logical volume vg/lv1 successfully resized.
9.更新文件系统,扩展完成逻辑卷以后,逻辑卷大小增加了,但是实际空间大小没有变大,所以我们需要更新下文件系统
# 查看文件大小
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 14G % /
devtmpfs 982M 982M % /dev
tmpfs 993M 993M % /dev/shm
tmpfs 993M 9.0M 984M % /run
tmpfs 993M 993M % /sys/fs/cgroup
/dev/sr0 .3G .3G % /mnt
/dev/sda1 1014M 125M 890M % /boot
tmpfs 199M 199M % /run/user/
/dev/mapper/vg-lv1 .8G 36M .3G % /opt
# 更新文件系统
[root@localhost ~]# resize2fs /dev/vg/lv1
resize2fs 1.42. (-Dec-)
Filesystem at /dev/vg/lv1 is mounted on /opt; on-line resizing required
old_desc_blocks = , new_desc_blocks =
The filesystem on /dev/vg/lv1 is now blocks long.
# 再次查看我们的文件系统大小
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 14G % /
devtmpfs 982M 982M % /dev
tmpfs 993M 993M % /dev/shm
tmpfs 993M 9.0M 984M % /run
tmpfs 993M 993M % /sys/fs/cgroup
/dev/sr0 .3G .3G % /mnt
/dev/sda1 1014M 125M 890M % /boot
tmpfs 199M 199M % /run/user/
/dev/mapper/vg-lv1 .8G 36M .2G % /opt
这样证明我们已经扩展完成了,逻辑卷,但是当文件系统依然无法当前存储的时候,但是我们的卷组空间已经不足,我们需要来扩展我们的卷组,下面扩展下卷组
注意:
resize2fs命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs命令 针对的是xfs文件系统
10.扩展卷组
# 创建物理卷
[root@localhost ~]# pvcreate /dev/sdd #扩展卷组
[root@localhost ~]# vgextend vg /dev/sdd #查看当前卷组的大小
[root@localhost ~]# vgdisplay vg
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size <14.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 9.99 GiB
Free PE / Size / <5.00 GiB
VG UUID vAtU6L-meiS-Y5FV-OtII-6zX0-plUe-c7K5LA
这样我们的逻辑卷大小从10G增加到了15G,便于我们再次扩展上层的LV,lv不足时从vg中要空间,vg不足时需要添加pv来增加空间;
11.回缩LV空间大小
i.卸载挂载目录
# 检查下逻辑卷是否处于挂载中如果是挂载状态需要先卸载
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 14G % /
devtmpfs 982M 982M % /dev
tmpfs 993M 993M % /dev/shm
tmpfs 993M 9.3M 983M % /run
tmpfs 993M 993M % /sys/fs/cgroup
/dev/sr0 .3G .3G % /mnt
/dev/sda1 1014M 125M 890M % /boot
tmpfs 199M 199M % /run/user/
/dev/mapper/vg-lv1 .8G 36M .2G % /opt
[root@localhost ~]# umount /opt/
ii.检查文件系统
#回缩的前必须执行,没有执行的时候会提示
[root@localhost ~]# e2fsck -f /dev/vg/lv1
e2fsck 1.42. (-Dec-)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass : Checking reference counts
第5步: 检查簇概要信息
/dev/vg/lv1: / files (0.0% non-contiguous), / blocks
iii.回缩文件系统,再次回缩逻辑卷大小
# 回缩文件系统为3G
# resize2fs 逻辑卷名称 缩小至多大
[root@localhost ~]# resize2fs /dev/vg/lv1 3G
resize2fs 1.42. (-Dec-)
Resizing the filesystem on /dev/vg/lv1 to (4k) blocks.
The filesystem on /dev/vg/lv1 is now blocks long.
# 回缩逻辑卷大小,回缩其实就是减小,添加的时候通过+,减少的时候通过 - 来实现
[root@localhost ~]# lvreduce -L -7G /dev/vg/lv1
WARNING: Reducing active logical volume to 2.99 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg/lv1? [y/n]: y
Size of logical volume vg/lv1 changed from 9.99 GiB ( extents) to 2.99 GiB ( extents).
Logical volume vg/lv1 successfully resized.
# 挂载目录,查看文件系统是否变小,注意这里需要注意文件系统的大小一定小于等于逻辑卷的大小,如果不满足时挂载会出现错误
# 由于我这边回缩的时候导致文件系统大于逻辑系统挂载时提示
[root@localhost ~]# mount /dev/vg/lv1 /opt/
mount: 文件系统类型错误、选项错误、/dev/mapper/vg-lv1 上有坏超级块、
缺少代码页或助手程序,或其他错误 有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
# 重新的扩展下逻辑卷,再次重置大小,然后再次挂载
[root@localhost ~]# mount /dev/vg/lv1 /opt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 14G % /
devtmpfs 982M 982M % /dev
tmpfs 993M 993M % /dev/shm
tmpfs 993M 9.2M 983M % /run
tmpfs 993M 993M % /sys/fs/cgroup
/dev/sr0 .3G .3G % /mnt
/dev/sda1 1014M 125M 890M % /boot
tmpfs 199M 199M % /run/user/
/dev/mapper/vg-lv1 .9G 32M .6G % /opt
注意:
xfs文件系统没有办法回缩,这个只能针对ext 文件系统
12.删除逻辑卷(创建lvm时,我们需要先创建pv、vg、lv,删除的时候我们需要从上往下删除,先删除lv、vg、pv)
# 挂载状态删除逻辑卷,提示正在使用中
[root@localhost ~]# lvremove /dev/vg/lv1
Logical volume vg/lv1 contains a filesystem in use. #卸载挂载目录
[root@localhost ~]# umount /opt/ #删除文件系统
[root@localhost ~]# lvremove /dev/vg/lv1
Do you really want to remove active logical volume vg/lv1? [y/n]: y
Logical volume "lv1" successfully removed # 删除查看卷组大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- <.00g
vg wz--n- <.99g <.99g
13.删除卷组
# 删除卷组
[root@localhost ~]# vgremove vg
Volume group "vg" successfully removed
# 查看我们是否还有vg卷组
[root@localhost ~]# vgs #此时vg卷组已经不存在
VG #PV #LV #SN Attr VSize VFree
centos wz--n- <.00g
14.删除物理卷
#删除物理卷
[root@localhost ~]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped.
CentOS6.8 配置LVM的更多相关文章
- CentOS 6.7 配置LVM (逻辑卷管理)
LVM 简介 LVM是逻辑盘卷组管理 (Logical Volume Manager) 的简称. LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,在一定程度上解决普通磁盘分区带来 ...
- 在CentOS6上配置MHA过程全记录
在CentOS6上配置MHA过程全记录 MHA(Master High Availability)是一款开源的MariaDB or MySQL高可用程序,为MariaDB or MySQL主从复制架构 ...
- centos6 网卡配置,多IP设置
##云服务器 centos6网卡配置 #设置出口IP vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=seth0 #网卡名称 BOOTPROTO ...
- centos6 安装配置ss笔记
2018-05-17 centos6 安装配置ss笔记 操作环境:Centos 6 x86_64 bbr 服务器地址:美国 1.准备VPS 在https://www.bwh1.net可购买,购买时已默 ...
- CentOS6.5配置 cron
CentOS6.5配置 cron 任务 - mengjiaoduan的博客 - CSDN博客https://blog.csdn.net/mengjiaoduan/article/details/649 ...
- Centos6.7配置Nginx+Tomcat简单整合
系统环境:Centos 6.7 软件环境:JDK-1.8.0_65.Nginx-1.10.3.Tomcat-8.5.8 文档环境:/opt/app/ 存放软件目录,至于mkdir创建文件就不用再说了 ...
- CentOS6.4 配置Tengine(转)
CentOS6.4 配置Tengine 1.安装Nginx所需的pcre-devel库 yum install -y gcc gcc-c++ wget ftp://ftp.csx.cam.ac.u ...
- [RHEL] 配置 LVM 卷
[RHEL] 配置 LVM 卷 一.Introduction 基础预览 :LVM 认知与扩容操作 高端实战:Linux系统如何迁移至LVM磁盘 之前转过一篇文章 LVM分区在线扩容 ,其原因是我需要给 ...
- centos6.x 配置bond
centos6.x 配置bond centos6.x 配置bond1 物理网卡配置2 bond0网卡配置3 查看bond0网卡状态 摘要: centos6.x下使用双网卡配置bond0, centos ...
随机推荐
- 漏洞复现——Apache SSI远程命令执行
漏洞原理:当目标服务器开启了SSI与CGI支持,我们就可以上传shtml文件,利用<!--#exec cmd="id" -->语法执行命令. SSI:SSI(服务器端包 ...
- icpc2018-焦作-D-几何模拟
https://nanti.jisuanke.com/t/34142 上午可能是供氧不足,推的式子死活不对,晚上莫名其妙又来了一次就过了. 分两种情况讨论,如果能够完全进入弯道答案就是固定的就是: s ...
- linux 基础命令,未完待续
1, cd 进入系统根目录 cd / 进入当前用户的主目录 cd ~ 进入当前目录的上一级目录 cd .. 跳转到指定目录,从根目录开始 cd /apps/ 2, pwd 查看当前工作目录的完整路径 ...
- 数据结构与算法之PHP排序算法(堆排序)
一.堆的定义 堆通常是一个可以被看做一棵树的数组对象,其任一非叶节点满足以下性质: 1)堆中某个节点的值总是不大于或不小于其父节点的值: 每个节点的值都大于或等于其左右子节点的值,称为大顶堆.即:ar ...
- MongoDB 教程(七):插入文档、更新文档、删除文档
MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式 —— BSON是一种类json的二进制形式的存储格式,简称Binary JSON. MongoDB ...
- JAVA中经过nginx反向代理获取客户端ip并获取相关坐标等信息
关于搜狐新浪ip库查询接口的使用 直接输出访客ip及所在城市: <script src="http://pv.sohu.com/cityjson?ie=utf-8" > ...
- 使用Python-Libvirt GUI 实现KVM 虚拟机 界面化管理
一.KVM环境的搭建 1.安装VMware(略) 2.在VMware中安装Linux系统(略,Ubuntu16.04) 打开支持虚拟化 网络选择桥接模式 3.安装qemu apt-get instal ...
- VS2015在win10上编译的程序不能在Win7上运行的原因
研究了下,搞懂原理了.是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-X ...
- Linux目录结构 重要目录结构详细
1.1 /etc/hosts ip地址与主机名(域名)的对应关系 解析主机名 ping www.baidu.com 解析成10.0.0.200 1.产品测试 2 用主机名互相访问 1.2 /et ...
- Let me introduce myself
介绍自己,从开学到这上半学期结束,不知道说了多少个版本.开学军训,要自我介绍:军训结束,在班里要自我介绍:参加社团,面试要自我介绍.....不能说对每个人,至少对于我来说,在众人面前开口介绍自己,总还 ...