Linux系统设置RAID 10,确保高性能和容错的磁盘输入/输出的图文教程

作者&投稿:边汤 (若有异议请与网页底部的电邮联系)
~

RAID 10(又叫RAID 1+0或镜像条带)阵列结合了RAID 0和RAID 1两者的功能特性,从而提供了高性能、容错的磁盘输入/输出操作。在RAID 0中,读取/写入操作跨多个驱动器并路执行;在RAID 1中,一模一样的数据写入到两个或多个驱动器上。

在本教程中,我将介绍如何使用5只相同的8 GiB磁盘,构建一个软件RAID 10阵列。虽然用来构建RAID 10阵列的最大磁盘数量是4只(比如一组条带化的两个镜像),但我们将增添一只额外的备用驱动器,以防其中一个主驱动器出现故障。我们还将介绍一些工具,你以后可以用来分析RAID阵列的性能。

请注意:全面深入地介绍RAID 10及其他分区方案(以及不同尺寸的驱动器和文件系统)的所有优缺点不在本文的探讨范围之内。

RAID 10阵列是如何工作的?

如果你需要实施一种支持输入/输出密集型操作(比如数据库、电子邮件和网站服务器)的存储解决方案,RAID 10是正确的选择。下面会介绍其中原委。不妨先看一看下图。

镜像1和镜像2的条带

设想一下某个文件由上图中的数据块A、B、C、D和E组成。每个RAID 1镜像集(比如镜像1或镜像2)将数据块复制到两个设备中的每一个。由于这种配置,写入性能有所下降,因为每个数据块都要写入两次,每只磁盘各写入一次,而相比从单只读盘读取数据,读取性能依然没有变化。优点在于,这种方案提供了冗余性,因为除非每个镜像中的多只磁盘出现故障,否则可以维持正常的磁盘输入/输出操作。

RAID 0条带的工作原理是,把数据划分成多个数据块,并将数据块A写入到镜像1,同时将数据块B写入到镜像2,依次类推,因而提高了总体的读取和写入性能。另一方面,没有一个镜像含有向主集提交的任何一部分数据的完整信息。这意味着,如果其中一个镜像出现故障,整个RAID 0组件(以及因而RAID 10集)就无法操作,数据出现无法恢复的丢失。

构建RAID 10阵列

RAID 10阵列有两种可能的构建方案:复杂方案(只要一步就能构建),或嵌套方案(构建方法是,先构建两个或多个RAID 1阵列,然后把它们用作RAID 0中的组件设备)。在本教程中,我们将介绍构建复杂的RAID 10阵列,原因在于这种阵列让我们可以使用数量为奇数或偶数的磁盘,并且可以作为单一RAID设备来加以管理,而不是介绍嵌套方案(只允许数量为偶数的驱动器,必须作为嵌套设备来加以管理, RAID 1和RAID 0分开来处理)。

假设你已安装了mdadm,该后台程序在你的系统上运行。想了解详细内容,请参阅这篇教程:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html。另外假设已在每只磁盘上创建了主分区sd[bcdef]1。因而,ls -l /dev | grep sd[bcdef]的输出应该是这样:

接下来使用下面这个命令,构建一个RAID 10阵列:

# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1 --spare-devices=1 /dev/sdf1

该阵列构建完毕后(构建过程应该用不了几分钟),# mdadm --detail /dev/md0的输出应该是这样:

在我们继续下一步之前有几点需要予以说明。

1. Used Dev Space表明了阵列所使用的每个成员设备的容量。

2. Array Size是指阵列的总大小。就RAID 10阵列而言,这相当于(N*C)/M,其中N是指活动设备的数量,C是指活动设备的容量,M则指每个镜像中的设备数量。所以在这里,(N*C)/M相当于(4*8GiB)/2 = 16GiB。

3. Layout指数据布局的具体细节。可能的布局值如下所示。

•n(默认选项):意味着 near拷贝。一个数据块的多个拷贝在不同的设备中处于相似的偏移(offset)。这种布局提供的读取和写入性能与RAID 0阵列的性能相似。

