2009年5月10日星期日

绥中发电有限责任公司IBM服务器 RAID0数据恢复成功








































































客户名称 绥中发电有限责任公司 IBM 磁盘阵列RAID0    数据恢复成功
设备类型 IBM 服务器
故障描述 RAID信息丢失,系统无法启动.经检测一号盘有大量坏道.
介质类型 硬盘
介质品牌 IBM
介质型号 IC35L040AVER07-0
介质序列号 TXHC0829/TXHB6745
介质接口 IDE
介质容量 40G*2
操作系统 WINDOWS NT 4.0
分区大小  
文件系统 NTFS
数据丢失原因 硬件,RAID问题
解决方案 沈阳凯文对故障盘进行相应处理,分析RAID0参数,重组RAID0,成功恢复.
修复结果 100%恢复
恢复所用时间 2小时
备     注  

 


相关的主题文章:

RAID6对比RAID0和RAID5的优势









  RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)系统的出现大大改善了硬盘性能和稳定性,经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的RAID级别,下面简要介绍一下RAID0RAID1,RAID5以及RAID6的优势。


  RAID技术的两大特点:一是速度、二是安全。


  在RAID1中,第一个硬盘的数据会自动实时保存第二个硬盘中,即使第一个硬盘数据丢失,也可以在另一个找回,这就是所谓的镜像功能;而RAID0则主要侧重于性能,通过将一个文件分割成两部份存放在两个硬盘中,数据读写变得更快速,但RAID0的问题在于它的可靠性不高。另外,RAID3和RAID5则是为了提高可靠性而产生的技术,RAID3可以把数据奇偶位和校验信息存储在另一硬盘中,而RAID5则与RAID3类似,不同的是它把信息存储在同一个硬盘内,不过这样会降低硬盘的使用空间。万一出错,RAID系统就会利用奇偶位和校验信息恢复数据


  但RAID5存在着一个很明显的问题,就是当系统的硬盘数目和每个硬盘的容量增加时,数据恢复过程中数据丢失的可能性也会增加.


  RAID6的出现正好弥补了RAID5的缺点,因为该技术可以将奇偶位和校验信息备份成两份,即使在数据恢复过程出错,系统也可以继续完成这一操作。


  下图的纵轴代表硬盘正常使用到出现一个不可恢复错误的时间(单位:月),而横轴则表示系统硬盘容量(单位:GB),**和粉红色分别代表恢复过程中RAID5磁盘出错和系统出错的概率,RAID0RAID6则分别用蓝色和浅蓝色表示。


  当系统硬盘容量达到23TB时,RAID6才于RAID5的出错概率相当,所以对于可靠性至关重要的系统来说,RAID6才是首选。



相关的主题文章:

将数据迁移到磁盘的五个理由

                       将数据迁移到磁盘的五个理由


