Linux 下采用软件实现RAID

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

数据的安全性是人们在使用计算机中最重要的问题之一。通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份。同样在Linux环境下,我们可以采用这种技术。在Linux环境下,我们可以采用Raidtool工具,不仅可以将两个硬盘进行镜像。还可以制作软RAID0、RAID4、RAID5。说是软RAID,是因为通常情况下,RAID盘是通过专用的RAID卡进行的。而在Linux 环境下,我们可以利用软件raidtool达到RAID功能。 


所以称为软RAID。建立并使用RAID盘有以下几种方法: 


第一种方法: 


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


中国自由软件库,通过搜索引擎查找下载。 


如果你已经从网上下载了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, 安装完成。 


在使用raidtool前,首先决定自己要使用的RAID的种类。目前使用raidtool可以作RAID0,RAID1,RAID5。 


由于只有两块硬盘而无法使用RAID5,除了RAID5外,还可以选择作linear模式或RAID0。笔者选择了作RAID0。 


以下为制作过程: 


首先,关机,将两块小硬盘分别加到第一个IDE控制器的slave接口上。将第二块硬盘接到第二个IDE控制器上的slave 


接口上(笔者这台机器上的CDROM接在第二个IDE控制器的master上)。 


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


#fdisk /dev/hdb 


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


#fdisk /dev/hdd 


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


之后: 


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


当然,为了提高访问速度,你可以将硬盘进行比较细致的划分,尽可能将分区合理分布在不同的硬盘上。然后再用 


mdcreate将它们组合成一个mdx(x:1,2,3) 


为了使用新建立的RAID设备,首先应启动它: 


#/sbin/mdadd -ar 


之后,查看/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。以提高数据的可靠性。 


最后,将RAID0的加载及文件系统的加挂全加入到init.sysinit文件中,这样,只要系统一启动,首先就执行RAID, 


用户就不必再手工安装了。 


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


/sbin/mdrun -ar 


mount /dev/md0 /opt 


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


第二种方式:如果你安装的Linux发行版较新,其中已经带有raidtool工具,那么就不必再下载软件并自己编译了。 


使用时可以这样处理: 


首先建立一个文件/etc/raidtab(以制作raid0为例),文件内容如下: 


raiddev /dev/md0 


raid-level 0 


nr-raid-disks 2 


persistent-superblock 1 


chunk-size 4 


device /dev/hdb1 


raid-disk 0 


device /dev/hdd1 


raid-disk 1 


然后,运行以下命令: 


#mkraid /dev/md0 


这样就可以生成一个新的设备:/dev/md0。 


启用软raid方法: 


#raidstart /dev/md0 


其余操作同上。 


如果你正在使用的发行版很新,可能以下两种情况都不不适用于你,那么,你可以采用以下方式使用软RAID。 


笔者的一台PC上安装了Red hat Linux 6.1,自行编译raidtool0.42,0.50beta2时,先是找不到所要的头 


文件,经笔者将所需头文件复制后,编译仍然通不过。原来,由于新的发行版采用了一系列新的函数,情况稍有 


一点不同。不过,新的发行版中,提供了raidtools,在/sbin目录中,有raidtools的一系列工具,其中有 


mkraid,raid0run,raidstop,raidstart等一组工具。如果你想自己编译,可以从中国自由软件库中查找到 


了最新版为0.9的raidtool。自行编译了0.9版的raidtool。编译正常通过。 


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


1、 首先建立文件/etc/raidtab,2、 文件内容如下: 


raiddev /dev/md0 


raid-level     0 


nr-raid-disks     2 


persistent-superblock    0 


chunk-size     8 


device      /dev/hdb1 


raid-disk     0 


device      /dev/hdd1 


raid-disk     1 


  


3、 生成软raid设备4、 ,5、 运行以下命令: 


# 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系统的性能还不错。 


最后,在使用Raidtools时应注意:采用raidtool制作软RAID,最好不要在一块硬盘上分多个分区,再将这 


些分区同raidtool制作成RAID。因为这样做不但不会提高硬盘的访问速度,反而会降低整修系统的性能。要 


使用软RAID盘,最好是将一个硬盘分成多个分区,再将不同硬盘的分区制作成软RAID盘。再有,用户最好不 


要将/usr目录放置到RAID盘上。如果RAID盘出错,那你可就完了。系统的交换分区最好也不要放到RAID盘上, 


尽管有人认为这样可以提高访问速度,但是,笔者担心,万一你在使用系统时,交换分区上有交换了很多系统时, 


这时忽然RAID盘出错了,那可就完了。

目录
相关文章
|
1月前
|
安全 Ubuntu Linux
Linux系统中的软件管理工具主
Linux系统中的软件管理工具主
43 7
|
1月前
|
Web App开发 监控 Linux
在Linux上,有许多软件可以下载和安装
在Linux上,有许多软件可以下载和安装
115 67
|
1月前
|
存储 关系型数据库 Linux
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
52 2
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
|
8天前
|
Linux
Linux - 如何编译源码安装软件
源码编译安装通常包括三个步骤:1) `./configure` 检测平台特征和依赖项,生成 Makefile;2) `make` 编译源码,生成可执行文件;3) `make install` 将可执行文件安装到指定目录并配置环境变量。
24 0
|
29天前
|
存储 安全 Unix
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
35 0
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
|
3月前
|
存储 算法 Linux
在Linux中,RAID级别有哪些?
在Linux中,RAID级别有哪些?
|
3月前
|
存储 缓存 安全
在Linux中,什么是软件仓库,并且如何管理它?
在Linux中,什么是软件仓库,并且如何管理它?
|
2月前
|
Linux 网络虚拟化 Windows
ccproxy windows上用的代理软件(类似linux系统上的squid)
ccproxy windows上用的代理软件(类似linux系统上的squid)
|
3月前
|
Unix Linux 开发者
在Linux中,什么是GPL、GNU,自由由软件?
在Linux中,什么是GPL、GNU,自由由软件?
|
3月前
|
存储 Linux
在Linux中,RAID 是什么?
在Linux中,RAID 是什么?