lvm基本应用(自我整理)

LVM简介

  LVM (Logical Volume Manager):逻辑卷管理员,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

LVM应用

LVM基本组成

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷(PV)就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(volume group):LVM的卷组(VG)类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷(LV)类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

LVM常用命令

创建PV(物理卷)

pvcreate :将实体partition创建成为PV;
pvscan :搜索目前系统里面任何具有PV的磁盘或分区;
pvdisplay :显示出目前系统上面的PV状态;
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

创建VG(卷组)

vgcreate :创建vg命令;
vgscan :搜索系统上面是否有 VG 存在;
vgdisplay :显示目前系统上面的 VG 状态;
vgextend :在 VG 内添加额外的 PV ;
vgreduce :在 VG 内移除 PV;
vgchange :配置 VG 是否启动 (active);
vgremove :删除一个 VG;

创建LV(逻辑卷)

lvcreate :创建 LV
lvscan :查询系统上面的 LV ;
lvdisplay :显示系统上面的 LV 状态;
lvextend :在 LV 里面添加容量;
lvreduce :在 LV 里面减少容量;
lvremove :删除一个 LV ;
lvresize :对 LV 进行容量大小的调整;

LVM具体应用

   LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间, LVM是用来方便管理的,不会提供额外的安全保证。

创建PV

首先创建4个分区,并且将systemid改为8e。然后创建PV

  # pvcreate /dev/sda{4,5,6,7}

创建VG

使用vgcreate命令,-s用来指定PE的大小

  #vgcreate -s -4M vgname  /dev/sda{4,5,6,7}

如果需要增减VG的容量,使用vgextend命令 格式为

  # vgextend vgname /dev/sda#

划分LV

使用lvcreate命令,格式为

# lvcreate  [options]  lvname  vgname

     -l  通过PE的数量指定LV的大小

     -L  通过容量来指定LV的大小 单位可以G,M,T

    -n  指定LV的名字

  格式化LV并且挂载

  # mke2fs -j /dev/vgname/lvname

  # mkdir /mnt/mntname

  # mount  /dev/vgname/lvname /mnt/mntname

增加LV的容量

 使用fdisk创建分区---创建PV---使用vgextend加入新的PV扩展VG---利用lvresize将新的PV内的PE加入到LV中----使用e2fsck检查文件系统----使用resize2fs扩大文件系统的容量

   # pvcreate /dev/sda8  #新建PV

   # vgextend myvg /dev/sda8  #扩展VG

   # lvresize -L +100M /dev/vgname/lvname #扩展LV

   # e2fsck -f /dev/vgname/lvname #注意,应该是强行校验,没有-f是不行的

    # resize2fs /dev/vgname/lvname #将LV的容量扩展到整个文件系统

最重要的使用lvresize命令

lvresize -l 或者-L选项 通过+来扩展LV的容量

    # lvresize -L +... /dev/vgname/lvname

减少LV的容量

  # umount /dev/vgname/lvname #LVM不支持在线缩小,但是放大可以,所以应该先卸载

  # e2fsck -f /dev/vgname/lvname #强行进行磁盘检查

    # resize2fs /dev/vgname/lvname 400M   #降低文件系统的容量,原来是500M,现在减小到400M

   # lvresize -L -100M /dev/vgname/lvname #降低LV的容量

   # pvdisplay   #将某个PV抽离VG的时候,必须要确定里面的PE不被使用才可以,所以使用pvdisplay查看哪个PV的PE是没有使用的,将要抽离的PV中的含有数据的PE移动到该PV里

# pvmove /dev/sda4 /dev/sda8  #转移PE

# vgreduce vgname /dev/sda4  #将/dev/sda#抽离出VG

# pvremove /dev/sda4

LVM的重要应用(快照 snapshot)

快照的原理:将系统信息记录下来,如果有数据改动了,就将原来的数据移到快照区,没有改动的区域由文件系统和快照区共享。

创建快照区

    # pvcreate /dev/sda9

# vgextend myvg /dev/sda9

    # lvcreate -L 100M -s -n snapshotname /dev/vgname/lvname   #最重要的是-s选项,意思是创建快照区,最后的/dev/vgname/lvname 是"被快照"的文件系统

 接下来挂载快照区

# mkdir  /mnt/snapshot

# mount  /dev/vgname/snapshotname  /mnt/snapshot

# df #查看是否挂载成功

 快照的重要的作用就是可以用来复原文件系统,挂载/dev/vgname/lvname 与/dev/vgname/snapshotname 后里面看到的数据是一样的。