不管企业IT部门的规模有多大,都会被日渐增长的数据量所困扰。在过去的很多年里,方便且成本低廉的磁带一直被用来备份数据。随着备份数据量不断增长,备份到磁带所需的时间也越来越长。随着虚拟磁带库、重复数据删除等产品和技术的出现,将数据备份到磁盘成了可能。磁盘备份解决方案到底能给用户带来哪些好处呢?



  历史数据也能存


  选择磁盘备份方案时,需要考虑的一个重要问题是,磁盘是否具备保存历史数据的能力。如果用户只想把一两周的数据保存到在线磁盘上,那么直接购买SATA驱动器更为有效。但是,如果用户计划在磁盘上保留4周以上的数据全量拷贝,那么SATA驱动器就显得太昂贵了。


  基于磁盘的备份系统,采用了数据去副本技术(比如字节级数据去副本技术),再结合标准的压缩技术,数据备份占用的存储空间比采用SATA驱动器要小得多。使用字节级去副本技术,每次备份时只存储较上次备份有变化的部分,而不是所有的文件,因此减少了对存储空间的要求。


  灾难恢复更轻松


  除了具备写入磁盘的能力,所有的主流备份应用都支持将备份数据拷贝到磁带的功能,以便长期保存数据。这就是所谓的磁盘到磁盘再到磁带(D2D2T)的备份方式。这意味着用户仍然可以选择脱机磁带备份策略。对于一个备份解决方案来说,一项重要的功能是既可以支持在线磁盘备份,也能支持脱机磁带拷贝。然而,如果用户的目标是有效减少甚至是消除对磁带的依赖,那么就需要选择一个磁盘备份系统。磁盘备份系统需要提供将备份数据移动到另一个地点的能力,以满足用户对灾难恢复的要求,既要做到地理上的分离,还要在可承受的时间内完成数据恢复


  在大多数情况下,移动备份数据到另一个地点往往会涉及到广域网(WAN)传输问题。如果用户选择的基于磁盘的备份系统不具备相应的技术,就无法有效地利用广域网在异地进行数据备份和灾难恢复。标准的数据复制方法可以通过广域网复制最新的数据拷贝。


  磁盘备份系统使用字节级的数据去副本技术,以提高存储的效率。利用数据去副本技术,用户仅需要发送变动的数据到异地的存储站点,异地存储站点就可以将这些变动的数据合并到先前的数据备份文件中,构成最新的数据备份。此项技术使得用户可以把所有脱机的历史数据保留在磁盘系统上。


  软硬件齐备


  最简单的磁盘备份系统可由SATA磁盘构成。然而,可能有各种各样的原因造成SATA磁盘不能在现有的备份环境中正常工作。比如,用户购买备份所需的裸磁盘后,需要先组装系统,然后对存储部件进行配备和管理,还要考虑如何实施RAID保护等。从创建原始卷到保持磁盘备份系统的性能,这些可能给用SATA磁盘构建备份方案带来很多不必要的麻烦。


  建立具备压缩功能和字节级数据去副本技术的磁盘备份系统,需要一系列硬件和软件,主要包括:在热备盘上采用RAID6数据保护技术,以保证系统的高可靠性和最短的故障磁盘恢复时间;备份应用软件可写入的NAS接口;压缩软件和字节级数据去副本软件;系统自管理软件;管理脱机历史拷贝的软件,通过广域网只发送字节级变动数据;一个简单的提醒机制,让用户和厂商的技术支持人员能知道所有应该注意的事项。


  具备了所需的软件和硬件后,磁盘备份系统就可以轻松融入到用户现有的备份环境中,自动保护所有的备份数据。磁盘备份系统上线后,不仅可以缩短备份时间,还能减轻管理备份系统的工作压力。


  恢复性能更佳


  磁盘备份系统的架构设计在很大程度上决定了其性能。在备份服务器中,如果是在备份过程中进行压缩和数据去副本,将会显著降低备份速度。有些磁盘备份系统通过提供足够的磁盘空间来执行备份任务,但并不立即做进一步处理,而是在备份完成后再进行压缩和数据去副本,以避免影响备份性能。这样既可以保证备份任务按正常速度进行,同时也提高了存储效率。


  用户还必须考虑系统在数据恢复方面的性能表现,因为不同类型的数据去副本技术会存在差异。使用块级(Block-level)去副本技术的磁盘备份系统,在恢复文件时需要将散布在整个磁盘不同位置的小数据块(8kb)重新组装,从而导致恢复碎片问题,延缓数据恢复的速度。而采用字节级数据去副本技术的磁盘备份系统,会保留最新的全量数据,这样在数据恢复时只要处理先前版本的那些微小变动即可,从而满足了用户对数据恢复性能的要求。


  持续满足备份要求


  大多数公司都认为,年复一年的关键数据增长是很正常的。因此,除了购买适合现有需求的备份解决方案以外,用户还必须搞清楚,如何应对持续的数据增长。如果只是简单地使用SATA驱动器,用户可能要不断购买大量的SATA驱动器,还要考虑配置、负载平衡、性能等问题。


  如果用户正在考虑购买一个带有数据去副本技术的磁盘备份系统,那么应该注意以下几方面问题:数据去副本技术需要占用一定的CPU和内存资源,因此用户要仔细考虑在扩容后如何继续保证系统的性能;用户在每次扩容时要考虑是购买仅能满足现有需求的存储容量,还是额外多采购一些;如何安装、配置和管理新增的存储容量;当系统扩容时,用户能否继续从数据去副本技术中获得益处。


  用户不得不小心谨慎地管理每个系统中可用的容量空间。通常情况下,刚开始构建的备份系统一般都接近满载。在一个无法扩展的系统中,用户不得不在初建系统所剩不多的空间里重新划分和配置备份任务,还要将其他备份任务重定向到新的系统中去。这样用户就有两个分离的系统需要管理。


  为了避免上述问题的发生,用户需要寻找一种支持存储虚拟化的备份系统。虚拟化的系统能为备份任务提供单一的存储池。当用户为了额外的容量需求增加一个服务器时,在虚拟化系统中,新增的服务器可以同原有的服务器进行通信。采用虚拟化的备份系统可以支持服务器的热插拔,只需很小的配置空间甚至不用进行特殊配置,就可与现有的服务器一起构成一个虚拟的存储池,并自动重新分配数据到可使用的空间里,而不必改变备份任务的分配。


  这种虚拟化的备份系统可以提供简单实用的功能,并可根据用户的需求将部分数据移动到新的空间中,从而在整个系统中自动管理所有的容量。


 

