在上一篇随笔里面 LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除.

一、创建LVM逻辑卷

我们通过图文并茂的方式来看看如何创建我们的LVM,在上一篇随笔中,我们已经熟悉了LVM的工作原理,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV。所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷)

①将物理硬盘格式化成PV(物理卷)  使用的是 pvcreate 命令

这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看

  1. [root@xiaoluo ~]# fdisk -l
  2.  
  3. Disk /dev/sda: 21.5 GB, 21474836480 bytes
  4. 255 heads, 63 sectors/track, 2610 cylinders
  5. Units = cylinders of 16065 * 512 = 8225280 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x00093d90
  9.  
  10. Device Boot Start End Blocks Id System
  11. /dev/sda1 1 523 4194304 82 Linux swap / Solaris
  12. Partition 1 does not end on cylinder boundary.
  13. /dev/sda2 * 523 2611 16776192 83 Linux
  14.  
  15. Disk /dev/sdb: 8589 MB, 8589934592 bytes
  16. 255 heads, 63 sectors/track, 1044 cylinders
  17. Units = cylinders of 16065 * 512 = 8225280 bytes
  18. Sector size (logical/physical): 512 bytes / 512 bytes
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes
  20. Disk identifier: 0x00000000
  21.  
  22. Disk /dev/sdc: 8589 MB, 8589934592 bytes
  23. 255 heads, 63 sectors/track, 1044 cylinders
  24. Units = cylinders of 16065 * 512 = 8225280 bytes
  25. Sector size (logical/physical): 512 bytes / 512 bytes
  26. I/O size (minimum/optimal): 512 bytes / 512 bytes
  27. Disk identifier: 0x00000000
  28.  
  29. Disk /dev/sdd: 8589 MB, 8589934592 bytes
  30. 255 heads, 63 sectors/track, 1044 cylinders
  31. Units = cylinders of 16065 * 512 = 8225280 bytes
  32. Sector size (logical/physical): 512 bytes / 512 bytes
  33. I/O size (minimum/optimal): 512 bytes / 512 bytes
  34. Disk identifier: 0x00000000

这里我们根据上面图所示,我们先将 /dev/sdb、 /dev/sdc 两块硬盘格式化成PV

  1. [root@xiaoluo ~]# pvcreate /dev/sdb /dev/sdc
  2. Physical volume "/dev/sdb" successfully created
  3. Physical volume "/dev/sdc" successfully created

创建完PV以后,我们可以使用pvdisplay(显示详细信息)、pvs命令来查看当前pv的信息

  1. [root@xiaoluo ~]# pvdisplay
  2. "/dev/sdb" is a new physical volume of "8.00 GiB"
  3. --- NEW Physical volume ---
  4. PV Name /dev/sdb
  5. VG Name
  6. PV Size 8.00 GiB
  7. Allocatable NO
  8. PE Size 0
  9. Total PE 0
  10. Free PE 0
  11. Allocated PE 0
  12. PV UUID 93UEEl-cxBU-A4HC-LNSh-jp9G-uU5Q-EG8LM9
  13.  
  14. "/dev/sdc" is a new physical volume of "8.00 GiB"
  15. --- NEW Physical volume ---
  16. PV Name /dev/sdc
  17. VG Name
  18. PV Size 8.00 GiB
  19. Allocatable NO
  20. PE Size 0
  21. Total PE 0
  22. Free PE 0
  23. Allocated PE 0
  24. PV UUID lH1vul-KBHx-H2C6-wbt1-8AdK-yHpr-bBIul5
  25.  
  26. [root@xiaoluo ~]# pvs
  27. PV VG Fmt Attr PSize PFree
  28. /dev/sdb lvm2 a-- 8.00g 8.00g
  29. /dev/sdc lvm2 a-- 8.00g 8.00g

通过这两个命令我们可以看到我们已经创建好的PV的信息,两个PV都是8G,目前还没有使用,PFree都是8G.

②创建卷组(VG),并将PV加入到卷组中  通过 vgcreate 命令

在创建完PV以后,这时候我们需要创建一个VG,然后将我们的PV都加入到这个卷组当中,在创建卷组时要给该卷组起一个名字

  1. [root@xiaoluo ~]# vgcreate xiaoluo /dev/sdb /dev/sdc
  2. Volume group "xiaoluo" successfully created

