目录

RAID&LVM有关磁盘的故障

RAID

好处:1.更多的容量

​ 2.得到更多的冗余

​ 3.得到更高的性能

RAID的运行方式

RAID级别

RAID0 条带卷,容量最大。单块容量*N,读写最快。没有容错机制。理论是2块硬盘

RAID1 镜像卷,50%容量,读一般,写特慢。有50%容错机制。只能是两块。

RAID5 检验卷,总容量的三分之二。读写稍快。容错机制,可以损坏三分之一。最低三块

RAID10 1 0 损失一半。读写快。容错50%。只能四块。

性能:RAID0》RAID10》RAID5》RAID1

安全:RAID1》RAID10》RAID5》RAID0

价格:RAID10》RAID1》RAID5》RAID0

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

RAID实战

软RAID

1.mdadm安装
  1. [root@web ~]# yum install -y mdadm

mdadm命令常见选项解释:

  1. -A #激活磁盘阵列
  2. -C #建立一个新阵列
  3. -D #打印阵列设备的信息
  4. -G #改变阵列大小或形态
  5. -S #停止阵列
  6. -r #移除设备
  7. -l #设定磁盘阵列的级别
  8. -n #指定阵列磁盘的数量
  9. -x #指定阵列中备用盘的数量
  10. -f #将设备状态定为故障
  11. -a #添加设备到阵列
  12. -v #显示详细信息软RAID:通过操作系统实现

2.创建RAID实验环境

  1. Raid种类 磁盘 热备盘
  2. Raid0 sdbsdc (sdd)

3.创建磁盘阵列

  1. [root@web ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
  2. mdadm: chunk size defaults to 512K #-x /dev/sd[b,c,d]
  3. mdadm: Defaulting to version 1.2 metadata
  4. mdadm: array /dev/md0 started.

4.查看RAID阵列

  1. [root@web ~]# mdadm -D /dev/md0

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

  1. [root@web ~]# mdadm -Ds >/etc/mdadm.conf #可以追加进去

6.挂载使用

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

7.指定一块盘故障

  1. [root@web ~]# mdadm -f /dev/md1 /dev/sdc #指定热备盘看不出效果

8.检查数据有没有丢失

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

9.移除损坏的盘

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

10.添加一块盘

  1. [root@web ~]# mdadm -a /dev/md1 /dev/sdc

要求:1)使用三块盘创建RAID5, 使用-x添加1个热备盘

2)模拟损坏一块磁盘,然后备用盘自动顶上,只能顶一次

3)在模拟损坏,检测数据是否丢失,如果没有再次模拟损坏.

注意:创建RAID10实验环境:也可以指定分区

LVM介绍

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

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

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

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

LVM实战

1)创建物理卷,将普通磁盘转换为物理卷。

2)创建卷组,将物理卷加入到卷组中。

3)在卷组中划分逻辑卷,然后挂载使用。

1.下载安装软件包
  1. [root@web ~]# yum install lvm2 -y
2.将/dev/sdb创建为物理卷
  1. [root@web ~]# pvcreate /dev/sdb
  2. Physical volume "/dev/sdb" successfully created.
3.创建卷组,并将物理卷加入进去
  1. [root@web ~]# vgcreate lvm_test /dev/sdb
4.检查
  1. [root@web ~]# vgs
  2. [root@web ~]# pvs
5.创建一个逻辑卷
  1. [root@web ~]# lvcreate -L 1G -n lv1 lvm_test
