LVM概述:
  是对磁盘分区进行管理的一种机制
  是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。
  屏蔽了底层磁盘布局,便于动态调整磁盘容量
  相对传统分区方式的有下列优点
    ·空间利用率高:硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间
    ·可以在线扩展容量:文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求
    ·文件系统建立在LVM上,可以跨分区,方便使用
    ·可随意定义逻辑卷卷标
    
注:/boot分区用于存放引导文件,不能应用LVM机制
 
LVM机制的基本概念:
  PV(Physical Volume,物理卷)
    处于LVM最底层,可以是整个硬盘或使用fdisk等工具建立的普通分区,包括许多默认4MB大小的PE(Physical Extents,基本单元),PE是PV中可以用于分配的最小存储单元
  VG(Volume Group,卷组)
    是一个或多个物理卷组合而成的整体,是建立在PV之上的。同一VG中所有PV的PE大小应该相同,当VG被创建后,我们才能正常查看PE的数量 。
  LV(Logical Volume,逻辑卷)
    从卷组中分割出的一块空间,它是建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。其实LV就是由PE组成的,不过在LV里面这些PE叫做LE。
  LE(Logical Extents)
    LE是LV中可以用于分配的最小存储单元,与PE大小相同并一一对应
 
LVM管理命令:

    

 
建立命令的方法:
  ·pvcreate 设备名
  ·vgcreate 卷组名 物理卷名1 物理卷名2
  ·lvcreate -L 大小 -n 逻辑卷名 卷组名
 

LVM应用实例:
  公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据
    1. 转化物理卷
      使用fdisk命令规划两个分区,类型设置为“8e”
        /dev/sdb1、/dev/sdc1
      使用pvcreate命令转换上述分区为物理卷
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"
/dev/sdb1 1 9660 77593918+ 8e Linux LVM
/dev/sdc1 1 9660 77593918+ 8e Linux LVM

      ↑正确分区结果

 
  2. 创建卷组
    使用vgcreate命令创建卷组mail_store
    包括物理卷:/dec/sdb1、/dev/sdc1
