在Linux下用软件实现RAID功能

数据安全性是人们在使用计算机中最重要的问题之一。通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份。同样,在Linux环境下,我们也可以采用这种技术。

在Linux环境下,采用Raidtools工具,不仅可以将两个硬盘进行镜像,还可以制作软RAID0、RAID1、RAID5。说是软RAID,是因为通常情况下,RAID盘是通过专用的RAID卡进行的,而在Linux环境下,可以利用Raidtools软件实现RAID功能,所以称为软RAID。本文介绍根据不同的Linux版本,建立并使用RAID盘的几种方法。

一、较早的Linux版本

自行下载并编译Raidtools软件包,较早版本的Raidtools软件包名为md,现在已正式更名为Raidtools。下载地址:中国自由软件库。

如果你已经从网上下载了Raidtools-0.41.tar.gz软件包,解压后,自行编译,步骤如下:

$gunzip -d raidtools-0.41.tar.gz

$tar -xvf raidtools-0.4.1.tar

在使用Raidtools之前,首先要知道目前正在使用的核心是否支持md。如果你正在使用的核心是2.0.X,并且不是自己编译过的话,大多数情况下是支持软RAID的。如果不能确定,则应自己编译核心。在配置时,应选择对md的支持。确定了正在使用的核心支持RAID后,编译Raidtools软件包如下:

$cd raidtools-0.41

$./configure

$make

$make install##make install在/dev下产生md0-md3共4个设备。

单击OK按钮,完成安装。

在使用Raidtools前,还需确定要使用的RAID的种类。目前使用Raidtools可以作RAID0、RAID1、RAID5。由于只有两块硬盘而无法使用RAID5,除了RAID5外,还可以选择作Linear模式或RAID0。笔者选择了作RAID0。以下为制作过程。

1.建立RAID盘

(1)关机,将两块小硬盘分别加到第一个IDE控制器的Slave接口上及第二个IDE控制器的Slave接口上(笔者这台机器上的CD-ROM接在第二个IDE控制器的Master上)。

(2)加电启动系统,以Root登录,运行以下命令对硬盘进行分区:

#fdisk /dev/hdb

将全部硬盘划分成一个主分区,建立一个/dev/hdb1分区。

#fdisk /dev/hdd

同样,将全部硬盘划分成一个主分区,建立一个/dev/hdd1分区。

(3)之后:

#/sbin/mdcreate raid0 -c4k /dev/md0 /dev/hdb1 /dev/hdd1

当然,为了提高访问速度,你可以将硬盘进行比较细致的划分,尽可能将分区合理分布在不同的硬盘上。然后,再用Mdcreate将它们组合成一个mdx(x:1,2,3)。

2.使用RAID0盘

(1)启动新建立的RAID盘:

#/sbin/mdadd -ar

(2)查看/proc/mdstats文件的内容,以检查RAID0的状态。

#cat /proc/mdstats

系统显示:

personalities : [1 linear] [2 raid0]

read—ahead not 8092 sectors

md0 : active raid0 hdb1 hdd1 xxxx

blocks 8k chunks

md1 : inactive

md2 : inactive

md3 : inactive

这表示,新建的RAID0已经可以正常运行了。

为了使用新RAID盘,还应在新盘上建立新的文件系统,建立过程如下:

#mke2fs /dev/md0##注:在新的存储设备上建立Ext2文件系统

建立了新的文件系统,再将它Mount到根目录下的某个目录上,就可以正式使用了。安装方法如下:

#mount /dev/md0 /opt ##注:/opt为笔者在根分区建的一个Mount点

若有必要,也可以用Raidtools建立RAID5,以提高数据的可靠性。

3.自动执行RAID0的设置

将RAID0的加载及文件系统的加挂全加入到Init.sysinit文件中,这样,只要系统一启动,首先就执行RAID,用户就不必再手工安装了。

用户应将以下两个命令加入到Init.sysinit文件中。

/sbin/mdrun -ar

mount /dev/md0 /opt

当然,如果你不觉得麻烦,也可以手工运行以上命令,以手动方式启动软RAID盘。

二、较近的Linux版本

如果你安装的Linux版本较新,其中已经带有Raidtools工具,那么,就不必再下载软件并自己编译了。使用时可以这样处理:

1.建立一个文件/etc/raidtab(以制作RAID0为例),文件内容如下:

raiddev /dev/md0

raid-level 0

nr-raid-disks 2

persistent-superblock 1

chunk-size 4

device /dev/hdb1

raid-disk0

device /dev/hdd1

raid-disk1

2.运行以下命令:

#mkraid /dev/md0

这样就可以生成一个新的设备:

/dev/md0。

启用软RAID方法:

#raidstart /dev/md0

其余操作同上。

如果你正在使用的Linux系统版本很新,可能以上两种情况都不适合你,那么,你可以采用第三种方法使用软RAID。

三、最新的Linux版本