相关的主题文章:

2009年5月3日星期日

isqlw 实用工具

isqlw 实用工具




isqlw 实用工具(SQL 查询分析器)使您得以输入 Transact-SQL 语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件,可以启动预配置的 SQL 查询分析器。


语法

isqlw

    [-?] |

    [

        [-S server_name[\instance_name]]

        [-d database]

        [-E] [-U user] [-P password]

        [{-i input_file} {-o output_file} [-F {U|A|O}]]

        [-f file_list]

        [-C configuration_file]

        [-D scripts_directory]

        [-T template_directory]

    ]


 


注释

有用户界面或没有用户界面时都可使用 isqlw 实用工具。若要在没有用户界面的情况下运行 isqlw,请指定有效登录信息(具有信任连接或有效登录 ID 及密码的 SQL Server 2000 实例)和输入及输出文件。isqlw 将执行输入文件的内容,并将结果保存到输出文件中。


如果没有指定输入和输出文件,isqlw 将交互运行并启动 SQL 查询分析器。如果指定了有效登录信息,isqlw 将直接连接 SQL Server 2000 实例。如果指定的连接信息不充足,将出现"连接到 SQL Server"对话框。


-?


显示用法信息。


-S server_name[\instance_name]:


指定要连接到的 Microsoft? SQL Server? 2000 实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器,isqlw 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 isqlw 时,此选项是必需的。


-d database


当启动 isqlw 时,发出一个 USE database 语句。默认值为用户的默认数据库


-E


使用信任连接而不请求密码。


-U user


用户登录 ID。登录 ID 区分大小写。


-P password


是登录密码。默认设置为 NULL。


-i input_file


标识包含一批 SQL 语句或存储过程的文件。必须同时指定 -i 和 -o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。


-o output_file


标识接收来自 isqlw 的输出的文件。必须同时指定 –i 和 –o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。如果未使用 -F 指定文件格式,则输出文件使用与输入文件相同的类型。


-F {U|A|O}


是输入文件和输出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,则使用自动模式(如果文件标为 Unicode 格式,则以 Unicode 格式打开;否则,以 ANSI 格式打开文件)。


-f file_list


将列出的文件装载到 SQL 查询分析器中。使用 -f 选项,可以装载一个或多个文件(文件名以单个空格分开)。如果指定了多个文件,则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符,如 C:\Test\*.sql 中的星号 (*)。


-C configuration_file


使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。


-D scripts_directory


重写在注册表中或在用 –C 指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。


-T template_directory


重写在注册表中或在用 –C 指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。

 

相关的主题文章:

2009年5月2日星期六

RAID-5磁盘阵列容错性分析