•o表明offset拷贝。不是数据段在条带里面复制,而是整个条带被复制,但由一个设备轮转,那样重复数据块分布在不同的设备上。因而,随后的数据块拷贝在下一个驱动器中,下移一个数据段。想让你的RAID 10阵列使用这种布局,将--layout=o2添加到用来构建阵列的命令。

•f 表明far拷贝(偏移全然不同的多个拷贝)。这种布局提供了较好的读取性能,却提供了较差的写入性能。因而,这种方案最适合需要支持的读取操作比写入操作多得多的系统。想让你的RAID 10阵列使用这种布局,将--layout=f2添加到用来构建阵列的命令。

--layout选项中n、f和o后面所跟的数字表明了所需的每个数据块的副本数量。默认值是2,但它可以是磁盘中设备数量的2倍数。通过提供数量足够的副本,你就能尽量减少单个驱动器的输入/输出影响。

4. Chunk Size,按照Linux RAID维基,数据段大小(chunk size)指写入到设备的最小单位的数据。最优化的数据段大小取决于输入/输出操作的速度以及相关文件的大小。如果写入大文件,只要确保数据段相当大,有望看到较低的开销,而主要存储小文件的阵列有望更加得益于较小的数据段。想为你的RAID 10阵列指定某个数据段大小,将--chunk=desired_chunk_size添加到用来构建阵列的命令。

遗憾的是,没有一应俱全的方法可以提升性能。下面是值得考虑的几个指导准则。

•文件系统:总的来说,XFS据说是最好的文件系统,而EXT4仍然是个不错的选择。

•最佳化布局:far布局提升了读取性能,但降低了写入性能。

•副本数量:更多的副本尽量减小了输入/输出影响,但需要更多的磁盘时也增加了成本。

•硬件:固态硬盘比传统的旋转磁盘更有可能显示性能提升的优点(在同一环境下)。

使用DD测试RAID性能

下列基准测试可以用来核查我们的RAID 10阵列(/dev/md0)的性能。

1. 写入操作

256MB大小的单个文件被写入到设备上:

# dd if=/dev/zero of=/dev/md0 bs=256M count=1 oflag=dsync

512字节被写入1000次:

# dd if=/dev/zero of=/dev/md0 bs=512 count=1000 oflag=dsync

由于dsync标记,dd绕过系统文件缓存,执行同步写入到RAID阵列的操作。这个选项用来消除RAID性能测试期间的缓存效应。

2. 读取操作

256KiB*15000(3.9 GB)从阵列拷贝到/dev/null:

# dd if=/dev/md0 of=/dev/null bs=256K count=15000

使用Iozone测试RAID性能

