第 三 十 八 天:Linux 的 LVM 逻 辑 卷 管 理

小Q:书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有

书籍,就好像鸟儿没有翅膀。                        —— 莎士比亚

===============================简介=================================

LVM:Logical Volume Manager(逻辑卷管理),它是Linux环境下对磁盘分区进行管理的一种机制

来由:每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评LVM模型

估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该

分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚

至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

卷组volume group (VG)

卷组是LVM中最高抽象层,是由一个或多个PV所组成的存储器池。

物理卷physical volume (PV)

典型的物理卷就是硬盘分区,也可以是整个硬盘或已创建的Software RAID 卷,是LVM的基本存储逻辑块,

包含有与LVM相关的管理参数。

物理块physical extent (PE)

物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同;默认为4MB,所以PV

由大小等同的基本单元PE组成。

逻辑块logical extent (LE)

逻辑卷按“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。LE的大小和PE是相同的。

逻辑卷logical volume (LV)

逻辑卷相当于非LVM系统中的分区,它在VG上建立,是一个标准的块设备,可以在其上建立文件系统

线性映射

线性映射-把一定范围的物理块按顺序分配给逻辑卷,如LV的LE 1-99映射到PV1,LE 100-347映射

到PV2。

交错模式

交错模式-将把逻辑块交错映射到不同的物理卷中,如 LV的LE 1映射为PV1的PE1,LE 2映射为PV2的PE1,LE 3映射为PV1的PE2.。这种方式可以提高逻辑卷的性能,但是采用这种方式建立的逻辑卷将不

能在它们所在的物理卷中扩展。

==============================创建LVM================================

第一步创建物理文件系统

命令: fdisk /dev/sdb          ——创建物理卷并修改ID为8e

第二步初始化物理卷为PV

创建PV,添加几个文件系统,然后再添加一个RAID文件系统

命令:pvcreate /dev/sdb{5,6,7,8,9}      ————   添加文件系统到PV

pvcreate /dev/md0              ————   添加raid文件系统到PV

pvs,pvdisplay              ————   查看系统现有PV

第三步创建卷组VG

添加PV到卷组,创建VG卷组

命令:vgcreate  [-s=16m]     test_vg      /dev/sdk1  /dev/sdl1

指定PE大小  VG卷组名   要添加到VG中的PV

使用man帮助看一下使用方法

看上面的例子,我们添加PV到卷组中创建VG

命令:vgcreate vg0 /dev/sdb{5,6,7,8,9} /dev/md0

vgs,vgdisplay

注释:[-s=16m] 里面的内容可选,修改默认的PE单元大小,默认为4M,最大一个卷组是256G,修改默

认单元为16M,最大的卷组单元是1024G

命令:vgdisplay testvg | grep "Total PE"

看看默认的PE大小为4M,PV个数为6个,VG的总大小为6.7.G

其他VG卷组的一些操作

激活VG

在被激活之前,VG与LV是无法访问的

用man帮助看一下

命令:vgchange -a y vg0      —— 激活vg0卷组

当不再使用VG时,休眠了vg0卷组

命令:vgchange -a n vg0     —— 使之不再可用

移除VG

在移除一卷组前应确认卷组中不再有逻辑卷

命令:vgchange -a n vg0    ———— 休眠卷组

vgremove  vg0        ———— 移除该卷组

为VG增加新PV

当卷组空间不足时,可以加入新的物理卷来扩大VG卷组容量,这时可用命令vgextend

pvcreate  /dev/sdb15      —— 初始化sdb15为PV

vgextend  vg0  /dev/sdb15     —— 把sdb15加入到卷组vg0中

其中/dev/sdb15是新的PV,当然在这之前,它应使用pvcreate初始化

从VG移除PV

在移除PV之前,应确认该PV没用被LV使用

命令:pvdisplay  /dev/sdb15        —— 查看pv有没有使用

如这个PV仍在被使用,在确认它未被使用后,可用命令vgreduce把它从VG中删除

命令:vgreduce  vg0  /dev/sdb15  ———— 从vg中删除pv

如果所在PV上有数据,则应把数据传移到其它PV上

注释:若要把一个PV从VG中移除,应首先把其上所有活动PE中的数据转移到其它PV上,而新的PV必须是本VG的一部分,有足够的空间,如要把PV1:/dev/md0上的数据移到PV2:/dev/sdb6上可用,建议在转移数据之前备份LV中的数据,如果在该PV之上的LV采用交错方式存放,则这个转移过程不能被打断。

命令:pvmove  /dev/md0 /dev/sdb6

时间: 2024-12-14 06:09:40

第 三 十 八 天:Linux 的 LVM 逻 辑 卷 管 理的相关文章

程序员的奋斗史(三十八)——大学断代史(二)——我与数据库的故事

