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

时间:2022-01-09 01:47:20

一、创建LVM逻辑卷

事先添加了三块虚拟物理磁盘/dev/sdb 1G, /dev/sdc 2G, /dev/sdd 3G

使用fdisk –l命令查看:

[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0000ebc2

Device Boot       Start         End         Blocks        Id   System
/dev/sda1   *        2048      1026047      512000      83    Linux
/dev/sda2          1026048     16777215     、7875584   8e    Linux LVM

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdd: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel-root: 7159 MB, 7159676928 bytes, 13983744 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@localhost ~]#

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

先格式化物理磁盘/dev/sdb和/dev/sdc

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created

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

[root@localhost ~]# pvs
  PV            VG    Fmt   Attr  PSize  PFree
  /dev/sda2  rhel    lvm2 a--   7.51g  40.00m   --原来就有一个pv
  /dev/sdb            lvm2 ---   1.00g  1.00g
  /dev/sdc            lvm2 ---   2.00g  2.00g
[root@localhost ~]# vgs   --原来就有一个名为rhel的vg
  VG   #PV #LV #SN Attr   VSize VFree
  rhel   1   2   0 wz--n- 7.51g 40.00m
[root@localhost ~]# lvs  ---原来有两个lv(root和swap)
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rhel -wi-ao----   6.67g                                                   
  swap rhel -wi-ao---- 820.00m                                                   
[root@localhost ~]#

pvdisplay

[root@localhost ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rhel
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               10
  Allocated PE          1912
  PV UUID               qMyN56-3szx-N7EG-s5Zh-YsrE-eScv-fdEHHZ
  
  "/dev/sdc" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name              
  PV Size               2.00 GiB
  Allocatable          NO
  PE Size               0  
  Total PE              0
  Free PE               0
  Allocated PE        0
  PV UUID               A1eJ9z-GBd1-HdB4-m9Mh-IVSk-7CTY-TCKFUC
  
  "/dev/sdb" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name              
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size                0  
  Total PE               0
  Free PE                0
  Allocated PE         0
  PV UUID               zYkj1L-uojt-XGyM-craq-t8nQ-b6tl-Z84bfq

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

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

[root@localhost ~]# vgcreate rusky /dev/sdb /dev/sdc
  Volume group "rusky" successfully created

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

[root@localhost ~]# vgs
  VG    #PV #LV #SN Attr   VSize VFree
  rhel    1   2   0 wz--n- 7.51g 40.00m
  rusky   2   0   0 wz--n- 2.99g  2.99g
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               rusky
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2  --当前这里有两个PV,分别是我们的 /dev/sdb 和 /dev/sdc
  Act PV                2
  VG Size               2.99 GiB  --当前VG的大小
  PE Size               4.00 MiB  --LVM默认的PE大小就是4M
  Total PE              766  --因为VG里面存放的就是各个PV中的PE,所以PE的数量就是VG大小除以默认PE的大小
  Alloc PE / Size       0 / 0  
  Free  PE / Size       766 / 2.99 GiB
  VG UUID               Giffac-ePqA-taJU-9wCc-v910-GQbc-047yvE
  
  --- Volume group ---
  VG Name               rhel
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               7.51 GiB
  PE Size               4.00 MiB
  Total PE              1922
  Alloc PE / Size       1912 / 7.47 GiB
  Free  PE / Size       10 / 40.00 MiB
  VG UUID               e3iOPE-zKM4-yxRI-9IfH-rjeY-hXAT-5DPGcE

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

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

[root@localhost ~]# lvcreate -n mylv -L 500MB rusky
  Logical volume "mylv" created.

通过lvcreate命令基于VG创建逻辑卷,名字为mylv,大小为500MB。使用lvdisplay或lvs查看创建好的逻辑卷信息

[root@localhost ~]# lvs
  LV   VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rhel  -wi-ao----   6.67g                                                   
  swap rhel  -wi-ao---- 820.00m                                                   
  mylv rusky -wi-a----- 500.00m

[root@localhost ~]# lvdisplay rusky  --lvdisplay后面加VG Name,查看指定VG的信息
  --- Logical volume ---
  LV Path                /dev/rusky/mylv  --逻辑卷的路径
  LV Name                mylv     --逻辑卷的名字
  VG Name                rusky    --逻辑卷所属卷组的名字
  LV UUID                LsGSlF-IZ0U-x7X2-Lqts-GqNb-DGm9-oVAHvE
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-10-10 15:48:53 +0800
  LV Status              available
  # open                 0
  LV Size                500.00 MiB    --逻辑卷的大小
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

这样,我们的逻辑卷就创建好了。

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

每创建好一个逻辑卷,都会在 /dev 目录下出现一个以该卷组命名的文件夹,基于该卷组创建的所有的逻辑卷都是存放在这个文件夹下面:

[root@localhost ~]# ls /dev/rusky/mylv
/dev/rusky/mylv

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

二、格式化并使用逻辑卷

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

[root@localhost ~]# mkfs.ext4 /dev/rusky/mylv
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

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

[root@localhost ~]# mkdir -p /mnt/myLvm
[root@localhost ~]# mount /dev/rusky/mylv /mnt/myLvm/
[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=926752k,nr_inodes=231688,mode=755)

……
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188420k,mode=700)
/dev/mapper/rusky-mylv on /mnt/myLvm type ext4 (rw,relatime,seclabel,data=ordered)
[root@localhost ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   6.7G  2.9G  3.8G  44% /
devtmpfs                906M     0  906M   0% /dev
tmpfs                   921M     0  921M   0% /dev/shm
tmpfs                   921M  8.7M  912M   1% /run
tmpfs                   921M     0  921M   0% /sys/fs/cgroup
/dev/sda1               497M  157M  341M  32% /boot
tmpfs                   185M     0  185M   0% /run/user/0
/dev/mapper/rusky-mylv  477M  2.3M  445M   1% /mnt/myLvm
[root@localhost ~]#

挂载完成后,我们就可以像正常的文件系统一样来使用了。

三、删除逻辑卷

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

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

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

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

③删除卷组  通过 vgremove 命令

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

[root@localhost mnt]# umount /dev/rusky/mylv
[root@localhost mnt]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root  6.7G  2.9G  3.8G  44% /
devtmpfs               906M     0  906M   0% /dev
tmpfs                  921M     0  921M   0% /dev/shm
tmpfs                  921M  8.7M  912M   1% /run
tmpfs                  921M     0  921M   0% /sys/fs/cgroup
/dev/sda1              497M  157M  341M  32% /boot
tmpfs                  185M     0  185M   0% /run/user/0
[root@localhost mnt]# lvremove /dev/rusky/mylv
Do you really want to remove active logical volume mylv? [y/n]: y
  Logical volume "mylv" successfully removed
[root@localhost mnt]# vgremove rusky
  Volume group "rusky" successfully removed
[root@localhost mnt]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda2  rhel lvm2 a--  7.51g 40.00m
  /dev/sdb        lvm2 ---  1.00g  1.00g
  /dev/sdc        lvm2 ---  2.00g  2.00g
[root@localhost mnt]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped
[root@localhost mnt]#

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

[root@localhost mnt]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rhel -wi-ao----   6.67g                                                   
  swap rhel -wi-ao---- 820.00m                                                   
[root@localhost mnt]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  rhel   1   2   0 wz--n- 7.51g 40.00m
[root@localhost mnt]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda2  rhel lvm2 a--  7.51g 40.00m
[root@localhost mnt]#

附录:开机自动挂载逻辑卷的方式

添加到/etc/fstab,加下如一行,使其开机自动挂载:

/dev/rusky/mylv  /mnt/myLvm/  ext4     defaults        1 2

原文出处:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html

Linux磁盘管理:LVM逻辑卷的创建及使用的更多相关文章

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

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

  2. LVM逻辑卷的创建及使用

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

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

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

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

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

  5. Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)

    当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区 ...

  6. 1.4 Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)

      当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷 ...

  7. Linux基础学习-LVM逻辑卷管理遇到的问题

    LVM学习逻辑卷管理创建逻辑卷遇到的问题 1 实验环境 系统 内核 发行版本 CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final) ...

  8. 每天进步一点点——Linux磁盘管理LVM与RAID

    转载请注明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,仅仅能通过加入硬盘. ...

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

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

