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

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...