linux硬件 软件raid,linux学习之路之磁盘阵列RAID及硬件RAID和软件RAID的区别
我们知道单个磁盘存储数据的容量是有限的,为了让磁盘的容量增大,我们可以将多个较小的磁盘组合在一起,形成一个较大的磁盘装置,这就是RAID(独立式磁盘阵列),RAID不仅可以提高数据的存储容量,也可以提高数据保护功能,不同级别的RAID,所提供的的功能各不一样。
RAID常见的级别有RAID0,RAID1,RAID5,RAID10,RAID01,RAID5,RAID50
下面逐个介绍这些级别的工作原理。
RAID0:首先将磁盘分成等量的数据块(CHUNK),然后在将存储的数据切分成符合CHUNK大小的块,依次放在每一个磁盘上。以条带的形式均匀的存储在阵列中的每一个磁盘上。
存储方式如图所示:
所谓条带的大小就是通过CHUNK的大小除以block的大小得到的。默认CHUNK为64k。
RAID0具有以下特性:
1、至少有2块磁盘才能组合成RAID,最好相同的磁盘
2、数据被均匀的存储在每一个磁盘上,因此读写性能提升
3、这样存储的数据不具有冗余性,因此其中任意一个磁盘损坏,数据就坏了。
4、磁盘的利用率为100%
RAID1:由于RAID0没有提供数据的冗余机制,因此当其中一个磁盘损坏了,数据就恢复不了了。而RAID1的存储机制与RAID不同,RAID1则是通过镜像冗余的方式,将一份数据同时存储在两个磁盘上。这样当其中一块磁盘损坏了,还可以通过另一个磁盘来工作。
存储方式如下:
RAID1将具有以下特性:
1、至少有2块磁盘组合成RAID1,最好磁盘相同
2、由于数据时保存在每一个磁盘上的,因此磁盘的写性能下降,读性能提升
3、这种存储方式具有冗余性
4、磁盘的空间利用率为50%
从上面知道,RAID0不具有冗余性,当一个磁盘损坏,所有数据也就损坏了。而RAID1虽然具有冗余性,但是磁盘的利用率下降了,磁盘的写性能也下降了。那么可不可以将RAID0和RAID1组合起来使用,同时具有RAID0和RAID1的特性呢?
将RAID0和RAID1组合起来的整列有2中RAID10和RAID01
RAID10:就是先将磁盘组合成RAID1,再讲RAID0组合成RAID0。
存储方式如下:
RAID10具有以下的特性:
1、至少4颗磁盘才能组成。,因为RAID1和RAID0至少要两个磁盘才能组成。
2、因为RAID1的原因,因此性能下降,读性能提升
3、由于RAID1的原因,因此这样组合具有冗余性
4、磁盘利用率为50%
RAID01:现将磁盘组合成RAID0,再将RAID0组合成RAID1
存储方式如下:
RAID5:将至少需要三个磁盘才能组合成RAID5,其中一个磁盘用来存放同位检查码的,且以轮循的方式存放在每一个磁盘上。而数据则是均匀等量的依次存放在其他磁盘上。
当其中某一个磁盘损坏了,可以利用同位检查码来恢复另一个磁盘的数据。
存储方式为如下:
RAID5具有以下特性:
1、由于其中一个磁盘要存放同位检查码,因此至少需要三个磁盘才能形成RADI5
2、由于同位检查码的存在,因此磁盘的写性能下降,读性能提升
3、由于可以用同位检查码来恢复磁盘的数据,因此具有冗余性
4、磁盘的空间利用率为(n-1)/n
RAID50:将磁盘先组合成RAID5,再将组合成的RAID5组合成RAID0
RAID50将具有以下特性:
1、由于RAID5的原因,因此需要至少6颗磁盘才能组合成RAID50
2、由于有同位检查码,因此磁盘写性能下降,读性能提升
3、具有冗余功能
4、磁盘利用率为(n-2)/n
另外还有一种磁盘组合机制jobd技术
jbod:就是将多个磁盘堆叠形成一个大的逻辑磁盘,且当第一个磁盘容量用完时,才使用第二个磁盘。
因此jbod具有以下特性:
1、至少需要2颗磁盘才可以组合成jbod
2、数据是从第一个磁盘依次存储的,因此读写性能没有提升
3、没有提供冗余机制,当其中一块磁盘损坏时,数据就会损坏
4、磁盘利用率为100%
上面主要介绍了几种常见级别的RAID原理,RAID可以通过硬件和软件来组合成,那么硬件RAID和软件RAID有什么区别呢?
硬件RAID:有专门的RAID控制处理器和I/O处理芯片来完成RAUD任务的,不需要占用主机CPU的资源
软件RAID:通过软件来仿真达到磁盘阵列的功能,因此没有第三方控制处理器和I/O芯片来处理,其功能
主要靠CPU来完成。
软件RAID是依靠mdadm这套软件来完成的,他可以将任何块设备文件做成RAID。使用mdadm命令可以将两个以上分区或者磁盘做成我们所想要的磁盘阵列。
由于软件RAID是仿真的,因此创建的RAID装置名为系统的装置文件:/dev/md{0,1,2...}
而硬件RAID的装置文件名为/dev/sd[a-p]
在这里不讲述如何创建硬件RAID,只讲述如何创建软件RAID。由于软件RAID是依靠mdadm软件来完成的,因此在这里只介绍如何使用mdadm来组合磁盘达到磁盘阵列的功能。
mdadm是一个模式化的命令,因此在mdadm环境下有多种模式来管理磁盘阵列。
madam的模式有一下几种:
创建模式、管理模式、监控模式、增长模式、装配模式
在创建模式下的mdadm的语法格式为:
mdadm [option] 分区或磁盘
-C,--create:用来创建RAID
-l #,--level=#:指定RAID的级别
-n #,--raid-devices=#:指定创建RAID的设备个数
-a yes|no,--auto=yes|no:是否自动为其创建RAID文件,即/dev/md0
-c #,--chunk=#:指定CHUNK的大小,默认为64k
-x #,--spare-devices=#:指定空闲的磁盘个数
在管理模式下的mdadm的语法格式:
linux硬件 软件raid,linux学习之路之磁盘阵列RAID及硬件RAID和软件RAID的区别相关推荐
- 电脑计算机需要学什么软件有哪些,哪些电脑软件是大学生学习必备的呢?电脑里应该装哪些软件?...
哪些电脑软件是大学生学习必备的呢?电脑里应该装哪些软件? 一.Word. 大学生需要在大学里面掌握一些word的基本技巧,毕竟这款软件是大学生在大学里面经常需要使用到的.有些专业的大学生需要经常的写一 ...
- android开发用百度识别图片格式,Android开发学习之路-机器学习库(图像识别)、百度翻译...
对于机器学习也不是了解的很深入,今天无意中在GitHub看到一个star的比较多的库,就用着试一试,效果也还行.比是可能比不上TensorFlow的,但是在Android上用起来比较简单,毕竟Tens ...
- ZYNQ学习之路13.创建PetaLinux工程
在前面的学习中,我们知道如何根据PetaLinux BSP设计去创建一个工程,现在,我们结合Vivado设计我们自己PetaLinux系统. 开发环境:Ubuntu16 64bit, PetaLinu ...
- 《软件需求》学习笔记
为什么80%的码农都做不了架构师?>>> <软件需求>学习笔记 前几天读了Karl E.Wiegers<软件需求>,书的内容写得非常好.我这里谈谈读了此 ...
- linux硬件 软件raid,Linux下软件RAID的实现
作为网络操作系统, 冗余磁盘阵列(Redundant Array of Inexpensive Disks,简称RAID)功能是必备的功能之一.从Linux 2.4内核开始,Linux就提供软件RAI ...
- linux 学习之路
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- Linux学习之路(持续补充中......)
Linux学习之路 Linux的基础知识 第一章:Linux的概述以及系统安装及使用 第一节:简单了解一下Linux发展历史与历程 Linux是一种自由.开源的类UNIX操作系统. linux 的创始 ...
- linux之学习之路
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- alin的学习之路(Linux系统编程:一)(Linux基础命令)
alin的学习之路(Linux系统编程:一)(Linux基础命令) 1.Linux学习准备 操作系统的作用 向上给用户提供简单的操作计算机硬件的方式 对下管理硬件 承上启下 程序运行在操作系统上,程序 ...
- Python学习之路(六)——Linux编程
这里写目录标题 操作系统 1. 常见的操作系统 2. 操作系统的定义 虚拟机软件 1. 虚拟机软件的介绍 2. 虚拟机的介绍 3. 虚拟机软件的安装说明 Ubuntu操作系统 1. Ubuntu操作系 ...
最新文章
- JAVA 判断Socket 远程端是否断开连接
- Doris FE配置参数(全面)
- python︱用asyncio、aiohttp实现异步及相关案例
- ubuntu18.04 有线未托管解决
- 对象行为型 - 模版方法模式
- FISCO BCOS 同态加密 实例
- 文件另存为GBK编码格式
- 手机充当电脑摄像头:无他相机和DroidCam
- IIS配置MIME类型
- 什么是软件研发费用定额?
- RISC-V架构能否引领物联网时代?
- ajax请求有多少种写法,Ajax 请求的三种写法
- 进行小红书营销,怎样拉入更多的客户?
- C++ Reference: Standard C++ Library reference: C Library: cstdio: printf
- 一般云服务器支持多少并发,一般云服务器支持是多大并发?
- 5.22 综合案例2.0-4G远程遥控车DEMO(2.2版本接口有更新)
- matlab打印函数disp如何不换行
- Hive sql常用语句
- ZOJ2604-DP
- 对象认知全提升,成为 JS 高手
热门文章
- kafka常用的操作命令
- spring mvc 基础学习
- Mysql 如何做双机热备和负载均衡 (方法一)
- .NET : 如何动态根据一个业务实体类型创建XSD架构文件
- 推荐 ADO.NET Entity Framework (EDM) 相关技术文章
- 程序员有了孩子,老大叫玲玲,老二叫玲依,老三叫...
- 几个清华和北邮学霸公众号,值得学习
- R与Python手牵手:数据探索性分析案例展示
- [Python 应用:爬虫] Selenium 之 XPath 语法
- Python全栈之路Day22