day12:磁盘阵列

一,RAID概述

RAID(Redundant Array of Independent Disks)是一种数据存储虚拟化技术,起源于1980年代,旨在提高存储系统的性能和可靠性。最初,由加州大学伯克利分校的研究人员提出,RAID技术的核心理念是将多个物理硬盘组合成一个逻辑单元,以提供数据冗余和更高的读写性能。

RAID与LVM可以结合使用,在物理层面使用RAID提高冗余和性能,而在逻辑层面使用LVM灵活管理存储空间。这种组合可以最大化存储系统的性能和灵活性。

二,常见的RAID级别

RAID级别的选择依赖于特定应用场景的需求,包括性能、冗余策略和存储成本等。

RAID级别描述优点缺点图例运用场景
RAID 0
数据条带化(Striping),将数据均匀分布到多个磁盘上(至少两块)提高读写性能,没有冗余任何一个磁盘故障导致数据丢失高性能需求的场景,如视频编辑、游戏服务器等。
RAID 1
数据镜像(Mirroring),每个数据都有一个完整的副本(至少两块)数据冗余,提高数据安全性存储效率低,需两倍的磁盘空间需要高可用性的场景,如数据库服务器和文件服务器。
RAID 5
数据条带化 和奇偶校验,至少需要三个磁盘提高读写性能,有冗余,能承受一个磁盘故障写入性能较低,至少需要三块磁盘通常用于文件服务器、企业级存储,平衡性能和冗余。
RAID 6
类似于RAID 5,但有双重奇偶校验,至少需要四个磁盘能承受两个磁盘故障,数据安全性更高写入性能更低,存储效率较低数据安全要求高的环境,如银行和金融服务。
RAID 10
结合RAID 0和RAID 1,数据条带化与镜像结合,至少需要四个磁盘提高读写性能和数据冗余需要较多的磁盘空间数据库应用、虚拟化环境,要求高性能和高可用性。
RAID 50
RAID 5的条带化,至少需要六个磁盘提高性能和冗余能力成本高,复杂度增加大型存储系统,平衡性能和容量,适用于高负载应用。
RAID 60
RAID 6的条带化,提供更高的冗余和性能提供高冗余性和良好的读取性能,适合对数据安全性要求极高的应用场景。写入性能受影响和存储效率较低,整体成本较高。数据安全性极高的应用,如关键业务系统和大数据存储。

三,软硬RAID

软RAID(基本上不用)mdadm

通过软件工具(如 mdadm)在操作系统级别管理RAID,灵活性高,但可能对CPU性能有一定影响,适合小型或个人项目。

硬RAID(硬件——RAID卡)

使用专用的RAID控制器卡,提供更高的性能和可靠性,通常有自己的处理器和内存,适合对性能和数据安全性有较高要求的企业环境。(具有帮助手册)

四,软RAID创建-RAID1

  1. 环境准备

    1. 一块盘,3主1扩7逻辑(10个分区),每个分区容量差不多相等(注意扩展分区只是存放逻辑分区的相关信息,所以是不可能有太大的空间的,你应该知道,看看我写的10个分区就明白了)
    2. 安装mdadm工具
  2. mdadm命令

    1. 具体的命令:mdadm 【模式】【磁盘阵列】【参数】设备名
      完整选项简写选项描述示例命令
      --create-C创建新的 RAID 阵列mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
      --raid-devices=<数量>-n指定 RAID 设备数量mdadm -C /dev/md0 -l 1 -n 3 /dev/sdb1 /dev/sdb2 /dev/sdb3
      --level=<级别>-l指定 RAID 级别mdadm -C /dev/md0 -l 5 -n 4 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
      --spare-devices-x用于指定在 RAID 阵列中使用的备份设备数量。这个选项与 RAID 阵列的创建或调整有关。mdadm -C /dev/md0 --level=5 -n=4 -x 1 /dev/sda{1,2,3,4,5}
       
      --name=<名称>-N指定自定义名称mdadm -C /dev/md0 -N myraid -l 0 -n 2 /dev/sdb1 /dev/sdb2
      --assemble-A组装已存在的 RAID 阵列(也就是重新启动)mdadm -A /dev/md0 /dev/sdb1 /dev/sdb2
      可以不指定具体的设备,因为 mdadm 可以通过配置文件(前提要有)或扫描系统自动识别 RAID 设备。mdadm -A /dev/md0
      -A --scan 自动扫描组装所有 RAID 阵列,并且启动mdadm --assemble --scan
      --add-a向 RAID 阵列添加新设备mdadm -a /dev/md0 /dev/sdb3
      --remove-r从 RAID 阵列中移除设备mdadm -r /dev/md0 /dev/sdb1
      --fail-f将设备标记为故障mdadm -f /dev/md0 /dev/sdb1
      --stop-S停止 RAID 阵列mdadm -S /dev/md0
      --detail-D查看 RAID 阵列详细信息mdadm -D /dev/md0
      --examine-E检查 RAID 超级块信息mdadm -E /dev/sdb1
      --zero-superblock-z清除 RAID 超级块mdadm -z /dev/sdb1
      --monitor-m监视 RAID 阵列状态mdadm -m /dev/md0
      --force-f强制操作mdadm -A --force /dev/md0 /dev/sdb1 /dev/sdb2
      --save-s保存当前 RAID 配置必须和-A(--assemble)连用(或者是刷新已有配置文件)mdadm -A --save /dev/md0【不跟设备就是所有,跟就是特定】
      --detail --scan-D -scan自动扫描并输出配置mdadm --detail --scan 【raid设备名,不写就当前所有】> /etc/mdadm.conf
  3. RAID0创建

    1. 创建raid0:mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
      1. 【设备名:/dev/md[x],x可以从0开始】胡乱写就会自己分配
    2. 查看状态:mdadm -D /dev/md[x]或者  cat /proc/mdstat
    3. 格式:mkfs.[选项]、mkswap     【设备】
    4. 挂载:mount 【设备】【挂载点】
  4. RAID1创建

    1. 创建raid1:mdadm -C  /dev/md1 -l 1 -n 2 /dev/sdb3 /dev/sdb5
    2. 查看raid1:cat /proc/mdstat或者mdadm -D /dev/md1
    3. 格式化:mkfs.ext4 【设备】
    4. 挂载
  5. 保存RAID(修改配置文件/etc/mdadm.conf)

    1. 这个文件默认没有要创建
      1. mdadm --detail --scan > /etc/mdadm.conf(建议覆盖不要追加)
    2. mdadm -A --save 【设备名】:刷新一下
  6. 停止与其它RAID

    1. 先解除挂载——》mdadm -S /dev/md[x]关闭
    2. mdadm -A  /dev/md[x]启动——》然后就可以挂载了
  7. RAID删除

    1. 解挂
    2. 停止使用:mdadm -S /dev/md[x]
    3. 删除磁盘阵列:mdadm -R /dev/md[x]
    4. 清除元数据:mdadm --misc   -z /dev/sd[x][数字](与之前删除的阵列相关的磁盘)
      1. misc 表示与设备或 RAID 阵列的某些状态或元数据相关的杂项信息,通常用于描述不特定或不标准的设备状态。
    5. 重新将当前的raid状态放入配置文件,可以vim配置文件,也可以:mdadm -D --scan > /etc/mdadm.conf

