RAID&LVM有关磁盘的故障
raid&lvm有关磁盘的故障
raid
好处:1.更多的容量
2.得到更多的冗余
3.得到更高的性能
raid的运行方式
软raid(了解)
-
硬raid(视屏)
https://www.bilibili.com/video/av46656120?from=search&seid=8213679239129642497
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安装
[root@web ~]# yum install -y mdadm
mdadm命令常见选项解释:
-a #激活磁盘阵列 -c #建立一个新阵列 -d #打印阵列设备的信息 -g #改变阵列大小或形态 -s #停止阵列 -r #移除设备 -l #设定磁盘阵列的级别 -n #指定阵列磁盘的数量 -x #指定阵列中备用盘的数量 -f #将设备状态定为故障 -a #添加设备到阵列 -v #显示详细信息软raid:通过操作系统实现
2.创建raid实验环境
raid种类 磁盘 热备盘 raid0 sdb、sdc (sdd)
3.创建磁盘阵列
[root@web ~]# mdadm -c -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc mdadm: chunk size defaults to 512k #-x /dev/sd[b,c,d] mdadm: defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
4.查看raid阵列
[root@web ~]# mdadm -d /dev/md0
5.将信息写入到配置文件中
[root@web ~]# mdadm -ds >/etc/mdadm.conf #可以追加进去
6.挂载使用
[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/
7.指定一块盘故障
[root@web ~]# mdadm -f /dev/md1 /dev/sdc #指定热备盘看不出效果
8.检查数据有没有丢失
[root@web ~]# ll /raid0 total 656 -rw-r--r--. 1 root root 670293 jul 18 18:47 services
9.移除损坏的盘
[root@web ~]# mdadm -r /dev/md1 /dev/sdc mdadm: hot removed /dev/sde from /dev/md1
10.添加一块盘
[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.下载安装软件包
[root@web ~]# yum install lvm2 -y
2.将/dev/sdb创建为物理卷
[root@web ~]# pvcreate /dev/sdb physical volume "/dev/sdb" successfully created.
3.创建卷组,并将物理卷加入进去
[root@web ~]# vgcreate lvm_test /dev/sdb
4.检查
[root@web ~]# vgs [root@web ~]# pvs
5.创建一个逻辑卷
[root@web ~]# lvcreate -l 1g -n lv1 lvm_test
6.检查
[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 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
7.格式化
[root@web ~]# mkfs.xfs /dev/lvm_test/lv1
8.挂载使用
[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
一,卷组管理,如何扩展卷组大小,如何删除卷组
1.将sdc指定为物理卷
[root@web ~]# pvcreate /dev/sdc physical volume "/dev/sdc" successfully created.
2.添加到卷组中
[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
4.将逻辑卷移动到sdc上面
[root@web ~]# pvmove /dev/sdb /dev/sdc /dev/sdb: moved: 1.95% /dev/sdb: moved: 100.00% [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
5.缩减卷组大小
[root@web ~]# vgreduce lvm_test /dev/sdb removed "/dev/sdb" from volume group "lvm_test"
6.检查
[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
二,添加逻辑卷的大小
方法一:
1.添加
[root@web ~]# lvextend -l +1g /dev/lvm_test/lv1 #(写加号和不写加号的区别) size of logical volume lvm_test/lv1 changed from 1.00 gib (256 extents) to 2.00 gib (512 extents). logical volume lvm_test/lv1 successfully resized.
2.检查
[root@web ~]# vgs vg #pv #lv #sn attr vsize vfree lvm_test 1 1 0 wz--n- <20.00g <18.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 sdc 8:32 0 20g 0 disk └─lvm_test-lv1 253:0 0 2g 0 lvm /lv1
3.更新新添加的逻辑卷的文件系统
[root@web ~]# xfs_growfs /dev/lvm_test/lv1 meta-data=/dev/mapper/lvm_test-lv1 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=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 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 262144 to 524288
方法二:
1.按照百分比增加大小
[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.
2.更新文件系统
[root@web ~]# xfs_growfs /dev/lvm_test/lv1
注意:缩减逻辑卷大小,企业不会去缩减,一般直接删除
怎样删除:
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 = 既有冗余又有动态扩展
磁盘故障
一,block(数据满了)
1.环境准备
先创建一个1g分区,并挂在使用
2.创建大文件,模拟磁盘空间满
[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
3.检查磁盘
[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
4.查找大文件,依次往下查找,直到找到大文件为止
[root@web ~]# du -sh /test/* #找到之后,先确认是否可以删除。 rm -f #删除之后,磁盘还是满的,先确认是否有硬链接。
二,inode故障(小文件太多)
[root@web ~]# touch /test/123 touch: cannot touch ‘/test/123’: no space left on device
1.检查磁盘
[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 308m 707m 31% /test [root@web ~]# df -i filesystem inodes iused ifree iuse% mounted on /dev/sda3 25062912 93030 24969882 1% / devtmpfs 250786 465 250321 1% /dev tmpfs 253511 1 253510 1% /dev/shm tmpfs 253511 819 252692 1% /run tmpfs 253511 16 253495 1% /sys/fs/cgroup /dev/sda1 102400 326 102074 1% /boot tmpfs 253511 1 253510 1% /run/user/0 /dev/sde1 524288 524288 0 100% /test
2.解决
#找到存放大量小文件的目录 [root@web ~]# find /test -type d -size +1m |xargs ls -lhd drwxr-xr-x. 3 root root 2.4m jul 18 20:39 /test/data drwxr-xr-x. 3 root root 1.2m jul 18 20:38 /test/data/test drwxr-xr-x. 2 root root 1.2m jul 18 20:38 /test/data/test/data drwxr-xr-x. 3 root root 4.7m jul 18 20:40 /test/oldboy drwxr-xr-x. 2 root root 2.9m jul 18 20:41 /test/oldboy/oldgirl #找到之后,先确认是否可以删除。 #千万不要直接查看目录内容 [root@web ~]# ll /test/data |wc -l #按照类型去删 [root@web ~]# find /test -type f -name "*.txt" -delete [root@web ~]# find /test -type f -name "*.log" -delete [root@web ~]# find /test -type f -name "*.sh" -delete [root@web ~]# find /test -type f -name "*.conf" -delete [root@web ~]# df -i filesystem inodes iused ifree iuse% mounted on /dev/sda3 25062912 93030 24969882 1% / devtmpfs 250786 465 250321 1% /dev tmpfs 253511 1 253510 1% /dev/shm tmpfs 253511 819 252692 1% /run tmpfs 253511 16 253495 1% /sys/fs/cgroup /dev/sda1 102400 326 102074 1% /boot tmpfs 253511 1 253510 1% /run/user/0 /dev/sde1 524352 8 524344 1% /test
上一篇: 减脂怎么减不减肌肉