RAID-5磁盘阵列容错性分析



 


  为了让磁盘阵列发挥其应用的作用,Linux系统管理员需要对磁盘阵列的容错性能力进行分析。通常情况下,根据企业对待数据损失的不同,每个一个季度或者半年进行测试一次。以保障磁盘阵列能够正常工作。


 

  【IT专家网独家】在上篇文章《在Linux上玩转磁盘阵列》中笔者谈到,RAID-5磁盘阵列是现在使用最普遍的磁盘阵列方式。在RAID- 5这个磁盘阵列模式中,数据平均分布在每个硬盘中。所以即使某个硬盘损坏了,仍然可以凭借其他硬盘上的内容恢复损坏硬盘中的数据。不过,当有两个以上硬盘同时出现故障时,那么硬盘中的数据将无法修复。为了让磁盘阵列发挥其应用的作用,Linux系统管理员需要对磁盘阵列的容错性能力进行分析。通常情况下,根据企业对待数据损失的不同,每个一个季度或者半年进行测试一次。以保障磁盘阵列能够正常工作。


  一、测试磁盘阵列是否在起作用。


  有时候要测试磁盘阵列是否在起作用年,要对磁盘阵列进行“破坏性”测试。这里的破坏性测试笔者是打上了引号的,不是真的去损坏硬盘。为了测试RAID-5磁盘阵列是否有硬盘损坏的情况,需要先把服务器关掉。然后把其中一块硬盘的线拔掉,让系统找不到这块硬盘。如此的话系统就会认为这块硬盘损坏了。会尝试使用其他硬盘中的数据来恢复损害的硬盘中的内容。重新启动Linux系统后,由于只是去掉了一块硬盘,故系统仍然可以启动RAID-5 磁盘阵列。而且采用了磁盘阵列之后,数据会自动恢复。即少了一块硬盘之后,一切仍然可以正常运行。通过查看磁盘阵列的状态记录文件,可以查看相关的信息。


  在Linux系统下,磁盘阵列状态文件保存在/proc/mdstat下。在这个状态文件中,可以看出当前磁盘阵列中启用了几块硬盘,会指明当前硬盘的序号。虽然说同时损坏两块以上硬盘就无法恢复数据,但是,这种情况毕竟还是少数。同时损坏2个硬盘的几率并不是很高。故磁盘阵列在安全性上还是有比较高的利用价值。


  在Linux下部署磁盘阵列的时候,还有一个好处。就是即使有两块硬盘损害了,虽然不能够修复数据,但是仍然可以启动Linux操作系统。当两块以上硬盘损坏时,重新启动之后,系统会发出警告信息。此时管理员可以利用ROOT帐号进行登陆。然后更改配置文件/ETC/RAIDTAB的文件名字再重新启动,就可以顺利登陆到Linux系统中。不过可惜的是,此时硬盘上的数据将无法恢复。


  二、通过配用硬盘提高磁盘阵列的安全性。


  由于2个硬盘以上的损坏将无法恢复数据。所以Linux系统管理员就会考虑,能否在Linux系统中再挂载一个备用硬盘。平时的时候这块硬盘不会包含到磁盘阵列中。当磁盘阵列中某块硬盘出现损坏时,就利用这块备用硬盘替补。如此的话,即使管理员暂时没有发现损坏的硬盘,对企业的影响也不会很大。


  大部分的磁盘阵列技术都支持采用备用硬盘。当某个硬盘工作不正常时,磁盘阵列会立刻启动备用硬盘。并通过一定的容错技术,将数据恢复到正常状态。但是并不是所有的磁盘阵列技术都支持这个备用硬盘。笔者在上篇文章中介绍过几个常用的磁盘阵列方式。其中就提到过Linear模式。由于这种模式并不会分散存储数据,而是一块硬盘存储空间满了以后再存储到另一块硬盘中,故并没有容错机制。此时备用硬盘也就不会起作用。不过在RAID-5 模式下,其是分散存储数据的,具有很高的容错性。所以此时若配置一块额外的备用硬盘,能够让磁盘阵列的安全性更上一层楼。另外这里需要注意的是,当操作系统启动的时候,备用硬盘也会随之启动。只是平时的数据不会存储到这一块硬盘中。而只有当某一个硬盘损坏时,才会这块备用硬盘中存入数据。


  如果系统管理员需要在已有的磁盘阵列中加入备用硬盘的话,则需要修改磁盘阵列的配置文件/etc/raidtab。其实这个更改也很简单。通常情况下只需要向这个配置文件中加入两条语句即可。


  第一条语句:nr-spare-disk 1。这条语句主要用来说明这个硬盘是备用硬盘。除非其他硬盘损坏了否则的话磁盘阵列不会往这个硬盘中存入数据。


  第二条语句:device /dev/had。这一条语句用来指定备用硬盘的分区名称。我们知道,Linux系统跟微软操作系统下的磁盘阵列技术有一个很大的不同。在微软操作系统下,它是以硬盘为单位的。但是在Linux操作系统下,则是以分区为单位的。故在Linux操作系统中,即使只有一块硬盘也可以实现磁盘阵列技术,只是不能够实现相关的功能而以。所以,这里除了要指明硬盘外,还需要指明硬盘分区的名字。


  另外还有一个注意事项。有些Linux管理员可能担心多个硬盘会同时损坏。所以他们会为磁盘阵列配置多个备用硬盘。此时如果硬盘有损坏的话,系统就会考虑需要首先采用哪块硬盘。此时可以利用spare-disk语句来指定首先采用哪块硬盘。如果编号设置为0,就表示这块备用硬盘是此磁盘阵列所使用的第一顺序备用硬盘。其他的配置跟磁盘阵列的常规配置相同,这里就不做重复介绍了。


      编辑推荐:强力推荐Linux下的五大BT下载工具


  不过注意当添加完备用硬盘之后,备用硬盘并不是马上生效的。修改完成磁盘阵列的配置文件之后,需要先利用Raidstop命令停用磁盘阵列;然后再利用Mkriad命令重新初始化磁盘阵列。在这个初始化的过程中,系统会在后台同步所有的硬盘数据。所以这个过程会随着硬盘数据的多少而变化。当硬盘中数据比较多时,这个过程可能会比较久。在这个过程中,千万不要重新启动Linux系统。设置好备用硬盘之后,如果磁盘阵列中有某一块硬盘出现了损坏,则系统会自动启动备用硬盘。并且会根据其他硬盘上的数据重建此备用硬盘上的数据。重建后的数据相当于是损坏硬盘数据的一个拷贝。通过这种方式,就可以提高磁盘阵列的容错性能。