# cd /mnt/mntname

  # rm -rf *  #搞破坏

  # lvdisplay /dev/vgname/snapshotname  #发现确实被占用了一部分空间

   # mkdir -p /backups

  # cd /mnt/snapshot

  # tar -jcf /backups/lvname.tar.bz2  * #备份

  # umount /mnt/snapshot

# lvremove /dev/vgname/snapshotname

  # mke2fs -j /dev/vgname/lvname

  # mount /dev/vgname/mylv /mydata

  # cd /mnt/mntname

   # tar -xf /backups/lvname.tar.bz2 #还原

LVM的关闭

必须按下面的流程操作进行,否则会让文件系统出现问题

   # umount /mnt/mntname  #先卸载LV

   # lvremove /dev/vgname/lvname  #删除LV

   # vgchange -an vgname  #让vg不具备active 的标志

# pvremove /dev/sda{5,6,7,8} #删除PV

   # fdisk /dev/sda #将分区的systemid由8e改为83

原文地址:https://www.cnblogs.com/blakflash000/p/9084850.html

时间: 2024-10-07 15:17:27

lvm基本应用(自我整理)的相关文章

struts2实现文件上传进度条(前端JS+Java)(自我整理)

需要做一个文件上传进度的效果,结合网上资料和自己的实践后,这里做一个整理 步骤如下: 1.重写.自定义JakartaMultiPartRequest类 <span style="font-size:12px;">package com.hikvision.fileUploadProcess.interceptor; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import

php实战开发之自我整理(学习笔记)

PHP没有创建变量的命令,变量会在首次赋值时进行创建. 简单样例 1 <?php $word="My first choice"; $x=5; echo $x; echo "<br>"; echo $word; ?> 前面若要引用字符串则需要加. 否则会出现语法错误 <?php $word="My first choice"; $x=5; echo $x; echo "<br>"; e

iOS远程消息推送自我整理版

@interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /************ 检测通知 **************/ if ([[[UIDevice curr

2014 NOIP 赛前自我整理提醒。

空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的OIer来说,打错程序当然是常事,可是如果在比赛时脑子一抽,就可能断送了前程,所以比赛时的投入应该不亚于上战场的士兵,专心对待每一个题目,水题满分,难题争分,不会的题骗分. 2.文件深坑. 每一个程序都有名字,而我们在成功做出这道题时,很容易在writeln之后立马接上 end. 总是忘记close

前端(三大框架、Bootstrap,jQuery,自我整理)

前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增加了translate(),能完成以前一定需要js才能做到的动画,同时增加了flex弹性盒子(响应式设计,提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间,以往使用float) 前端框架 一.Bootstrap 在Bootstrap的官网介绍中,Bootstrap is th

xss总结--2018自我整理

0x00前言 因为ctf中xss的题目偏少(因为需要机器人在后台点选手的连接2333),所有写的比较少 这里推荐个环境http://test.xss.tv/ 0x01xss作用 常见的输出函数:print(). print_r(). echo. printf(). sprintf(). die(). var_dump(). var_export() xss是往页面中添加了一段代码,并且被浏览器执行了 反射型将恶意代码写入参数,或者自己服务器上搭个form表单传送,用来钓鱼 存储型就等着别人点这个

RPG项目描述自我整理

近期做了一个RPG项目中押镖的功能 策划罗列有 镖车在有能量情况下跟随主角 路过兵营 兵营随机时间开始出兵 攻击镖车 主角砍兵获取能量 护送镖车到达终点 可应用状态机以及消息中心的知识实现 主角有跑 攻击状态 根据用户输入切换状态:镖车有idle 跟随状态 根据自身能量值切换状态:敌人有跑 攻击 死亡状态 根据视野范围及自身血量切换状态 当怪物死亡时 主角拾取能量到背包 背包中使用能量道具时 利用消息中心充值能量 镖车继续跟随主角 游戏判定结束通过镖车被摧毁或护送镖车到终点为了迎合策划的需求 要

【转载】如果有人问你数据库的原理,叫他看这篇文章

原文:如果有人问你数据库的原理,叫他看这篇文章 本文由 伯乐在线 - Panblack 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Christophe Kalenzaga.欢迎加入翻译组. 一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少[译者注:百度为您找到相关结果约1,850,000个…] 

[转]如果有人问你数据库的原理,叫他看这篇文章

推荐一篇文章:http://blog.jobbole.com/100349/  --原文出处 一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少[译者注:百度为您找到相关结果约1,850,000个…] ,而且找到的那些文章都很短.现在如果你查找最近时髦的技术(大数据.NoSQL或JavaScript),你