linux系统设置raid 10,确保高性能和容错的磁盘输入/输出的图文教程 【百科全说】-凯发k8官方旗舰厅

腾讯视频/爱奇艺/优酷/外卖 充值4折起

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阵列是如何工作的?

如果你需要实施一种支持输入/输出密集型操作(比如数据库、电子邮件和网站服务器)的存储凯发app官网登录的解决方案,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

12/18 15:54
raid 10(又叫raid 1 0或镜像条带)阵列结合了raid 0和raid 1两者的功能特性,从而提供了高性能、容错的磁盘输入/输出操作。在raid 0中,读取/写入操作跨多个驱动器并路执行;在raid 1中,一模一样的数据写入到两个或多个驱动器上。 在本教程中,我将介绍如何使用5只相同的8 gib磁盘,构建一个软件raid 10阵列。虽然用来构建raid 10阵列的最大磁盘数量是4只(比如一组条带化的两个镜像),但我们将增添一只额外的备用驱动器,以防其中一个主驱动器出现故障。我们还将介绍
12/03 03:04
问题描述:在windows10下安装ubuntu. 使用工具:windows10.ubuntu16.04 lts安装包.ultraiso.easybcd. 操作步骤: 1.安装之前要给ubuntu分出一定大小的磁盘空间.我用170g来安装ubuntu.我的硬盘比较大,如果硬盘较小,可以选择50g等大小给ubuntu.详细分区操作见. 2.制作ubuntu系统的u盘启动盘.这里会格式化掉u盘里面的数据,如果有重要数据,要先做好备份. 在写入方式里选择“usb-hd
01/29 08:52
本教程基于ubuntu 17.10,但是除了下面的gnome插件部分,同时也支持ubuntu16以上的几个版本 前言 ubuntu 17.10已经于2017年10月19日正式发布. ubuntu向我们提供了友好的linux桌面用户体验,也有原生终端和原生docker等相对于windows的优势,很适合开发者和需要学习linux的人群. 但在windows上的office.adobe系列工具等,在linux上都难以找到能提供同样体验的软件. 所以,双系统就成了非常好的选择. 最终效果 安装准备 一
03/02 19:55
主要内容:(笔记总结--会不定时补充.修改,如有错误,欢迎指正探讨)  一. raid详解 二. mdadm工具介绍 三. 创建一个raid的基本过程 四. 磁盘阵列的管理 五. raid优化 raid详解: 描述:raid:(redundant array of indenpensive disk) 独立磁盘冗余阵列: 磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同
12/10 13:14
昨天重装一台老服务器的时候发现 intel hardware raid 控制卡有问题,不能识别所有硬盘,但是安装操作系统过程中可以识别所有硬盘,还有一个问题就是操作系统安装正常,但是安装完后无法启动,某种原因导致 bios 不能从硬盘启动系统.所以打算把操作系统安装到一个 usb 盘上,然后从 usb 盘启动系统,并给上面的6块硬盘做成 software raid 10 后挂载到系统里用. 做 software raid 不要求硬盘都一模一样,但是强烈推荐用同一厂商.型号和大小的硬盘.为啥 ra
01/16 04:38
linux内核发明人linus torvalds今天发布了linux内核4.10的第5个候选版本(也就是rtm版),相隔上一个版本已过去约一周的时间.torvalds表示正式版4.10内核将在2月12日到来. linus torvalds表示:linux内核开发进度已逐步回归正轨,各项目进展顺利.此次第5个rtm版包括约250处修正,文件调整数量将近300个,除了驱动和架构更新之外,还有工具.网络及文件系统方面的更新. 按照规划,linux内核4.10版本将会有7个rtm版,这意味着第6个rtm
07/15 21:32
vmware workstation 10 让你的电脑可以同时运行二个或更多windows、dos、 linux系统等多个系统。今天小编就为大家提供一篇vmware workstation 10 激活破解安装详细图文教程,希望对大家有所帮助! 假如您使用vmware workstation 10,那么本教程可能帮助到您。 假如您使用vmware workstation 10 的未激活版本,那么本可能帮助到您 假如您想使用vmware workstation 10 的全功能版本,那么本经验可能帮助
04/06 20:19
mac刷测试版与ios设备刷测试版有所不同的是,ios设备如果升级测试版后遇到什么问题,要想刷回原来的版本是比较容易(验证未关闭的情况下);但mac刷测试版后重装系统相对来说,是比较麻烦的。 因此,想升级体验苹果yosemite(os x 10.10)测试版的用户,建议将测试版的系统安装在一个硬盘分区,避免覆盖原系统。这样即使测试版的系统影响工作,我们还是可以回到原系统来。不过最好确保您的mac硬盘总容量在256gb以上才有必要考虑将yosemite安装到硬盘分区。 在硬盘分区安装os x10.
04/04 18:17
微软在 build 2016 大会上宣布将在 windows 10 中内置 linux bash,引起巨大轰动.到了 windows 10 内部预览版 build 14316,这个特性终于面世了. 经过本经验实验,该 bash 支持运行 linux 的许多命令:目前来说,对于程序员调试程序.学生学习 linux 命令等用途来说,还是很有意义的,更不用说将来它的功能可能会更强大. 下面小编为大家分享win10 build 14316启用linux bash 环境图文教程,有需要的朋友快快来参考一下
网站地图