笔者的一台PC上安装了Red Hat Linux 6.1,自行编译Raidtools0.42、0.50beta2时,先是找不到所要的头文件,将所需头文件复制后,编译仍然通不过。原来,由于新的版本采用了一系列新的函数,情况稍有一点不同。不过,新的版本中,提供了Raidtools,在/sbin目录中,有Raidtools的一系列工具,其中有Mkraid、Raid0run、Raidstop、Raidstart等一组工具。如果你想自己编译,可以从中国自由软件库中查找到最新版为0.9的Raidtools,自行编译0.9版的Raidtools,编译正常通过。

新版的Raidtools稍有一点不同,笔者使用系统自带的Raidtools,制作软RAID方法如下:

1.建立文件/etc/raidtab,文件内容如下:

raiddev /dev/md0

raid-level 0

nr-raid-disks 2

persistent-superblock0

chunk-size8

device /dev/hdb1

raid-disk0

device /dev/hdd1

raid-disk 1

2.生成软RAID设备,运行以下命令:

# mkraid -c /etc/raidtab /dev/md0

之后,运行以下命令,以查看目前RAID的运行状态:

[root@rh61 /proc]# cat mdstat

如果系统显示如下:

Personalities : [raid0]

read—ahead 1024 sectors

md0 : active raid0 hdd1[1] hdb1[0] 2202416 blocks 8k chunks

unused devices:

表示你的RAID0已正常运行了。

3.建立新的文件系统

现在,为了使用新生成的设备,我们应在新的RAID盘上建立Ext2文件系统,建立新的文件系统的命令如下:

[root@rh61 /sbin]# mkfs.ext2 /dev/md0

经过大约两三分钟,新的文件系统正确生成。现在就可以开始使用它了。使用方法如下:

[root@rh61 /sbin]# mount -t ext2 /dev/md0 /opt

将/dev/md0设备加挂(mount)到/opt安装点上。

此后,笔者在此软RAID盘上安装了Sybase 11.0.3.3。经过测试,发现整个RAID0系统的性能还不错。

(0)