Iozone(http://www.iozone.org)是一种文件系统基准测试工具,让我们可以测量的众多磁盘输入/输出操作,包括随机读取/写入、顺序读取/写入和重新读取/重新写入。它可以将结果导出到微软Excel或LibreOffice Calc文件。

将Iozone安装到CentOS/RHEL 7上

启用Repoforge软件库,然后执行下列命令:

# yum install iozone

将Iozone安装到Debian 7上

# aptitude install iozone3

下面这个iozone命令将在RAID-10阵列中执行所有测试:

# iozone -Ra /dev/md0 -b /tmp/md0.xls

•-R:生成与Excel兼容的报告,并发送到标准输出设备。

•-a:在全自动模式下运行iozone,涵盖所有测试和可能的记录/文件大小。记录大小:4k至16M,文件大小:64k至512M。

•-b /tmp/md0.xls:将测试结果存储在某个指定的文件。

但愿本文有所帮助。如果您对于提升RAID 10的性能方面有何想法或高招,欢迎交流。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。

英文:http://xmodulo.com/setup-raid10-linux.html




Linux系统中设置权限0777怎样设置?
1、首先打开Xftp,并登陆到网站目录下。2、右键网站目录文件夹,选择更改权限。3、把权限设置城777,然后确认。4、还可以打开Xshell5,然后登录服务器。5、输入chmod -R 777 \/alidata\/www\/wordpress\/。是指www文件下wordpress文件下所有文件权限为777。6、重启服务器输入service nginx restart,就完成了。

Linux系统如何设置安全管理
1.引导程序安全 Linux系统的root密码是很容易破解的,当然前提是你没有设置引导程序密码,如GRUB或LILO,为了防止通过引导程序破译root密码,强烈建议设置GRUB或LILO的引导密码,可以编辑其配置文件\/etc\/grub.conf或\/etc\/lilo.conf,设置password参数。2.不安全权限设置 大家常见的Linux下文件权限是r w x,...

Linux系统查看IP地址 IP设置与查看命令大全
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核,在很多专业计算机场合都有用到。Linux操作系统使用相对较为复杂,由于通常都是命令操作,比我们熟知的Winodows系统更不容易上手,但其安全性却要更高,针对需要设置Linux系统网络的朋友,以下百事网小编为其附上linux系统IP...

在Linux系统上配置RealVNC服务
在elementary OS 5.0 Juno (amd64)上优雅配置RealVNC服务 基于GNOME的Pantheon界面和简洁设计的elementary OS 5.0 Juno,为Linux爱好者提供了一个直观易用的环境。在这样的系统上,我们可以借助VNC Connect 6.3.1 (x64)实现远程控制,让管理变得更为方便。下面,我们将逐步指导如何在elementary OS中...

LINUX安全运维之:文件系统的权限修改与安全设置
在Linux系统中,如果一个用户以root的权限登录或者某个进程以root的权限运行,那么它的使用权限就不再有任何的限制了。因此,攻击者通过远程或者本地攻击手段获得了系统的root权限将是一个灾难。在这种情况下,文件系统将是保护系统安全的最后一道防线,合理的属性设置可以最大限度地减小攻击者对系统的破坏程度,通过chattr...

linux如何进入系统文件\/etc\/profile修改内容
\/etc\/profile 默认权限为 -rw-r--r-- 即只有root用户可以修改,其它用户只能读取。要修改\/etc\/profile,先要使用root用户登录系统,再使用文本编辑软件打开\/etc\/profile进行编辑,最后保存退出即可。关于文本编辑软件:字符界面下使用vi或vim进行编辑,命令形式:vi \/etc\/profile图形界面下可用gedit进行编辑...

linux设置u盘启动项linux设置u盘启动
怎么让linux系统直接在u盘启动?让linux系统在u盘启动的方法:1.打开浏览器,下载一个可以在u盘启动的镜像(一般称之为live或desktop)。2.这里以ubuntu为例,下载后使用rufus写入u盘。然后,就可以使用u盘启动Linux系统了,注意要选择“试用linux”选项。ubuntu系统怎么设置开机U盘启动?1、确保足够容量的U盘...

设置linux串口输出登记设置linux串口
linux系统如何使用ioctl设置波特率?嵌入式系统经常会通过串口打印调试信息,在Linux环境下,可以使用stty设置串口波特率等参数,然后使用cat就可以正确捕获串口输出的调试信息。电脑串口怎么样设置?当然是串口。r串口硬件电路简单,基本不需要任何驱动以及软件,且可以根据需要提供硬件加载各个阶段的调试信息(如...

linux重启命令
执行上述代码后,系统会立即重启。其中-r表示重启,now表示立即执行。如果希望延迟执行重启操作,可以使用+参数加上延迟时间,比如shutdown -r +5表示5分钟后重启。除了直接使用命令行,Linux系统也可以通过图形化界面进行重启操作。在大多数Linux发行版的桌面环境中,都提供了重启按钮,只需点击按钮即可触发...

Linux系统安全配置详细解析
Linux系统上的所有用户都可以读到\/etc\/passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件\/etc\/shadow,只允许有特殊权限的用户阅读该文件。 在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能...

芝山区18727916892: linux磁盘阵列怎么配置 -
司绍特尔: 磁盘阵列配置文件为/etc/raidtabraiddev /dev/md0 //指定磁盘阵列的设备名称raid-level linear //指定采用的是Linear模式nr-raid-disks 2 //此阵列由2个硬盘组成chunk-size 32 //数据写入时

芝山区18727916892: 我的服务器上有4块硬盘系统是linux 做成RAID10在做系统时能不能直接就做成RAID10呢 -
司绍特尔: 那要看服务器型号,服务器的导航盘上在装操作系统之前就要配置raid的.如果没有导航盘,则在开机的时候看一下启动信息,会提示你按那个键可以进入raid卡配置模式,是可以再做系统之前做好raid的.

芝山区18727916892: linux系统怎么加载raid驱动 -
司绍特尔: 一般情况想常用的服务器,ibm hp dell等,linux系统都会内置raid卡允动的,不需要自己安装驱动,至少我是很少碰见要装驱动的情况.如果发现安装时认不到硬盘.可以按照以下官方说明来安装驱动.有问题可以在上班时间HI我.都在线. RHEL5, unlik...

芝山区18727916892: 我要装linux到服务器上,需要设置磁盘阵列才能安装成功,但是没找到进设置的界面.
司绍特尔: 服务器带有引导光盘 installation and server management 你找一下,直接放入光驱,重启服务器,通常会直接读盘,在这里可以直接设置raid,和选择安装系统,都是中文的,一步一步来就可以,如果你没有引导盘,可在开机自检时按F10 进入dosa 安装界面,选择os deployment ,然后会然你配置raid,之后选择系统版本,按要求安装系统就可以了

芝山区18727916892: 硬盘阵列模式RAID 0,RAID 1,RAID 5,RAID 10是什么意思? -
司绍特尔: aid1就是同时对2个硬盘读写(同样的数据).强调数据的安全性.比较浪费. raid5也是把多个(最少3个)硬盘合并成1个逻辑盘使用,数据读写时会建立奇偶校验信息,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上.当RAID5的...

芝山区18727916892: 如何使用U盘在Linux上安装RAID驱动在安装Linux操作系统时,使用U -
司绍特尔: 在windows系统中安装Linux系统的步骤:1、使用u深度u盘启动盘制作工具制作好的启动u盘2、ghost win7 系统镜像文件 第一步:制作完成u深度u盘启动盘 第二步:下载Ghost Win7系统镜像文件包,存入u盘启动盘 第三步:电脑模式更改成ahci...

芝山区18727916892: 如何在centos光盘中添加raid驱动 -
司绍特尔: linux系统是我们公司经常用的,有时会让做raid驱动,但在做系统时提示找不到raid,这时我们就要加载raid驱动来做系统.1、光盘启动进入安装界面,在boot:后面输入linux dd按回车2、如果驱动不正确则提示:Failed to mount drive disk 如果驱动正确则提示加载usb-storage ,此时驱动已经完全加载3、询问是否要加载驱动选择yes4、选择sda设备usb设备都是被识别为scsi设备 5、是否要加载/dev/sda设备选择ok6、进入下图,点击ok7、选择你需要的驱动程序按ok8、是否要加载额外的驱动选择no,这样就可以正常安装系统了 注意事项:U盘一定要挂载好,不然一切白费

芝山区18727916892: linux软raid 只能针对分区进行配置吗 -
司绍特尔: body{ line-height:200%; } RAID,独立磁盘冗余阵列,用于将多个廉价的小型磁盘驱动器合并成一个磁盘阵列,以提高存储性能和容错功能.RAID可分为软RAID和硬RAID,软RAID是通过软件实现多块硬盘冗余的.而硬 RAID一般是通过RAID卡...

芝山区18727916892: 如何在Linux上安装服务器管理软件Cockpit -
司绍特尔: 将服务器的硬盘重做RAID,这个是在开机时按照提示按下“Ctrl + H ” 进入RAID设置,清除原来硬盘上的信息,再在BIOS中选着光盘启动试试

芝山区18727916892: DELL服务器设置 -
司绍特尔: DELL 11代系列服务器引导盘安装2003 2009-05-19 12:23 注:此版本dosa支持相应系统为:1、Server 2003 sp2 ; 2、Server 2003 sp2 64 bit ; 3、windows 2003 SBS sp2; 4、Server 2008; 5、windows 2008 SBS\EBS x64; 6、Red hat Linux4.7 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网