[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
  Volume group "mail_store" successfully created

  

  3. 创建逻辑卷
    使用lvcreate命令创建逻辑卷 mail
    从卷组mail_store上划出60GB空间
    使用mkfs命令创建ext4文件系统
[root@localhost ~]# lvcreate  -L  60G  -n  mail  mail_store
/dev/cdrom: open failed: Read-only file system
Logical volume "mail" created
[root@localhost ~]# mkfs -t ext3 /dev/mail_store/mail
……

  

 
推荐步骤:
  PV→VG→LV→格式化,挂载使用文件系统
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[root@localhost ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
[root@localhost ~]# pvdisplay
"/dev/sdb" is a new physical volume of "100.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 100.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID mBETMZ-d9Nh-AEr0-OyXO-h6N7-Dw2y-UqKAq4 "/dev/sdc" is a new physical volume of "200.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 200.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID vvp3Kg-UcbH-imNJ-Mwjl-asAz-5FM1-q8hj98 [root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 ---- 100.00g 100.00g
/dev/sdc lvm2 ---- 200.00g 200.00g
[root@localhost ~]# vgcreate mail_vg /dev/sdb
Volume group "mail_vg" successfully created
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name mail_vg
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size 100.00 GiB
PE Size 4.00 MiB
Total PE 25599
Alloc PE / Size 0 / 0
Free PE / Size 25599 / 100.00 GiB
VG UUID 0HEnBL-7RV9-CkxU-dyD3-zAqB-ra0o-UkqxZF [root@localhost ~]# lvcreate -L 150G -n mail_lv mail_vg
Volume group "mail_vg" has insufficient free space (25599 extents): 38400 required.
[root@localhost ~]# lvcreate -L 50G -n mail_lv mail_vg
Logical volume "mail_lv" created.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/mail_vg/mail_lv
LV Name mail_lv
VG Name mail_vg
LV UUID wgNvn6-WEJh-FfZA-TZAS-lfrC-gWed-nxMRzw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-01-06 17:42:56 +0800
LV Status available
# open 0
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0 [root@localhost ~]# ll /dev/mail_vg/mail_lv
lrwxrwxrwx. 1 root root 7 Jan 6 17:42 /dev/mail_vg/mail_lv -> ../dm-0
[root@localhost ~]# ll /dev/dm*
brw-rw----. 1 root disk 253, 0 Jan 6 17:42 /dev/dm-0
[root@localhost ~]# ll /dev/mapper/
total 0
crw-rw----. 1 root root 10, 58 Jan 6 17:35 control
lrwxrwxrwx. 1 root root 7 Jan 6 17:42 mail_vg-mail_lv -> ../dm-0
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb mail_vg lvm2 a--u 100.00g 50.00g
/dev/sdc lvm2 ---- 200.00g 200.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
mail_vg 1 1 0 wz--n- 100.00g 50.00g
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mail_lv mail_vg -wi-a----- 50.00g
[root@localhost ~]# mkfs.ext4 /dev/mapper/mail_vg-mail_lv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424 Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mail
[root@localhost ~]# mount /dev/mail_vg/mail_lv /mail/
[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/mail_vg-mail_lv on /mail type ext4 (rw)

  

  设置开机实现自动挂载:
  

[root@localhost ~]# blkid /dev/mapper/mail_vg-mail_lv
/dev/mapper/mail_vg-mail_lv: UUID="8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1" TYPE="ext4"
[root@localhost ~]# vim /etc/fstab #
# /etc/fstab
# Created by anaconda on Fri Nov 2 22:37:22 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=c42ec363-df57-48b3-89a9-0685544602bd / ext4 defaults 1 1
UUID=27ab8d75-5b06-42e4-b0b4-0cb2376e9ea4 /boot ext4 defaults 1 2
UUID=b8bee5a5-ea40-476a-98c3-250707895638 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
UUID=8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1 /mail ext4 defaults 0 0
~

    设置完成保存退出

 

 
调整LV大小:
  调整逻辑卷大小命令
    lvextend -L +大小 /dev/卷组名/逻辑卷名
    lvresize -L +/-大小 /dev/卷组名/逻辑卷名
  如果要增大逻辑卷,先用增大逻辑卷,再用resize2fs增大文件系统
  可以在线增大逻辑卷
 
  如果要缩小逻辑卷,先用resizefs缩小文件系统再缩小逻辑卷
  必须先卸载文件系统
  步骤:
    1、查看文件系统已用空间
    2、卸载文件系统
    3、强制检查文件系统,确保文件系统处于一致性状态
    4、缩小文件系统 resize2fs
    5、缩小lv
    6、挂载文件系统
  注意:lv和文件系统的大小要一致
 
  调整VG大小:
  卷组扩容
    vgextend 卷组名 物理卷
  卷组收缩
  查看卷组包含的PV
  命令:pvs
    vgreduce 卷组名 物理卷

给LV扩容:
  增加的空间来自LV所在的VG的空闲空间
  Q1:如果某一块磁盘或者分区故障了如何将数据快速转移到相同卷组的其他空间去?
步骤:
  1、通过pvmove命令转移空间数据
  2、通过vgreduce命令将坏的磁盘或者分区从卷组里面移除。
  3、通过pvremove命令将坏的磁盘或者分区从系统中删除掉。

千万不要在没有关闭LVM的情况下删除分区
  正确关闭LVM的步骤
  umount卸载lvm文件系统
  清除/etc/fstab中LVM的挂载记录
  lvremove删除逻辑卷
  vgremove删除卷组
  pvremove删除物理卷
  fdisk修改分区ID
 

RAID概述:
  RAID廉价冗余磁盘阵列
  硬件RAID
    速度快,性能好,支持热插拔
    需专门的RAID磁盘阵列卡,价格昂贵,还需配合相应的驱动
  软件RAID
    使用mdadm软件仿真磁盘阵列功能
    无需专门硬件,性价比较好
    设备文件标识是/dev/md0
  根据可靠性、性能和成本对RAID划分了等级
    RAID0、RAID1、RAID5、RAID6、RAID10、RAID01

【Linux】LVM逻辑卷管理和RAID的更多相关文章

  1. Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器

    一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...

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

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

  3. Linux lvm 逻辑卷篇

    Linux LVM逻辑卷配置过程详解(创建.增加.减少.删除.卸载) 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用 ...

  4. Linux LVM 逻辑分区

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现.普通 ...

  5. Linux LVM逻辑卷配置过程详解

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  6. (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)

    一.预备知识 LVM全称为Logical Volume Manager 逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘 ...

  7. Linux LVM 逻辑卷管理

    使用Linux好久了,一定会意识到一个问题,某个分区容量不够用了,想要扩容怎么办?这里就涉及到LVM逻辑卷的管理了,可以动态调整Linux分区容量. LVM 概述 全称Logical Volume M ...

  8. Linux随笔 - Linux LVM逻辑卷配置过程详解[转载]

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  9. LINUX——LVM逻辑卷管理

    LVM: logical volumes manager LVM逻辑卷部署 物理卷—>卷组—>逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...

随机推荐

  1. vue-cli中的webpack配置

    编辑模式下显示正常,打开的时候不知道为啥排版有问题.segementfalut链接在这里 版本号 vue-cli 2.8.1 (终端通过vue -V 可查看) vue 2.2.2 webpack 2. ...

  2. 多表批量导出txt及打压缩包下载

     在一些特殊的业务系统中,有些客户查看报表数据时不需要在浏览器上逐一查看,需要在页面端选择要查看的报表名称(可多选),选择条件,然后将所选中的报表批量导出到txt文件中并且要把批量导出的结果文件打 ...

  3. mysql 免安装版

    通过MySQL安装程序(.msi文件)来安装虽然简洁高效,但不够灵活,所以我们这里介绍免安装版. 1.  下载: 进入官网-->Downloads-->Community(社区版)--&g ...

  4. linux的作业控制(job control)

    引用:http://blog.chinaunix.net/u2/68904/showart_1803789.html 把作业放到后台运行:‘ & ’ 举个简单的例子, 我们要将 /etc/ 整 ...

  5. hibernate中指定非外键进行关联

    /** * 上级资源 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PARENT_ID", reference ...

  6. java笔记--线程的插队行为

    对线程的插队行为的理解 在编写多线程时,会遇到让一个线程优先于其他线程运行的情况, 此时除了可以设置其优先级高于其他线程外,更直接的方式是使用Thread类的join()方法 --如果朋友您想转载本文 ...

  7. vs2017 调试时出现 cannot connect to runtime process错误

    用Visual Studio 2017 .net core进行开发时 ,调试运行项目时出现如下错误 解决方案,调试>选项,取消勾选,关闭对JavaScript的调试

  8. [翻译] NMBottomTabBarController

    NMBottomTabBarController A customisable tab bar controller for iOS written in Objective C. It uses a ...

  9. php算法基础----时间复杂度和空间复杂度

    算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...

  10. C++ new和delete重载

    C++ new和delete重载 2012-02-15 23:25:33|  分类: C/C++|举报|字号 订阅           首先,new和delete是运算符,重载new和delete是可 ...