随机推荐

  1. WPS 表格筛选两列相同数据

    选出B列中的数据是否在A列中出现:用countif 函数,在 B列右侧插入一列,C1输入 = countif 区域中选择 B列的内容区域(选择后加 按F4),条件选择B列所在的内容区域(选择后按F4) ...

  2. client/scroll/offset width/height/top/left ---记第一篇博客

    client/scroll/offset width/height/top/left (盒模型为contentBox,定位原点是元素左上角边框最外层的交点) clientWidth  width+左p ...

  3. AIM Tech Round (Div. 2) C. Graph and String 二分图染色

    C. Graph and String 题目连接: http://codeforces.com/contest/624/problem/C Description One day student Va ...

  4. 【M19】了解临时对象的来源

    1.首先,确认什么是临时对象.在swap方法中,建立一个对象temp,程序员往往把temp称为临时对象.实际上,temp是个局部对象.C++中所谓的临时对象是不可见的,产生一个non-heap对象,并 ...

  5. iOS app提交审核 11.13条款问题

    今年开年到现在.提交app应用一直招拒,这个问题我想不明白,感觉就是一个坑.所以贴出来给大家看看. 发件人 Apple11.13 - Apps that link to external mechan ...

  6. CM3存储器系统

    1.位带(Bit-Band):如1M的地址都可以用bit访问,然后用32M的地址对应这1M的地址.其中这32M地址的每个字的最低位对应那1M可bit寻址的每个位.

  7. Swift - 自定义UIActivity分享

    UIActivity可以十分方便地将文字.图片等内容进行分享,比如分享到微信.微博.发送邮件.短信等等.我们不仅可以分享内容出来,也可以在自己的App里添加自己的分享按钮或隐藏已有的分享按钮来实现定制 ...

  8. android对app代码混淆

    接到新任务.现有项目的代码混淆.在此之前混淆了一些理解,但还不够具体和全面,我知道有些东西混起来相当棘手. 但幸运的是,现在这个项目是不是太复杂(对于这有些混乱).提前完成--这是总结. 第一部分 介 ...

  9. ThreadPoolExecutor源码详解

    ExecutorService使用线程池中可用的线程执行每个提交的任务,这些线程通常都是使用工厂方法配置 线程池解决两种不同的问题:提高处理大量异步任务的性能(通过减少每个线程的唤醒时间) 提供一种管 ...

  10. 剑指offer(46)孩子们的游戏

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...