`

linux下软raid的实现

阅读更多
raid是当前存储提高安全和性能的主要技术手段,实现raid一般用raid卡实现,也就是硬raid。除此之外,我们还可以用软件来实现raid技术。
这篇文章就简单介绍如何用软件实现raid技术(以raid0为例)。

有两个可以实现软raid的工具:raidtools, mdadm。
raidtool,这是在RHEL3中所使用的,但是我在RHEL4中没有找到raidtool,只有mdadm,看来RH也是偏向于使用mdadm的。
本文也以mdadm为例讲述。

一、查看当前硬盘情况
[root@primary /]# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1114 8843782+ 83 Linux
/dev/sda3 1115 1305 1534207+ 82 Linux swap

Disk /dev/sdb: 107 MB, 107374080 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 107 MB, 107374080 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

二、为硬盘分区
raid一般多个硬盘来组成,你也可以用同一个硬盘的多个分区组成raid,但这样是没有意义的。

[root@primary /]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@primary /]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

此时硬盘的分区情况:
[root@primary /]# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1114 8843782+ 83 Linux
/dev/sda3 1115 1305 1534207+ 82 Linux swap

Disk /dev/sdb: 107 MB, 107374080 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 102 104432 83 Linux

Disk /dev/sdc: 107 MB, 107374080 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System
/dev/sdc1 1 102 104432 83 Linux

三、创建raid0

[root@primary /]# mdadm --create /dev/md0 --level=raid0 --chunk=8 --raid-devices=2 /dev/sdb1 /dev/sdc1

四、格式化raid
mdadm: array /dev/md0 started.
[root@primary /]# mkfs.ext3 /dev/md0
mke2fs 1.35 (28-Feb-2004)
max_blocks 213647360, rsv_groups = 26080, rsv_gdb = 256
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
52208 inodes, 208640 blocks
10432 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
26 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801

Writing inode tables: done
inode.i_blocks = 3586, i_size = 67383296
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

五、挂载raid分区
[root@primary /]# mount /dev/md0 /opt
[root@primary /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 8.4G 5.7G 2.3G 73% /
/dev/sda1 99M 8.4M 86M 9% /boot
none 252M 0 252M 0% /dev/shm
/dev/hdc 161M 161M 0 100% /media/cdrom
/dev/md0 198M 5.8M 182M 4% /opt

六、查看raid的信息
[root@primary opt]# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Sun Jul 8 22:54:28 2007
Raid Level : raid0
Array Size : 208640 (203.75 MiB 213.65 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Sun Jul 8 22:54:29 2007
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Chunk Size : 8K

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
UUID : a86f0502:df5715c0:fd871bbc:9f75e0ad
Events : 0.1

七、生成mdadm配置文件
mdadm的缺省配置文件为/etc/mdadm.conf,它主要是为了方便阵列的日常管理而设置的,对于阵列而言不是必须的,但是为了减少日后管理中不必要的麻烦,还是应该坚持把这一步做完。

在mdadm.conf文件中要包含两种类型的行:一种是以DEVICE开头的行,它指明在阵列中的设备列表;另一种是以ARRAY开头的行,它详细地说明了阵列的名称、模式、阵列中活动设备的数目以及设备的UUID号。
我们可以用mdadm -Ds来得到mdadm.conf文件需要的信息:
[root@primary ~]# mdadm -Ds
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=63f24968:d367038d:f207e458:9a803df9
devices=/dev/sdb1,/dev/sdc1

根据上面的信息编辑/etc/mdadm.conf,如下:
[root@primary ~]# more /etc/mdadm.conf
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=63f24968:d367038d:f207e458:9a803df9
device /dev/sdb1 /dev/sdc1

如果不配置这个文件,在重启后尝试mount raid设备的时候会报错:
[root@primary ~]# mount /dev/md0 /opt
/dev/md0: Invalid argument
mount: /dev/md0: can't read superblock

八、设置开机自动挂载
为了让系统开机后能自动挂载raid设备,需要在/etc/fstab添加如下行:
vi /etc/fstab
/dev/md0 /opt ext3 defaults 0 0


至此,一个raid0就算配置完毕了。其他级别的raid也可以用类似的方法配置,具体可以看帮助。
分享到:
评论

相关推荐

    linux下软raid1配置案例

    Linux 下软 RAID 1 配置案例详解 Linux 下软 RAID 1 配置案例是指使用 Linux 操作系统下配置软 RAID 1 阵列的方法。软 RAID 是一种基于分区的 RAID 配置方式,由系统实现,而不是使用专门的 RAID 卡。相比硬 RAID,...

    Linux下做软Raid1

    ### Linux下软RAID1详解 #### 一、RAID简介 RAID(Redundant Array of Independent Disks)最初的概念是由加州大学伯克利分校的研究人员提出的,目的是通过将多个独立的小容量磁盘组合起来形成一个大容量的虚拟磁盘...

    详解建立Linux环境软RAID 5教程

    RAID 可分为软 RAID 和硬 RAID,软 RAID 是通过软件实现多块硬盘冗余的,而硬 RAID 是一般通过 RAID 卡来实现 RAID 的。软 RAID 配置简单,管理也比较灵活,对于中小企业来说不失为一最佳选择。硬 RAID 往往花费比较...

    LINUX系统软RAID0、RAID1配置与管理.docx

    软RAID 可以使用普通的磁盘来实现 RAID 功能,从而降低成本。 首先,我们需要了解 RAID 的基本概念。RAID(Redundant Array of Independent Disks)是一种将多个磁盘组合成一个逻辑磁盘的技术,以提高数据存储的...

    Linux软RAID部署系统分区之恢复攻略.docx

    Linux软RAID部署系统分区之恢复攻略主要关注的是在Linux环境中如何使用软件RAID(即不依赖专用硬件的RAID)来创建、管理和恢复系统分区。这篇文章由ChinaUnix网友Jerrywjl撰写,旨在解决运维人员在面对RAID相关问题...

    Linux下实现软RAID.pdf

    Linux 下实现软 RAID Linux 操作系统中,数据的安全性是使用计算机中最重要的问题之一。为了达到数据的双重备份,人们通常在服务器环境中采用硬盘镜像技术。在 Linux 环境下,也可以采用这种技术,使用 Raidtool ...

    linux软RAID的创建和维护

    Linux软RAID(Redundant Array of Inexpensive Disks)是一种通过软件实现的磁盘冗余技术,它允许用户利用多个廉价磁盘构建出一个性能强大且可靠的存储解决方案。在Linux系统中,用户可以通过内建的软件工具,如...

    Linux下创建软RAID.pdf

    Linux 下创建软 RAID 可以使用 mdadm 工具来实现,mdadm 工具可以创建、管理和维护软 RAID。 mdadm 工具的参数: * --create 或 -C:创建一个新的软 RAID,后面接 raid 设备的名称。 * --assemble 或 -A:加载一个...

    Linux环境下没有RAID卡的情况下实现RAID功能?

    在Linux环境中,即使没有硬件RAID卡,也可以利用软件实现RAID功能,这就是所谓的“软RAID”。Linux内核本身就支持多种RAID级别,包括RAID0、RAID1和RAID5等,通过内建的md(Multiple Devices)驱动程序来实现。...

    Linux软RAID MD源码分析

    ### Linux软RAID (MD) 源码分析 #### RAID概述 RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,是一种通过将多个物理磁盘设备组合成一个逻辑单元来改善存储性能和/或提供数据冗余的技术。Linux...

    在Linux下操作Raid5.docx

    在 Linux 环境下建立软 RAID 5,是指利用 Linux 操作系统来创建一个软件 RAID 5 阵列,实现数据的冗余和高性能存储。下面是相关的知识点: 1. RAID 的定义:RAID 全称是 Redundant Arrays of Independent Drives,...

    硬RAID、软RAID和HostRAID

    软RAID,或称为software-based RAID,依赖于操作系统来实现RAID功能。它在服务器操作系统内核中集成,如Microsoft Windows NT系列、Novell Netware和Linux等。软RAID的优势在于初始投资较低,因为无需购买额外硬件。...

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

    在Linux环境下,软RAID(也称为软件RAID)是一种经济高效的存储解决方案,它利用操作系统内的软件来实现RAID功能,而不是依赖于专门的硬件RAID控制器。软RAID允许用户利用多块硬盘来创建一个高可用性或性能增强的...

    使用mdadm创建软RAID

    在Linux系统中,mdadm是一个强大的工具,可以用来创建软RAID(Software RAID),软RAID可以将多个硬盘组合成一个逻辑硬盘,以提高存储容量和读写性能。本文将详细介绍使用mdadm创建软RAID的步骤和相关知识点。 ...

    5.4在Linux中配置软RAID

    在Linux系统中,软RAID(也称作软件RAID)是一种通过操作系统内核和相关工具来实现的RAID技术,它可以将多个硬盘驱动器组合成一个逻辑单元,以提高数据存储性能和提供容错能力。相比硬RAID,软RAID依赖于操作系统的...

Global site tag (gtag.js) - Google Analytics