系统管理之磁盘管理(二)磁盘配额,RAID,LVM

上篇博文给大家介绍了磁盘和文件系统的基础知识,也是最基本的使用.在实际生产环境中,对于磁盘的使用,要求稳定,灵活,那么下面给大家分享下磁盘的高级用法.磁盘配额,RAID,LVM等相关知识.

1.磁盘配额
2.磁盘RAID
3.LVM

一.磁盘配额

1.概述:

• 在内核中执行
• 以文件系统为单位启用
• 对不同组或者用户的策略不同
    根据块或者节点进行限制
    • 执行软限制( soft limit)
    • 硬限制( hard limit)

Linux是多用户的操作系统,同一时间可能有多个用户登录到系统上进行相关操作,用户在操作的时候,可能会写入很多数据,占用大量磁盘空间,导致其他用户想写数据的时候,没有磁盘空间可用,如何限定某个用户对磁盘的使用空间大小,以及可使用的inode多少,也就是限定可创建多少个文件,这就是磁盘配额管理的作用。

磁盘配额管理的是针对一个独立的分区文件系统进行管理,不能跨分区,如果我们希望对某个目录进行磁盘配额管理,则需要将该目录单独挂载至某个独立的分区

2.初始化

• 分区挂载选项: usrquota、 grpquota
        修改完/etc/fstab,必须重新挂载分区
• 初始化数据库: quotacheck
        quotacheck -cu|-cg|-cug  /DIR

    针对某个分区的挂载目录初始化quota数据库,可以针对用户创建、针对组创建、或者两个都创建,看第一步挂载选项启用的那些都创建那些

     初始化数据块后,会在被执行磁盘配额的目录下生成相关的数据库文件,该文件无法通过vi等编辑器查看

3.执行

• 开启或者取消配额: quotaon、 quotaoff
      quotaon -p  /DIR  查看某目录磁盘配额是否启用
• 直接编辑配额文件: edquota username
        根据现有用户的配置来设置别的用户
        edquota -p USER1  USER2  根据user1设置user2
• 在shell命令行中直接编辑:
    setquota usename 4096 5120 40 50 /foo
• 定义原始标准用户
    edquota -p user1 user2

4.报告数据配额

报告
• 用户调查: quota USERNAME  查看某用户配额信息
• 配额概述: repquota /DIR 查看挂载点的整体配额信息
• 其它工具: warnquota

5.操作:

