当前位置: 首页 > news >正文

软RAID

硬盘 连续空间 无法 扩容
lvm 非连续空间 可以动态扩容
raid 备份, 提高读写性能,不能扩容
raid 是磁盘的集合,按照排列组合的方法不 一,给 raid 去了不同的名字 raid0 raid1  raid5 raid10
     什么是 RAID
"RAID" 一词是由 David Patterson, Garth A. Gibson, Randy Katz 1987 年在加州大学伯克利分校发明 的。在1988 6 SIGMOD 会议上提交的论文 "A Case for Redundant Arrays of Inexpensive Disks”" 中 提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价驱动器的性能所击败。尽管故障与驱动器数量的比例会上升,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性。
独立硬盘冗余阵列 RAID , R edundant A rray of I ndependent D isks ),旧称 廉价磁盘冗余阵列 ,简称磁盘阵列 。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如: RAID 0 RAID 1 、 RAID 5、 RAID 6 RAID 7 RAID 01 RAID 10 RAID 50 RAID 60 。每种等级都有其理论上的优缺 点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器群)读写性能。
简单来说, RAID 把多个硬盘组合成为一个逻辑硬盘,因此操作系统只会把它当作一个实体硬盘。 RAID 常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID 功能更 加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。
RAID 功能实现
提高 IO 能力 (提高数据传输速度)
提高耐用性
磁盘冗余备份
RAID 实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式 RAID :主板集成 RAID 控制器,安装 OS 前在 BIOS 里配置
软件 RAID :通过 OS 实现,比如:群晖的 NAS 存储
1. 硬件方式 通过 raid
2. 软件方式 通过 raid 软件方式
raid 级别
RAID-0 :条带卷, strip          RAID-1:镜像卷, mirror          RAID-2     ......    RAID-5         RAID-6
RAID-7         RAID-10        RAID-01          RAID-50       
  
RAID-0
因为读写时都可以 并行处理 ,所以在所有的级别中, RAID 0 速度是最快 的。但是 RAID 0 既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失。 读、写性能提升可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2块
服务器只能识别一种模式,没有混杂模式
直通模式:没有做 raid
raid 模式: 做了 raid
raid 0 1 块没有提高性能的效果
RAID-1
也称为镜像 , 两组以上的N个磁盘相互作镜像 ,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0 相同。另外写入速度有微小的降低。
读性能提升、写性能略有下降
磁盘利用率 50%
有冗余能力
最少磁盘数:2n (n>=1)      
RAID-5
读、性能提升
写的性能略微降低
利用率: n-1 留出做计算结果
有容错能力:允许最多1块磁盘损坏
最少磁盘数: 3  (>=3)
RAID-10
读、写性能提升
可用空间:n/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4     (偶数>=4)
实现 软raid
mdadm 工具:为软 RAID 提供管理界面,为空余磁盘添加冗余,结合内核 md(multidevices)RAID
备可命名 /dev/md0 /dev/md1 /dev/md2 /dev/md3 等做raid (分区)
建立文件系统
挂载
常用选项说明
mdadm [mode] <raiddevice> [options] <component-devices>
命令 模式 阵列名字(md0) 选项 选择/dev/sdb /dev/sdd
mdadm   -Cv   /dev/md0   -l  10     -n  4     -x  1   /dev/sd[bcde]    {b,c,d,e,f}
模式:
创建: -C
装配: -A
监控: -F
管理: -f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用 # 个块设备来创建此 RAID
-l # :指明要创建的 RAID 的级别 0 1 5 10
-c CHUNK_SIZE: 指明块大小 , 单位 k
-x #: 指明空闲盘的个数 热备 盘 -x 1 /dev/sd#
-D :显示 raid 的详细信息
mdadm -D /dev/md#
raid 名字
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态: cat /proc/mdstat
例子
#使用mdadm创建并定义RAID设备
mdadm   -C   /dev/md5     -l  5       -n  3      -x  1   /dev/sd{b,c,d,  e}1
             命令      raid 名    raid级别   硬盘数    热备
madam  -Cv  /dev/md5     -l  5       -n  3     /dev/sd[bcd]1     -x  1   /dev/sde1
             命令      raid名    raid级别   硬盘数                               热备 