文/.温国兵 惰性人皆有之,也算是人的一大天性.几日之前便构思好此文,怎奈每日杂事繁多,今日才提起笔,作下此文.本文谈谈我与数据库的故事. 说起和数据库结缘,还得从大一说起.大一刚开始接触C语言,每日就沉浸在无止境的代码中.在网上查资料的过程中,看到别人用C语言写了一个小型的图书操作程序,数据库采用的是SQL Server,运行出来的效果图很炫,惊叹原来还可以这样管理数据.熟知C语言的同学肯定对文件操作不陌生,当时我们写程序如果有静态数据,都是放在文件里的.直到后来做的C语言课程设计,我也是一大

二十八、Linux下Vim工具常用命令

在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚接触,本节将我日常使用或收集的Vim常用命令记录下来. 当然,直接在命令行上输入:vimtutor,就可以学习到Vim的所有命令了.Vim很强大,很多牛人在vim里集成很多插件什么的,但这里只介绍基本vim命令 移动命令 h "左 j "下 k "上 l "右 w "光标移动到下一个单词的首字符 a word forward b "光标移动到上一个单词的首

NeHe OpenGL教程 第三十八课:资源文件

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十八课:资源文件 从资源文件中载入图像: 如何把图像数据保存到*.exe程序中,使用Windows的资源文件吧,它既简单又实用. 欢迎来到NeHe教程第38课.离上节课的写作已经有些时日了,加上写了一整天的code,也许笔头已经

QT开发(三十八)——Model/View框架编程

QT开发(三十八)--Model/View框架编程 一.自定义模型 1.自定义只读模型 QAbstractItemModel为自定义模型提供了一个足够灵活的接口,能够支持数据源的层次结构,能够对数据进行增删改操作,还能够支持拖放.QT提供了 QAbstarctListModel和QAbstractTableModel两个类来简化非层次数据模型的开发,适合于结合列表和表格使用. 自定义模型需要考虑模型管理的的数据结构适合的视图的显示方式.如果模型的数据仅仅用于列表或表格的显示,那么可以使用QAbs

三十八、git merge简介

git merge的基本用法为把一个分支或或某个commit的修改合并现在的分支上. 我们可以运行git merge -h查看其命令usage: git merge [options] [<commit>...]    or: git merge [options] <msg> HEAD <commit>    or: git merge --abort -n                    do not show a diffstat at the end of

&nbsp; CCNA实验三十八 ZFW(区域防火墙)

CCNA实验三十八 ZFW(区域防火墙) 环境:Windows XP .Packet Tracert5.3 目的:了解ZFW的原理与基本配置 说明: ZFW(Zone-Based Policy Firewall),是一种基于区域的防火墙,基于区域的防火墙配置的防火墙策略都是在数据从一个区域发到另外一个区域时才生效,在同一个区域内的数据是不会应用任何策略的,所以我们就可以将需要使用策略的接口划入不同的区域,这样就可以应用我们想要的策略.但是,有时某些接口之间可能不需要彼此使用策略,那么这样的接口只

微信小程序把玩(三十八)获取设备信息 API

原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx.onAccelerometerChange, 罗盘数据wx.onCompassChange wxml <button type="primary" bindtap="getNetWorkType">获取网络类型</button> <butt

三十四、Linux系统任务计划cron、chkconfig工具、systemd管理服务、unit介绍

三十四.Linux系统任务计划cron.chkconfig工具.systemd管理服务.unit介绍.target介绍 一.Linux系统任务计划cron crontab命令:对任务计划功能的操作用此命令.选项: -u:指定某个用户,不加-u则为当前用户. -e:制定任务计划. -l:列出任务计划. -r:删除任务计划. 任务计划的配置文件:/etc/crontab 文件内共有五个字段. 从左往右依次为:分.时.日.月.周.用户.命令. 可以不指定用户就是root. # crontab -e  

第三十八象 辛丑

第三十八象 辛丑 谶 曰门外一鹿 群雄争逐劫及鸢鱼 水深火热 颂 曰火运开时祸蔓延万人後死万人先海波能使江河浊境外何殊在目前 金圣叹注解:此象兵祸起於门外有延及门内之兆 推背图网解:第三十八象应卦噬嗑.噬嗑形同张开利牙的大嘴撕扯肉食,用现在的话讲好比是一台正在工作的绞肉机.易曰:“雷电噬嗑,先王以明罚敕法.”噬嗑卦上雷下日.雷电大作,是要降妖除魔:先王严明刑罚,是为整饬法令.卜到此卦,令妖魔鬼怪胆寒,然而前景却是一片光明. 谶辞:门外一鹿何来群雄争逐?所谓门外,此处为大陆之外,即海中.鹿者,山麓