• RAD介绍及实战,LVM介绍及实战,磁盘常见故障


    目录

    一、RAID

    1.RAID好处:

    可以不用到机房现场,就能够坐在办公室里面远程连接并控制服务器的配件。

    1. 更多的容量

    2. 得到更多的冗余(数据更安全)

    3. 得到更高的性能

      数据还是要备份

    2.RAID的运行方式:

    1. 软RAID(了解)
    2. 硬RAID(看视频,网址 https://www.bilibili.com/video/av46656120?from=search&seid=8213679239129642497)

    3.RAID的级别:

    1. RAID0 :条带卷,容量最大。单块容量*N,读写最快。没有容错机制,坏了一块就全都不能用了。 主要提供访问速度,不存储数据。理论是2块磁盘
      具有最高的存储性能(磁盘容量不浪费,读写很快),这些磁盘的总和

    要制作RAID 0至少要1块物理磁盘,不做raid不能安装系统

    **安全:任何一块硬盘损坏,所有的数据无法使用

    1. RAID1 : 镜像卷,50%容量,读一般,写特慢,相当于写两分数据,有50%容错机制。只能是两块
      镜像:损失50%的数据容量。例如2块1T的盘,做完RAID 1后容量为1T**

    raid只能2块硬盘

    Mirror不能提高存储性能。理论上写性能和单盘相差不大

    1. RAID5 : 检验卷 ,总容量的三分之二,读写稍快。容错机制,可以损坏三分之一,最低三块
      需要至少3块,损失一块硬盘**

    安全:最多可以损坏一块硬盘

    **性能:写入速度不快,读取Ok

    1. RAID10 :10 ,损失一半,读写快。容错50%,只能四块。
      最少4块硬盘,增加硬盘必须是2的倍数;所有硬盘容量的一半**

    安全:最多损坏一半硬盘

    **性能:写入和读取都很快

    总结:

    性能从高到低:RAID0 -----> RAID10----->RAID4----->RAIID1

    安全从高到低: RAID1------>RAID10------>RAID5------>RAID0

    价格从高到低: raid10------->RAID1------->RAID5------->RAID0

    注意:RAID硬盘失效处理--热备和热插拔

    二、RAID实战

    软RAID

    mdadm	安装
    [root@web ~]# yum install -y mdadm
    
    mdadm命令常见选项解释:
    -A      #激活磁盘阵列
    -C      #建立一个新阵列
    -D      #打印阵列设备的信息
    -G      #改变阵列大小或形态
    -S      #停止阵列
    -r      #移除设备
    -l      #设定磁盘阵列的级别
    -n      #指定阵列磁盘的数量
    -x      #指定阵列中备用盘的数量
    -f      #将设备状态定为故障
    -a      #添加设备到阵列
    -v      #显示详细信息软RAID:通过操作系统实现
    

    1.RAID0

    创建RAID0实验环境:

    Raid种类 磁盘 热备盘
    Raid0 sdb、sdc

    创建磁盘阵列RAID0

    [root@web ~]# mdadm  -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc 
    mdadm: chunk size defaults to 512K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

    查看RAID阵列

    [root@web ~]# mdadm  -D /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Thu Jul 18 18:30:52 2019
            Raid Level : raid0
            Array Size : 41908224 (39.97 GiB 42.91 GB)
          Raid Devices : 2
         Total Devices : 2
           Persistence : Superblock is persistent
    
    Update Time : Thu Jul 18 18:30:52 2019
                 State : clean 
        Active Devices : 2
       Working Devices : 2
        Failed Devices : 0
         Spare Devices : 0
    
            Chunk Size : 512K
    
    Consistency Policy : none
    
                  Name : web:0  (local to host web)
                  UUID : be7fa2cc:94484da2:cb10af97:caa583f0
                Events : 0
        
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
    

    把信息写入到配置文件中

    [root@web ~]# mdadm  -Ds  >/etc/mdadm.conf
    

    挂载使用

    [root@web ~]# mdadm  -Ds  >/etc/mdadm.conf
    [root@web ~]# mkfs.xfs   /dev/md0
    meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=10475520, imaxpct=25
             =                       sunit=128    swidth=256 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=5120, version=2
             =                       sectsz=512   sunit=8 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@web ~]# mkdir  /raid0
    [root@web ~]# mount /dev/md0  /raid0
    [root@web ~]# df -h |grep /dev/md0
    /dev/md0         40G   33M   40G   1% /raid0
    [root@web ~]# cp /etc/services  /raid0/
    
    

    2.RAID1

    创建RAID0实验环境:

    Raid种类 磁盘 热备盘
    Raid1 sdd、sde sdf

    1)创建RAID1,并添加1个热备盘
    2)模拟磁盘故障,看备用盘是否会自动顶替故障盘
    3)从raid1中移出故障盘

    创建磁盘阵列

    [root@web ~]# mdadm  -C -v  /dev/md1 -l 1 -n 2 -x 1  /dev/sd[e,d,f]
    mdadm: Note: this array has metadata at the start and
        may not be suitable as a boot device.  If you plan to
        store '/boot' on this device please ensure that
        your boot-loader understands md/v1.x metadata, or use
        --metadata=0.90
    mdadm: size set to 20954112K
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md1 started.
    

    查看RAID信息

    [root@web ~]# mdadm  -D /dev/md1
    /dev/md1:
               Version : 1.2
         Creation Time : Thu Jul 18 18:41:45 2019
            Raid Level : raid1
            Array Size : 20954112 (19.98 GiB 21.46 GB)
         Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Thu Jul 18 18:44:23 2019
                 State : clean, resyncing 
        Active Devices : 2
       Working Devices : 3
        Failed Devices : 0
         Spare Devices : 1
    
    Consistency Policy : resync
    
         Resync Status : 44% complete
        
                  Name : web:1  (local to host web)
                  UUID : 9d654e3a:12cf017f:eb091033:852f1ea6
                Events : 7
        
        Number   Major   Minor   RaidDevice State
           0       8       48        0      active sync   /dev/sdd
           1       8       64        1      active sync   /dev/sde
        
           2       8       80        -      spare   /dev/sdf
    

    追加到配置文件中

    [root@web ~]# mdadm  -Ds >/etc/mdadm.conf
    

    挂载使用

    [root@web ~]# mkfs.xfs   /dev/md1
    meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5238528, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@web ~]# mkdir /raid1
    [root@web ~]# mount /dev/md1 /raid1
    [root@web ~]# df -h |grep /dev/md1
    /dev/md1         20G   33M   20G   1% /raid1
    [root@web ~]# cp /etc/services  /raid1
    

    指定一块盘故障

    [root@web ~]# mdadm  -f /dev/md1 /dev/   
    

    检查数据有没有丢失

    [root@web ~]# ll /raid1
    total 656
    -rw-r--r--. 1 root root 670293 Jul 18 18:47 services
    

    移除损坏的盘

    [root@web ~]# mdadm  -r  /dev/md1 /dev/sde
    mdadm: hot removed /dev/sde from /dev/md1
    

    添加一块盘

    [root@web ~]# mdadm  -a  /dev/md1 /dev/sde
    

    3.RAID5

    创建RAID5实验环境:

    Raid种类 磁盘 热备盘
    Raid5 sdg、sdh、sdi sdj

    1)使用三块盘创建RAID5, 使用-x添加1个热备盘
    2)模拟损坏一块磁盘,然后备用盘自动顶上,只能顶一次
    3)在模拟损坏,检测数据是否丢失,如果没有再次模拟损坏.

    创建阵列

    [root@web ~]# mdadm  -C -v /dev/md5  -l 5 -n 3 -x 1  /dev/sd[g,h,i,j]
    mdadm: layout defaults to left-symmetric
    mdadm: layout defaults to left-symmetric
    mdadm: chunk size defaults to 512K
    mdadm: size set to 20954112K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md5 started.
    

    查看RAID信息

    [root@web ~]# mdadm  -D /dev/md5
    /dev/md5:
               Version : 1.2
         Creation Time : Thu Jul 18 18:54:45 2019
            Raid Level : raid5
            Array Size : 41908224 (39.97 GiB 42.91 GB)
         Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
          Raid Devices : 3
         Total Devices : 4
           Persistence : Superblock is persistent
    
           Update Time : Thu Jul 18 18:56:43 2019
                 State : clean, degraded, recovering 
        Active Devices : 2
       Working Devices : 4
        Failed Devices : 0
         Spare Devices : 2
    
                Layout : left-symmetric
            Chunk Size : 512K
    
    Consistency Policy : resync
    
        Rebuild Status : 36% complete
        
                  Name : web:5  (local to host web)
                  UUID : 42d49a3d:f3dfcbb4:1c44c59c:90b62a9f
                Events : 6
        
        Number   Major   Minor   RaidDevice State
           0       8       96        0      active sync   /dev/sdg
           1       8      112        1      active sync   /dev/sdh
           4       8      128        2      spare rebuilding   /dev/sdi
        
           3       8      144        -      spare   /dev/sdj
    

    将配置信息写入到配置文件中

    [root@web ~]# mdadm  -Ds  >/etc/mdadm.conf
    

    挂载使用

    [root@web ~]# mkfs.xfs   /dev/md5
    meta-data=/dev/md5               isize=512    agcount=16, agsize=654720 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=10475520, imaxpct=25
             =                       sunit=128    swidth=256 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=5120, version=2
             =                       sectsz=512   sunit=8 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@web ~]# mkdir  /raid5
    [root@web ~]# mount /dev/md5 /raid5
    [root@web ~]# cp /etc/services  /raid5
    [root@web ~]# ll /raid5
    total 656
    -rw-r--r--. 1 root root 670293 Jul 18 18:58 services
    

    模拟一块盘损坏

    [root@web ~]# mdadm  -f /dev/md5  /dev/sdh
    

    移除损坏的盘

    [root@web ~]# mdadm  -r  /dev/md5  /dev/sdh
    

    添加一块盘

    [root@web ~]# mdadm  -a  /dev/md5 /dev/sdh
    

    4.RAID10

    创建RAID10实验环境:

    Raid种类 磁盘 热备盘
    Raid10 分区:sdk1,sdk2, sdk3.sdk4

    分区

    [root@web ~]# gdisk  /dev/sdk
    [root@web ~]# lsblk /dev/sdk
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sdk      8:160  0  20G  0 disk 
    ├─sdk1   8:161  0   5G  0 part 
    ├─sdk2   8:162  0   5G  0 part 
    ├─sdk3   8:163  0   5G  0 part 
    └─sdk4   8:164  0   5G  0 part
    

    创建磁盘阵列

    [root@web ~]# mdadm  -C -v /dev/md10 -l 10 -n 4 /dev/sdk[1-4]
    

    查看RAID信息

    [root@web ~]# mdadm  -D /dev/md10
    

    写入到配置文件中

    [root@web ~]# mdadm  -Ds >/etc/mdadm.conf
    

    挂载使用

    [root@web ~]# mkfs.xfs   /dev/md10
    meta-data=/dev/md10              isize=512    agcount=16, agsize=163712 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=2618112, imaxpct=25
             =                       sunit=128    swidth=256 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=8 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@web ~]# mkdir /raid10 
    [root@web ~]# mount  /dev/md10  /raid10
    [root@web ~]# cp /etc/services   /raid10
    [root@web ~]# ll /raid10
    total 656
    -rw-r--r--. 1 root root 670293 Jul 18 19:12 services
    

    模拟故障

    [root@web ~]# mdadm  -f  /dev/md10  /dev/sdk3
    

    移除损坏的盘

    [root@web ~]# mdadm  -r /dev/md10  /dev/sdk2
    mdadm: hot removed /dev/sdk2 from /dev/md10
    [root@web ~]# mdadm  -r /dev/md10  /dev/sdk3
    mdadm: hot removed /dev/sdk3 from /dev/md10
    

    添加一块硬盘

    [root@web ~]# mdadm  -a  /dev/md10  /dev/sdk[2,3]
    mdadm: added /dev/sdk2
    mdadm: added /dev/sdk3
    [root@web ~]# mdadm  -D /dev/md10
    

    三、LVM介绍

    1. 什么是LVM?

        LVM是Logical Volume Manager (逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。
        最先由IBM开发,在AIX系统上实现,OS/2 操作系统与 HP-UX也支持这个功能。在1998年,Heinz Mauelshagen 根据在 HP-UX 上的逻辑卷管理器,写作出第一个 Linux 版本的逻辑卷管理器。
    
    

    2. LVM解决了什么问题

        当我们刚开始安装Linux操作系统是遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。
        普通的磁盘分区好之后就无法改变其大小,而遇到出现某个分区空间耗尽时,解决的方法可以是符号链接,或者调整分区大小的工具,但这只是暂时解决方法,没有从根本上解决问题。
        随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户可以在无需停机的请款下可以方便的调整各个分区大小。
    
    

    3.LVM的名词

    1.物理卷(PV):

    (physical volume),把常规的磁盘设备通过pvcreate命令对其进行初始化,形成了物理卷。其实就是硬盘或分区。(面粉)

    2.卷组(VG):

    (volume group),把多个物理卷组成一个逻辑的整体,这样卷组的大小就是多个硬盘之和。或者理解就是由一个或多个PV组成的整体。(面团)

    3.逻辑卷(LV):

    (logical volume),从卷组中划分需要的空间大小出来。用户仅需对其格式化然后即可挂载使用。从VG中切割出的空间用于创建文件系统。(切成馒头)

    4.基本单元(PE):

    (physical extend),分配的逻辑大小的最小单元,默认为4MB的基本块。(假设分配100MB逻辑空间,则需要创建25个PE)

    四、LVM实战

    1. 创建物理卷,加入卷组

    1) 创建物理卷,将普通磁盘转换为物理卷。
    2)创建卷组,将物理卷加入到卷组中。
    3)在卷组中划分逻辑卷,然后挂载使用。

     #1.准备物理磁盘,如果是虚拟机需要关闭添加磁盘,以便更好的实验
    
    [root@qiudao ~]# lsblk 
    sdb               8:16   0   20G  0 disk  
    sdc               8:32   0   20G  0 disk
    
    #2.下载安装软件包
    [root@web ~]# yum install lvm2 -y
    
    #3.将/dev/sdb创建为物理卷
    
    [root@web ~]# pvcreate  /dev/sdb
      Physical volume "/dev/sdb" successfully created.
    
    #4.创建卷组,并将物理卷加入进去卷组--->名字lvm_test
    
    [root@web ~]# vgcreate  lvm_test  /dev/sdb
    
    #5.检查卷组
    [root@web ~]# vgs
    
    #6.检查当前逻辑卷VG中PV使用情况
    [root@web ~]# pvs
    
    创建一个逻辑卷,分配名称,以及大小,指定卷组
    选项:
        -L  #逻辑卷大小
        -n  #逻辑卷名字
    
    
    #1.创建一个逻辑卷
    [root@web ~]# lvcreate -L 1G -n lv1  lvm_test
    
    #2.将lvm_test分配給lv1
    [root@qiudao ~]# lvcreate -L 100M -n lv1 lvm_test      
    
    
    
    #3.检查  
    [root@web ~]# vgs
      VG       #PV #LV #SN Attr   VSize   VFree  
      lvm_test   1   1   0 wz--n- <20.00g <19.00g
    
    #4.检查当前逻辑卷VG中PV使用情况
    [root@web ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sdb   lvm_test lvm2 a--  <20.00g <19.00g
    [root@web ~]# lvs
      LV   VG       Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv1  lvm_test -wi-a----- 1.00g                                                    
    [root@web ~]# lsblk
    NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda              8:0    0   50G  0 disk 
    ├─sda1           8:1    0  200M  0 part /boot
    ├─sda2           8:2    0    2G  0 part [SWAP]
    └─sda3           8:3    0 47.8G  0 part /
    sdb              8:16   0   20G  0 disk 
    └─lvm_test-lv1 253:0    0    1G  0 lvm 
    
    #5.格式化逻辑卷 
    
    [root@web ~]# mkfs.xfs  /dev/lvm_test/lv1 
    meta-data=/dev/lvm_test/lv1      isize=512    agcount=4, agsize=65536 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=262144, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    
    #6.挂载使用 
    [root@web ~]# mkdir   /lv1
    [root@web ~]# mount  /dev/lvm_test/lv1   /lv1
    [root@web ~]# df -h |grep lv1
    /dev/mapper/lvm_test-lv1 1014M   33M  982M   4% /lv1
    [root@web ~]# cp /etc/services  /lv1
    [root@web ~]# ll /lv1
    total 656
    -rw-r--r--. 1 root root 670293 Jul 18 19:59 services
    

    2.卷组管理,如何扩展卷组大小,如何删除卷组

    1. 如何扩大VG卷组

    #1.将sdc指定为物理卷
    [root@web ~]# pvcreate  /dev/sdc
      Physical volume "/dev/sdc" successfully created
    
    #2. 添加到卷组中,使用vgextend扩展卷组
    [root@web ~]# vgextend  lvm_test  /dev/sdc
      Volume group "lvm_test" successfully extended
    
    3. 再次检查,发现卷组已经扩大
    [root@web ~]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree 
      lvm_test   2   1   0 wz--n- 39.99g 38.99g
    [root@web ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sdb   lvm_test lvm2 a--  <20.00g <19.00g
      /dev/sdc   lvm_test lvm2 a--  <20.00g <20.00g
     
    

    2. 假设想移除/dev/sdb磁盘,建议先将sdb磁盘数据先迁移到sdc磁盘,然后在移除。(同一卷组的磁盘才可以进行在线迁移),(注意卷组的名称---)

    #1.  将逻辑卷移动到sdc上面
    
    #pvmove在线数据迁移,将sdb的数据迁移至sdc 
    [root@web ~]# pvmove   /dev/sdb  /dev/sdc
      /dev/sdb: Moved: 1.95%
      /dev/sdb: Moved: 100.00%
    
    
    #2.检查是否将sdb数据迁移至sdc 
    [root@web ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sdb   lvm_test lvm2 a--  <20.00g <20.00g
      /dev/sdc   lvm_test lvm2 a--  <20.00g <19.00g
    
    #4.缩减卷组大小
    [root@web ~]# vgreduce   lvm_test  /dev/sdb
      Removed "/dev/sdb" from volume group "lvm_test"
    
    #5. 检查
    [root@web ~]# vgs
      VG       #PV #LV #SN Attr   VSize   VFree  
      lvm_test   1   1   0 wz--n- <20.00g <19.00g
    [root@web ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sdb            lvm2 ---   20.00g  20.00g
      /dev/sdc   lvm_test lvm2 a--  <20.00g <19.00g
    

    3.逻辑卷管理,动态的调整逻辑卷大小

    方法1:

    1. 逻辑卷的扩展,是取决于vg卷中是否还有剩余的容量,注意扩展逻辑卷不能超过卷组VG的总大小**

    [root@qiudao ~]# vgs
    VG               #PV #LV #SN Attr   VSize    VFree
    datavg             1   1   0 wz--n- 1020.00m 920.00m
    
    #1.扩展lv逻辑卷,增加800M分配给逻辑卷 {注意: 800M +800M 不一样}
    [root@qiudao ~]# lvextend -L +800M /dev/lvm_test/lv1
    
    #或者可以选择分配磁盘池中多少百分比给逻辑卷
    [root@qiudao ~]# lvextend -l +50%FREE /dev/lvm_test/lv1
    
    #2.扩展逻辑卷后需要更新fs文件系统
    [root@qiudao ~]# xfs_growfs /dev/lvm_testvg/lv1    #xfs文件格式扩容
    
    

    2. 缩小逻辑卷,不要去操作,因为线上在使用的磁盘真的敢操作吗?

    3. 删除逻辑卷,如果不想使用逻辑卷可以选择删除。

    [root@qiudao ~]# umount /dev/lvm_test/lv1
    
    [root@qiudao ~]# lvremove /dev/lvm_test/lv1
    Do you really want to remove active logical volume lvm_test/lv1? [y/n]: y
      Logical volume "lv1" successfully removed
    
    

    方法2:

    按照百分比增加大小

    [root@web ~]# lvextend  -l 20%FREE  /dev/lvm_test/lv1 	
      Size of logical volume lvm_test/lv1 changed from 2.00 GiB (512 extents) to 3.60 GiB (922 extents).
      Logical volume lvm_test/lv1 successfully resized.
    
    #更新文件系统
    [root@web ~]# xfs_growfs  /dev/lvm_test/lv1 
    meta-data=/dev/mapper/lvm_test-lv1 isize=512    agcount=8, agsize=65536 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=524288, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 524288 to 944128
    

    注意:缩减逻辑卷大小 , 企业不会去缩减,一般会直接删除

    4.怎样删除?

    #1.首先要卸载
    [root@web ~]# umount  /lv1
    [root@web ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        48G  2.9G   45G   7% /
    devtmpfs        980M     0  980M   0% /dev
    tmpfs           991M     0  991M   0% /dev/shm
    tmpfs           991M  9.7M  981M   1% /run
    tmpfs           991M     0  991M   0% /sys/fs/cgroup
    /dev/sda1       197M  105M   93M  54% /boot
    tmpfs           199M     0  199M   0% /run/user/0
    
    #2.移除
    
    [root@web ~]# lvremove  /dev/lvm_test/lv1 
    Do you really want to remove active logical volume lvm_test/lv1? [y/n]: y   #是否确认
      Logical volume "lv1" successfully removed
    
    #3.检查
    
    [root@web ~]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   50G  0 disk 
    ├─sda1   8:1    0  200M  0 part /boot
    ├─sda2   8:2    0    2G  0 part [SWAP]
    └─sda3   8:3    0 47.8G  0 part /
    sdb      8:16   0   20G  0 disk 
    sdc      8:32   0   20G  0 disk 
    

    注意:LVM如果有一个磁盘损坏,整个lvm都坏了, lvm只有动态扩展作用,底层用RAID + 上层LVM = 既有冗余又有动态扩展

    五、磁盘常见故障

    1.block故障(数据满了)

    环境准备
    先创建一个1G分区,并挂在使用

    创建大文件,模拟磁盘空间满

    [root@web ~]# dd if=/dev/zero of=/test/test.log  bs=100M count=11
    dd: error writing ‘/test/test.log’: No space left on device
    10+0 records in
    9+0 records out
    1026621440 bytes (1.0 GB) copied, 18.7358 s, 54.8 MB/s
    [root@web ~]# df -h |grep test
    /dev/sde1      1014M 1012M  2.8M 100% /test
    

    报错No space left on device

     [root@web ~]# cp  services  /test/
    cp: error writing ‘/test/services’: No space left on device
    cp: failed to extend ‘/test/services’: No space left on device
    

    检查磁盘

     [root@web ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        48G  2.9G   45G   7% /
    devtmpfs        980M     0  980M   0% /dev
    tmpfs           991M     0  991M   0% /dev/shm
    tmpfs           991M  9.7M  981M   1% /run
    tmpfs           991M     0  991M   0% /sys/fs/cgroup
    /dev/sda1       197M  105M   93M  54% /boot
    tmpfs           199M     0  199M   0% /run/user/0
    /dev/sde1      1014M 1014M   32K 100% /test
    

    解决思路:

    查找大文件,依次往下查找,直到找到大文件为止

    [root@web ~]# du  -sh  /test/* 
    

    找到之后,先确认是否可以删除。

    rm -f

    删除之后,磁盘还是满的,先确认是否有硬链接。

    2.inode故障(小文件太多)

    #环境准备,创建一个30M的分区
    [root@qiudao ~]# df -h |grep sdb1
    dev/sdb1        27M  1.6M   26M   6% /test
    [root@qiudao ~]# lsblk |grep sdb1
    └─sdb1   8:17   0   30M  0 part /test
    
    #批量创建大量的小文件
    
    [root@qiudao ~]# touch /test/data/file/{1..15360}.txt
    
    #再去到该分区中创建新的文件就会报错。
    
    [root@qiudao ~]# touch /test/test.txt
    touch: cannot touch ‘/test/test.txt’: No space left on device
    
     
    #解决思路:查看磁盘分区使用情况,发现磁盘空间是正常的,再次查看inode,发现inode满了。
    
    [root@qiudao ~]# df -h |grep sdb1
    /dev/sdb1        27M  9.7M   17M  37% /test
    [root@qiudao ~]# df -i |grep sdb1
    /dev/sdb1         15424 15424        0  100% /test
    
    #怎样找出大量的小文件呢?首先要找出大目录(小文件过多,会导致目录变大。)
    
    [root@qiudao ~]# find /test  -type d -size +300k |xargs ls -lhd
    
    #找到大量小文件之后,首先要确认好之后再删除,不要直接的去删除
    先确认是否可以删除。千万不要直接查看目录内容,否则会被刷屏
    
    [root@qiudao ~]# ll  /test/data |wc -l
    
    [root@qiudao ~]# find /test/data/file/ -type f -delete
    
    
    
  • 相关阅读:
    mplayer命令行模式下的使用方法
    CentOS安装wireshark
    CentOS查看系统信息
    测试理论1
    单例模式
    接口测试
    rabbitmq
    redis数据库
    时间模块
    charles抓取数据
  • 原文地址:https://www.cnblogs.com/gongjingyun123--/p/11209636.html
Copyright © 2020-2023  润新知