相关推荐

  • linux服务器磁盘扩容的方法(图)

    1.系统环境如下图: 2.为该系统添加一块新的虚拟硬盘,添加后需重启虚拟机,否则系统不识别:如下图,/dev/sdc 是新添加的硬盘: 3.fdisk /dev/sdc为新硬盘创建分区: 4.Linux允许的主分区为4个,则我们创建分区为 /dev/sdc15.默认情况下新建分区的格式为Linux,我们使用LVM动态添加磁盘空间,故需要修改 /dev/sdc1 分区格式为LVM,LVM格式id为8e;6.创建并修改成功后需格式化该分区:mkfs.ext3  /dev/sdc17.执行完成进入/e

  • linux系统如何访问NTFS磁盘

    本文介绍了在Redhat 7.3.8.0 9.0访问NTFS磁盘的完全解决方法,文中介绍的是的最为简单的解决办法. 下载RPM 主站: http://linux-ntfs.sourceforge.net/info/redhat.html 第二站: http://fr2.rpmfind.net/linux/rpm2ht...ery=kernel-ntfs 如果上面的链接下的RPM包不能用.就下面的地址来找. 第三站: http://www.city-fan.org/ftp/contrib/driv

  • 在Linux下用软件实现RAID功能的实现方法

    mdadm使用的也是md驱动,由于其拥有多种模式,而且单一工具,不依赖所有设置文件,是替代raidtools的好工具.目前几乎所有发行版本使用的都是该工具.一.安装和编译源码下载:http://www.cse.unsw.edu.au/~neilb/source/mdadm/编译:tar xzvf ./mdadm-1.6.0.tgzcd mdadm-1.6.0make installrpm安装:rpm -ivh mdadm-1.6.0-3.rpm※源码最新版本是2.5,由于我使用的1.6.0的rp

  • linux常用disk磁盘操作命令整理

    复制代码 代码如下: #按照目录大小排序战士最前面15个目录或者文件 du -xB M --max-depth=2 /var | sort -rn | head -n 15 #列出当前所有子目录的文件大小 du -h --max-depth=1 #列出当前文件或者目录最大的10个 du -s * | sort -n | tail #按照目录大小从大到小排序 du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s

  • linux大于2T的磁盘使用GPT分区的方法分享

    在linux我们可以先把大容量的磁盘进行转换,转换为GPT格式.由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制. 对GPT磁盘分区表进行操作,我们要使用功能强大的parted命令. 例:常用的parted命令 # parted /dev/sdb GNU Parted 1.8.1 Using /dev/s

  • linux中如何查看Raid磁盘阵列信息

    Linux下查看Raid磁盘阵列信息的方法 以下是组建服务器raid时查到的资料,做下笔记,没兴趣的朋友请无视. Linux下查看软.硬raid信息的方法. 软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline,也有图形界面.如Adaptec公司的硬件卡就可以通过下面的命令进行查看: # /usr/dpt/raidutil -L all 可以看到

  • 如何在linux下做软raid实现方法

    如何在linux下做软raid?希望以下介绍能对朋友们有所帮助和启发! 在虚拟机系统中添加一块10g的硬盘为sdb,将硬盘分5个逻辑盘分别是sdb{5,6,7,8,9},每个盘的大小是1G. 首先利用其中三块硬盘sdb{5,6,7}建立raid5,sdb8为热备盘. 然后将sdb6作为故障盘下线,之后拔出sdb6,插入新的盘sdb9. 命令如下:mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb{5,6,7,8} 通过上面命令建立了使用空间为2G的raid5.盘符为/d

  • 在Linux下用软件实现RAID功能

    数据安全性是人们在使用计算机中最重要的问题之一.通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份.同样,在Linux环境下,我们也可以采用这种技术. 在Linux环境下,采用Raidtools工具,不仅可以将两个硬盘进行镜像,还可以制作软RAID0.RAID1.RAID5.说是软RAID,是因为通常情况下,RAID盘是通过专用的RAID卡进行的,而在Linux环境下,可以利用Raidtools软件实现RAID功能,所以称为软RAID.本文介绍根据不同的Linux版本,建立并

  • Linux下的软件安装

    1.Linux下有哪些中文系统? 主要有CXTERM.wzce.CXWIN.XCIN.ZhXwin.CXTERM是运行在X-WINDOW下的中文终端.Wzce是一个作为shell运行的终端.CXWIN是支持中文的XSERVER.XCIN可以在X-WINDOW下输入中文.ZhXwin是中文输入程序,需要CXTERM. 下载以上软件,例如要下载cxterm则进入自由软件库,查找cxterm即可. 2.怎样在X Window中象Pwin98那样显示/输入中文? 要在X Window的任何地方输入中文,

  • Linux下的软件开发

    1.如何升级.编译内核? 如果你不想改变内核的版本,直接转到以下第四步. 1)在任何一个子目录下(但通常是在/usr/src/下)untar解开新的内核源程序: tar xvfz linux-x.x.xx.tar.gz (例如linux-2.0.35.tar.gz) 或者是打补丁(patch):  gzip -cd patch-2.0.35.gz | patch -p0 打完补丁直接跳到第四步 2)rm /usr/src/linux   这通常是一个符号连接. 3)在 /usr/src/ 下建立

  • 详解linux 下安装软件tar.gz, rpm,deb的方法

    在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz). 2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm. 当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包.只要您理解了以下的思路,这两种形式的安装包也不在话下

  • python实现linux下抓包并存库功能

    最近项目需要抓包功能,并且抓包后要对数据包进行存库并分析.抓包想使用tcpdump来完成,但是tcpdump抓包之后只能保存为文件,我需要将其保存到数据库.想来想去shell脚本似乎不太好实现,于是用了比较热门的python来实现.不得不说,python丰富的第三方库确实是很强大,下面是具体的功能代码. from apscheduler.scheduler import Scheduler import os import sys import time import MySQLdb impor

  • 使用Python编写一个在Linux下实现截图分享的脚本的教程

    引子 Linux下不支持QQ等功能丰富的IM,虽然可以通过wine运行QQ2012,但是还是喜欢在gtalk群中聊天,gtalk群不支持图片方式,这就要靠我们大家自己来解决了,eleven开放了一个Image上传和显示接口,提供了使用curl来解决,但是我们公司的网络使用squid禁止了curl的访问,所以整天看他们这么爽的分享图片我也不甘心阿,所以就使用Python写了一个分享图片的脚本 实现 使用scrot截图,然后使用urllib2库上传图片,如果存在PyQt4库则会将结果放到剪贴板上,如

  • linux下利用Docker安装mysql的步骤

    作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装软件出现各种不可预知的问题,到时候还得去搜索资料逐一解决问题,挺耽误时间的. 而且,像linux下这些软件的安装,一般都是运维的事情,测试作为学习使用的话,安装好一个mysql数据库用于学习使用就行,新手不建议在linux下下载源码去安装软件,容易出问题. 接下来为大家演示一下,如何通过docker

  • 轻松实现Linux下的互联网过滤功能

    目前,很多学校都建起了校园网并连接上互联网,但互联网上的不良信息非常多,如何进行网站过滤,防止不健康网站对学生的影响呢?以下本着零成本.高效益的原则,谈谈在免费的Linux下如何实现互联网的过滤功能. 设置代理服务器 校园网通过Linux上网,在网关上利用Squid架设代理服务器. 首先要安装好Linux,我用的是易装好用的RedHat Linux 7.2.在安装RedHat Linux 7.2时,Squid已同时安装好,我们只需简单的配置一下就能使用. RedHat Linux 7.2安装后默

  • 在Linux下使用办公软件

    希望像在Windows上一样方便.高效.轻松地使用计算机?没问题!Linux桌面版上的应用软件可以满足你办公.上网.娱乐等各方面的需求. Linux平台上的办公套件比较有名的有Sun微系统公司的StarOffice.KOffice.Applixware以及韩国韩软公司开发的"HancomOffice"."HancomOffice"中文名称为"文杰",由于"文杰"办公套件在中文处理方面非常优秀,可以说"文杰"

随机推荐