centos下LVM配置与管理
centos下LVM配置与管理
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
LVM的主要功能:容量组合,动态调整容量大小。
LVM是将多块硬盘从逻辑上组合成一个大容量的存储空间(即VG),最终要划分成小的LV逻辑卷来使用这些空间。
LVM的管理流程:先给硬盘分区(也可以不分区),再创建PV,再创建VG,再创建LV,再格式化LV,再手动或自动挂载LV,再写入数据。
基本的逻辑卷管理概念:
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 的各项格式功能,因此这个限制已经不存在了。
功能/命令 |
物理卷管理(PV) |
卷组管理(VG) |
逻辑卷管理(LV) |
扫描查询系统中的LVM设备 |
pvscan |
vgscan |
lvscan |
建立 |
pvcreate |
vgcreate |
lvcreate |
显示 |
pvdisplay |
vgdisplay |
lvdisplay |
状态 |
pvs |
vgs |
lvs |
删除 |
pvremove |
vgremove |
lvremove |
扩展(增加容量) |
vgextend |
lvextend/lvresize |
|
缩容(缩小容量) |
vgreduce |
lvreduce/lvresize |
|
调整系统中看到的容量 |
resize2fs/xfs_growfs |
LVM逻辑卷管理的思路:先给硬盘分区(也可以不分区),再创建pv,再创建vg,再创建lv,再格式化,再手动或自动挂载,再测试数据的写入。
创建PV物理卷:
[root@serve1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda : 20G disk
├─sda1 : 1G part /boot
└─sda2 : 19G part
├─cl-root : 17G lvm /
└─cl-swap : 2G lvm [SWAP]
sdb : 20G disk
sdc : 20G disk
sr0 : .7G rom
创建PV
[root@serve1 ~]# pvcreate /dev/sd[b-c]
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
查看PV的状态
[root@serve1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <.00g
/dev/sdb lvm2 --- .00g .00g
/dev/sdc lvm2 --- .00g .00g
查看PV的详细信息
[root@serve1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name cl
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE
Free PE
Allocated PE
PV UUID fnufKb-qQ1k-jEH3-tS3R-7dvF-Ldrd-6PMuoG "/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size
Total PE
Free PE
Allocated PE
PV UUID koMQS3-Omw9-bg8r-Lluq-vM7C-nm0B-KqKIaH "/dev/sdc" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size
Total PE
Free PE
Allocated PE
PV UUID mzTDJw-Ak2N-CzDD-eEcO-bczl-wA0r-44LHqd
创建VG卷组:
[root@serve1 ~]# vgcreate vg1 /dev/sd[b-c]
Volume group "vg1" successfully created [root@serve1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl wz--n- <.00g
vg1 wz--n- .99g .99g
[root@serve1 ~]# vgdisplay
--- Volume group ---
VG Name vg1
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 39.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size /
Free PE / Size / 39.99 GiB
VG UUID xfNGUD-pYdS-eUI9-5Y0u-Ulqx-rwWW-EI5gso --- Volume group ---
VG Name cl
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 <19.00 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / <19.00 GiB
Free PE / Size /
VG UUID cxM7kS-b357-Y4MX-439j-EkVT-3X4l-5tTZp1
说明:vg1指的是卷组名称,/dev/[b-c]是卷组中的设备
创建LV逻辑卷(这里我创建了2个LV逻辑卷):
[root@serve1 ~]# lvcreate -L 25G -n lv1 vg1 #创建LV逻辑卷
Logical volume "lv1" created. [root@serve1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <.00g
swap cl -wi-ao---- .00g
lv1 vg1 -wi-a----- .00g [root@serve1 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size 25.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : --- Logical volume ---
LV Path /dev/cl/swap
LV Name swap
VG Name cl
LV UUID fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size 2.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : --- Logical volume ---
LV Path /dev/cl/root
LV Name root
VG Name cl
LV UUID OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size <17.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :
明:-L:指定逻辑卷的大小,单位为"kKmMgGtT"字节; -n:指定逻辑卷的名称; vg1是卷组的名称,卷组的名称要和上面创建的卷组名称一致。
[root@serve1 ~]# lvcreate -l +%FREE -n lv2 vg1
Logical volume "lv2" created. [root@serve1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <.00g
swap cl -wi-ao---- .00g
lv1 vg1 -wi-a----- .00g
lv2 vg1 -wi-a----- .99g [root@serve1 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size 25.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : --- Logical volume ---
LV Path /dev/vg1/lv2
LV Name lv2
VG Name vg1
LV UUID DSymjV-ExDB-wTSR-6lns-Swjz-ZzP5-Ywf0xA
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size 14.99 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : --- Logical volume ---
LV Path /dev/cl/swap
LV Name swap
VG Name cl
LV UUID fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size 2.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : --- Logical volume ---
LV Path /dev/cl/root
LV Name root
VG Name cl
LV UUID OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
LV Write Access read/write
LV Creation host, time serve1, -- :: +
LV Status available
# open
LV Size <17.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :
说明:-l:指定逻辑卷的大小(LE数)
创建挂载目录、格式化挂载并写入文件测试:
#格式化LV逻辑卷
[root@serve1 ~]# mkfs.xfs /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize= agcount=, agsize= blks
= sectsz= attr=, projid32bit=
= crc= finobt=, sparse=
data = bsize= blocks=, imaxpct=
= sunit= swidth= blks
naming =version bsize= ascii-ci= ftype=
log =internal log bsize= blocks=, version=
= sectsz= sunit= blks, lazy-count=
realtime =none extsz= blocks=, rtextents= [root@serve1 ~]# mkfs.xfs /dev/vg1/lv2
meta-data=/dev/vg1/lv2 isize= agcount=, agsize= blks
= sectsz= attr=, projid32bit=
= crc= finobt=, sparse=
data = bsize= blocks=, imaxpct=
= sunit= swidth= blks
naming =version bsize= ascii-ci= ftype=
log =internal log bsize= blocks=, version=
= sectsz= sunit= blks, lazy-count=
realtime =none extsz= blocks=, rtextents= #挂载逻辑卷
[root@serve1 ~]# mount /dev/vg1/lv1 /web
[root@serve1 ~]# mount /dev/vg1/lv2 /data [root@serve1 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root xfs 17G .3G 13G % /
devtmpfs devtmpfs .9G .9G % /dev
tmpfs tmpfs .9G .9G % /dev/shm
tmpfs tmpfs .9G 9.1M .9G % /run
tmpfs tmpfs .9G .9G % /sys/fs/cgroup
/dev/sda1 xfs 1014M 238M 777M % /boot
tmpfs tmpfs 378M 12K 378M % /run/user/
tmpfs tmpfs 378M 378M % /run/user/
/dev/mapper/vg1-lv1 xfs 25G 33M 25G % /web
/dev/mapper/vg1-lv2 xfs 15G 33M 15G % /data [root@serve1 ~]# echo /dev/mapper/vg1-lv1 /web xfs defaults >>/etc/fstab
[root@serve1 ~]# echo /dev/mapper/vg1-lv2 /date xfs defaults >>/etc/fstab [root@serve1 ~]# cat /etc/fstab #
# /etc/fstab
# Created by anaconda on Wed Sep ::
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(), findfs(), mount() and/or blkid() for more info
#
/dev/mapper/cl-root / xfs defaults
UUID=4318c13a-c39b-484d-aaa0-ce6331eddc30 /boot xfs defaults
/dev/mapper/cl-swap swap swap defaults
/dev/mapper/vg1-lv1 /web xfs defaults
/dev/mapper/vg1-lv2 /date xfs defaults
说明:centos7支持xfs和etx4类型的文件系统,centos6不支持xfs类型的文件系统。
卸载删除LVM
思路:删除LVM的步骤和创建LVM的步骤是相反的。先删除LV逻辑卷,再删除VG卷组,最后删除PV物理卷
[root@serve1 ~]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@serve1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <.00g
swap cl -wi-ao---- .00g #删除VG1卷组
[root@serve1 ~]# vgremove vg1
Volume group "vg1" successfully removed #查看VG卷组状态
[root@serve1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl wz--n- <.00g #删除sd[b-c]物理卷
[root@serve1 ~]# pvremove /dev/sd[b-c]
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped. #查看PV物理卷状态
[root@serve1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <.00g #最后注释或删掉/etc/fstab里面逻辑卷的挂载信息。
centos下LVM配置与管理的更多相关文章
- CentOS下LVM逻辑卷管理技术解释
1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...
- (转)CentOS下开机启动查看管理命令:chkconfig用法
CentOS下开机启动查看管理命令:chkconfig用法 CentOS下开机启动查看管理的命令是:chkconfig 1. 开机启动列表查看: chkconfig --list 说明 ...
- CentOS下Apache配置多域名或者多端口映射
CentOS下Apache默认网站根目录为/var/www/html,假如我默认存了一个CI项目在html文件夹里,同时服务器的外网IP为ExampleIp,因为使用的是MVC框架,Apache需开启 ...
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
Centos下安装配置LAMP(Linux+Apache+MySQL+PHP) 关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...
- 阿里云服务器centos下安装配置svn服务器
阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion 从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...
- linux centOS下怎么配置web服务器
| 浏览:4503 | 更新:2011-12-07 17:45 1 2 3 分步阅读 下是我在配置web服务时作的一些记录,高手飘开或者看了指点一下,不胜感激,第一次配置,很多细节需要自己优化.适合环 ...
- CentOS下安装配置Cacti
cacti简介 随着公司规模扩大,服务器也日渐增多,对服务器集群的网络流量和服务器性能实时监测显得愈发重要.开源阵营中常用有MRTG(MultiRouter Traffic Grapher)--基于S ...
- 在centos 下安装配置基于gitosis 的git 服务
前言 这里我用的系统是centos 6.2, 在服务器上的准备工作(服务器IP为10.0.2.8 ): 1.安装 openssh服务器与客户端工具 $ sudo yum install openssh ...
- 在CentOS下安装配置MySQL(转)
今天刚把项目做完,需要马上部署到新到的测试服务器上,于是乎,要在服务器上安装环境,由于好久在linux上部署了,手有些生,比较费劲装完,现在把重要步骤贴出,供自己以后参照.1.首先要看看有没有已经安装 ...
随机推荐
- 自定义java代码快捷生成器使用与问题解决
对于很多的工作了有几年的开发人员来说,初期都是逐个单词语法的自己编写的.而一旦技术水平提高了到了一定的层次之后,在同时工作量的加大,要求我们必须加快提高工作效率.因此就可以利用必要的快捷开发手段和工具 ...
- Tips In C
C语言中的使用操作 宏定义时使用do while防止语句的分离, 但是不使用与需要有返回值的语句, 这个时候可以参考第二条 宏定义时使用({}), ()加上{}的方式, 在代码中填写逻辑算法, 最后的 ...
- web页面实时刷新之browser sync
web开发对实时刷新的需求 在刚开始学习前端时每次修改文件内容后都需要手工刷新下浏览器来看效果,做的次数多了就特别难受,有时仅仅修改了一个字母都需要刷新下页面查看 之后接触到编写边看的集成IDE,文件 ...
- phoneGap异步加载JS失败
现在正在做一个phoneGap项目,安卓平台,有个异步加载JS总是失败,phoneGap也不好调试,一个问题纠结了一下午 最后找了半天,找到了原因,因此写本文记录一下,也顺便帮帮遇到同样问题的人 原因 ...
- .net core 共享 .Net Forms Authentication cookie
Asp.net 项目迁移到 asp.net core 项目后需要 兼容以前老的项目的登录方式. Forms Authentication cookie 登录. 从网上搜集到关于这个问题的解决思路都没有 ...
- centos yum 安装jdk后配置JAVA_HOME
centos6.4 yum 安装jdk和JAVA_HOME的设置 2014-06-17 16:13 1176人阅读 评论(0) 收藏 举报 分类: linux(3) 版权声明:本文为博主原创文章, ...
- Android数据绑定技术二,企业级开发
PS:上一篇文章写了Databinding的简单使用,写了一个绑定textview的示例,和绑定的一些用法,估计有的人会说,之前的写的好好的,为什么要数据绑定这样的写法呢,没办法,社会在进步,当然是怎 ...
- 【菜鸟学Linux】Cron Job定期删除Log(日志)文件
以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长 ...
- Mat转化为IplImage类型的方法
Mat image_mat; IplImage imgTmp = image_mat; IplImage *img = cvCloneImage(&imgTmp);
- TeamViewer 软件完全卸载
TeamViewer 软件似乎用于商业环境中 - 彻底卸载 Windows 1. 检测为商业用途该软件似乎用于商业环境中.请注意:免费版仅供个人使用.您的会话将在 5 分钟后终止. 2.1 Close ...