五,软RAID创建-RAID5

  1. 环境准备

    1. 4块盘
    2. mdadm安装
  2. RAID5创建

    1. 创建raid:mdadm -C /dev/md5 -x 1 -l 5 -n 3 /dev/sdb6 /dev/sdb7 /dev/sdb8 /dev/sdb9
      1. -x表示热备盘的数量,热备盘:当 RAID 阵列中的某个磁盘发生故障时,热备盘会自动介入,开始恢复数据并替代故障磁盘。(一般不指定就是最后一个盘,如果指定就按照如下语法:-x 数量 【盘名】)
    2. 查看raid5:mdadm -D /dev/md5 ,cat /proc/mdstat
    3. 设置文件系统(格式):mkfs.ext4  /dev/md5(或者mkswap {设备名})
    4. 挂载:mkdir /mnt/raid5;mount /dev/md5 /mnt/raid5
  3. 保存RAID

    1. mdadm -D -scan > /etc/mdadm.conf
  4. 热备盘测试

    1. mdadm /dev/md5 -f /dev/sdb8
    2. 移除sdb8再添加就相当于撤销了-f的损坏标记
      mdadm -r /dev/md5  /dev/sdb8;mdadm -a /dev/md5 /dev/sdb8
  5. 停止与启动RAID

    1. mdadm -S /dev/md5(停止)mdadm  -A  /dev/md5(启动)
  6. RAID删除

    1. 解挂
    2. 关闭阵列:mdadm -S /dev/阵列名
    3. 删除阵列:mdadm -r /dev/阵列名【不要跟设备名】
    4. 清除元数据:mdadm -Z /dev/sdb【对应删除的物理盘】

六,扩展内容

inode

什么是 inode?

我们可以把 inode 想象成一个 学生档案卡,上面记录着学生的名字、年龄、班级等信息,但不记录具体位置。类似地,在文件系统中,每个文件都有一个 inode,里面记录了文件大小、文件类型、权限、以及文件在磁盘上的存储位置等信息。

链接(ln 【-s】源  目标)

假设你有一张非常漂亮的画(文件),你想让小朋友们都知道这张画在哪儿。于是你写了几个“名字贴”:

  1. 硬链接(Hard Link):就像给画贴上好几个真正的名字贴,比如贴在不同的小朋友手上。每个名字贴都直接指向这幅画,不管画在哪儿,有名字的小朋友都能找到它。即使画上某个名字被撕掉,其他名字贴还在,所以画还是不会丢!

  2. 软链接(Soft Link):是像给画拍了张“定位照片”,只告诉小朋友“画在这边哦”,所以每次想看画,他们还是得顺着照片找过去。如果画的地方变了(比如搬到别的房间),照片就不管用了——因为照片里的“路”变错了。
     

硬链接(存放的文件地址)

ln 源 目标(对目录没有用)

硬链接(Hard Link)可以理解为多个文件名指向同一个 inode。假设有一个文件叫 “学习计划”,它有一个 inode 编号 1001。如果我们创建一个硬链接,就好像给同一个文件加了另一个名字。比如,“学习计划”有了第二个名字叫 “复习资料”。不管叫哪个名字,它们指向的都是 inode 1001,所以都能找到同一个文件内容。

  • 软链接文件有自己独立的 inode,它只记录了“指向哪个文件名”。
  • 如果原文件被删除或位置改变,软链接会失效,变成“断开的链接”。

软连接(存放的文件位置)

ln -s 源 目标(对目录有用)

软链接(Soft Link)是一个指向原文件路径的快捷方式,它并不直接指向原文件的 inode,而是指向原文件的文件名。就像在桌面上创建一个快捷方式,如果文件名(或位置)变了,快捷方式就会失效。

  • 删除任意一个文件名,文件内容还在,因为文件的 inode 还存在。
  • 文件内容真正消失,只有在所有硬链接都被删除后才会发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值