同样,在创建好VG以后,我们也可以使用 vgdisplay 或者 vgs 命来来查看VG的信息

  1. [root@xiaoluo ~]# vgdisplay
  2. --- Volume group ---
  3. VG Name xiaoluo
  4. System ID
  5. Format lvm2
  6. Metadata Areas 2
  7. Metadata Sequence No 1
  8. VG Access read/write
  9. VG Status resizable
  10. MAX LV 0
  11. Cur LV 0
  12. Open LV 0
  13. Max PV 0
  14. Cur PV 2  // 当前这里有两个PV,分别是我们的 /dev/sdb 和 /dev/sdc
  15. Act PV 2
  16. VG Size 15.99 GiB  // 当前VG的大小
  17. PE Size 4.00 MiB  // 通过这个我们也可以看到我们LVM默认的PE大小就是4M
  18. Total PE 4094  // 因为VG里面存放的就是各个PV中的PE,所以PE的数量就是VG大小除以默认PE的大小
  19. Alloc PE / Size 0 / 0
  20. Free PE / Size 4094 / 15.99 GiB
  21. VG UUID B8eavI-21kD-Phnm-F1t1-eo4K-wgvg-T5qUbt
  22.  
  23. [root@xiaoluo ~]# vgs
  24. VG #PV #LV #SN Attr VSize VFree
  25. xiaoluo 2 0 0 wz--n- 15.99g 15.99g

③基于卷组(VG)创建逻辑卷(LV)  通过 lvcreate 命令

因为创建好的PV、VG都是底层的东西,我们上层使用的是逻辑卷,所以我们要基于VG创建我们的逻辑卷才行

  1. [root@xiaoluo ~]# lvcreate -n mylv -L 2G xiaoluo
  2. Logical volume "mylv" created

通过 lvcreate 命令基于VG创建好我们的逻辑卷,名字为mylv,大小为2G,同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息

  1. [root@xiaoluo ~]# lvdisplay
  2. --- Logical volume ---
  3. LV Path /dev/xiaoluo/mylv  // 逻辑卷的路径
  4. LV Name mylv  // 逻辑卷的名字
  5. VG Name xiaoluo  // 逻辑卷所属卷组的名字
  6. LV UUID PYuiYy-WpI6-XZB8-IhnQ-ANjM-lcz0-dlk4LR
  7. LV Write Access read/write
  8. LV Creation host, time xiaoluo, 2013-05-23 23:45:08 +0800
  9. LV Status available
  10. # open 0
  11. LV Size 2.00 GiB  // 逻辑卷的大小
  12. Current LE 512
  13. Segments 1
  14. Allocation inherit
  15. Read ahead sectors auto
  16. - currently set to 256
  17. Block device 253:0
  18.  
  19. [root@xiaoluo ~]# lvs
  20. LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
  21. mylv xiaoluo -wi-a---- 2.00g

这样子我们的逻辑卷也就已经创建好了,我们这个时候再通过 vgs 还有 pvs 命令查看一下我们的PV与VG的信息

  1. [root@xiaoluo mnt]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. xiaoluo 2 1 0 wz--n- 15.99g 13.99g  // 我们看到LV的数量此时变成了1,因为我们刚创建好了一个LV,LVFree还有14G
  4. [root@xiaoluo mnt]# pvs
  5. PV VG Fmt Attr PSize PFree
  6. /dev/sdb xiaoluo lvm2 a-- 8.00g 6.00g  // 刚创建好的LV用的是 /dev/sdb 这块硬盘的,所以这块硬盘的PFree还剩下6G
  7. /dev/sdc xiaoluo lvm2 a-- 8.00g 8.00g

我们发现,当我们每创建完一个LV时,VG与PV的信息都是时时在变化的,并且我们创建LV的大小是根据当前VG的大小来决定的,不能超过当前VG的剩余大小!

我们在上一篇随笔里面有讲过,每创建好一个逻辑卷,都会在 /dev 目录下出现一个以该卷组命名的文件夹,基于该卷组创建的所有的逻辑卷都是存放在这个文件夹下面,我们可以查看一下

  1. [root@xiaoluo ~]# ls /dev/xiaoluo/mylv
  2. /dev/xiaoluo/mylv