三、注意磁盘阵列空间的使用率。


  磁盘空间的容量是不是几块硬盘容量的总合呢?其实不是。如在RAID-5磁盘阵列中,跟普通硬盘存储数据不同,磁盘阵列技术会自动产生一个同位校验码。这个同位校验码主要用来解决硬盘损坏时数据恢复问题。这里要特别注意,RAID-5并不会特别保留固定的一个硬盘来保存同位校验码,而是将同为校验码分散存储在所有的硬盘当中。所以这种方式并不会因为保存同位校验码在同一个硬盘上而造成整体系统性能的瓶颈。


  但是,虽然RAID-5 不会特别保留固定的一个硬盘来保存同位校验码,但是他会使用一个硬盘的容量来保存同位校验码。这是什么意思呢?也就是说,假设现在有四块硬盘组成了一个磁盘阵列,其中每块硬盘的容量为120G。那么RAID-5 并不会把全部的同位校验码都保存在同一块硬盘上。可是其会在这四块硬盘上分别占用30G的空间,总共120G的容量。也就是说,此时真正可以存储数据的数量为三块硬盘的容量,即360G。对于这个容量,Linux管理员要有一个充分的认识。特别是刚刚接触磁盘阵列的人会有疑问,明明没有这么多的数据,为什么硬盘就这么快满了呢?难道有病毒吗?总之管理员要记住,同位校验码需要占用一个硬盘的容量。不过其并不是单独保存在一个硬盘中,而是在各个硬盘上都获取一定的空间。


  另外需要注意,同位校验码不仅需要牺牲磁盘的容量,而且还会对硬盘的读写性能有不利的影响。读写数据时,磁盘阵列会将一个文件切割成一个个小块,再以小的区块为单位同时向硬盘中读取数据。所以磁盘阵列可以提高硬盘的输入输出效率。从理论上讲,如果有5个硬盘组成磁盘阵列,磁盘陈列会同时从4个硬盘中读写数据。故存取速率可以提高4倍。但是实际工作过程中,由于多处来了一个同位校验码。这个同位校验码的生成、保存也需要牺牲一定的系统资源,故最终的效率并不会达到这么高。不过从这里也可以说明一件事情,就是硬盘数量越多,其硬盘数据读取效率里会越高。


  故架设磁盘阵列时需要耗费比较多的CPU、内存等硬件资源。如果这些硬件资源跟不上的话,磁盘阵列不但不能够起到其应有的作用,而且反而会增加Linux服务器的风险。所以在磁盘阵列安全性分析时,也要考虑CPU、内存等硬件资源能否支持磁盘阵列顺利运转。

相关的主题文章:

在Linux上玩转磁盘阵列RAID

