热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Raid技术学习

Raid技术学习--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
知识拓展: http://www.scsi.cn/knowledge/knowledge_list.php?news_id=588 RAID技术详解

http://www.it.com.cn/f/server/051/4/53660.htm 什么是独立磁盘冗余阵列?
http://download.chinaitlab.com/soft/452.htm 高端服务器RAID配置录像
http://www.net130.com/2004/8-31/85635.html RAID全解
http://www-900.ibm.com/developer ... m/raid1/index.shtml 新 Linux 2.4 内核中的软件 RAID

什么是RAID?

RAID(Redundant Array of Inexpensive Disks) 称为独立磁盘冗余阵列,RAID的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大,价格昂贵的磁盘。
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。

磁盘阵列其实也分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种. 软阵列即通过软件程序并由计算机的 CPU提供运行能力所成. 由于软件程式不是一个完整系统故只能提供最基本的 RAID容错功能. 其他如热备用硬盘的设置, 远程管理等功能均一一欠奉. 硬阵列是由独立操作的硬件提供整个磁盘阵列的控制和计算功能. 不依靠系统的CPU资源.
由于硬阵列是一个完整的系统, 所有需要的功能均可以做进去. 所以硬阵列所提供的功能和性能均比软阵列好. 而且, 如果你想把系统也做到磁盘阵列中, 硬阵列是唯一的选择. 故我们可以看市场上 RAID 5 级的磁盘阵列均为硬阵列.(2001)
软件RAID使你不必购买昂贵的硬件RAID控制器和附件就能极大增强linux磁盘的IO性能和可靠性。由于Linux RAID是用软件实现的,所以他灵活速度快,使用软件RAID,可以实现将几个物理磁盘合并成一个更大的虚拟设备,达到性能改进和数据冗余的目的。

软件RAID的级别
目前用于Linux 2.4内核的软件RAID支持以下级别:线性模式,RAID0, RAID1, RAID4和RAID5.
线性模式:
将两个或更多的磁盘组合到一个物理设备中,磁盘不必具有相同的大小。因为磁盘彼此间是附加在一起的,所以写入RAID设备时首先填满磁盘0,然后是磁盘1以此类推。
该级别中没有冗余。如果一块磁盘出现鼓掌,那么很可能会丢失所有数据。不过因为文件系统只是丢失一个大的连续数据块,所以可以非常幸运地恢复一些数据。
对于单独的读和写,读取和写入性能不会提高。但是如果几个用户同时使用这一设备,并且一个用户实际使用第一个磁盘,而另一个用户正访问第二块磁盘上的数据,那么将会提高性能。

RAID0
也成为分带(stripe)模式,它与线性模式类似,只不过读取和写入是在设备上并行完成的,设备的大小应该大致相等,因为所有的访问都是并行完成的,所有的设备都是同等填充的,如果一个设备比其他设备大的多,那么RAID设备中仍将使用额外的空间,但在写入RAID设备的高端部分时只能访问那个大的磁盘,会降低性能。
与线性模式一样,RAID0也没有冗余,与线性模式不同的是,如果驱动器出现故障,那么将无法恢复任何数据,如果从RAID0中取出一个驱动器,那么RAID设备将不仅丢失一个连续的数据块,而是整个设备上都将充满小的空洞。
因为读取和写入都是在设备上并行完成的,读取和写入性能都将会增加,这通常是运行RAID0的主要原因,如果磁盘总线足够快,可以非常接近N*P MB/S

RAID1
一个真正具有冗余的模式,RAID1可以用于两个或多个磁盘,拥有0块或多块备用磁盘,这种模式在其他一些磁盘上保留一块磁盘信息的准确镜像。当然磁盘大小必须相等,如果不等,你的设备将具有最小磁盘的大小。
如果最多驱除了N-1块磁盘(或出现故障),那么所有的数据仍然保持不变,如果有备用的磁盘,而且系统在故障中并没有被破坏,那么在检测到驱动器故障后,会立即在一块备用磁盘上开始重建镜像。
RAID的写入性能比在一个单独的设备上稍差一些,这是因为写入数据的相同副本必须发送到列中的每一个磁盘上,读取性能通常更为糟糕,但在2.4内核中已经得到大大的改进。

RAID4
RAID 4将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。阵列大小是(N-1)*S , S是阵列中最小驱动器的大小
如果一个驱动器出现故障,那么可以使用奇偶校验信息来重建所有数据,如果两个驱动器出现故障,那么所有数据都将丢失。

RAID5
在希望结合大量物理硬盘并且仍然保留一些冗余时,RAID5可能是最有用的RAID模式,RAID5可以用在三块或更多的磁盘上,并使用0块或更多的备用磁盘。就想RAID4一样,得到的RAID5设备的大小是(N-1)*S .
RAID5和RAID4最大的区别就是奇偶校验信息均匀分布在各个驱动器上,这样就避免了RAID4中出现的瓶颈问题,如果其中一块磁盘出现故障,那么由于奇偶校验信息,所以所有的数据仍然可以保持不便,如果可以使用磁盘,那么在设备故障之后,将立即开始重建数据。如果两块硬盘同时出现故障,那么所有数据就会丢失。RAID5可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。
读取和写入性能通常会很高,但很难预测其提高程度。
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
author-avatar
余方兰很快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有