社区
系统维护与使用区
帖子详情
菜鸟问题,RAID是啥?
wylbob
2005-12-01 04:55:55
偶对服务器方面不熟悉
哪位大哥可告诉什么是raid
raid 4 ,raid 5有什么区别
...全文
194
8
打赏
收藏
菜鸟问题,RAID是啥?
偶对服务器方面不熟悉 哪位大哥可告诉什么是raid raid 4 ,raid 5有什么区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
andysibyl
2006-07-01
打赏
举报
回复
长见识了..
无知者无谓
2006-06-28
打赏
举报
回复
那如果我有4个硬盘:
我可不可以 在A, B硬盘上使用Raid 1.
而在C, D硬盘上使用Raid 5.
呢?或者有更多硬盘,可以对不同类型的硬盘使用不同技术吗?
可以
如果可以,对用户来说,所有硬盘仍然看起来象一个硬盘吗?
不是
wodeyouxian
2006-06-28
打赏
举报
回复
mark
Sanco
2006-06-25
打赏
举报
回复
补充:我说的ABCD 不是分区。是实际的物理硬盘。
Sanco
2006-06-25
打赏
举报
回复
那如果我有4个硬盘:
我可不可以 在A, B硬盘上使用Raid 1.
而在C, D硬盘上使用Raid 5.
呢?或者有更多硬盘,可以对不同类型的硬盘使用不同技术吗?
如果可以,对用户来说,所有硬盘仍然看起来象一个硬盘吗?
alongtech
2006-06-25
打赏
举报
回复
仔细看一下兄弟提供的资料吧
Sanco
2006-06-25
打赏
举报
回复
我也在看这个,这里有详细的资料,可以参考下:
什么是 RAID?
围绕RAID的基本想法就是把多个便宜的小磁盘组合到一起,成为一个磁盘组, 使性能达到或超过一个容量巨大、价格昂贵的磁盘。另外,磁盘组对于计算机来说, 看起来就象一个单独的逻辑存储单元或磁盘。
利用如 磁盘条纹化 (RAID 0) 和 磁盘镜像 (RAID 1) 的技巧,把数据分布到各个磁盘上, 来达到亢余性、低延迟、读写的高带宽、硬盘毁坏后的最大可恢复性。
RAID的概念,对操作系统来说,把各个硬盘上的空间组合成一个虚拟的逻辑盘。 带区即是把每个磁盘的所有空间分割成一些小快。这些小快可以小到几块,也可以大到几兆(实验证明块的最佳大小是32K或64K)。 在组成的磁盘中的这些块交叉被创建成“带区”。 例如,每个磁盘上的第一个块被组成一个“带区”,而每个磁盘的第二个块又被组成另一个“带区”,依次类推。 通过这种方式,逻辑盘的大小就是所有加入磁盘大小的总和。
B.1 为什么采用 RAID?
那些需要在硬盘上保存大量数据的人(例如 一个普通的管理人员) ,采用 RAID 技术将会很方便。采用 RAID 的主要原因是:
增强了速度
扩容了存储能力(以及更多的便利)
可高效恢复磁盘
B.2 RAID: 硬件实现与软件实现的比较
有两种可以实现RAID的方法:硬RAID和软RAID。
硬 RAID
建立在硬件基础上的系统和主机无关,管理着RAID子系统,对于主机来说,每一个RAID组只是一个单独的硬盘。
例如,硬RAID设备的通常是被联到一个SCSI控制器,RAID组看起来就是一个SCSI驱动器。 外置的RAID磁盘柜把所有的RAID处理智能化统一到嵌在外置磁盘子系统的控制器中。 全部的子系统通过一个普通的SCSI控制器连到主机上,对主机来说,如同一个单独的硬盘。
RAID控制器对操作系统来说,除了独自处理所有的实际磁盘通讯外,其 表现 如同 SCSI 控制器。 因此,你往RAID控制器中插入磁盘,就象插入到SCSI控制器一样, 但是,在你把磁盘放入到RAID控制器后,操作系统并不知道配置有所变化。
软 RAID
软 RAID 通过核心磁盘(块设备)代码来执行不同的RAID级别。它提供了最廉价的解决方案: 不仅不再需要昂贵的磁盘控制器卡和热交换底盘 [1] , 而且软RAID在便宜的IDE硬盘上工作得和在SCSI硬盘上一样好。 加上而今的高速CPU, 软RAID的性能已超越了硬RAID。
在Linux内核中的MD驱动程序是完全独立于硬件的RAID解决方案的一个例子。 软RAID的性能实现很大程度依赖于服务器 CPU 的性能和负载。
B.3 RAID 的一些特性
为了更深入的学习软RAID的一些特性,以下是它的一些技术细节的描述:
线程化的进程改造
全部基于内核级别的配置
在Linux范围内磁盘组的移动无须重新构建磁盘组
磁盘组的重新构建使用了空闲的系统资源
对热交换驱动程序的支持
自动检测CPU,利用可靠的CPU优化
级别和线性支持
RAID显著变化之一是增加了级别0,1,4,5和线性支持。这些RAID类型如下:
Level 0 -- RAID 0级, 通常称为 "带区" ,是利用带区数据映射技巧的特定性能。 也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。 这带来了高I/O性能,低开销,但不提供任何亢余。 磁盘组的存储量等于总的各磁盘容量之和。
Level 1 -- RAID 1级, 即 "镜像" ,相比其RAID其他的各级别,这个级别使用的时间较长。 1级通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。 镜像由于它的简单实现和数据的高可信度而一直很受欢迎。 1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其他的操作时无法提供高速的I/O传输速率。 1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能, 但是,耗费很大[2]。如果组成磁盘组的各磁盘规格相同,磁盘组的容量等于一块磁盘的容量。
Level 4 -- 4级 采用奇偶校验[3] ,保护一块单磁盘上的数据。它更适用于I/O传输,而不是大文件传输。 因为提供奇偶校验的磁盘常成为瓶颈,所以在没有相应技术的情况下, 如回写高速缓存技术,不常使用4级。尽管在某些 RAID 划分模式中有4级这个选项, 但在红帽 Linux RAID 安装过程中不提供此选项[4]。如果组成磁盘组的各磁盘规格相同, 磁盘组容量等于构成磁盘组的磁盘的总容量,减去一块磁盘的容量。
5级 -- 最常用到的 RAID 类型。 通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,RAID 5级消除了4级在写数据上的瓶径。 它的唯一瓶径是奇偶校验计算的过程使用了最新的CPU和软件RAID,这也不是很大的瓶径。 在4级中,读的性能超过了写,性能是不对称的。5级常使用缓冲技术来降低性能的不对称性。 如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。
线性 RAID -- 线性 RAID 是为创建一个大型虚拟驱动设备建立的简单的磁盘分组。 在线性 RAID 中, 磁盘上的带区是连续分配的, 当第一块磁盘分配满后,跳转到下一块磁盘上,依次类推。 这个磁盘组未做性能方面的改善,各种I/O 操作都被划分到各磁盘上是不可靠的。 线性 RAID 无冗余,并且可靠性降低 -- 如果磁盘组中的任何一块磁盘出现故障, 全部的阵列就都无法使用了。其容量是所有组成磁盘组的磁盘的容量之和。
yyy790601
2005-12-01
打赏
举报
回复
前不久刚把服务器的硬盘换成raid,留了一段资料。
RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。
RAID技术的两大特点:一是速度、二是安全,由于这两项优点,RAID技术早期被应用于高级服务器中的SCSI接口的硬盘系统中,随着近年计算机技术的发展,PC机的CPU的速度已进入GHz 时代。IDE接口的硬盘也不甘落后,相继推出了ATA66和ATA100硬盘。这就使得RAID技术被应用于中低档甚至个人PC机上成为可能。RAID通常是由在硬盘阵列塔中的RAID控制器或电脑中的RAID卡来实现的。
RAID级别的选择有三个主要因素:可用性(数据冗余)、性能和成本。如果不要求可用性,选择RAID0以获得最佳性能。如果可用性和性能是重要的而成本不是一个主要因素,则根据硬盘数量选择RAID 1。如果可用性、成本和性能都同样重要,则根据一般的数据传输和硬盘的数量选择RAID3、RAID5。
spring源码解析流程,一步一步在源码加注释带你了解bean的加载过程
spring 前述:spring源码环境搭建以及源码下载在文章后方有链接,可自行参考搭建,这里只是对加载过程做一个解析,spring全家桶远不止这些东东,感兴趣的小伙伴可以去官网看一下,本文将以源码加注释的方式进行过程解析,带你了解spring中bean到底是如何一步步加载完成 了解重点:bean的生命周期、加载过程 最终目的:学习spring源码短期内不对对你的技术有太大提升,可能只是了解到漂亮的代码是如何写出来,为何别人写代码就不是简单的接口加上无限的if-else,所以加强基础知识的学习、多去思考如何
Spring源码解析——加载Bean
结合上面的代码发现,主要是调用createBean函数来创建Bean的,该函数是一个类的中心方法,用于创建bean实例,包括填充bean实例,应用后处理器等。因为在创建单例bean的时候会存在依赖注入的情况,而在创建依赖的时候为了避免循环依赖,在Spring中创建bean的原则是不等Bean创建完成就会将创建Bean的ObjectFactory提前加入到缓存中,一旦下一个bean创建的时候需要依赖上一个bean,则直接使用ObjectFactory。最后,根据是否为单例对象,在缓存中存储对象。
Spring源码解析:Bean的加载流程
文章目录1.缓存中获取单例 bean2.创建单例对象 经过上篇的分析,我们已经完成了Bean实例的注册流程解析,已经将XML文件内容解析成一个个的 BeanDefinition 实例存在于容器之中。接下来就可以调用 BeanFactory的getBean 方法获取目标 Bean 实例。 public class SpringClient { public static void main(String[] args) { // 类路径下的资源 将其具体抽象成资源对象
Spring源码解析(二):加载Bean过程
加载Bean时序图 doLoadBeanDefinitions源码 /** * org.springframework.beans.factory.xml.XmlBeanDefinitionReader */ protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource) throws BeanDefinitionStoreException { try { Document doc = d
Spring源码学习(一):Bean的加载和初步解析
目录 1.一个示例 2.定位和加载配置文件 2.1沿继承链向上调用父类构造函数 2.2设置配置文件路径 3容器的刷新与Bean的加载 3.1prepareRefresh 3.2obtainFreshBeanFactory 1.一个示例 下面是一个最基本的Spring示例: 配置文件config.xml: <?xml version="1.0" enco...
系统维护与使用区
19,614
社区成员
74,561
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章