#用文件系统对每个RAID设备进行格式化         mkfs.xfs /dev/md0
#使用mdadm检查RAID设备的状况        mdadm --detail /dev/md0     或     mdadm -D /dev/md0
#增加新的成员        mdadm -G /dev/md0 -n4 -a /dev/sdf1
#模拟磁盘故障      mdadm /dev/md0 -f /dev/sda1
#移除磁盘       mdadm /dev/md0 -r /dev/sda1
#在备用驱动器上重建分区      mdadm /dev/md0 -a /dev/sda1          (要先关闭设备)
#删除raid信息: mdadm --zero-superblock /dev/sdb1
#系统日志信息:        cat /proc/mdstat
生成配置文件:    mdadm -D -s >> /etc/mdadm.conf
停止设备:      m dadm -S /dev/md0          (要先解挂载)
激活设备:mdadm -A -s /dev/md0
强制启动:mdadm -R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1
建立 raid5
建立 raid 10
mdadm -A -s /dev/md0
mdadm -R /dev/md0
mdadm --zero-superblock /dev/sdb1
建立raid5
添加4个硬盘,创建bcde硬盘分区:      fdisk  /dev/sdb     (n  t   fd   w)     
创建并定义RAID:       mdadm  -Cv  /dev/md5   -l 5  -n 3  /dev/sd[bcd]1  -x 1 /dev/sde1
格式化:           mkfs.xfs    /dev/md5               
挂载:            mkdir    /home/raid5          
          (临时)   mount    /dev/md5    /home/raid5
          (永久)   vim   /etc/fstab           
                       /dev/md5    /home/raid5   xfs   defaults   0  0
                       mount   -a
                    
查看状态:       cat    /proc/mdstat        或       mdadm   -D   /dev/md0
每5秒看一次:  watch -n 5 'cat /proc/mdstat'
模拟故障:       mdadm   /dev/md5   -f   /dev/sdb1         (让sdb1故障) 
                           查看  mdadm   -D   /dev/md5
   mdadm   /dev/md5   -r    /dev/sdb1        (删除sdb1)
 mdadm   /dev/md5   -a   /dev/sdb1          (重建分区)
建立raid10
// 先做两个raid1
mdadm   -Cv  /dev/md0   -l1  -n2  /dev/sd[bc]1
mdadm   -D   /dev/md0
mdadm   -Cv   /dev/md1   -l1   -n2    /dev/sd[de]1
mdadm   -D    /dev/md1
cat     /proc/mdstat
创建raid10
mdadm   -Cv   /dev/md10   -l1   -n2   /dev/md1   /dev/md0
mdadm   -D    /dev/md10             cat    /proc/mdstat
格式化:      mkfs.xfs    /dev/md10
挂载:         mkdir   /home/raid10
                    mount   /dev/md10     /home/raid10
# 创建 RAID10 ( 先做镜象,再做条带 )
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bc]1 20G
mdadm -Cv /dev/md1 -l1 -n2 -x1 /dev/sd[de]1 20G
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1 40G

相关文章:

软RAID

硬盘 连续空间 无法 扩容 lvm 非连续空间 可以动态扩容 raid 备份&#xff0c; 提高读写性能&#xff0c;不能扩容 raid 是磁盘的集合&#xff0c;按照排列组合的方法不 一&#xff0c;给 raid 去了不同的名字 raid0 raid1 raid5 raid10 什么是 RAID "RAID"…...

IDEA 学习之 启动“卡死”

目录 1. 断点问题2. IDEA 版本问题 1. 断点问题 部分断点涉及应用启动&#xff0c;会导致启动“卡死” 2. IDEA 版本问题 部分 IDEA 版本存在启动问题&#xff0c;本人之前遇到过&#xff08;别人启动三分钟&#xff0c;我启动半个小时&#xff09;。更换别的版本&#xff…...

豆瓣高分项目管理书籍推荐

&#x1f4ec;豆瓣网站上有很多项目管理领域的书籍获得了较高的评分&#xff0c;以下是一些高分项目管理书籍的精选列表&#xff0c;发出来跟大家分享一下&#xff1a; 《项目管理知识体系指南&#xff08;PMBOK指南&#xff09;》 【内容简介】这本书是美国项目管理协会&…...

关于docker存储overlay2相关问题

报错如下&#xff1a; 报错原因&#xff1a;使用rm -rf 清理overlay2导致的&#xff0c;非正常清理。 正常清理命令如下&#xff1a; # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…...

实现批量自动化电商数据采集|商品详情页面|店铺商品信息|订单详情数据

电商数据采集是指通过技术手段获取电商平台上的商品信息、店铺信息和订单信息等数据。这些数据可以用于市场分析、竞品分析、用户行为分析等。 商品详情页面是指电商平台上展示商品详细信息的页面&#xff0c;包括商品名称、价格、图片、描述、评价等信息。通过采集商品详情页…...

ES6(ECMAScript 6.0) 新特性

1 ES6 基本介绍 &#xff08;1&#xff09;ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准&#xff0c; 2015 年 6 月发布。 &#xff08;2&#xff09;ES6 设计目标&#xff1a;达到 JavaScript 语言可以用来编写复杂的大型程序&#xff0c;成为企业级开发语言 &…...

性能工具之 JMeter 常用组件介绍(八)

文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 本文主要介绍JMeter命令行启动和脚本录制功能 一、Jmeter命令行启动 Jmeter有两种运行&#xff1a; 一种是采用的界面模式(GUI&#xff09;启动&#xff0c;会占用不少系统资源&#xff1b;另一种是命令行模式&#xff08;n…...

分布式锁(Redission)