我们每创建一个新的逻辑卷,该VG目录下都会多出这么一个设备。

二、格式化并使用我们的逻辑卷

我们已经创建好了我们的PV、VG以及LV,这时候我们如果要使用逻辑卷,就必须将其格式化成我们需要用的文件系统,并将其挂载起来,然后就可以像使用分区一样去使用逻辑卷了

  1. [root@xiaoluo ~]# mkfs.ext4 /dev/xiaoluo/mylv
  2. mke2fs 1.41.12 (17-May-2010)
  3. Filesystem label=
  4. OS type: Linux
  5. Block size=4096 (log=2)
  6. Fragment size=4096 (log=2)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 131072 inodes, 524288 blocks
  9. 26214 blocks (5.00%) reserved for the super user
  10. First data block=0
  11. Maximum filesystem blocks=536870912
  12. 16 block groups
  13. 32768 blocks per group, 32768 fragments per group
  14. 8192 inodes per group
  15. Superblock backups stored on blocks:
  16. 32768, 98304, 163840, 229376, 294912
  17.  
  18. Writing inode tables: done
  19. Creating journal (16384 blocks): done
  20. Writing superblocks and filesystem accounting information: done
  21.  
  22. This filesystem will be automatically checked every 31 mounts or
  23. 180 days, whichever comes first. Use tune2fs -c or -i to override.

格式化我们的逻辑卷以后,就可以使用 mount 命令将其进行挂载,我们将其挂载到 /mnt 目录下

  1. [root@xiaoluo ~]# mount /dev/xiaoluo/mylv /mnt
  2. [root@xiaoluo ~]# mount
  3. /dev/sda2 on / type ext4 (rw)
  4. proc on /proc type proc (rw)
  5. sysfs on /sys type sysfs (rw)
  6. devpts on /dev/pts type devpts (rw,gid=5,mode=620)
  7. tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
  8. none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
  9. sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
  10. /dev/mapper/xiaoluo-mylv on /mnt type ext4 (rw)
  11. [root@xiaoluo ~]# cd /mnt/
  12. [root@xiaoluo mnt]# ls
  13. lost+found
  14. [root@xiaoluo mnt]# touch xiaoluo.txt
  15. [root@xiaoluo mnt]# ls
  16. lost+found xiaoluo.txt

我们看到,我们的卷组已经挂载好了,并且可以像使用分区一样来对其进行文件操作了。

三、删除逻辑卷

我们在创建好逻辑卷后可以通过创建文件系统,挂载逻辑卷来使用它,如果说我们不想用了也可以将其删除掉。

注意:】对于创建物理卷、创建卷组以及创建逻辑卷我们是有严格顺序的,同样,对于删除逻辑卷、删除卷组以及删除物理卷也是有严格顺序要求的

①首先将正在使用的逻辑卷卸载掉  通过 umount 命令

②将逻辑卷先删除  通过 lvremove 命令

③删除卷组  通过 vgremove 命令

④最后再来删除我们的物理卷  通过 pvremove 命令

  1. [root@xiaoluo /]# mount /dev/xiaoluo/mylv /mnt/
    [root@xiaoluo /]# umount /mnt/
  2. [root@xiaoluo /]# lvremove /dev/xiaoluo/mylv
  3. Do you really want to remove active logical volume mylv? [y/n]: y
  4. Logical volume "mylv" successfully removed
  5.  
  6. [root@xiaoluo /]# vgremove xiaoluo
  7. Volume group "xiaoluo" successfully removed
  8.  
  9. [root@xiaoluo /]# pvremove /dev/sdb
  10. Labels on physical volume "/dev/sdb" successfully wiped

此时我们的刚创建的逻辑卷 mylv,卷组 xiaoluo以及物理卷 /dev/sdb 已经从我们当前操作系统上删除掉了,通过 lvs、vgs、pvs命令可以查看一下

  1. [root@xiaoluo /]# lvs
  2. No volume groups found  // 逻辑卷已经没有了
  3. [root@xiaoluo /]# vgs
  4. No volume groups found  // 卷组也没有了
  5. [root@xiaoluo /]# pvs
  6. PV VG Fmt Attr PSize PFree
  7. /dev/sdc lvm2 a-- 8.00g 8.00g  // sdb物理卷已经没有了,只剩下 sdc物理卷了