在Linux上玩转磁盘阵列RAID



 


  大部分用户都会担心,万一硬盘发生故障,数据丢失咱们办呢?其实现在不少用户由于硬盘容量等方面的限制,都会在主机上挂有不止一块的硬盘。此时若把这些硬盘组成一个磁盘阵列,那么用户就可以高枕无忧了。


 

  【IT专家网独家】大部分用户都会担心,万一硬盘发生故障,数据丢失咱们办呢?其实现在不少用户由于硬盘容量等方面的限制,都会在主机上挂有不止一块的硬盘。此时若把这些硬盘组成一个磁盘阵列,那么用户就可以高枕无忧了。磁盘阵列可以将多个硬盘组成一个虚拟的硬盘。在操作上,用户会觉得跟使用单一硬盘没有什么不同。但是在实际存储数据过程中,磁盘阵列是将数据分别保存在不同的硬盘上,以提高数据的安全性。笔者今天将跟大家说说如何在Linux环境下玩转磁盘阵列。


  一、使用磁盘阵列可以带来哪些好处?


  在具体如何配置磁盘阵列之前,笔者要先给大家介绍一下利用磁盘阵列的好处。先给大家一点动力,让大家能够继续看下面的内容。


  第一个好处是磁盘阵列可以提高数据存取的效率。硬盘其实就好像是一个盒子,其内部空间很大,但是出入的口子很小。当要把大量数据保存在这个盒子的时候,只有通过这个小小的盒子来保存数据。其存取的效率明显不是很高。但是,如果采用磁盘阵列的话,当系统向硬盘中写入数据的时候,会先把大块的数据分割成多个小区快,并同时写到不同的硬盘中。这就好像在一个盒子中开了多个出入孔,同时往这个孔中加入数据一样,可以提高硬盘的写入速度。同理,在读取的时候,也可以同时从不同的硬盘中读取,提高数据读取的速度。所以磁盘阵列可以提高数据的存储效率。为此,在一些服务器上部署磁盘阵列,可以提高服务器的应用性能。


  第二个好处是可以整合多块硬盘。多数的Linux系统管理员也许都遇到过这种问题。一块硬盘用着用着,突然空间不够了。此时该如何处理呢?其实,管理员不需要更换硬盘。而是可以把多个小容量的硬盘整合起来,组合成一个容量比较大的虚拟硬盘。因为磁盘阵列操作起来,就好像跟一块硬盘一样,所以不会给用户的工作带来不利的影响。所以把多块闲置的硬盘利用磁盘阵列组合成一块虚拟硬盘,是解决磁盘容量不足的一个不错的方法。


  第三个好处是可以提供比较高的安全性。当硬盘中的数据存储发生错误时,磁盘阵列技术能够利用现有的信息对损坏的数据进行自动修复。磁盘阵列会产生一个校验码。这个校验码会存放在不同的磁盘上。当某块磁盘突然出现损坏时,磁盘阵列技术就可以利用这个校验码来恢复损坏磁盘的数据。故磁盘阵列技术也经常被用在Linux服务器,以提高服务器数据的安全性。


  二、Linux磁盘阵列与其它操作系统的差异。


  从磁盘阵列的概念中,我们知道磁盘阵列是由一个个不同的硬盘组合而成的一个虚拟硬盘。其他操作系统,如微软操作系统,若要采用磁盘阵列的话,也有这方面的限制。但是,Linux与其他操作系统不同。它可以在同一块硬盘中实现磁盘阵列。也就是说,Linux操作系统不是以硬盘为单位来组成磁盘阵列的,而是以分区为单位。既可以通过把一个硬盘分割成不同的分区,然后再把它们组合成一个磁盘阵列。


  不过在同一块硬盘上分割成多块分区,并重新组合成一个磁盘阵列的话,就不能够享受磁盘阵列所带来的好处。如上面所讲的提高硬盘数据存取效率、提高数据安全性等等,都将不在有。也就是说,其已经失去了将数据存放在不同磁盘、以降低数据损坏风险、提高数据存储效率的目的。磁盘阵列的使用价值将无法体现。


  故系统管理员之所以把一块硬盘分割成不同的分区,并实现磁盘阵列,主要是出于实验、学习的目的。在实际部署中,笔者建议企业还是采用至少三块硬盘来实现磁盘阵列,让磁盘阵列真真发挥其应有的效益。


  三、Linux系统下如何设置磁盘阵列?


  在Linux系统中,磁盘阵列主要通过/etc/raidtab配置文件来控制的。若系统管理员需要实现磁盘阵列的话,就需要手工创建这个配置文件。或者从其他地方复制这个文件,并进行相应的修改。默认情况下,在Linux系统中不会有这个文件。下面笔者就对这个文件中的主要参数进行讲解,帮助大家建立一个正确的磁盘阵列配置文件。


  参数一:raid-level 指定磁盘阵列的类型。


  磁盘阵列到目前为止,有不下于十种的类型。而Linux系统则只支持其中的不种类型。系统管理员需要了解这五种磁盘阵列类型的特点,并根据企业的实际应用场景选择合适的磁盘类型。笔者平时比较喜欢采用Linear或者RAID-5这两种磁盘阵列类型。为此就给大家分析一下这两个磁盘类型的特点。


  Linear磁盘阵列模式比较简单,它只是起到一个磁盘的整和作用。如果采用这种磁盘阵列模式,Linux系统会先将数据存放在第一块硬盘中。只有当这个硬盘空间已经使用完了,操作系统才会将数据存储到第二块硬盘中。以此类推。在这种模式下,由于没有把数据分块同时存入到多个硬盘中,所以不能够提高数据存取效率。同时,也不存在校验码,故也没有数据自我修复的功能。也就是说,这种模式的磁盘阵列,只起到了把小容量的硬盘整和中一块大硬盘的作用。所以这种模式实际应用的不多。但是因为其配置简单,所以是用来理解磁盘阵列这种技术的好渠道。


  RAID-5磁盘阵列模式是现在主流的磁盘阵列模式。在这种模式下,Linux操作系统会将数据切割成固定大小的小区块,并同时分别保存到不同的硬盘中。而且这种磁盘阵列模式,会产生校验码,并且把校验码存放在不同的硬盘中。由于其并没有保留固定的一块硬盘来存放同为校验码,所以当任何一块硬盘损坏时,损坏的数据都可以被修复。若采用这种模式,可以提高数据的存储效率、增强数据的安全性、把不同硬盘整和成一块虚拟硬盘。而且,其没有把同位校验码存放在同一块硬盘中,所以不会造成整体系统性能的瓶颈。笔者现在企业中的服务器,就是采用了这种磁盘阵列模式。



