菜鸟的成长记录--LVM

LVM

LVM的全名是逻辑卷管理器。之所以成为卷,是应为它可以将文件系统像卷一样伸长或缩短。LVM的做法是将几个物理的分区或磁盘通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块磁盘在经过分区,分成可使用的分区(LV),最终就能够挂载使用了。

PV 物理卷

我们实际的分区需要调整系统标示符(system ID)成为8e(LVM的标示符),然后在经过pvcreate的命令将它转成LVM最底层的物理卷(PV),之后才能够将这些PV加以利用。

VG 卷用户组

所谓的LVM大磁盘就是将许多PV整合成这个VG,所以VG就是LVM组合起来的大磁盘。那么这个大磁盘最大可以达到多少容量呢?这与PE有关,因为每个VG最多仅能包含65534个PE,如果使用LVM默认的参数,则一个VG最大可达256GB的容量。

PE 物理扩展快

LVM默认使用4MB的PE块,而LVM的VG最多仅能含有65535个PE,它是整个LVM中最小的存储块,也就是说,其实我们的文件数据都是由写入PE来处理的。简单的说,这个PE就有点像文件系统里面的block大小。

LV 逻辑卷

最终的VG还会被切成LV,这个LV就是最后可以被格式化使用的类似分区。LV不可以随意指定大小,LV的大小与在此LV内的PE总数有关,如下图:

LVM可弹性更改文件系统的容量,就是通过交换PE来进行数据转换。将原本LV内的PE移转到其他设备中以降低LV容量,或将其他设备的PE加到此LV中以加大容量。

如果这个VG要扩充的话,加上其它的PV即可,最终的是,LV如果要扩充,也是通过加入VG内没有使用的PE来扩充。

命令及示例

首先先对磁盘进行分区,然后制定磁盘的类型是8e,其实没有设置成为8e也没关系,不过某些linux命令可能检测不到该分区。

PV阶段

pvcreate:将物理分区新建成为PV

pvscan:查看目前系统里面任何具有PV的磁盘

pvdisplay:显示出目前系统上面的PV状态

pvremove:将pv属性删除,让该分区不具有PV属性

#pvcreate /dev/sdb{1,2}

#pvscan

#pvdisplay

VG阶段

vgcrrete:就是主要新建vg的命令

vgscan:查找系统上面是否存在vg

vgdisplay:显示目前系统上面的vg状态

vgextend:在vg内增加额外的pv

vgreduce:在vg内删除pv

vgchange:设置vg是否启动

vgremove:删除一个vg

#vgcreate -s 8M kyvg /dev/sdb1 新建一个vg,指定pe大小为8M,组卷名叫kyvg,这里我先把sdb1加进来。

#vgs  查看vg的当前信息,显示pv有一个,大小为5G。

#vgxtend kyvg /dev/sdb2   这时我再把sdb2加入kyvg组里,查看一下

#vgs    可以确定sdb2已经加入到卷组中

#pvdisplay    从这里我们可以看到sdb1和sdb2已经加入卷组,创建卷组(VG)时,指定的PE大小是8M。相当于这个卷组中可以存放500G大小的文件。

LV阶段

创造出VG以后,就可以新建分区了,这个分区就是所谓的LV

lvcreate:新建lv

lvscan:查看系统上面的lv

lvdisplay:显示系统上面的lv状态

lvextend:在lv里面增加容量

lvreduce:在lv里面减少容量

lvremove:删除一个lv

# lvcreate  -L  2G  -n  mylv  /dev/kyvg   在卷组里新建一个lv,名字叫mylv,大小为2G

# lvdisplay

Lv的访问路径

1、/dev/VG_NAME/LV_NAME

/dev/kyvg/mylv

2、/dev/mapper/VG_NAME-LV_NAME

/dev/mapper/kyvg-mylv

此两者均为符号链接,指向的文件为/dev/dm-#

好了,分区创建完了,接下来就可以格式化并挂载了

# mke2fs  -t  ext4  /dev/kyvg/mylv   格式化mylv分区

# mount  /dev/kyvg/mylv  /tmp/ky     把mylv这个分区挂载到/tmp/ky目录下

#df  -h                                                 查看磁盘信息,发现以经创建成功

LV扩展

扩展lv空间大小,首先我们先查看vg的空间大小,是否有空闲的空间(新PE)在进行扩展。若果没有空闲的空间还得重新加pv,在把pv加进kyvg组卷里。

查看到有空闲空间,还有8G空间,可以进行扩展,我在这做实验,给它扩展3G的空间,达到5G。

首先要为lv扩展边界,给lv增加3G的空间

查看逻辑卷信息,这时,我们看到lv确实增加了3G,变成了5G,但是我们再来查看一下磁盘空间信息。

这里依然还是2G,这是文件系统没有相对增加,所以我们要在不umount的情况下我们进行在线直接处理

在查看一下lvs,这样就完成了在线处理,扩展到此结束

缩减lv

如果觉得给lv分的太大,感觉空间浪费的话,我们还可以对lv进行空间缩减,需要注意的是,缩减必须要在离线状态下进行,所以,必须先umount

# umount   /tmp/ky

先强制检测文件系统,确保没有问题了,在进行缩减。

先确定缩减后的目标大小;并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据,缩减很危险!谨慎操作!

确保没问题之后,然后进行缩减,由5G的空间缩减到3G的空间

先挂载,再查看,缩减到此结束,缩减很危险,后果很严重

菜鸟的成长记录--LVM,布布扣,bubuko.com

时间: 2024-10-21 09:57:53

菜鸟的成长记录--LVM的相关文章

菜鸟的成长记录--linux基础命令

以下是我学习时接触的命令,后续会慢慢添加 1.tty:查看终端类型 虚拟终端:/dev/tty# 伪终端:/dev/pts/# 控制台:/dev/console 串行终端:/dev/ttyS# 2.startx:启动图形界面 3.ifconfig:查看网卡信息 4.cd:进入用户主目录 cd ~:进入用户主目录 cd ~USERNAME:进入其他用户主目录 cd -:在前一个目录和当前目录来回切换 cd .:当前目录 cd ..:上一级目录 cd ../..:返回上两级目录 cd !$:把上一个

菜鸟的成长记录--linux 通配符和特殊字符集合的使用

通配符 当需要用命令查询所需要的结果时,用户不必全部查出一个一个找,可以使用Shell通配符.Shell命令的通配符含义如下表 符号 含义 实例 * 任意长度的任意字符 a*b,匹配如a3b.acb.aabc.a/b.a123,/b. ? 匹配任意单字符 a?b,匹配如a1b.acb.a,b [ ] 匹配指定范围内的任意字符 a[xyz]b,匹配如axb.ayb.azb [ - ] 匹配任意一个字符范围 a[a-z]b,匹配如ayb.acb.adb.aub [^...] 除了指定的字符,均可匹配

菜鸟的成长记录--linux正则表达式及grep

正则表达式 是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 元字符:不表示其字面意义,而用于额外功能性描述,下面是常用的元字符列表 符号 含义 . 表示匹配任意单个字符,例a.,匹配ab.ac.ad.ax * 表示它前面的字符可以出现任意次,例a*b,匹配aab.b.ab \? 表示它前面的字符可有可无,例a\?b,匹配a

菜鸟的成长——记录自己的每一次错误

作为一个菜鸟,在现在的学习中经常出错,观看视频之后自己编写代码还是很吃力的一件事情,但是这不能打消我的信心,只有自己一次次的更正错误面对困难和解决困难,才会成长,甚至我知道,自己的很多错误是让别人看起来和好笑的,只是,这是必须要经历的,我还是坚信,一切都会在未来的某一天好起来的,只要你每天都在努力. 下面的这个单元测试类,就是今天出错的一个,主要是因为Session和Transaction这些重复的代码提出去之后,在方法中还是没有替换成代表各自的对象名,导致出现了空指针异常. package q

菜鸟的成长记录--linux之rpm

RPM 什么是rpm?rpm是RPM package manager的缩写,最早由RedHat公司提出的软件包标准,后来随着rpm的不断发展而又增加许多功能,逐渐的成为linux公认的软件包管理标准.支持该格式的厂商有RedHat linux.suse linux.Mandriva linux. Rpm的优点 由于RPM是通过预编译并打包成为rpm文件格式后再加以安装的一种方式,并且还能够进行数据库的记载,所以RPM有以下优点: 1.Rpm内含已经编译过的程序与设置文件等数据,可以让用户免除重新

菜鸟vimer成长记——第2.0章、模式初探

首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式下相同的键位可能产生的结果不一样.好多快捷怎么记忆?记忆后过段时间不使用又还给vim了.这个是因为没有弄清楚职责和使用场景,没有构建成套的vim知识体系.而我们这里通过模式为载体来构建vim知识体系. 目的 介绍vim的常用模式职责及模式切换,减少由于不断思考和纠正什么场景用什么模式的什么操作而引起

Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持

在Google官方Android设计指南中(链接:http://www.apkbus.com/design/get-started/ui-overview.html)有一个新特性就是自我标识,也就是宣传自己,所以很多应用现在也自然的使用ActionBar并提供自己的logo. 微信的应用: Google的Android设计指南中是这样说的:应用的 启动图标 作为启动应用的入口是展示 logo 的最佳场所.你也可以将启动图标放置在 操作栏 上,从而保证在应用内的所有页面上都能看到它. 在使用Act

Android菜鸟的成长笔记(27)——SurfaceView的使用

前面有关自定义View中进行了绘图,但View的绘图机制存在如下缺陷: 1.View缺乏双缓冲机制. 2.当程序需要更新View上的图像时,程序必须重绘View上显示的整张图片. 3.新线程无法直接更新View组件. 由于View存在上面缺陷,所以在游戏开发中一般使用SurfaceView来进行绘制,SurfaceView一般会与SurfaceHolder结合使用,SurfaceHolder用于向与之关联的SurfaceView上绘图,调用SurfaceView的getHolder()方法即可获

Android菜鸟的成长笔记(27)——ViewPager的使用

ViewPager是Android 3.0以上可以使用的API. 一.ViewPager能干什么? 1.微信5.0中连带滑动用ViewPager可以轻松实现. 2.实现类似于新浪微博的导航引导界面. 3.实现其他导航或菜单. 二.ViewPager的使用 1.添加布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pa