zoukankan      html  css  js  c++  java
  • RAID与LVM磁盘阵列技术

    RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)

    RAID概念:

    RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果
    

    1. RAID 0 (最少2块) 

    概念:RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。
    优点:RAID 0技术能够有效地提升硬盘数据的吞吐速度,在最理想的状态下,硬盘设备的读写性能会提升数倍
    缺点:不具备数据备份和错误修复能力,若任意一块硬盘发生故障将导致整个系统的数据都受到破坏

    2. RAID 1(最少2块)

    概念:RAID 1技术把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。
    优点:RAID 1有极高的安全性,当一块硬盘坏掉后完全不会影响到系统的数据,推荐应用场景:系统盘,对于读写速度要求不高的情景下使用
    缺点:贵,浪费!设备利用率下降,加入RAID 1的硬盘越多,资源利用率越低

     

    3. RAID 5(最少3块)

    概念:RAID 5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。
       RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。
    优点:其中任何一块硬盘损坏后不至于出现致命缺陷,可以通过奇偶校验和及时恢复数据
    缺点:容错率相对较低,只能容许有一块磁盘的损坏,如果超过1块以上就完了

    4.  RAID 10(最少4块)

    概念:顾名思义,RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。
       RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度
    优点:只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。
    缺点:成本较高,在不考虑成本的情况下是最优的选择。
    

      

      

    创建RAID:

    mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为“mdadm [参数] <RAID设备名称> [选项] [成员设备名称]”。
    

    mdadm命令的常用参数和作用:

    参数	作用
    -a	检测设备名称
    -n	指定设备数量
    -l	指定RAID级别
    -C	创建
    -v	显示过程
    -f	模拟设备损坏
    -r	移除设备
    -Q	查看摘要信息
    -D	查看详细信息
    -S	停止RAID磁盘阵列
    -x      指定备份盘个数
    

      

    •   创建raid 10:

    -C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-l 10参数则代表RAID 10方案;而-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列,最后再加上4块硬盘设备的名称就搞定了。

    [root@zhangjh ~]# mdadm -Cv /dev/md0 -l 10 -n 4 /dev/sd[b-e]
    mdadm: layout defaults to n2
    mdadm: layout defaults to n2
    mdadm: chunk size defaults to 512K
    mdadm: size set to 20954624K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    • 把创建好的raid磁盘阵列格式化
    [root@zhangjh ~]# mkfs.ext4 /dev/md0 
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=256 blocks
    2621440 inodes, 10477312 blocks
    523865 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2157969408
    320 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
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done  
    • 创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB。
    [root@zhangjh ~]# mkdir /raid_mount
    [root@zhangjh ~]# mou
    mount        mount.nfs    mountpoint   mousetweaks  
    mount.fuse   mount.nfs4   mountstats   
    [root@zhangjh ~]# mount /dev/md0 /raid_mount/
    [root@zhangjh ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    /dev/mapper/rhel-root   18G  3.0G   15G  17% /
    devtmpfs               909M     0  909M   0% /dev
    tmpfs                  918M   80K  918M   1% /dev/shm
    tmpfs                  918M  8.9M  909M   1% /run
    tmpfs                  918M     0  918M   0% /sys/fs/cgroup
    /dev/sda1              497M  119M  379M  24% /boot
    /dev/md0                40G   49M   38G   1% /raid_mount
    
    •  最后,查看/dev/md0磁盘阵列的详细信息,并把挂载信息写入到配置文件中,使其永久生效。
    [root@zhangjh ~]# mdadm -D /dev/md0 
    /dev/md0:
            Version : 1.2
      Creation Time : Sat May 26 11:33:43 2018
         Raid Level : raid10
         Array Size : 41909248 (39.97 GiB 42.92 GB)
      Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 4
      Total Devices : 4
        Persistence : Superblock is persistent
    
        Update Time : Sat May 26 12:51:55 2018
              State : clean 
     Active Devices : 4
    Working Devices : 4
     Failed Devices : 0
      Spare Devices : 0
    
             Layout : near=2
         Chunk Size : 512K
    
               Name : zhangjh:0  (local to host zhangjh)
               UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
             Events : 17
    
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
    
    [root@zhangjh ~]# echo "/dev/md0 /raid_mount ext4 defaults 0 0" >> /etc/fstab
    

      

     故障处理:

      在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm -r 命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。

      mdadm /dev/md0 -f /dev/sdb    #-f 模拟设备损坏
    [root@zhangjh ~]# mdadm /dev/md0 -f /dev/sdb 
    mdadm: set /dev/sdb faulty in /dev/md0
    [root@zhangjh ~]# mdadm -D /dev/md0 
    /dev/md0:
            Version : 1.2
      Creation Time : Sat May 26 11:33:43 2018
         Raid Level : raid10
         Array Size : 41909248 (39.97 GiB 42.92 GB)
      Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 4
      Total Devices : 4
        Persistence : Superblock is persistent
    
        Update Time : Sat May 26 13:42:20 2018
              State : clean, degraded 
     Active Devices : 3
    Working Devices : 3
     Failed Devices : 1
      Spare Devices : 0
    
             Layout : near=2
         Chunk Size : 512K
    
               Name : zhangjh:0  (local to host zhangjh)
               UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
             Events : 19
    
        Number   Major   Minor   RaidDevice State
           0       0        0        0      removed
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
    
           0       8       16        -      faulty   /dev/sdb     #状态已经改变成faulty(有错误的) 

     在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。

    [root@zhangjh ~]# umount /raid_mount/
    重启 
    
    [root@zhangjh ~]# mdadm -D /dev/md0           #磁盘损坏,可以看到下面标红处显示的状态是removed
    /dev/md0:
            Version : 1.2
      Creation Time : Sat May 26 11:33:43 2018
         Raid Level : raid10
         Array Size : 41909248 (39.97 GiB 42.92 GB)
      Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 4
      Total Devices : 3
        Persistence : Superblock is persistent
    
        Update Time : Sat May 26 21:48:40 2018
              State : clean, degraded 
     Active Devices : 3
    Working Devices : 3
     Failed Devices : 0
      Spare Devices : 0
    
             Layout : near=2
         Chunk Size : 512K
    
               Name : zhangjh:0  (local to host zhangjh)
               UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
             Events : 25
    
        Number   Major   Minor   RaidDevice State
           0       0        0        0      removed        #损坏的sdb盘
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
    
    
    
    [root@zhangjh ~]# mdadm /dev/md0 -a /dev/sdb      #检测新加入磁盘并加入md0阵列中
    mdadm: added /dev/sdb
    
    
    
    [root@zhangjh ~]# mdadm -D /dev/md0 
    /dev/md0:
            Version : 1.2
      Creation Time : Sat May 26 11:33:43 2018
         Raid Level : raid10
         Array Size : 41909248 (39.97 GiB 42.92 GB)
      Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 4
      Total Devices : 4
        Persistence : Superblock is persistent
    
        Update Time : Sat May 26 13:50:30 2018
              State : clean, degraded, recovering 
     Active Devices : 3
    Working Devices : 4
     Failed Devices : 0
      Spare Devices : 1
    
             Layout : near=2
         Chunk Size : 512K
    
     Rebuild Status : 4% complete       #修复进度4%
    
               Name : zhangjh:0  (local to host zhangjh)
               UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
             Events : 29
    
        Number   Major   Minor   RaidDevice State
           4       8       16        0      spare rebuilding   /dev/sdb    #修复中的sdb
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
    

      

      

    LVM逻辑卷管理器:
    •  LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整

    •  物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。
    •  部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如下所示:
    功能/命令	物理卷管理	卷组管理 	逻辑卷管理
    扫描	     pvscan	     vgscan      lvscan
    建立	     pvcreate	vgcreate	lvcreate
    显示	     pvdisplay	vgdisplay	lvdisplay
    删除	     pvremove	vgremove	lvremove
    扩展		          vgextend	lvextend
    缩小		          vgreduce	lvreduce
    

      

    •  创建逻辑卷

    第1步:硬盘建立物理卷

    [root@zhangjh ~]# pvcreate /dev/md0
    WARNING: ext4 signature detected on /dev/md0 at offset 1080. Wipe it? [y/n] y
      Wiping ext4 signature on /dev/md0.
      Physical volume "/dev/md0" successfully created
    

    第2步:把硬盘加入到storage卷组中,然后查看卷组的状态。

    [root@zhangjh ~]# vgcreate storage /dev/md0
      Volume group "storage" successfully created
    [root@zhangjh ~]# vgdisplay    
      --- Volume group ---
      VG Name               storage
      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               39.96 GiB
      PE Size               4.00 MiB
      Total PE              10231
      Alloc PE / Size       0 / 0   
      Free  PE / Size       10231 / 39.96 GiB
      VG UUID               TFd8PC-tCS3-NeOq-Xl96-UX8n-ifuI-EsZSjI
    

    第3步:分出一个约为10G的逻辑卷设备并查看逻辑卷状态。  

    这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。

    [root@zhangjh ~]# lvcreate -n zjh_dir -L 10G storage 
      Logical volume "zjh_dir" created
    [root@zhangjh ~]# lvdisplay    
      --- Logical volume ---
      LV Path                /dev/storage/zjh_dir
      LV Name                zjh_dir
      VG Name                storage
      LV UUID                lGd2v7-ZS3Z-ByzV-Q0Ai-v8ig-5558-uWxamh
      LV Write Access        read/write
      LV Creation host, time zhangjh, 2018-05-26 16:35:14 +0800
      LV Status              available
      # open                 0
      LV Size                10.00 GiB
      Current LE             2560
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     4096
      Block device           253:2
    

    第4步:把生成好的逻辑卷进行格式化,然后挂载使用。

    [root@zhangjh ~]# mkfs.ext4 /dev/storage/zjh_dir 
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=256 blocks
    655360 inodes, 2621440 blocks
    131072 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2151677952
    80 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
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done 
    
    root@zhangjh ~]# mkdir linshiceshi
    [root@zhangjh ~]# mount /dev/storage/zjh_dir linshiceshi/
    

    第5步:查看挂载状态,并写入到配置文件,使其永久生效。

    [root@zhangjh ~]# df -h
    Filesystem                   Size  Used Avail Use% Mounted on
    /dev/mapper/rhel-root         18G  3.0G   15G  17% /
    devtmpfs                     909M     0  909M   0% /dev
    tmpfs                        918M   80K  918M   1% /dev/shm
    tmpfs                        918M  8.9M  909M   1% /run
    tmpfs                        918M     0  918M   0% /sys/fs/cgroup
    /dev/sda1                    497M  119M  379M  24% /boot
    /dev/mapper/storage-zjh_dir  9.8G   37M  9.2G   1% /root/linshiceshi
    [root@zhangjh ~]# echo "/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0" >> /etc/fstab 
    

      

    •  扩容逻辑卷:

    只要卷组中有足够的资源,就可以一直为逻辑卷扩容, 扩展前一定要记得卸载设备和挂载点的关联。

    [root@zhangjh ~]# umount /root/linshiceshi
    

    第1步:把上一个实验中的逻辑卷 zjh_dir 扩展至15G。

    [root@zhangjh ~]# lvextend -L 15G /dev/storage/zjh_dir 
      Extending logical volume zjh_dir to 15.00 GiB
      Logical volume zjh_dir successfully resized
    

    第2步:检查硬盘完整性,并重置硬盘容量。

    [root@zhangjh ~]# e2fsck -f /dev/storage/zjh_dir 
    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/storage/zjh_dir: 11/655360 files (0.0% non-contiguous), 83137/2621440 blocks
    
    [root@zhangjh ~]# resize2fs /dev/storage/zjh_dir 
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/storage/zjh_dir is mounted on /root/linshiceshi; on-line resizing required
    old_desc_blocks = 2, new_desc_blocks = 2
    The filesystem on /dev/storage/zjh_dir is now 3932160 blocks long.
    

      

    第3步:重新挂载硬盘设备并查看挂载状态。

    [root@zhangjh ~]# mount -a
    [root@zhangjh ~]# df -h
    Filesystem                   Size  Used Avail Use% Mounted on
    /dev/mapper/rhel-root         18G  3.0G   15G  17% /
    devtmpfs                     909M     0  909M   0% /dev
    tmpfs                        918M   80K  918M   1% /dev/shm
    tmpfs                        918M  8.9M  909M   1% /run
    tmpfs                        918M     0  918M   0% /sys/fs/cgroup
    /dev/sda1                    497M  119M  379M  24% /boot
    /dev/mapper/storage-zjh_dir   15G   41M   14G   1% /root/linshiceshi
    

      

    • 缩小逻辑卷:

    相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

    [root@zhangjh ~]# umount /root/linshiceshi/
    

    第1步:检查文件系统的完整性。

    [root@zhangjh ~]# e2fsck -f /dev/storage/zjh_dir 
    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/storage/zjh_dir: 134/983040 files (0.0% non-contiguous), 105047/3932160 blocks
    

    第2步:把逻辑卷 zjh_dir 的容量减小到8G。

    [root@zhangjh ~]# resize2fs /dev/storage/zjh_dir 8G
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/storage/zjh_dir to 2097152 (4k) blocks.
    The filesystem on /dev/storage/zjh_dir is now 2097152 blocks long.
    
    [root@zhangjh ~]# lvreduce -L 8G /dev/storage/zjh_dir 
      WARNING: Reducing active logical volume to 8.00 GiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce zjh_dir? [y/n]: y
      Reducing logical volume zjh_dir to 8.00 GiB
      Logical volume zjh_dir successfully resized
    

    第3步:重新挂载文件系统并查看系统状态。

    [root@zhangjh ~]# mount -a
    [root@zhangjh ~]# df -h
    Filesystem                   Size  Used Avail Use% Mounted on
    /dev/mapper/rhel-root         18G  3.0G   15G  17% /
    devtmpfs                     909M     0  909M   0% /dev
    tmpfs                        918M   80K  918M   1% /dev/shm
    tmpfs                        918M  8.9M  909M   1% /run
    tmpfs                        918M     0  918M   0% /sys/fs/cgroup
    /dev/sda1                    497M  119M  379M  24% /boot
    /dev/mapper/storage-zjh_dir  7.8G   38M  7.4G   1% /root/linshiceshi
    
    • 逻辑卷快照:

    LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。

    LVM的快照卷功能有两个特点: 快照卷的容量必须等同于逻辑卷的容量;

                   快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

    首先查看卷组的信息。

    [root@zhangjh ~]# vgdisplay 
    
      --- Volume group ---
      VG Name               storage
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               39.96 GiB
      PE Size               4.00 MiB
      Total PE              10231
      Alloc PE / Size       2048 / 8.00 GiB
      Free  PE / Size       8183 / 31.96 GiB
      VG UUID               TFd8PC-tCS3-NeOq-Xl96-UX8n-ifuI-EsZSjI
    

    通过卷组的输出信息可以清晰看到,卷组中已经使用了 8.813G 的容量,空闲容量还有 31.96 GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。  

    [root@zhangjh ~]# echo "hahahahahahahahahaxxxxxxxxxxxxxx" > /root/linshiceshi/readme.txt
    [root@zhangjh ~]# ls -l /root/linshiceshi/readme.txt 
    -rw-r--r--. 1 root root 33 May 26 17:24 /root/linshiceshi/readme.txt
    

    第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。

    [root@zhangjh ~]# lvcreate -L 8183m -s -n SNAPSHOT /dev/storage/zjh_dir
      Rounding up size to full physical extent 7.99 GiB
      Logical volume "SNAPSHOT" created
    [root@zhangjh ~]# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/storage/zjh_dir
      LV Name                zjh_dir
      VG Name                storage
      LV UUID                lGd2v7-ZS3Z-ByzV-Q0Ai-v8ig-5558-uWxamh
      LV Write Access        read/write
      LV Creation host, time zhangjh, 2018-05-26 16:35:14 +0800
      LV snapshot status     source of
                             SNAPSHOT [active]
      LV Status              available
      # open                 1
      LV Size                8.00 GiB
      Current LE             2048
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     4096
      Block device           253:2
       
      --- Logical volume ---
      LV Path                /dev/storage/SNAPSHOT
      LV Name                SNAPSHOT
      VG Name                storage
      LV UUID                8WQ4VL-7J4S-c3fG-2fJS-HG0v-DpFA-xyYcw8
      LV Write Access        read/write
      LV Creation host, time zhangjh, 2018-05-26 17:28:19 +0800
      LV snapshot status     active destination for zjh_dir
      LV Status              available
      # open                 0
      LV Size                8.00 GiB
      Current LE             2048
      COW-table size         7.99 GiB
      COW-table LE           2046
      Allocated to snapshot  0.00%
      Snapshot chunk size    4.00 KiB
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     4096
      Block device           253:3
    

    第2步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。

    [root@zhangjh ~]# dd if=/dev/zero of=/root/linshiceshi/files count=2 bs=1G
    
    2+0 records in
    2+0 records out
    2147483648 bytes (2.1 GB) copied, 323.427 s, 6.6 MB/s
    
    
    [root@zhangjh linshiceshi]# lvdisplay 
    
      --- Logical volume ---
      LV Path                /dev/storage/SNAPSHOT
      LV Name                SNAPSHOT
      VG Name                storage
      LV UUID                8WQ4VL-7J4S-c3fG-2fJS-HG0v-DpFA-xyYcw8
      LV Write Access        read/write
      LV Creation host, time zhangjh, 2018-05-26 17:28:19 +0800
      LV snapshot status     active destination for zjh_dir
      LV Status              available
      # open                 0
      LV Size                8.00 GiB
      Current LE             2048
      COW-table size         7.99 GiB
      COW-table LE           2046
      Allocated to snapshot  25.13%      #此处可以看到,写入的2G数据已经占了4分之一
      Snapshot chunk size    4.00 KiB
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     4096
      Block device           253:3
    

    第3步:为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

    [root@zhangjh ~]# umount /root/linshiceshi
    
    [root@zhangjh ~]# lvconvert --merge /dev/storage/SNAPSHOT 
      Merging of volume SNAPSHOT started.
      zjh_dir: Merged: 75.2%
      zjh_dir: Merged: 80.4%
      zjh_dir: Merged: 84.3%
      zjh_dir: Merged: 89.1%
      zjh_dir: Merged: 94.0%
      zjh_dir: Merged: 99.7%
      zjh_dir: Merged: 100.0%
      Merge of snapshot into logical volume zjh_dir has finished.
      Logical volume "SNAPSHOT" successfully removed
    

    第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的 2G 的垃圾文件也被清除了。

    [root@zhangjh ~]# mount -a
    [root@zhangjh ~]# ll /root/linshiceshi/files
    ls: cannot access /root/linshiceshi/files: No such file or directory
    
    • 删除逻辑卷操作:
    •   必须要依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

    第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

    [root@zhangjh ~]# umount linshiceshi/
    [root@zhangjh ~]# vim /etc/fstab
    #/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0
    

    第2步:删除逻辑卷设备。

    [root@zhangjh ~]# lvremove /dev/storage/zjh_dir 
    Do you really want to remove active logical volume zjh_dir? [y/n]: y
      Logical volume "zjh_dir" successfully removed
    

    第3步:删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

    [root@zhangjh ~]# vgremove storage 
      Volume group "storage" successfully removed
    

    第4步:删除物理卷设备。

    [root@zhangjh ~]# pvremove /dev/md0
      Labels on physical volume "/dev/md0" successfully wiped
    

      

      

                    

      

  • 相关阅读:
    TF利用分布式队列控制线程
    非随机的抽样
    代码杂谈-split函数
    beta函数与置信度估计
    tensorflow模型
    SQL的技巧
    tensorflow输入数据处理
    flink学习
    Python
    通过淘宝IP地址库获取IP位置
  • 原文地址:https://www.cnblogs.com/zhangjianghua/p/9091200.html
Copyright © 2011-2022 走看看