分布式锁&#xff1a; 使用场景&#xff1a; 通常对于一些使用率高的服务&#xff0c;我们会进行多次部署&#xff0c;可能会部署在不同的服务器上&#xff0c;但是他们获取和操作的数据仍然是同一份。为了保证服务的强一致性&#xff0c;我们需要对线程进行加锁&#xff0c;…...

【ARMv8/v9 GIC 系列 3 -- GIC 的 类型寄存器 GICD_TYPER】

文章目录 GIC 类型寄存器 GICD_TYPERESPI_Range, 位[31:27]RSS, 位[26]No1N, 位[25]A3V, 位[24]IDBits, 位[23:19]DVIS, 位[18]LPIs, 位[17]MBIS, 位[16]NUM_LPIs, 位[15:11]SecurityExtn, 位[10]NMI, 位[9]ESPI, 位[8]CPUNumber, 位[7:5]ITLinesNumber, 位[4:0]GIC 类型寄存器…...

MATLAB算法实战应用案例精讲-【数模应用】线性判别分析(附MATLAB、python和R语言代码实现)

目录 前言 算法原理 什么是判别分析 线性判别分析(LDA) 数学模型 二分类 多分类LDA ​编辑 算法思想: 费歇(FISHER)判别思想 贝叶斯(BAYES)判别思想 LDA算法流程 LDA与PCA对比 SPSSPRO 1、作用 2、输入输出描述 3、案例示例 4、案例数据 5、案例操作 …...

打造智能家居:用ESP32轻松实现无线控制与环境监测

ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器&#xff0c;广泛应用于物联网项目。它由Espressif Systems公司开发&#xff0c;具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能&#xff0c;并通过具体的实例项目展示其应用。 主要功能 双核处…...

大型Web应用的模块化与组织实践:Flask Blueprints深入解析

目录 一、引言 二、Flask Blueprints概述 三、Flask Blueprints的使用 创建Blueprint对象 定义路由和视图函数 注册Blueprint 使用Blueprints组织代码 四、案例分析 创建模块目录结构 创建Blueprint对象 注册Blueprint 五、代码示例与最佳实践 1. 代码示例 …...

AI 智算产业发展现状和预测报告

一、引言 2023年,随着ChatGPT的横空出世,人工智能领域迎来了新的浪潮。我们正站在一个技术革命的前沿,迈入一个全新的智算时代。在这个时代,更高效的计算、更智能的推理、更敏捷的内容生成,正在重新定义着生产力和生产组织形态。2023年《数字中国建设整体布局规划》的发布…...

【软件工具】Xshell安装教程

1、安装软件&#xff1a;Xshell-5.0.1337p.exe&#xff0c;双击安装即可&#xff0c;可以选择安装到D盘&#xff1b; 2、在D盘安装完成后&#xff0c;将文件nslicense.dll拷贝到对应的安装目录下&#xff1b; 3、打开快捷方式即可打开应用软件。...

git如何切换到tag分支

项目场景&#xff1a; 当我们需要回退到某个tag分支。 问题描述 通过git命令 git checkout tag_name 执行这个命令后&#xff0c;会提示你当前处于一个“detached HEAD”的状态。 原因分析&#xff1a; 这是因为tag只是一个快照&#xff0c;是不能更改代码的。 解决方案&am…...

【启明智显产品介绍】Model3C工业级HMI芯片详解专题(三)通信接口

Model3C 是一款基于 RISC-V 的高性能、国产自主、工业级高清显示与智能控制 MCU, 集成了内置以太网控制器&#xff0c;配备2路CAN、4路UART、5组GPIO、2路SPI等多种通信接口&#xff0c;能够轻松与各种显示设备连接&#xff0c;实现快速数据传输和稳定通信&#xff0c;可以与各…...

Mysql实战中的一些小tips

1. 问题&#xff1a;使用select进行查表&#xff0c;出现连接事务一直连接&#xff0c;导致锁表&#xff0c;没办法对表格进行修改操作。 解决办法&#xff1a; # 在建立conn连接时&#xff0c;设置commit如下&#xff1a;self.dbconn MySQLdb.connect(hostsql_conf.MYSQL_HO…...

【Linux】使用信号进行进程间通信

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 实现原理&a…...

电脑实用技巧1

以下给大家分享了一些电脑使用小技巧&#xff0c;赶快点赞、收藏、分享&#xff01; 分屏操作&#xff1a;按住Win键&#xff0c;配合左右方向键可以实现分屏操作&#xff0c;适合一边办公一边娱乐的需求。快速打开任务管理器&#xff1a;按住CtrlShiftEsc可以快速打开任务管理…...

【D3.js in Action 3 精译】1.1.3 D3.js 的工作原理

译者注 上一节我们探讨了 D3.js 的适用场景——需要高度定制化、可以尽情释放想象力的复杂图表。这一节我们再跟随作者的视角&#xff0c;看看 D3.js 的工作原理究竟是怎样的。 1.1.3 D3.js 的工作原理 您可能已经体验过 D3 并且发现它不太容易上手。这也许是因为您把它当成了…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...