1.备份/home文件

    cp -r /home/* /tmp/home/

2.在/etc/fstab中指定挂载分区的挂载选项(usrquota,grpquota)

    [fedora@w7 ~]$ cat /etc/fstab 
    /dev/sdc1                 /home        ext4    usrquota,grpquota    0 0

3.挂载分区并移会home文件

    mount -a
    df -h
    mv /tmp/home/* /home
    ll /home

4.创建配额数据库

    setenforce 0   (centos6必须关闭SELINUX)
    quotacheck -cug /home(挂载分区)

    [root@w7 ~]# ll /home/
    total 48
    -rw-------  1 root   root    7168 Aug 31 01:11 aquota.group
    -rw-------  1 root   root    7168 Aug 31 01:11 aquota.user
    drwx------. 4 centos centos  4096 Jul 31 04:19 centos

5.启动数据库

    quotaon -p /home/ 查看是否启用数据库
        [root@w7 ~]# quotaon -p /home/
        group quota on /home (/dev/sda4) is off
        user quota on /home (/dev/sda4) is off

    quotaon    /home/    启用数据库
        [root@w7 ~]# quotaon  /home/
        [root@w7 ~]# quotaon -p /home/
        group quota on /home (/dev/sda4) is on
        user quota on /home (/dev/sda4) is on

6.配置配额项

   1.edquota fedora           数据库配额    
      Filesystem    blocks       soft     hard        inodes         soft  hard
     /dev/sda4   44(当前字节) 100(警告字节)100(最大字节) 11(当前文件数)2(警告文件数 0(最大文件数)

   2. edquota -p fedora wen    复制数据库配额给其他用户

   3.setquota fedora 100000 150000 0 0 /home/    命令行配额
    [root@w7 home]# setquota centos 10000 50000 2 3 /home

7.查看使用情况

    repquota /home/
        [root@w7 ~]# repquota /home/
        *** Report for user quotas on device /dev/sda4
        Block grace time: 7days; Inode grace time: 7days
                                Block limits                File limits
        User            used    soft    hard  grace    used  soft  hard  grace
        ----------------------------------------------------------------------
        root      --      20       0       0              2     0     0       
        wen       -+      40     100     200             10     2     0  6days
        centos    --      44       0       0             11     0     0       
        fedora    -+      44     100     200             11     2     0  6days
        hodoop    --      16       0       0              4     0     0

8.测试

[root@w7 home]# su - centos
[centos@w7 ~]$ dd if=/dev/zero of=./test1 bs=1 count=34000
34000+0 records in
34000+0 records out
34000 bytes (34 kB) copied, 0.0592565 s, 574 kB/s
[centos@w7 ~]$ dd if=/dev/zero of=./test2 bs=1 count=34000
dd: failed to open ‘./test2’: Disk quota exceeded
[centos@w7 ~]$ dd if=/dev/zero of=./test3 bs=1 count=34000
dd: failed to open ‘./test3’: Disk quota exceeded

二.磁盘RAID

1.概论:

RAID:(Redundant Arrays of (Inexpensive)Independent Disks)
     廉价冗余磁盘阵列,独立冗余磁盘阵列
多个磁盘合成一个"阵列"来提供更高的性能,冗余,或者两种兼备

使用环境:在早先的生产环境中,磁盘的生产能力很差,IO能力弱.一块磁盘出现故障,整个设备就会停止工作.

出现地点:1988年由加利福尼亚大学伯克利分校( University ofCalifornia-Berkeley) “ A Case for Redundant Arrays of Inexpensive Disks”。

结合内核中的md(multi devices)模块实现

作用:
    提高IO能力:
        磁盘并行读写
    提高耐用性:
        磁盘冗余来实现

实现方式:
    外接式磁盘阵列:通过扩展卡提供适配能力  创建操作系统后,手工命令创建RAID
    内嵌式RAID:主板集成RAID控制器 安装操作系统前,提前规划,在硬件上创建RAID

级别:多块磁盘组织在一起的工作方式有所不同,级别仅代表磁盘的组织方式,不代表先进性
    RAID-0: 条带卷,strip;
    RAID-1: 镜像卷,mirror;    
    RAID-2:
    RAID-3:
    RAID-4:
    RAID-5:
    RAID-6:
    RAID-10:
    RAID-01:

注意:即使做RAID,也要做数据备份,raid,只是作用于磁盘损坏,而不导致业务中断的场景,不代表数据一定安全.

2.级别描述

单类型:

RAID-0:无差错控制的带区组

  
描述:把多块磁盘平行组织起来当成一块硬盘实现IO并行组织的磁盘组织结构
工作机制:数据流通过控制器,控制器把数据切割成多块chunk(跟文件系统的块不同),分散到不同的磁盘(chunk按顺序写入不同的磁盘)
优势:
读写性能提升(速度最快)
可用空间:N*min(s1,s2) 磁盘个数乘每个磁盘的最小空间
缺点:无容错能力,耐用性下降(如果一个磁盘(物理)损坏,则所有的数据都无法使用)
限制:最少磁盘数2个
适用场景:临时数据 (决不能当存储设备的阵列)
系统管理之磁盘管理(二)磁盘配额,RAID,LVM

 RAID-1:
    描述:把数据同时分别完整存储到不同磁盘上,数据备份两份或多份
    工作机制:数据流通过控制器,控制器把数据切割成多块chunk(跟文件系统的块不同),把每个数据块同时分别存储到不同的磁盘,互为备份.
    优势:
        读性能提升(可以交叉读),写性能略下降
        双磁盘支持热替换,安全性最高
    缺点:有容错能力,耐用性下降
        数据同步,删除创建同步
        可用空间:磁盘总容量的一半,使用率最低
    限制:最少磁盘数:2个
    适用场景:重要数据

系统管理之磁盘管理(二)磁盘配额,RAID,LVM

RAID-4:

    描述:
    工作机制:将至少三块磁盘组成RAID,将第一块存储校验码,其他磁盘存储数据,把数据流分成块,数据块分别存储在数据磁盘,第一块校验码盘存放第二,第三块盘的通过异或运算得到的数据.当数据盘的数据损坏,可通过剩余的盘与校验码盘计算,得到损失的数据(在恢复过程中,又造成数据损坏,则数据不可逆,永远无法恢复)
    异或运算(一组数据丢失,可通过跟校验位比对,得出丢失的数据,两组数组都丢失,过程不可逆,校验码丢失,没影响; 在恢复数据过程中,大量占用系统IO):    
        110(数据)
        101 (数据)   
        011(校验码)
    优势:
        读性能提升(可以交叉读),写性能略下降
        可用空间:(n-1)*min(s1,s2) 磁盘个数减一乘每个磁盘的最小空间
    缺点:
        有容错能力
        校验盘读写压力大,成为性能瓶颈
    限制:最少磁盘数:3个
    适用场景:临时数据

系统管理之磁盘管理(二)磁盘配额,RAID,LVM

 RAID-5(中小企业使用最多):分布式奇偶校验的独立磁盘结构

    描述:校验机制
    工作机制:与RAID4集中校验机制相比,RAID5的区别为是轮流校验的机制.数据块交替存在每个磁盘,校验位交替存放在每个磁盘每,每个盘都是数据盘,每个盘都是校验盘,有spare硬盘,若有硬盘损坏,空闲硬盘自动工作
    优势:
        读写性能提升(读很高,写一般)
        可用空间:(N-1)*min(s1,s2) 磁盘个数乘每个磁盘的最小空间
    缺点:
        有容错能力, 允许1块磁盘出错    
        有写损失,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息
    限制:最少磁盘数:3个

系统管理之磁盘管理(二)磁盘配额,RAID,LVM

  RAID-6:带有两种分布存储的奇偶校验码的独立磁盘结构

    描述:校验机制
    工作机制:与RAID4集中校验机制相比,RAID5的区别为是轮流校验的机制.前两个数据块交替存储在数据盘,每第三,四块盘做校验盘,校验码存两遍,
    优势:
        数据绝不可能出错
        可用空间:(N-2)*min(s1,s2) (磁盘个数-2)乘每个磁盘的最小空间
    缺点:
        有容错能力, 2块磁盘    
        写性能不好,造价高        
    限制:最少磁盘数:4个
    适用场景:重要数据

系统管理之磁盘管理(二)磁盘配额,RAID,LVM

  RAID-7: 优化的高速数据传送磁盘结构

  RAID7所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问数据的速度;每个磁盘都带有高速缓冲
  存储器,实时操作系统可以使用任何实时操作芯片,达到不同实时系统的需要。允许使用SNMP协议进行管理和监视,可以对校验区指定独
  立的传送信道以提高效率。可以连接多台主机,因为加入高速缓冲存储器,当多用户访问  系 统时,访问时间几乎接近于0。由于采用并行结
  构,因此数据访问效率大大提高。需要注意的是它引入了一个高速缓冲存储器,这有利有弊,因为一旦系统断电,在高速缓冲存储器内的数
  据就会全部丢失,因此需要和UPS一起工作。当然了,这么快的东西,价格也非常昂贵。

混合型:

RAID-10:(最合理)高可靠性与高效磁盘结构
    描述:两两或更多先做RAID1镜像卷,再把多个镜像卷做RAID0
    工作机制:先把数据流分别完整存储到两个镜像盘上,数据备份两份;再把RAID1的镜像卷,合并为RAID0
    优势:
        读写性能提升
        可用空间:N*min(s1,s2)/2 
        容错性更强
    缺点:
        有容错能力, 每组镜像卷最多坏一块,一组镜像卷坏,整个raid破坏            
    限制:最少磁盘数:4个
    适用场景:重要数据

RAID-01:
    描述:两两或更多先做RAID0条带卷,再把多个条带卷做RAID1镜像卷
    工作机制:把RAID0和RAID1技术结合起来,即RAID0+1。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。要求至少4个硬盘才能作成RAID0+1。
    优势:
        读写性能提升
        可用空间:50%
        容错性稍弱
    缺点:
        有容错能力, 1块磁盘            
    限制:最少磁盘数:4个
    适用场景:临重要数据适用场景:临重要数据
RAID-50

JBOD:Just a Bunch of Disks

JBOD通常又称为Span。它是在逻辑上将几个物理磁盘一个接一个连起来, 组成一个大的逻辑磁盘。JBOD不提供容错,该阵列的容量等于
组成Span的所有磁盘的容量的总和。JBOD严格意义上说,不属于RAID的范围。不过现在很多IDE RAID控制芯片都带着种模式,JBOD就是
简单的硬盘容量叠加,但系统处理时并没有采用并行的方式,写入数据的时候就是先写的一块硬盘,写满了再写第二块硬盘……
 不属于RAID的范畴
 功能:将多块磁盘的空间合并一个大的连续空间使用;
 可用空间:sum(s1,s2...)

常见级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

3.实现方式(centos上的软RAID实现)

mdadm:模式化工具
如命令不能使用,则yum安装mdadm

命令语法:mdadm [mode] <raiddevices> [options] <component-devices>
    支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RIAD5,RAID6,RAID10
    <raiddevices> :/dev/md#
    <component-devices>:任意块设备
    [options]:
        模式:
            创建:创建RAID设备   -C
                -n #: 使用#个块设备来创建次RAID
                -l:指明要创建的RAID的级别
                -a {yes|no}:表示是否自动创建目标RAID设备的设备文件
                -c CHUNK_SIZE:指明块大小
                -x #:指明空闲盘的个数(没有冗余能力的RAID,此选项没用)

            装配:raid后,当某一磁盘损坏或拿掉后,扫描raid原有的元数据,重新装配成原来的raid  -A
            监控:    -F
            管理:    -f ,-r,-a

                -f:标记指定磁盘为损坏
                -a:添加磁盘
                -r:移除磁盘
            删除: -S
            显示RAID详细信息: -D    
                mdadm -D /dev/md#

    观察md的状态:
    (创建RAID后查看,必须等文件中的进度条走完,才能实现其他功能,进度条代表生成RAID的过程)
        [root@w7 home]# cat /proc/mdstat
        配合watch -n1 显示实时查看
        watch命令:
            -n #:刷新间隔,单位是秒
            watch -n# 'COMMEND'

软RAID配置实例

fdisk创建分区,修改类型为fd(实际生产过程中,使用整块磁盘)

  • 使用mdadm创建并定义RAID设备
      mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

  • 用文件系统对每个RAID设备进行格式化
      mke2fs -t ext4 /dev/md0

  • 测试RAID设备

  • mdadm允许检查RAID设备的状况
     mdadm –detail|D /dev/md0

  • 查看RAID的配置文件
     cat /proc/mdstat

  • 增加新的成员
     mdadm –G /dev/md0 –n4 -a /dev/sdf1

软RAID的删除:

  • umount /挂载点

  • mdadm -S /dev/md#

  • rf -f /etc/mdadm.conf

  • fdisk /dev/sd#

  • mdadm —

  • mdadm -zero-superblock /dev/sd[a-z]#

软RAID测试和修复

  • 模拟磁盘故障(标记某磁盘为损坏磁盘,此步骤必须在/proc/mdstat文件进度条生成后)
    mdadm /dev/md0 -f /dev/sda1

  • 移除磁盘
    mdadm /dev/md0 –r /dev/sda1

  • 从软件RAID磁盘修复磁盘故障

  • 替换出故障的磁盘然后开机

  • 在备用驱动器上重建分区

  • mdadm /dev/md0 -a /dev/sda1

  • mdadm、 /proc/mdstat及系统日志信息

软RAID管理:

  • 生成配置文件(很重要,否则开机找不到raid):

  • mdadm -D -s >/etc/mdadm.conf

  • 停止md设备:

  • mdadm -S /dev/md#

  • 激活md设备

  • mdadm -A -s /dev/md#

  • 删除RAID信息:

  • mdadm -zero-superblock /dev/sd[a-z]#

4.实战

1:创建一个10G可用空闲的RAID5;

[root@w7 ~]# mdadm -C /dev/md1 -a yes -n 2 -x 1 -l 5 /dev/sdb{2,3,4}
-C 创建raid,-a 创建设备文件 -n指明使用#个磁盘做数据盘 -x 空闲盘为#个 -l指明RAID级别

mdadm: /dev/sdb4 appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 08:00:00 1970
mdadm: partition table exists on /dev/sdb4 but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

[root@w7 ~]# cat /proc/mdstat 查看raid的映射文件

Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sdb3[3] sdb4[2](S) sdb2[0]
      5238784 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      [====>................]  recovery = 21.7% (1139712/5238784) finish=0.9min speed=71232K/sec

unused devices: <none>

[root@w7 ~]# mke2fs -t ext4 /dev/md1 给RAID里的所有磁盘生成文件系统

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)

[root@w7 ~]# mount /dev/md1 /mnt 挂载RAID
[root@w7 ~]# mount 查看挂载情况

/dev/md1 on /mnt type ext4 (rw,relatime,stripe=128,data=ordered)

[root@w7 ~]# df -lh 查看RAID的磁盘大小

/dev/md1        4.8G   20M  4.6G   1% /mnt

[root@w7 ~]# blkid /dev/md1 使用UUID设置自动挂载,重启机器后会改变设备名,写入/etc/fstab

/dev/md1: UUID="ceadea35-a6e2-4763-ac62-86c323f27c2c" TYPE="ext4"

[root@w7 ~]# mdadm -Ds /dev/md1 > /etc/mdadm.conf 生成配置文件(很重要)

mdadm -S /dev/md0 停止raid

mdadm -A /dev/md0 启动raid

2.设置损坏

[root@w7 ~]# mdadm -D /dev/md1 查看RAID状态

/dev/md1:
Version : 1.2
Creation Time : Fri Aug 26 21:01:52 201
Raid Level : raid5
Array Size : 5238784 (5.00 GiB 5.36 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Fri Aug 26 21:03:55 2016
State : clean 
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Name : w7.2-b-214:1  (local to host w7.2-b-214)
UUID : 254cfe33:b02cd9ac:464bc6a1:605f6422
Events : 18

Number   Major   Minor   RaidDevice State
0       8       18        0      active sync   /dev/sdb2
3       8       19        1      active sync   /dev/sdb3

2       8       20        -      spare   /dev/sdb4

[root@w7 ~]# mdadm /dev/md1 -f /dev/sdb 编辑一块磁盘为损坏
[root@w7 ~]# mdadm -D /dev/md1 再次查看信息

 Number   Major   Minor   RaidDevice State
 3       8       64        0      spare rebuilding  /dev/sde
 1       8       32        1      active sync   /dev/sdc
 4       8       48        2      active sync   /dev/sdd

 0       8       16        -      faulty   /dev/sdb


原来空闲磁盘自动工作,标记损坏的磁盘自动到空闲位

[root@w7 ~]#mdadm /dev/md0 -r /dev/sdf1 删除成员
[root@w7 ~]#mdadm /dev/md0 -a /dev/sdf1 增加
[root@w7 ~]#mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成员

3.删除RAID,恢复磁盘

umount //mnt 从挂载点卸载raid
mdadm -S /dev/md1 停止RAID
rf -f /etc/mdadm.conf 删除RAID的配置文件
fdisk /dev/sd# 整理磁盘的分区(整个磁盘做RAID,此部可省)
mdadm -zero-superblock /dev/sd[a-z]# 把每个做raid的磁盘都从RAID移除

4.创建一个可用空间为10G的RAID1设备,要求其chumk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

mdadm -C /dev/md4 -n 2  -l 1 -a yes -b 128 /dev/sdc1 /dev/sdc2
lsblk 
mdadm -D /dev/md4
mke2fs -t ext4 /dev/md4

5.创建一个可用空间为10G的RAID10设备,要求其chumk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

mdadm -C /dev/md2 -n 2  -l 1 -a yes -c 128 /dev/sdc{1,2}
mdadm -C /dev/md3 -n 2  -l 1 -a yes -c 128 /dev/sdd{1,2}
lsblk
mdadm -C /dev/md4 -n 2  -l 0 -a yes  /dev/md{2,3}
lsblk 
cat /proc/mdstat 
mdadm -D /dev/md4
mdadm  /dev/md3 -r /dev/sdd1
mdadm  /dev/md3 -f /dev/sdd1
mdadm -D /dev/md3

系统管理之磁盘管理(二)磁盘配额,RAID,LVM
创建一个可用空间为10G的RAID01设备,要求其chumk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

 mdadm -C /dev/md5 -n 2  -l 0 -a yes  /dev/sdc{3,4}
 1071  mdadm -C /dev/md6 -n 2  -l 0 -a yes  /dev/sdd{3,4}
 1072  mdadm -C /dev/md7 -n 2  -l 1 -a yes -b 128 /dev/md5 /dev/md6
 1073  ls
 1074  lsblk 
 1075  mke2fs -t ext4 /dev/md4
 1076  mke2fs -t ext4 /dev/md7
 1077  mount /dev/md7 /mnt
 1078  cd /mnt
 1079  ls
 1080  df -lh
 1081  madam -D /dev/md7

系统管理之磁盘管理(二)磁盘配额,RAID,LVM

三.LVM(逻辑卷)管理器

1.概论

什么是LVM?

LVM是逻辑盘卷管理(LogicalVolumeManager 2)的简称,它是Linux环境下对磁盘分区进行管理的一种机制.LVM是建立在硬盘和
分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。系统管理员可以通过LVM轻松的管理磁盘分区,如:将若干个磁盘分区或
物理磁盘连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolume
s),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进
行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。相对于
普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦,而使
用LVM可以很灵活的调整分区的大小并且数据不受影响。

原理:把底层磁盘创建成PV,pv加入到VG group,在VG中拉出一块空间,创建LV

作用:使用软件的方式,组织一个或多个底层硬件的设备,成为一个抽象的逻辑设备


底层硬盘设备(分区,RAID),可以创建为PV(物理卷,可以存放元数据),pv可以把底层提供的存储空间抽象为一个一个独立的存储单元,合
并在一个高级的单位,卷组VG,可以包含多个物理卷,VG的空间就是物理卷的空间,可以将一个或多个的物理设备(PV)组成一个逻辑设备(V
G,类似扩展分区,不能被格式化直接使用).在VG上创建LV,每个LV都是独立的文件系统,可以格式化和使用,可以使用卷组内的任意可用空
间大小,可以跨多个VG多个pv组成一个VG,VG在逻辑层次上把1个或多个PV组成的存储空间,划分为固定大小的块(PE,物理盘区)pv加入到
VG后才有PE的存在,不同VG对PE的定义不同VG层次上,不管是来自哪的空间,都会被识别为一个一个的PE,VG创建LV的过程,就是指定特定
数量的PE来组成逻辑存储空间的过程,逻辑卷lv的大小可以动态扩大或收缩,而不危害里面的数据.VG和LV都可以动态添加或缩小,保障存
储空间的收缩性,但是在软件层次上实现,一旦数据损坏,很难恢复

使用模块:

dm模块(device mapper) 设备映射组件,将一个或多个底层块设备组织成一个逻辑设备的模块;

优缺点:

优点:

LVM的重点在与可以弹性的调整文件系统的容量,当实际场景中,我们如果使用普通的分区后,基本该分区的容量就已经固定,比如linux
的/home分区由于用户存储的数据太多,导致/home分区的容量不够,我们需要把/home分区的数据拷贝到别的地方,挂载一块大分区上去
,才可以完成/home的扩容,步骤比较繁琐。

由于LVM可以动态在线调整分区大小,我们直接通过LVM给/home分区扩容。如果有其它分区太大而浪费空间,我们还可以在线的缩小容量。

LVM还支持快照,在不中断业务的情况下,对数据做完整备份。

缺点:

LVM是基于操作系统之上,若由于程序问题导致数据丢失,或LVM的损坏,数据恢复比较麻烦。

注意事项:

1.PV在移除时,必须满足:
    其他PV具有承载LV大小的空间
    pv上有数据时,必须把数据搬移到其他的PV上

2.lv的缩减相当危险,缩减不能在线进行,缩减lv要先卸载,先缩减逻辑边界,也就是文件系统边界,再缩减物理边界,也就是lv)缩减
LV有丢失数据风险,需要谨慎

设备文件:

    /dev/dm-#

   有两个符号链接:
    /dev/mapper/VG_name-LV_name  (/dev/mapper/voL0-root)
    /dev/VG_NAME/LV_NAME(/dev/voL0/root)

基本术语

PV(物理卷,Physical Volume):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但
和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。如果是磁盘分区创建PV,必须更改分区类型为LVM

VG(卷组,Volume Group):由多个物理卷组成,类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创
建一个或多个“LVM分区”(逻辑卷)

LV(逻辑卷,Logical Volume):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统;
每个LV都是独立的文件系统,可以格式化和使用,可以使用卷组内的任意可用空间大小,可以跨多个VG

PE(物理块,Physical Extent):每一个物理卷PV被划分成为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被
LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成.PE被分配给逻辑卷使用后,
就会变成LE(逻辑盘区)

LE(逻辑块,Logical Extent):逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,
并且一一对应

PV、VG、LV三者之间是有一定逻辑关系的,LVM是将一些零碎的磁盘分区(PV)合并成一个较大的磁盘(VG),然后在根据需要对这个
较大的磁盘(VG)进行划分成不同的小分区(LV),并且这些小分区(LV)是可以动态的扩展或缩小的。而PE是PV的基本组成单元,LE
是LV的基本组成单元。

系统管理之磁盘管理(二)磁盘配额,RAID,LVM
系统管理之磁盘管理(二)磁盘配额,RAID,LVM

以上为一个简单模型:

PV:物理磁盘,LVM是建立在物理磁盘上面的,增加物理磁盘可以扩展上层分区的大小。

VG:卷组,可以包含一个或多个物理卷。

LV:逻辑卷,从VG上分出可以实际存储数据的分区,建立文件系统

PE:VG上最小的块大小单元。

2.管理LVM命令

三类命令
1、管理物理卷的命令,命令开头是pv

pvs   显示pv分区的简要信息,包括硬盘分区名称、PV名称、空间问题及空闲量
pvcreate 把硬盘分区转换成PV  创建物理卷
    pvcreate [选项] [硬盘分区]
       选项:
          -f:强制创建物理卷,不需要用户确认; 
          -u:指定设备的UUID; 
          -y:所有的问题都回答“yes”; 
          -Z:是否利用前4个扇区。
 pvdisplay 显示PV的详细信息
 pvscan 扫描系统中的pv
 pvremove 删除pv
    pvmove [选项] [pv_name....]
       选项:
           -f 强制删除,不提示
           -y 对提示的内容,自动输入yes
 pvchange 改变pv的物理属性
    pvchange [选项] [pv_name]
       选项:
          -u 为指定的PV_NAME随便生成UUID
 pvck 检查PV的元数据
 pvresize 调整PV的容量大小 
    pvresize [选项] [pv_name]
        --setphysicalvolumesize <容量大小> 指定修改PV的空间大小 
        pvresize /dev/sda4 自动把/dev/sda4的空间大小调整为磁盘分区的最大值
        pvresize --setphysicalvolumszise 50G /dev/sda4 把/dev/sda4的空间大小调整为50G    
 pvmove 把源PV的上数据移动到目标pv上
     vmove [选项] [源PV] [目标PV1.......]
        pvmove /dev/sda4 /dev/sda5 把/dev/sda4的数据移动到/dev/sda5

2、管理卷组的命令,命令开头是vg

vgs  显示vg分区的简要信息,包括硬盘分区名称、PV名称、空间问题及空闲量
 vgdisplay 显示vg的详细信息
 vgcreate 创建VG
     vgcreate [选项] [vg_name] [pv_name.....]
        -l:卷组上允许创建的最大逻辑卷数,即PV数量; 
           -p:卷组中允许添加的最大物理卷数;
           -s:卷组上的物理卷的PE大小,即PV数量。
vgextend  添加PV到VG中
      vgextend [选项] [vg_name] [pv_name]
        -d 使用调试模式
        -t 测试使用
            -f 强制扩展
        -v 显示详细信息    
vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] #移除VG中的一个PV ,前提是移动数据
vgremove VG_NAME  #删除vg组,要先把mount取消掉
vgscan [PhysicalDevicePath] 扫描系统中的VG

3、管理逻辑卷的命令,命令开头是lv

lvs 查看
lvdisplay 查看详细信息
lvcreate 创建lv
lvscan   扫描LV
lvcreate [选项] [vc_name]
     -L -L #K|M|G 指定创建的逻辑卷的大小
     -l 通过指定VC的PE数量,来确定VC的空间大小
     -n 指定vc的名称 
lvremove 删除lv,先要卸载mount
lvremove [选项] [lv_name]
扩展逻辑卷:
     #注意:在 lvexten扩展完成后,直接操作mount,会发现扩展的空量没有直接应用到文件系统中,需要执行一次 resize2fs #
    lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME      不带加号是扩展到#  带加号是扩展#
    resize2fs /dev/VG_NAME/LV_NAME         重新加载文件系统(扩大逻辑边界)
缩减逻辑卷:
    umount /dev/VG_NAME/LV_NAME   #缩减必须先umount
    e2fsck -f /dev/VG_NAME/LV_NAME  #文件系统强制检测及修复
    resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] #指定文件系统缩减到大多的空间
    lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME  #指定LV的缩减到多大的空间
    mount #挂载

3.实战

一、创建1个10G的pv
1、准备三个磁盘sdb sdd

[root@Whatsername /]# pvcreate /dev/sd{b,d}
  Writing physical volume data to disk "/dev/sdb"
  Physical volume "/dev/sdb" successfully created
  Writing physical volume data to disk "/dev/sdd"
  Physical volume "/dev/sdd" successfully created

2、检测所创建pv

pvs
pvscan
pvdisplay

二、创建VG
1、创建

格式:vgcreate vg命令 pv1 pv2 .....
[root@Whatsername /]# vgcreate zxhh_vg /dev/sd{b,d}
Volume group "zxhh_vg" successfully created

2、检测

vgs
vgscan
vgdisplay

3、删除这个VG,重新创建,pe为8M

[root@Whatsername /]# vgremove zxhh_vg
  Volume group "zxhh_vg" successfully removed
[root@Whatsername /]# vgcreate -s 8M zxhk_vg /dev/sd{b,d}
  Volume group "zxhk_vg" successfully created

4、移除pv sdb

[root@Whatsername /]# pvmove /dev/sdb
  No data to move for zxhk_vg
[root@Whatsername /]# vgreduce zxhk_vg /dev/sdb
  Removed "/dev/sdb" from volume group "zxhk_vg"
[root@Whatsername /]# pvs
  PV         VG             Fmt  Attr PSize  PFree
  /dev/sda2  vg_whatsername lvm2 a--  19.51g    0 
  /dev/sdb                  lvm2 a--   4.00g 4.00g
  /dev/sdd   zxhk_vg        lvm2 a--   3.99g 3.99g
[root@Whatsername /]# pvremove /dev/sdb
  Labels on physical volume "/dev/sdb" successfully wiped

5、新添加PV进来

[root@Whatsername /]# pvcreate /dev/sde
  Writing physical volume data to disk "/dev/sde"
  Physical volume "/dev/sde" successfully created
[root@Whatsername /]# vgextend zxhk_vg /dev/sde
  Volume group "zxhk_vg" successfully extended
[root@Whatsername /]# pvs
  PV         VG             Fmt  Attr PSize  PFree
  /dev/sda2  vg_whatsername lvm2 a--  19.51g    0 
  /dev/sdd   zxhk_vg        lvm2 a--   3.99g 3.99g
  /dev/sde   zxhk_vg        lvm2 a--   2.99g 2.99g

三、创建lv
1、创建一个100M的逻辑卷

[root@Whatsername /]# lvcreate -L 100M -n zxhk_lv zxhk_vg
创建的逻辑卷对应的设备文件在/dev/zxhk_vg/zxhk_lv

2、安装文件系统

[root@Whatsername /]# mke2fs -t ext4 /dev/zxhk_vg/zxhk_lv

3、挂载使用逻辑卷

[root@Whatsername /]# mount /dev/zxhk_vg/zxhk_lv /ma
[root@Whatsername /]# df -lhP

4扩展逻辑卷:

[root@localhost ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- 8.47g                                                    
  swap   centos -wi-ao---- 1.00g                                                    
  lvtest vgtest -wi-ao---- 3.91g                                                    
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n-  9.51g 40.00m
  vgtest   3   1   0 wz--n- 11.99g  8.08g
  [root@localhost ~]# lvextend -L +1G /dev/vgtest/lvtest  #为lvtest的空间扩大1G
  Size of logical volume vgtest/lvtest changed from 3.91 GiB (1000 extents) to 4.91 GiB (1256 extents).
  Logical volume lvtest successfully resized.
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                QRJ9jg-vxf6-cOHs-5zuJ-dBze-UryA-3sGork
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-19 22:46:43 +0800
  LV Status              available
  open                 1
  LV Size                4.91 GiB #扩展后的空间
  Current LE             1256 #扩展后的LE,LE的值与PE相同
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@localhost ~]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  3.8G   14M  3.6G   1% /lvtest  #但能使用的空间还没有扩展
[root@localhost ~]# resize2fs /dev/vgtest/lvtest #resize2fs命令被用来增大或者收缩未加载的“ext2/ext3”文件系统的大小
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vgtest/lvtest is mounted on /lvtest; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vgtest/lvtest is now 1286144 blocks long.
[root@localhost ~]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  4.8G   14M  4.6G   1% /lvtest #已能使用扩展后的空间


在线扩容LVM命令比较简单,但是需要理解的的是,实际工作中应该是把新的PV分区格式化为8e的分区,把PV添加到VG中,,在通过VG来
分配空间给我们的LV,由于我的VG空间充足,直接LV命令扩容。

在线lvetend扩容LV后,系统还无法识别LV的空间,需要 resize2fs重新读取一下,是系统识别到正确的容量空间。

5.缩减逻辑卷:

[root@localhost /]# lvdisplay /dev/vgtest/lvtest 
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                ze2YVv-0eXR-RBD2-byEK-eqtt-zuaD-m4LqJM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-19 23:35:14 +0800
  LV Status              available
  # open                 1
  LV Size                5.00 GiB #缩小前的空间
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@localhost /]# umount /lvtest/  #必须先卸载,否则会出问题。但扩大空间时不用先卸载
[root@localhost /]# resize2fs /dev/vgtest/lvtest 2G #把文件系统大小压缩成2G
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/vgtest/lvtest' first.  #提示先进行文件检测,如果没有事先umount,检测会出问题,提示超级块有坏块
[root@localhost /]# e2fsck -f /dev/vgtest/lvtest #检测 
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vgtest/lvtest: 11/327680 files (0.0% non-contiguous), 55935/1310720 blocks
[root@localhost /]# resize2fs /dev/vgtest/lvtest 2G  #把文件系统大小压缩成2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vgtest/lvtest to 524288 (4k) blocks.
The filesystem on /dev/vgtest/lvtest is now 524288 blocks long.
[root@localhost /]# lvreduce -L 2G /dev/vgtest/lvtest #把LV的空间缩小成2G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvtest? [y/n]: Y
  Size of logical volume vgtest/lvtest changed from 5.00 GiB (1280 extents) to 2.00 GiB (512 extents).
  Logical volume lvtest successfully resized.
[root@localhost /]# mount /dev/vgtest/lvtest /lvtest/
[root@localhost /]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  1.9G  7.7M  1.8G   1% /lvtest

在实际中有可能出现原来的LV空间数据存放BLOCK比较分散,缩减需要把磁盘空间数据的集中在限定大小的区域,所以需要需要卸载,以
免在数据移动过程中,有其它的数据写入缩减空间以为的block。

记得卸载后一定记需要强制检测分区,使用 resize2fs调整分区,再使用lvreduce调整分区,不然会出现该LV卷出现损坏的故障报错。

6.删除LVM

1、取消挂载及删除/etc/fstab中条目

umount /home   #取消挂载
vim /etc/fstab   #删除该文件中/home挂载的对应条目

2、移除逻辑卷LV

 lvchange -an /dev/vgname/lvname   #关闭逻辑卷
 lvremove /dev/vgname/lvname       #移除逻辑卷

3、移除卷组VG

 vgchange -an /dev/vgname   #关闭卷组
 vgremove /dev/vgname       #移除卷组

4、移除物理卷PV

 pvremove /dev/sda1      #移除物理卷

5、删除磁盘分区

通过fdisk删除磁盘分区,这个不做演示
partx -d --nr 1 /dev/sda   #删除之后,记得用该命令刷新内存条目

7.LVM的迁移
以下操作以迁移VG为主进行的操作,迁移LV同理

1、源主机上操作
①取消所要迁移的文件系统挂载
umount /home
②关闭LV和VG

lvchange -an /dev/vgname/lvname
vgchange -an /dev/vgname

③导出VG

vgexport vgname

2、目标主机上操作
①导入VG

vgimport vgname

②激活VG,挂载文件系统

 vgchange -ay vgname

③挂载迁移过来的文件系统

 mkdir /home
 mount/dev/vgname/lvname /home
 df -h    #查看挂载情况

4.快照:snapshot

介绍几个概念,关于数据的备份

冷备份:卸载掉文件系统,不能读不能写

温备份:不卸载文件系统,能读取文件系统内容但是不能写

热备份:不卸载文件系统,既能读取文件系统内容又能写入

注意两点:

1),快照其实也是一个逻辑卷

2),快照只能对逻辑卷LVM进行备份,并且只能对同一个卷组的逻辑卷进行备份

1.快照概论
对文件系统做快照,是把文件系统的某一刻的状态,瞬间扫描,创建对文件系统的元数据的监控器(快照卷),快照卷是指向原卷的另一个路径,存放着原卷某一时刻的元数据.针对某一时间,原卷的文件要变化时,先把要复制的文件备份在快照卷,再改变原卷文件;如果原卷一直没有发生改变,在恢复快照时,快照卷仍指向源文件,访问源文件.创建快照卷后,原卷在发生改变后,在进行差异(增量备份).快照卷的大小跟保留时间有关联,应大于等于源逻辑卷的大小,方便存储源逻辑卷的文件.

快照就是将当时系统的信息记录下来,就好像照相一样。将来若有任何数据的改动,则原始数据就会被移动到快照区。

做快照时,一定要确保数据没有在被访问

快照LV和被快照的LV要在同一个VG中。

2.管理快照
创建快照卷:(与现有卷在一个空间里)
lvcreate -L #[mMgGtT] -p r -s -n snapshot_name original_lv_name
说明:-s : 创建快照的参数;-L:设置快照空间大小;-P r快照为只读模式-n创建快照的名称

3.演练

创建快照卷:
    1.lvcreate -s -L 2G -n mylv_snap -p r /dev/vg0/mylv
    2.mount /dev/mylv_snap /mnt
删除快照卷:
    1.umount /mnt
    2.lvremove /dev/vg0/mylv_snap

一.对lvm0102做快照,备份其数据
1.查看lv0102的空间大小,查看其中数据;

2.做快照后,删除和修改源卷的数据;

3.查看快照卷中的数据是否完整。

[root@love721 root]cd /mnt/mylv0102   进入lv的挂载目录
[root@love721 mylv0102]# ll –h  # 查看到原卷上的数据有105M
total 105M
-rw-r--r-- 1 root root 124K Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root 4.0K Aug  1 16:10 grub
drwx------ 6 root root 4.0K Aug  1 16:10 grub2
-rw-r--r-- 1 root root  55M Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root  27M Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 9.8M Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root  119 Aug  1 13:04 issue
drwx------ 2 root root  16K Aug  1 13:03 lost+found
-rw-r--r-- 1 root root 247K Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root 2.9M Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

[root@love721 mylv0102]# df –h  #硬盘的空间还有2.7G左右
Filesystem               Size  Used Avail Use% Mounted on
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/vg01-lv0102  2.9G  116M  2.7G   5% /mnt/mylv0102

创建快照卷 lv0102_snap 大小为500M (快照卷空间不要太小了,一边原卷上的数据变动比较频繁时,快照卷无法保存所有的原卷数据备份)

[root@love721 mylv0102]# lvcreate -s -L 500M -n lv0102_snap -p r /dev/mapper/vg01-lv0102 
#创建一个500M的 lv0102的快照卷 lv0102_snap,权限为只读的
  Logical volume "lv0102_snap" created.

 [root@love721 mylv0102]#  lvdisplay  #显示LV卷的信息,部分文字省了,可以看到刚刚创建的快照卷
  …………………………………..   
  --- Logical volume ---
  LV Path                /dev/vg01/lv0102_snap
  LV Name                lv0102_snap
  VG Name                vg01
  LV UUID                YAETxW-lPfi-af9a-RM41-t5Ok-5BBT-ourZfl
  LV Write Access        read only
  LV Creation host, time love721.q.com, 2016-08-01 16:16:34 +0800
  LV snapshot status     active destination for lv0102
  LV Status              available
  # open                 0
  LV Size                2.93 GiB
  Current LE             750
  COW-table size         500.00 MiB
  COW-table LE           125
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

挂载快照卷,修改lv0102中的数据,删除部分数据,测试快照卷的完整性。

[root@love721 mylv0102]# mkdir /mnt/snap

 [root@love721 mylv0102]# mount  /dev/vg01/lv0102_snap /mnt/snap #挂载快照卷
mount: /dev/mapper/vg01-lv0102_snap is write-protected, mounting read-only

[root@love721 snap]# ll -h
total 105M
-rw-r--r-- 1 root root 124K Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root 4.0K Aug  1 16:10 grub
drwx------ 6 root root 4.0K Aug  1 16:10 grub2
-rw-r--r-- 1 root root  55M Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root  27M Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 9.8M Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root  119 Aug  1 13:04 issue
drwx------ 2 root root  16K Aug  1 13:03 lost+found
-rw-r--r-- 1 root root 247K Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root 2.9M Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

删除原卷下一些数据,修改个别文件

[root@love721 mylv0102]# rm symvers-3.10.0-327.el7.x86_64.gz  
rm: remove regular file ‘symvers-3.10.0-327.el7.x86_64.gz’? y
[root@love721 mylv0102]# rm vmlinuz-*
rm: remove regular file ‘vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc’? y
rm: remove regular file ‘vmlinuz-3.10.0-327.el7.x86_64’? y

删除lv0102原卷上的三个文件

[root@love721 mylv0102]# ll
total 96736
-rw-r--r-- 1 root root   126426 Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root     4096 Aug  1 16:10 grub
drwx------ 6 root root     4096 Aug  1 16:10 grub2
-rw-r--r-- 1 root root 57644379 Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root 28097829 Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 10190079 Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root      119 Aug  1 13:04 issue
drwx------ 2 root root    16384 Aug  1 13:03 lost+found
-rw------- 1 root root  2963044 Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
[root@love721 mylv0102]# echo "1234567890" >> issue  #修改issue文件内容
[root@love721 mylv0102]# cat issue 
\S
Kernel \r on an \m

Mage Education Learning Services
http://www.magedu.com


TTY is  \l
HOSTNAME is \n
DATE is  \t

1234567890

查看快照上的文件内容:删除的文件在,修改issue的文件内容是快照以前的

[root@love721 mylv0102]# ll /mnt/snap/
total 107056
-rw-r--r-- 1 root root   126426 Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root     4096 Aug  1 16:10 grub
drwx------ 6 root root     4096 Aug  1 16:10 grub2
-rw-r--r-- 1 root root 57644379 Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root 28097829 Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 10190079 Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root      119 Aug  1 13:04 issue
drwx------ 2 root root    16384 Aug  1 13:03 lost+found
-rw-r--r-- 1 root root   252612 Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root  2963044 Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root  5156528 Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root  5156528 Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

[root@love721 mylv0102]# cat /mnt/snap/issue 
\S
Kernel \r on an \m

Mage Education Learning Services
http://www.magedu.com


TTY is  \l
HOSTNAME is \n
DATE is  \t

以上快照就完成,我们把快照内的文件拷贝出来放在备份服务器上即可

实验完毕,删除测试的整个LV

1.卸载所有的挂载点上的LV卷;

2.删除LV卷

lvremove  /dev/vg01/lv0101

lvremove  /dev/vg01/lv0102

3.删除VG:

Vgremove  /dev/vg01

Vgremove  /dev/vg02

4.删除PE:

peremove  /dev/sdd1

peremove  /dev/sdc1

peremove  /dev/sdb1

实战:
1.创建一个至少有两个pv组成的大小为20G的名为tesvgt的卷组.要求PE大小为16MB.
2.新建用户archlinux,要求其家目录为/users/archlinux,尔后切换archlinux用户,复制/etc/pam.d目录至自己的家目录
3.扩展testlv至7G,要求archlinux用户的文件不能丢失
4.收缩testlv至3G,要求archlinux用户的文件不能丢失
5.对testlv创建快照,先尝试基于快照备份数据,验证快照的功能

原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/42192

(1)
wencxwencx
上一篇 2016-09-05
下一篇 2016-09-05

相关推荐

  • Lvm的创建

    一、LVM相关基础:     PE:类似与磁盘的block,这个的大小也会影响VG的大小     PV:是磁盘分区或逻辑上与磁盘分区具有相同功能的设备(RAID),是LVM的基本存储模块,但与基本的物理存储模块相比,却包含有lvm相关的参数     VG:类似于非lvm系统中的物理磁盘,包含多个pv     LV:类似于非lvm系统中的磁盘分区   PV相关…

    2016-04-10
  • shell脚本语言的for循环使用方法和案例

    在shell语言中bash是用的最多的,其语法简单。以指令为核心快速解决常用的问题。所有语言中逻辑控制是必不可少的,它可以帮助我们减少不必要的重复性工作。今天我们就来说说所有语言都会使用的神奇的for循环,学了它以后不仅知道如果规避重复的工作,还能理解程序的运行原理。         for循环是什么?&nb…

    Linux干货 2017-04-16
  • 铭记今天

        2016年10月19日,我做了一个很艰难的决定,选择了马哥24期网络全程班,就算是冲动也好,无论对错都要坚持下去。 从出来工作之后,一直做销售这块,虽然跟电脑有关,但是其中的艰苦只有自己明白。慢慢的年级上来了,手中没有什么技术,做人生活,总觉得少了什么,总觉得自己以后会被社会淘汰,心一天一天着急。在后选择了一个从来都没有涉及的运维…

    Linux干货 2016-10-19
  • 马哥教育网络班21期+第14周课程练习

    iptables关键点 表:filter(过滤,防火墙);nat(网络地址转换);mangle(拆解报文,做出修改,封装报文);raw(关闭nat表启用的链接追踪机制);上述是根据功能来区分的,写规则要明白要实现的功能 链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 数据流向:流入PREROUTING–…

    Linux干货 2016-08-26
  • 文本处理-三剑客-sed

    处理、编辑文本文件
    [option]… ‘script’ inputfile…

    2018-03-13
  • linux中的vim

    什么是vim:     Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix L…

    Linux干货 2016-08-11