参数二:chunk-size 指定分块的大小。


  采用磁盘阵列后,数据会被分割成许多小块,然后写入到硬盘中。那么这个块的大小是多少呢?在磁盘阵列配置文件中,需要指定每个写入区块的大小。其最小单位是2KB。用户指定的区块大小,必须都是2的整数次方。如可以设置为4、8、16等等。不过这个参数配置对于Liner模式下没有实际意义。因为在Liner模式下实际上不会对数据进行分块。因为其先把数据存储在第一块硬盘上。当第一块硬盘满后在存储在第二块上,以此类推。故不会对数据进行分块。所以这个参数对Liner这种磁盘阵列模式不起作用。


  参数三:persistent-superblock:设置是否要写入超级块。


  在微软的操作系统下部署磁盘阵列的话,就不需要设置这个内容。但是在Linux下,必须对此进行设置。因为Linux系统采用的是Ext2/3文件系统。对于这个文件系统来说,硬盘分区首先被划分为一个个Block。同一个ext2文件系统上的每个block大小都是一样的。但是对于不同的ext2文件系统,block的大小可以有区别。典型的block大小是1024 bytes或者4096 bytes。这个大小在创建ext2文件系统的时候被决定,它可以由系统管理员指定,也可以由文件系统的创建程序根据硬盘分区的大小,自动选择一个较合理的值。一个硬盘分区上的block计数是从0开始的,并且这个计数对于这个硬盘分区来说是全局性质的。


      编辑推荐:关于LINUX系统ROOT帐号管理的几个启示


  Superblock有一个比较时髦的中文名称,叫做超级块。超级块是硬盘分区开头(开头的第一个byte是byte 0)从 byte 1024开始往后的一部分数据。由于 block size最小是 1024 bytes,所以super block可能是在block 1中(可能此时block 的大小正好是 1024 bytes),也可能是在block 0中(可能此时block 的大小超过 1024 bytes)。超级块中的数据其实就是文件卷的控制信息部分,也可以说它是卷资源表,有关文件卷的大部分信息都保存在这里。所以这个超级块中的信息就好像是FAT32文件系统下的分区格式,非常的重要。


  这个参数就是用来控制是否需要写入硬盘的这个块。如果要写入的话,就设置为1;不写入的话,就设置为0。

相关的主题文章: