就业班 2401--2.29 Linux Day8--存储管理2(LVM)+swap+磁盘阵列raid

!!!!!!小伙伴们一定要看到最后,有彩蛋呢^--^

一、存储管理Ⅱ

逻辑卷LVM

(Logical Volume Manager(逻辑卷管理)的简写)

LVM管理
lvm概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。

lvm与传统分区的区别

#传统分区的缺点:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
​
#当采用LVM时:
1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.当磁盘空间不足而加入新的硬盘时,不必将数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
3.文件系统建立在LVM上,可以跨分区,方便使用;
​
#使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。
1.lvm的制作
2.lvm的使用
3.lvm扩容-------在线扩容。可以在有数据的情况下去扩容
基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)
lvm的制作
第一步:拥有基本分区
第二步:做成物理卷:  pv ------- sdb1、sdb2 打pv的标记。
第三步:加入卷组:   vg-------- 卷组里面包含:sdb1  sdb2,建立在PV之上。
第四步:逻辑卷   lv  -------  逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上
第五步:制作文件系统------mkfs.xfs    lvm路径    初始化
第六步:挂载 ------mount   使用lvm
#制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的
实战
创建LVM

首先准备添加3块磁盘:可以是/dev/sdb这种没有分区的也可以是/dev/sdb1这种已经分区了的

注意:如果没有pv命令安装 #yum install -y lvm2
[root@linux-server ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Nov  9 12:59 /dev/sda
brw-rw----. 1 root disk 8,  1 Nov  9 12:59 /dev/sda1
brw-rw----. 1 root disk 8,  2 Nov  9 12:59 /dev/sda2
brw-rw----. 1 root disk 8, 16 Nov  9 12:59 /dev/sdb
brw-rw----. 1 root disk 8, 32 Nov  9 12:59 /dev/sdc
brw-rw----. 1 root disk 8, 48 Nov  9 14:04 /dev/sdd
创建pv
[root@linux-server ~]# pvcreate /dev/sdb #创建pv
  Physical volume "/dev/sdb" successfully created.
[root@linux-server ~]# pvs  #查看pv
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sdb          lvm2 ---   10.00g 10.00g
[root@linux-server ~]# pvscan  #查看pv
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  PV /dev/sdb                       lvm2 [10.00 GiB]
  Total: 2 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [10.00 GiB]
创建vg
[root@linux-server ~]# vgcreate vg1 /dev/sdb   #创建vg
  Volume group "vg1" successfully created
参数解释:
-s 16M 指的是在分区的时候指定vg的大小。
[root@linux-server ~]# vgs    #查看vg
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <19.00g      0 
  vg1      1   0   0 wz--n- <10.00g <10.00g
[root@linux-server ~]# vgscan
  Reading volume groups from cache.
  Found volume group "centos" using metadata type lvm2
  Found volume group "vg1" using metadata type lvm2
[root@linux-server ~]# vgdisplay #查看vg
--- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0 MiB
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               bVvQxe-4M2A-mMuk-b3gJ-4Maj-0xDy-5QZDOp
创建lv
[root@linux-server ~]# lvcreate -L 150M -n lv1 vg1  #创建lv
  Rounding up size to full physical extent 152.00 MiB
  Logical volume "lv1" created.
[root@linux-server ~]# lvcreate -l 20 -n lv2 vg1  #采用PE方式在创建一个lv
  Logical volume "lv2" created.
参数解释:
-L 指定lv的大小
-n 给创建的lv起一个名字
-l 20 指定PE 
[root@linux-server ~]# lvs   #查看lv
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv1  vg1    -wi-a----- 152.00m                                                    
  lv2  vg1    -wi-a-----  80.00m
制作文件系统并挂载
[root@linux-server ~]# mkfs.xfs /dev/vg1/lv1
[root@linux-server ~]# mkfs.ext4 /dev/vg1/lv2
[root@linux-server ~]# mkdir /mnt/lv{1..2}
[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1
[root@linux-server ~]# mount /dev/vg1/lv2 /mnt/lv2
[root@linux-server ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv1     xfs       149M  7.8M  141M   6% /mnt/lv1
/dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2

LVM逻辑卷扩容

VG管理
#注意:如果lv所在的vg有空间直接扩容就ok了!

        如果你家没米了肯定是从自家米袋找找对吧,不可能直接去外面买,嘿嘿

扩大VG vgextend

1.创建pv
[root@linux-server ~]# pvcreate /dev/sdc 
  Physical volume "/dev/sdc" successfully created.
2.直接vgextend扩容
[root@linux-server ~]# vgextend vg1 /dev/sdc       #vg1卷组名字,将/dev/sdc扩展到vg1中
  Volume group "vg1" successfully extended
[root@linux-server ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <19.00g     0 
  vg1      2   2   0 wz--n-  19.99g 18.23g
实战lv扩容
[root@linux-server ~]# vgs  #查看vg
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <19.00g     0 
  vg1      1   2   0 wz--n- <19.99g <9.77g
[root@linux-server ~]# lvextend -L 850M /dev/vg1/lv1  #扩展到850M
[root@linux-server ~]# lvextend -L +850M /dev/vg1/lv1 #在原有基础上加850M
[root@linux-server ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv1  vg1    -wi-ao----   1.66g                                                    
  lv2  vg1    -wi-ao----  80.00m 
[root@linux-server ~]# lvextend -l +15 /dev/vg1/lv1 #在原有基础上加15个PE
[root@linux-server ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv1  vg1    -wi-ao----  <1.68g                                                    
  lv2  vg1    -wi-ao----  80.00m
FS(file system)文件系统扩容
[root@linux-server ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv1     xfs       149M  7.8M  141M   6% /mnt/lv1
/dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2
[root@linux-server ~]# xfs_growfs /dev/vg1/lv1  #xfs扩容   刷新,初始化
[root@linux-server ~]# resize2fs /dev/vg1/lv2   #ext4扩容
[root@linux-server ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv1     xfs       1.7G  9.1M  1.7G   1% /mnt/lv1
/dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2

注意

文件系统不符合,应该用xfs_growfs,,如果用的mkfs.xfs  使用resize2fs 就会报下面的错误

二、交换分区    Swap

交换分区管理 Swap---也叫虚拟内存

作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)

现象是当内存不够的时候内核会随机杀死进程,它认为占用内存多的进程。(内核会先删除占用内存多的进程).
​
如何制作交换分区?
#我们可以将硬盘空间拿来当作内存来用
什么时候用到交换分区?
#当物理内存不够用的时候使用swap分区,防止物理内存耗尽

扩展知识

swap分区大小设置规则
在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。
内存小于4GB时,推荐不少于2GB的swap空间;
内存4GB~16GB,推荐不少于4GB的swap空间;
内存16GB~64GB,推荐不少于8GB的swap空间;
内存64GB~256GB,推荐不少于16GB的swap空间。

一、查看当前的交换分区

[root@linux-server ~]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           1984         155        1679           8         149        1656
Swap:          2047           0        2047
[root@linux-server ~]# swapon -s  #查看交换分区信息

二、增加交换分区 可以是基本分区,LVM,File

[root@linux-server ~]# fdisk /dev/sdd  #分一个主分区出来,使用MBR(DOS)
[root@linux-server ~]# partprobe /dev/sdd #刷新分区表
[root@linux-server ~]# ll /dev/sdd*
brw-rw----. 1 root disk 8, 16 Nov  9 14:11 /dev/sdd
brw-rw----. 1 root disk 8, 17 Nov  9 14:11 /dev/sdd1

初始化

[root@linux-server ~]# mkswap /dev/sdd1  #初始化
Setting up swapspace version 1, size = 5242876 KiB
no label, UUID=d2fd3bc0-10c0-4aeb-98ea-6b640d29b783

挂载

[root@linux-server ~]# blkid /dev/sdd1  #查看UUID
/dev/sdd1: UUID="d2fd3bc0-10c0-4aeb-98ea-6b640d29b783" TYPE="swap" 
[root@linux-server ~]# vim /etc/fstab  #制作开机挂载
/dev/sdd1       swap    swap    defaults        0 0
[root@linux-server ~]# swapon -a #激活swap分区(读取/etc/fstab)
[root@linux-server ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1
/dev/sdd1                               partition       5242876 0       -2
​
#swapoff /dev/sdd1  #关闭swap分区

想要删除swap分区的话,在fdisk里面,使用d删除

但是必须        swapoff /dev/sdd1 #关闭swap分区

file制作

[root@linux-server ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
解释:dd 读入  从空设备里面拿空块 到交换分区                块多大  一共多少兆
[root@linux-server ~]# mkswap /swap2.img  #初始化
[root@linux-server ~]# vim /etc/fstab
/swap2.img      swap    swap    defaults        0 0
[root@linux-server ~]# chmod 600 /swap2.img #交换分区权限需要设置为600,默认644权限不安全。
[root@linux-server ~]# swapon -a
[root@linux-server ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1
/dev/sdd1                               partition       5242876 0       -2
/swap2.img                              file    524284  0       -3

总结swap:有两种创建方法,第一种是fdisk  创建一个主分区,第二种是将文件变为swap交换分区使用

三、mount详解

**常用挂载选项详解 **

挂载设备文件名、UUID

常见的挂载选项

-o         指定文件系统属性
rw         读写 
ro         只读 
noexec     不允许执行二进制文件
exec       允许执行二进制文件 
auto       mount -a 开机自动挂载 
remount    在线重新挂载
​
-t   指定文件类型   #比如ext4   xfs   等等
[root@linux-server ~]# mount  #查看已经挂载上的系统的属性

案例1:exec/noexec

[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1/     #挂载默认是有执行权限的
[root@linux-server ~]# mount -o noexec /dev/vg1/lv2 /mnt/lv2  #不允许执行二进制文件
[root@linux-server ~]# cat /mnt/lv1/hello.sh
#!/bin/bash
echo "hello"
​
[root@linux-server ~]# cat /mnt/lv2/hello2.sh
#!/bin/bash
echo "hello"
[root@linux-server ~]# chmod +x /mnt/lv1/hello.sh 
[root@linux-server ~]# chmod +x /mnt/lv2/hello2.sh
[root@linux-server ~]# /mnt/lv1/hello.sh
hello
[root@linux-server ~]# /mnt/lv2/hello2.sh
-bash: /mnt/lv2/hello2.sh: Permission denied

取消挂载

[root@linux-server ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv1     xfs       1.7G   34M  1.7G   2% /mnt/lv1
/dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2
[root@linux-server ~]# umount /mnt/lv2/

四、raid--磁盘阵列

RAID介绍

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。

#注意
所有服务器在安装操作系统之前必须先做raid【常识】

最常见的raid级别:0、1、5、6、10:是 1和0 的组合

raid0 ---数据条带卷
最少需要两块磁盘,分别往每一块磁盘上写一部分数据
优点:
1.读写速度快, 
2.磁盘利用率:100%
缺点:不提供数据冗余,无数据检验,不能保证数据的正确性,存在单点故障。
​
应用场景:
1)对数据完整性要求不高的场景,如:日志存储,个人娱乐
2)要求读写效率高,安全性能要求不高,如图像工作站 
============================================================================
raid1 又叫镜像raid,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
一般需要两块磁盘,每块磁盘上都会存储一份完整数据。其数据安全性就会较高,但是磁盘空间利用率是比较低的。
​
优点:提供数据冗余,数据双倍存储安全性高支持容错。读速度快
缺点:写速度慢,无数据校验。磁盘利用率不高
磁盘利用率:50%
​
应用场景:
存放重要数据,如数据存储领域
===========================================================
raid5:RAID5应该是目前最常见的 RAID 等级,它的校验数据分布在阵列中的所有磁盘上。RAID5的磁盘上同时存储数据和校验数据。当一个数据盘损坏时,系统可以根据其他数据块和对应的校验数据来重建损坏的数据。 
​
raid5最少需要3块磁盘。
优点:
1.可以找回丢失的数据---数据可以通过校验计算得出,
2.冗余磁盘-->(需要4快磁盘将其中一块做热备)当某一块磁盘坏掉后,冗余磁盘会自动替换上去
3.有校验机制
4.读写速度高
5.磁盘利用率高
缺点:
1.磁盘越多安全性能越差
​
#定义:
RAID 5是RAID 0和RAID 1的折中方案。RAID 5具有和RAID0相近似的数据读取速度,只是多了一个校验信息。RAID5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。
​
​
应用场景:安全性高,如金融、数据库、存储等。
==================================================
raid6:RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式。
RAID6引入双重校验的概念,最少需要四块磁盘,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。
优点:
1.容错:允许两块磁盘同时坏掉。读写快。
2.良好的随机读性能
3.有校验机制
​
缺点:
1.写入速度差
2.成本高
​
应用场景:对数据安全级别要求比较高的企业
===============================================
RAID10:先做镜像再作条带--也叫混合raid
优点:
1.较高的IO性能
2.有数据冗余
3.无单点故障
4.安全性能高
缺点:成本稍高
应用场景:
特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
=======================================================

作用

为什么要做raid? #为了保证数据完整性,防止数据丢失
购买磁盘后需要操作
# 1.有磁盘,2.制作raids5,3.开始分区,4.刷新分区表,5,制作文件系统,6.挂载。

sr0 镜像大小

系统起不来,进配置文件看有没有遗留

PE size 一块有4M

假如创98M 一块4M,到九十八的时候,再拿一块有点浪费,就会直接使用PE size,补充到100M

lv移除(顺序:lv====>>vg====>pv)

[root@localhost ~]# lvremove /dev/vg2/lv2
​
Do you really want to remove active logical volume vg2/lv2? [y/n]: y
​
  Logical volume "lv2" successfully removed
  
  #先移除lv
​
[root@localhost ~]# vgremove /dev/vg2
​
  Volume group "vg2" successfully removed
  
  #再移除vg
​
[root@localhost ~]# pvremove /dev/sdc
​
  Labels on physical volume "/dev/sdc" successfully wiped.
​
  #移除pv

lv 缩容(谨慎使用,谨慎使用,谨慎使用)!!!!!!!!!!

1. 备份数据

在进行任何磁盘操作之前,确保你有所有重要数据的备份。这是因为缩减逻辑卷涉及到文件系统和分区大小的调整,如果操作不当,可能会导致数据丢失。

2. 检查并卸载逻辑卷

在你可以缩小一个逻辑卷之前,你需要确保该逻辑卷没有被挂载。你可以使用umount命令来卸载它。如果逻辑卷正在使用中,是不能被卸载的。

umount /dev/vgname/lvname

3. 检查文件系统

在缩减逻辑卷之前,需要先检查文件系统是否有错误。这通常涉及到运行e2fsck命令。对于ext4文件系统,命令如下:

e2fsck -f /dev/vgname/lvname

4. 缩小文件系统

在缩小逻辑卷之前,你首先需要缩小文件系统。对于ext4文件系统,你可以使用resize2fs命令。假设你想将逻辑卷缩小到20GB,命令如下:

resize2fs /dev/vgname/lvname 20G

确保缩小到的大小不小于实际使用的空间。

5. 缩小逻辑卷

一旦文件系统被成功缩小,你就可以缩小逻辑卷本身了。使用lvreduce命令来执行这个操作。同样地,如果你想将逻辑卷缩小到20GB,命令如下:

lvreduce -L 20G /dev/vgname/lvname

6. 重新挂载逻辑卷

最后,你可以重新挂载逻辑卷到它之前挂载的目录。

mount /dev/vgname/lvname /mountpoint

在执行上述操作时,非常重要的一点是确保在缩小文件系统和逻辑卷时指定的大小是一致的,以避免数据损坏。

企业级磁盘阵列(Raid)

一、 什么是磁盘阵列

磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同 的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因 为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

二、功能

(1)通过对磁盘上的数据进行条带化(蛇形走位嘿嘿我理解的),实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。

(2)通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。

(3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护

三、RAID级别

三:RAID级别(0,1,5,10是最常用的)

单类型:RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6

混合型:RAID7, RAID10/01, RAID50, RAID53, RAID60

raid0 最少需要两块磁盘,分别往每一块磁盘上写一部分数据 优点:读写速度快 缺点:没有其他raid级别安全性高 raid1 又叫镜像raid

最少需要两块磁盘,每块磁盘上都会存储一份完整数据 优点:安全性高,读速度快 缺点:写速度慢 raid5 最少需要3块磁盘,两块磁盘存数据,一块磁盘存校验位优点:可以找回丢失的数据 冗余磁盘-->当某一块磁盘坏掉后,冗余磁盘会自动替换上去 安全性比raid1还高读写速度在raid0和raid1之间

磁盘阵列RAID

RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks) 作 用:容错、提升读写速率

RAID类型个数利用率优缺点
RAID0   条带集2+100%读写速率最快,不容错
RAID1   镜像集250%读写速率一般,容错
RAID5   带奇偶校验条带集3+(n-1)/n读写速率快,容错,允许坏一块
RAID6   带奇偶校验条带集双校验dp4+(n-2)/n读写快,容错,允许坏两块
RAID10 RAID1的安全+RAID0的高速450%读写速率快,容错

0

1

5

一、不同场景RAID的使用
RAID 实现方式
硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池
软RAID:   通过操作系统实现,比如Windows、Linux
​
二、RAID5 (3块硬盘) + 热备(1块硬盘)
1. 准备4块硬盘
[root@tianyun ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8,  64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8,  80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8,  80 Jan 13 16:07 /dev/sdg
   
2. 创建RAID
[root@tianyun ~]# yum -y install mdadm              //确保mdadm命令可用
[root@tianyun ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
mdadm: array /dev/md0 started.
-C                  创建RAID
/dev/md0        第一个RAID设备
-l5                 RAID5
-n                  RAID成员的数量
-x                  热备磁盘的数量
​
3. 格式化,挂载
[root@tianyun ~]# mkfs.xfs /dev/md0
[root@tianyun ~]# mkdir /mnt/raid5
[root@tianyun ~]# mount /dev/md0 /mnt/raid5
[root@tianyun ~]# cp -rf /etc /mnt/raid5/etc1
​
4. 查看RAID信息
[root@tianyun ~]# mdadm -D /dev/md0                 //-D 查看详细信息
/dev/md0:
        Version : 1.2
  Creation Time : Mon Jan 13 16:28:47 2014
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
​
    Update Time : Mon Jan 13 16:34:51 2014
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
​
         Layout : left-symmetric
     Chunk Size : 512K
    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde
       4       8       80        2      active sync   /dev/sdf
​
       3       8       96        -      spare   /dev/sdg
​
5. 模拟一块硬盘损坏,并移除
终端一:
[root@tianyun ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail'   //watch持续查看
终端二:
[root@tianyun ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde  
//模拟坏了并移除  -f  --fail  -r  --remove
​
6. 设置RAID开机生效
[root@tianyun ~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@tianyun ~]# mdadm -D -s > /etc/mdadm.conf

如果写入的文件大小很小的话,他就会很快。在第二个终端看不到恢复的百分比
​
========================================================
mdadm选项:
-s  --scan
-S  --stop
-D  --detail
-C  --create
-f   --fail  模拟损坏
-r   --remove  拔出硬盘
-a  插回硬盘
-n  --raid-devices=3
-x  --spare-devices=1
-l   --level=5
​
raid5 删除操作
1、卸载raid挂载
umount /dev/md0
​
2、停止raid
mdadm -S /dev/md0
​
3、删除raid卷
mdadm --misc --zero-superblock /dev/sd{b,c,d,e}

总结:

2、概念部分

逻辑卷和传统磁盘分区相比优势在哪里 20%

性能更高:他可以跨越多个磁盘进行数据读写,

灵活性更强:他可以动态调整大小

可靠性更高:它支持热插拔和热扩展,可以在不中断系统运行的情况下进行存储容量的扩展或替换损失的硬盘

管理更方便:他有自己的管理软件

安全性更好:他支持数据镜像和数据备份。

raid0、1、5的各个特点 20%

0:磁盘利用率 100%

读写率 优

安全性 差

1:磁盘利用率 50%

读写率 读 优 写 差

安全性 优

5:磁盘利用率 n-1/n

读写率 良

安全性 良

10:磁盘利用率 50%

读写率 优

安全性 优

彩蛋来喽,初级程序员们的福音来喽!!!!!!

 =========================================================================

fuck配置(有错误的可以纠正,)

wget -c https://gitea.beyourself.org.cn/newrain001/shell-project/raw/branch/master/os/get-repo.sh &>/dev/null && sh get-repo.sh

yum install -y gcc python3 python3-devel

pip3 install thefuck -i Simple Index

if [ $? -eq 0 ];then

echo 'eval "$(thefuck --alias)"' /root/.bashrc

exit

else

echo "安装出错"

fi

=========================================================================

今天就到这里吧,喜欢的朋友们收藏加关注,期待后面会更精彩哦!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络编程作业day4

广播模型&#xff1a; 发送端&#xff1a; #include <myhead.h> int main(int argc, const char *argv[]) {//创建套接字int sfdsocket(AF_INET,SOCK_DGRAM,0);if(sfd-1){perror("socket error");return -1;}//设置套接字允许广播属性int broadcast1;if(sets…

MySQL 用户账号迁移

文章目录 前言1. 工具安装1.1 下载安装包1.2 编译安装 2. 用户迁移后记 前言 有一个典型的使用场景&#xff0c;就是 RDS 下云大多数都是通过 DTS 进行数据传输的&#xff0c;用户是不会同步到自建数据库的。需要运维人员在自建数据库重新创建用户&#xff0c;如果用户数量很多…

springboot,druid动态数据源切换

关键字&#xff1a;springboot&#xff0c;druid数据库连接池&#xff0c;两个数据源&#xff08;可以切换成多个&#xff09;&#xff0c;事务管理 关于druid简介传送门&#xff1a;https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 具体分为四…

LeetCode148.排序链表

题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5] 输入&#xff1a;head [] 输出&#xff1a;[] 思路…

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚&#xff0c;后面开发是不需要再新建工程的&#xff0c;一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行&#xff0c;只要前…

sylar高性能服务器-日志(P43-P48)内容记录

文章目录 P43&#xff1a;Hook01一、HOOK定义接口函数指针获取接口原始地址 二、测试 P44-P48&#xff1a;Hook02-06一、hook实现基础二、class FdCtx成员变量构造函数initsetTimeoutgetTimeout 三、class FdManager成员变量构造函数get&#xff08;获取/创建文件句柄类&#x…

华工的各类型PPT模板

华工的各类型PPT模板&#xff0c;包括原创的PPT及改良内容的PPT&#xff0c;适合科研/比赛/组会汇报等 前言各种毕业答辩夏令营答辩复试答辩奖学金答辩比赛/项目答辩组会汇报 前言 设计不易&#xff0c;排版不易&#xff0c;内容编排不易 待更新项目1 原创声明&#xff1a;不经…

17 easy 290. 单词规律

//给定一种规律 pattern 和一个字符串 s &#xff0c;判断 s 是否遵循相同的规律。 // // 这里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 // // // // 示例1: // // //输入: patte…

Kubernetes 学习总结(46)—— Pod 不停重启问题分析与解决

我们在做性能测试的时候&#xff0c;往往会发现我们的pod服务&#xff0c;频繁重启&#xff0c;通过kubectl get pods 命令&#xff0c;我们来逐步定位问题。 现象:running的pod&#xff0c;短时间内重启次数太多。 定位问题方法:查看pod日志 kubectl get event …

攻防世界 php_rce

已经给了开发框架了用的是ThinkPHP V5 所以我们直接搜这个框架爆出来的漏洞就好了 可以得到这里面有个远程rce payload url/index.php?s/index/\think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]dir 然后我们就可以命令执行了…

【大厂AI课学习笔记NO.63】模型的维护

说是模型的维护&#xff0c;其实这堂课都是在讲“在工业环境中开发和部署机器学习模型的流程”。 上图来自于我的笔记思维脑图&#xff0c;已经上传&#xff0c;要链接的访问的主页查看资源。 一路走来&#xff0c;我们学习了数据管理、模型学习、模型验证、模型部署等重要的步…

Elixir 依赖 (deps) 调试的小技巧

最近使用 Elixir 有点多, 经常需要观察一些依赖 (Deps) 的实现, 比如想加个日志打印点 IO.inspect 啥的观察下某个变量&#xff0c;才能更好的理解某个 Elixir 的依赖。这里介绍下一些调试的方式: 这里以 yeshan333/ex_integration_coveralls 为例子. 我们先 clone 项目到本地…

每日五道java面试题之mysql数据库篇(四)

目录&#xff1a; 第一题&#xff1a; Hash索引和B树所有有什么区别或者说优劣呢?第二题&#xff1a;数据库为什么使用B树而不是B树&#xff1f;第三题&#xff1a;B树在满足聚簇索引和覆盖索引的时候不需要回表查询数据&#xff1f;第四题&#xff1a;什么是聚簇索引&#xf…

案例介绍:汽车维修系统的信息抽取技术与数据治理应用(开源)

一、引言 在当今汽车产业的快速发展中&#xff0c;软件已经成为提升车辆性能、安全性和用户体验的关键因素。从车载操作系统到智能驾驶辅助系统&#xff0c;软件技术的进步正在重塑我们对汽车的传统认知。我有幸参与了一个创新项目&#xff0c;该项目专注于开发和集成先进的汽…

每日一题 — 盛水最多的容器

11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 因为体积是长度乘高&#xff0c;所以运用双指针&#xff0c;一个在最左&#xff0c;一个在最右&#xff0c;每次都记录体积 V &#xff0c;然后比较左边的长度和右边的长度&#xff0c;左边的长度…

浅析扩散模型与图像生成【应用篇】(五)——SDEdit

5. SDEdit: Guided Image Synthesis and Editing With Stochastic Differential Equations 该文提出一种基于SDE扩散模型的引导图像生成和编辑方法。通过使用者在原图上给出一些引导&#xff0c;比如在图像上涂鸦或者增加一个图块&#xff0c;甚至可以不给定原图&#xff0c;直…

图像剪辑|Linux|ImageMagick的初步使用--素描,毛玻璃等特效

前言&#xff1a; ImageMagick在图像剪辑领域的地位基本等同于FFmpeg&#xff0c;和FFmpeg基本一样&#xff0c;在Linux下使用此工具的原因是该工具可以使用shell脚本批量剪辑&#xff0c;在Windows下就会比较麻烦一些了 那么&#xff0c;本文主要是记录一下ImageMagick的一些…

简单聊聊http协议头参数之Content-Type和http状态码 415错误

大家好&#xff0c;我是G探险者。 今天聊一下http的状态码&#xff0c;415错误&#xff0c;因为项目里面使用了httpclient进行了远程服务调用&#xff0c;调用发送时&#xff0c;会有一个http header的参数设置。由于参数设置的问题经常会出现错误&#xff0c;导致调用失败&am…

基于51单片机微波炉简易控制仿真设计数码管显示proteus仿真+程序+设计报告+讲解视频)

基于51单片机微波炉简易控制仿真设计数码管显示 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码延时函数定时器初始化定时器中断产生PWM显示函数 5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff1a; 基于51单片机微波炉简易控制仿…

xfce任务栏图标挤到一起了

分隔符&#xff0c;扩展&#xff0c;撑开任务栏