本篇随笔详细讲解了LVM逻辑卷的创建、使用及删除,在下一篇随笔里我们将继续讲解LVM逻辑卷的知识,包括如何对逻辑卷进行动态的拉伸以及对其进行压缩!!!

LVM逻辑卷的创建及使用的更多相关文章

  1. Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用

    在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...

  2. linux运维基础知识-系统分区及LVM逻辑卷的创建

    系统分区及LVM逻辑卷的创建 分区 创建逻辑卷 LVM简介:逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图 ...

  3. Linux磁盘管理:LVM逻辑卷的创建及使用

    一.创建LVM逻辑卷 事先添加了三块虚拟物理磁盘/dev/sdb 1G, /dev/sdc 2G, /dev/sdd 3G 使用fdisk –l命令查看: [root@localhost ~]# fd ...

  4. LVM逻辑卷:创建LVM分区实例

    一.概述 LVM(Logical Volume Manager)是基于内核的一种逻辑卷管理器,LVM适合于管理大存储设备,并允许用户动态调整文件系统的大小.此外LVM快照功能可以帮助我们快速备份数据. ...

  5. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  6. GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除

    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...

  7. LVM备份(2)-创建LVM逻辑卷

    懵逼了几天,对LVM快照备份总算有了个比较清晰的认识 总的来说,就是这样: 1.普通分区备份比较困难,需要转化成LVM逻辑卷进行管理 2.在新创建的LVM逻辑卷上进行业务操作,比如建数据库 3.某个时 ...

  8. LVM备份(1)-创建LVM逻辑卷

    LV(Logical Volume) - 逻辑卷 VG(Volume Group) - 卷组 PV(Physical Volume) - 物理卷 1.查看分区信息:fdisk -l 可看到磁盘大小为1 ...

  9. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

随机推荐

  1. 听着好像很牛的特效——幽灵按钮DOM

    给大家分享一个听着好像很牛的东西——幽灵按钮,这个玩意对于艺术设计细胞在高中决定不在考试试卷上画画的我来说,实在不感冒.但是这个按钮的设计元素很流行,一个网页东西不做几个,光放上几个按钮就会显得很高端 ...

  2. uva 10934(dp)

    题意:k个水球,现在在一个n层建筑物上,水球可能在某一层层以上扔下去会破掉,现在求一个最少的次数使得用这k个水球能确定出哪一层. 思路:假设有i个小球,还可以实验j次时,第一个小球从x处扔下去,如果破 ...

  3. Window.document对象

    1.Window.document对象 一.找到元素: docunment.getElementById("id"):根据id找,最多找一个:     var a =docunme ...

  4. oracle initialization or shutdown in progress解决方法

    [解决方法]   SQL> connect sys/hope as sysdba 已连接. SQL> shutdown normal ORA-01109: 数据库未打开     已经卸载数 ...

  5. nsmutableset

    // //  main.m //  nsmutableset // //  Created by 博博 on 16/1/11. //  Copyright (c) 2016年 com.bb. All ...

  6. 主板BIOSCOMS故障解决三例

    主板故障中因为BIOS/COMS设置不当或者因为主板电池引起的coms故障而导致主板无法正常工作的比例占了不小.今天我们就来说说主板BIOS/COMS的故障和解决.声卡维修 硬盘安装设置 CMOS设置 ...

  7. Python之路,Day9, 进程、线程、协程篇

    本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...

  8. 改变系统自带UITableViewCell的imageView的大小

    CGSize itemSize = CGSizeMake(, ); UIGraphicsBeginImageContextWithOptions(itemSize, NO,0.0); CGRect i ...

  9. Groovy解析xml并且注入Project,TestSuite,TestCase级别的custom properties

    import com.eviware.soapui.support.GroovyUtils import groovy.util.XmlParser def groovyUtils = new Gro ...

  10. c++ redis-client

    http://hahaya.github.io/operator-redis-under-linux/#0-tsina-1-10809-397232819ff9a47a7b7e80a40613cfe1 ...