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的级别:

1689287-20190726230558064-1027828539.png

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

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

**安全:任何一块硬盘损坏,所有的数据无法使用
1689287-20190718195250518-1888678357.png

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

raid只能2块硬盘

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

1689287-20190718195310653-226379669.png

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

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

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

1689287-20190718195333708-695431051.png

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

安全:最多损坏一半硬盘

**性能:写入和读取都很快
1689287-20190718195350053-597615882.png

#### 总结:

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

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

价格从高到低: raid10------->RAID1------->RAID5------->RAID0
1689287-20190718195417127-1748620622.png

注意: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

转载于:https://www.cnblogs.com/gongjingyun123--/p/11209636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值