当前位置: 首页 > 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 并且发现它不太容易上手。这也许是因为您把它当成了…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...