6.检查
  1. [root@web ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. lvm_test 1 1 0 wz--n- <20.00g <19.00g
  4. [root@web ~]# pvs
  5. PV VG Fmt Attr PSize PFree
  6. /dev/sdb lvm_test lvm2 a-- <20.00g <19.00g
  7. [root@web ~]# lvs
  8. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  9. lv1 lvm_test -wi-a----- 1.00g
  10. [root@web ~]# lsblk
  11. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  12. sda 8:0 0 50G 0 disk
  13. ├─sda1 8:1 0 200M 0 part /boot
  14. ├─sda2 8:2 0 2G 0 part [SWAP]
  15. └─sda3 8:3 0 47.8G 0 part /
  16. sdb 8:16 0 20G 0 disk
  17. └─lvm_test-lv1 253:0 0 1G 0 lvm
7.格式化
  1. [root@web ~]# mkfs.xfs /dev/lvm_test/lv1
8.挂载使用
  1. [root@web ~]# mkdir /lv1
  2. [root@web ~]# mount /dev/lvm_test/lv1 /lv1
  3. [root@web ~]# df -h |grep lv1
  4. /dev/mapper/lvm_test-lv1 1014M 33M 982M 4% /lv1
  5. [root@web ~]# cp /etc/services /lv1
  6. [root@web ~]# ll /lv1
  7. total 656
  8. -rw-r--r--. 1 root root 670293 Jul 18 19:59 services

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

1.将sdc指定为物理卷
  1. [root@web ~]# pvcreate /dev/sdc
  2. Physical volume "/dev/sdc" successfully created.
2.添加到卷组中
  1. [root@web ~]# vgextend lvm_test /dev/sdc
  2. Volume group "lvm_test" successfully extended
3.检查
  1. [root@web ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. lvm_test 2 1 0 wz--n- 39.99g 38.99g
  4. [root@web ~]# pvs
  5. PV VG Fmt Attr PSize PFree
  6. /dev/sdb lvm_test lvm2 a-- <20.00g <19.00g
  7. /dev/sdc lvm_test lvm2 a-- <20.00g <20.00g
4.将逻辑卷移动到sdc上面
  1. [root@web ~]# pvmove /dev/sdb /dev/sdc
  2. /dev/sdb: Moved: 1.95%
  3. /dev/sdb: Moved: 100.00%
  4. [root@web ~]# pvs
  5. PV VG Fmt Attr PSize PFree
  6. /dev/sdb lvm_test lvm2 a-- <20.00g <20.00g
  7. /dev/sdc lvm_test lvm2 a-- <20.00g <19.00g
5.缩减卷组大小
  1. [root@web ~]# vgreduce lvm_test /dev/sdb
  2. Removed "/dev/sdb" from volume group "lvm_test"
6.检查
  1. [root@web ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. lvm_test 1 1 0 wz--n- <20.00g <19.00g
  4. [root@web ~]# pvs
  5. PV VG Fmt Attr PSize PFree
  6. /dev/sdb lvm2 --- 20.00g 20.00g
  7. /dev/sdc lvm_test lvm2 a-- <20.00g <19.00g

二,添加逻辑卷的大小

方法一:

1.添加
  1. [root@web ~]# lvextend -L +1G /dev/lvm_test/lv1 #(写加号和不写加号的区别)
  2. Size of logical volume lvm_test/lv1 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
  3. Logical volume lvm_test/lv1 successfully resized.
2.检查
  1. [root@web ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. lvm_test 1 1 0 wz--n- <20.00g <18.00g
  4. [root@web ~]# lsblk
  5. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  6. sda 8:0 0 50G 0 disk
  7. ├─sda1 8:1 0 200M 0 part /boot
  8. ├─sda2 8:2 0 2G 0 part [SWAP]
  9. └─sda3 8:3 0 47.8G 0 part /
  10. sdb 8:16 0 20G 0 disk
  11. sdc 8:32 0 20G 0 disk
  12. └─lvm_test-lv1 253:0 0 2G 0 lvm /lv1
3.更新新添加的逻辑卷的文件系统
  1. [root@web ~]# xfs_growfs /dev/lvm_test/lv1
  2. meta-data=/dev/mapper/lvm_test-lv1 isize=512 agcount=4, agsize=65536 blks
  3. = sectsz=512 attr=2, projid32bit=1
  4. = crc=1 finobt=0 spinodes=0
  5. data = bsize=4096 blocks=262144, imaxpct=25
  6. = sunit=0 swidth=0 blks
  7. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  8. log =internal bsize=4096 blocks=2560, version=2
  9. = sectsz=512 sunit=0 blks, lazy-count=1
  10. realtime =none extsz=4096 blocks=0, rtextents=0
  11. data blocks changed from 262144 to 524288

方法二:

1.按照百分比增加大小
  1. [root@web ~]# lvextend -l 20%FREE /dev/lvm_test/lv1
  2. Size of logical volume lvm_test/lv1 changed from 2.00 GiB (512 extents) to 3.60 GiB (922 extents).
  3. Logical volume lvm_test/lv1 successfully resized.
2.更新文件系统
  1. [root@web ~]# xfs_growfs /dev/lvm_test/lv1

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

怎样删除:

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

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

磁盘故障

一,block(数据满了)

1.环境准备

先创建一个1G分区,并挂在使用

2.创建大文件,模拟磁盘空间满
  1. [root@web ~]# dd if=/dev/zero of=/test/test.log bs=100M count=11
  2. dd: error writing ‘/test/test.log’: No space left on device
  3. 10+0 records in
  4. 9+0 records out
  5. 1026621440 bytes (1.0 GB) copied, 18.7358 s, 54.8 MB/s
  6. [root@web ~]# df -h |grep test
  7. /dev/sde1 1014M 1012M 2.8M 100% /test
  8. #报错No space left on device
  9. [root@web ~]# cp services /test/
  10. cp: error writing ‘/test/services’: No space left on device
  11. cp: failed to extend ‘/test/services’: No space left on device
3.检查磁盘
  1. [root@web ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda3 48G 2.9G 45G 7% /
  4. devtmpfs 980M 0 980M 0% /dev
  5. tmpfs 991M 0 991M 0% /dev/shm
  6. tmpfs 991M 9.7M 981M 1% /run
  7. tmpfs 991M 0 991M 0% /sys/fs/cgroup
  8. /dev/sda1 197M 105M 93M 54% /boot
  9. tmpfs 199M 0 199M 0% /run/user/0
  10. /dev/sde1 1014M 1014M 32K 100% /test
4.查找大文件,依次往下查找,直到找到大文件为止
  1. [root@web ~]# du -sh /test/*
  2. #找到之后,先确认是否可以删除。
  3. rm -f
  4. #删除之后,磁盘还是满的,先确认是否有硬链接。

二,inode故障(小文件太多)

  1. [root@web ~]# touch /test/123
  2. touch: cannot touch ‘/test/123’: No space left on device
1.检查磁盘
  1. [root@web ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda3 48G 2.9G 45G 7% /
  4. devtmpfs 980M 0 980M 0% /dev
  5. tmpfs 991M 0 991M 0% /dev/shm
  6. tmpfs 991M 9.7M 981M 1% /run
  7. tmpfs 991M 0 991M 0% /sys/fs/cgroup
  8. /dev/sda1 197M 105M 93M 54% /boot
  9. tmpfs 199M 0 199M 0% /run/user/0
  10. /dev/sde1 1014M 308M 707M 31% /test
  11. [root@web ~]# df -i
  12. Filesystem Inodes IUsed IFree IUse% Mounted on
  13. /dev/sda3 25062912 93030 24969882 1% /
  14. devtmpfs 250786 465 250321 1% /dev
  15. tmpfs 253511 1 253510 1% /dev/shm
  16. tmpfs 253511 819 252692 1% /run
  17. tmpfs 253511 16 253495 1% /sys/fs/cgroup
  18. /dev/sda1 102400 326 102074 1% /boot
  19. tmpfs 253511 1 253510 1% /run/user/0
  20. /dev/sde1 524288 524288 0 100% /test
2.解决
  1. #找到存放大量小文件的目录
  2. [root@web ~]# find /test -type d -size +1M |xargs ls -lhd
  3. drwxr-xr-x. 3 root root 2.4M Jul 18 20:39 /test/data
  4. drwxr-xr-x. 3 root root 1.2M Jul 18 20:38 /test/data/test
  5. drwxr-xr-x. 2 root root 1.2M Jul 18 20:38 /test/data/test/data
  6. drwxr-xr-x. 3 root root 4.7M Jul 18 20:40 /test/oldboy
  7. drwxr-xr-x. 2 root root 2.9M Jul 18 20:41 /test/oldboy/oldgirl
  8. #找到之后,先确认是否可以删除。
  9. #千万不要直接查看目录内容
  10. [root@web ~]# ll /test/data |wc -l
  11. #按照类型去删
  12. [root@web ~]# find /test -type f -name "*.txt" -delete
  13. [root@web ~]# find /test -type f -name "*.log" -delete
  14. [root@web ~]# find /test -type f -name "*.sh" -delete
  15. [root@web ~]# find /test -type f -name "*.conf" -delete
  16. [root@web ~]# df -i
  17. Filesystem Inodes IUsed IFree IUse% Mounted on
  18. /dev/sda3 25062912 93030 24969882 1% /
  19. devtmpfs 250786 465 250321 1% /dev
  20. tmpfs 253511 1 253510 1% /dev/shm
  21. tmpfs 253511 819 252692 1% /run
  22. tmpfs 253511 16 253495 1% /sys/fs/cgroup
  23. /dev/sda1 102400 326 102074 1% /boot
  24. tmpfs 253511 1 253510 1% /run/user/0
  25. /dev/sde1 524352 8 524344 1% /test

RAID&LVM有关磁盘的故障的更多相关文章

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

    目录 一.RAID 1.RAID好处: 2.RAID的运行方式: 3.RAID的级别: 二.RAID实战 软RAID 1.RAID0 2.RAID1 3.RAID5 4.RAID10 三.LVM介绍 ...

  2. linux磁盘限额和进阶文件系统的管理 quota RAID LVM

    概念: Quota 的一般用途: 针对 WWW server ,例如:每个人的网页空间的容量限制! 针对 mail server,例如:每个人的邮件空间限制. 针对 file server,例如:每个 ...

  3. lvm讲解/磁盘故障小案例

    4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例 lvm讲解 磁盘故障小案例

  4. Linux运维基础提高之RAID卡和磁盘分区

    磁盘大小计算: 柱面的数量*每个柱面的大小(容量) [root@luffy001 ~]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 ...

  5. Linux - 通过LVM对磁盘进行动态扩容

    目录 1 LVM是什么 1.1 概念解释 1.2 为什么用LVM 1.2.1 不使用LVM时的扩容思路 1.2.2 使用LVM时的扩容思路 1.3 名词解释 2 普通的挂载磁盘方法 2.1 创建分区的 ...

  6. LVM与磁盘配额

    LVM与磁盘配额 目录 一.LVM概述 1.1.LVM 概述 1.2.LVM机制的基本概念 二.LVM 管理命令 2.1.主要命令 2.2.LVM命令详解 三.设置磁盘配额 3.1.磁盘配额的概述 3 ...

  7. (转)Web服务器磁盘满故障深入解析

    Web服务器磁盘满故障深入解析 原文:http://blog.51cto.com/oldboy/612351 ############################################# ...

  8. LVM划分磁盘及扩容缩容

    lvm:logical volume monitor 逻辑卷管理器 作用: 采用lvm划分磁盘:磁盘空间不够时,方便扩展磁盘.物理卷加到卷组时被划分等大的pe,即pv是由众多pe构成.pe是卷组的最小 ...

  9. MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态

    MegaCli 监控raid状态 转载weixin_30344131 最后发布于2015-10-16 13:05:00 阅读数    简介 MegaCli是一款管理维护硬件RAID软件,可以通过它来了 ...

随机推荐

  1. 自定义Metadata验证属性

    一.定义 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  2. 蒟蒻的PKUWC2019划水记(更新ing)

    前言 (结束再补) \(Dec\ 20th\) 正式出发 今天,是正式出发的日子. 虽说是星期五,可并没有去学校晨跑.难得睡到了\(7\)点,起来匆匆吃完了早饭(一个手抓饼),就出发去火车站了. 到了 ...

  3. 在Ubuntu 18.04系统上安装Pydio Cells详细图文教程

    前言   基于云的协作工具Pydio cell提供了一系列灵活的特性,包括应用内消息传递.文件共享和版本控制.下面逐步介绍安装过程. Pydio cell最初是一个简单的基于云的文件共享系统,但经过升 ...

  4. Python定做一个计算器,小而美哒~

    使用qt designer ,按装anaconda后,在如下路径找到: conda3.05\Library\bin designer.exe文件,双击启动: ​ 创建窗体,命名为XiaoDing,整个 ...

  5. 从源码角度看 PHP 字符串类型转换

    PHP 的类型转换是比较方便的,但是越是容易使用的东西,底层的实现越是复杂,而且在使用中像我这样的新手也往往不清楚转换后的结果到底是什么.有时候,对于 Java 这种强类型的语言,使用的时候需要强制进 ...

  6. ElementUi中el-table分页效果

    现实的场景中很经常遇到表格el-table数据过多,为了更好的用户体验,所以我们需要用到分页,一般分页可以视数据量的大小可分为前端控制和后端控制. 先看下效果(已做脱敏处理) 图1 前端el-tabl ...

  7. Linux搭建图片服务器减轻传统服务器的压力(nginx+vsftpd)

    传统项目中的图片管理 传统项目中,可以在web项目中添加一个文件夹,来存放上传的图片.例如在工程的根目录WebRoot下创建一个images文件夹.把图片存放在此文件夹中就可以直接使用在工程中引用. ...

  8. MySQL数据库:子查询的应用

    子查询 子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块.当一个查询是另一个查询的条件时,称之为子查询. # 子查询的用法 # 在字段 select (select cNam ...

  9. GNN 相关资料记录;GCN 与 graph embedding 相关调研

    最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/ ...

  10. tomcat在centos7能启动不显示

    首先查看启动日志,日志显示成功启动,java路径也对,没有问题. 日志目录路径为$(tomcat)/logs/catalina.log 查看命令为:tail -300f catalina.log 然后 ...