Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19881766
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2007-04-24 17:17:47

 

RedHat 9 下用mdadm建立RAID 1

数据在现今企业中占有重要的地位,数据存储的安全性有而是人们使用计算机要注意的重要问题之一。通常情况下人们在服务器端采用各种冗余磁盘阵列RAID 术来保护数据,中高档的服务器一般都提供了昂贵的硬件RAID控制器,但是很多中小企业没有足够的经费承受这笔开销。我们有没有方法可以通过软件来实现 RAID呢?

实际上在Linux下可以通过软件来实现硬件的RAID功能,这样既节省了投资,又能达到很好的效果。今天就由我为大家介绍如何在网络环境中实现带有一块Spare-disk的软RAID1(数据镜像)阵列。

小提示:什么是RAID1(数据镜像)?RAID 1是比较可靠的数据存储方式,每一个磁盘都具有一个对应的镜像盘。对任何磁盘的数据写入都会被复制镜像盘中;系统可以从一组镜像盘中的任何一个磁盘读取数 据,也就是说同一个数据会被重复写入两次,这样的磁盘镜像肯定会提高系统成本。因为我们所能使用的空间只是所有磁盘容量总和的一半。

 

RedHat 9 下可以使用rpm的方式安装

[root@Meil89 root]# rpm -ivh mdadm-1.0.1-1.i386.rpm

warning: mdadm-1.0.1-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing...                ########################################### [100%]

   1:mdadm                  ########################################### [100%]

 

也可以在http://neil.brown.name/blog/mdadm 寻找相关的包安装.

查看系统硬盘状况:

[root@Meil89 root]# fdisk -l

 

Disk /dev/sda: 250.0 GB, 250059292672 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot    Start       End    Blocks   Id  System

/dev/sda1             1     30401 244196001   83  Linux

 

Disk /dev/sdb: 250.0 GB, 250059292672 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot    Start       End    Blocks   Id  System

/dev/sdb1             1     30401 244196001   83  Linux

 

Disk /dev/hdc: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot    Start       End    Blocks   Id  System

/dev/hdc1             1     30401 244196001   83  Linux

 

Disk /dev/hda: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot    Start       End    Blocks   Id  System

/dev/hda1   *         1      1305  10482381   83  Linux

/dev/hda2          1306      1566   2096482+  82  Linux swap

/dev/hda3          1567     30401 231617137+  83  Linux

 

我们准备采用以上的/dev/hdc /dev/sdb RAID 1.

确认这个两个分区没有mount, 如果有mount,必须先umount.

[root@Meil89 root]# mount -l

/dev/hda1 on / type ext3 (rw) [/]

none on /proc type proc (rw)

usbdevfs on /proc/bus/usb type usbdevfs (rw)

none on /dev/pts type devpts (rw,gid=5,mode=620)

none on /dev/shm type tmpfs (rw)

/dev/sda1 on /mnt/sda1 type ext3 (rw) []

/dev/hda3 on /opt type ext3 (rw) []

 

#fdisk /dev/sdb
将设备/dev/sdb上的全部磁盘空间划分给一个主分区,建立/dev/sdb1分区,并修改分区的类型标识为fdlinux raid auto,然后对剩余的磁盘做同样的操作。创建/dev/hdc1分区。

具体步骤如下:

[root@Meil89 root]# fdisk /dev/sdb

 

The number of cylinders for this disk is set to 30401.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

 

Command (m for help): d

Selected partition 1

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401):

Using default value 30401

 

Command (m for help):

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raid autodetect)

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

[root@Meil89 root]#

 

重新启动使分区表生效

 

 

[root@Meil89 sda1]# mdadm -Cv /dev/md0 -l1 -n2  /dev/hdc /dev/sdb  

mdadm: chunk size defaults to 64K

mdadm: size set to 244198464K

mdadm: array /dev/md0 started.

[root@Meil89 sda1]#

小提示:-C参数为创建阵列模式。/dev/md0为阵列的设备名称。-l1为阵列模式,可以选择0145等多种不同的阵列模式,分别对应 RAID0RAID1RAID4RAID5-n2为阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目/dev/hdc /dev/sdb为参与创建阵列的磁盘名称,阵列由2块镜象的活动磁盘组成

 

查看RAID阵列情况.

[root@Meil89 sda1]# cat /proc/mdstat

Personalities : [raid1]

read_ahead 1024 sectors

md0 : active raid1 sdb[1] hdc[0]

      244198464 blocks [2/2] [UU]

      [>....................]  resync =  3.0% (7405824/244198464) finish=84.5min speed=46653K/sec

unused devices:

[root@Meil89 sda1]#

 

创建文件系统:

[root@Meil89 etc]# mkfs -t ext3 /dev/md0

mke2fs 1.32 (09-Nov-2002)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

30539776 inodes, 61048976 blocks

3052448 blocks (5.00%) reserved for the super user

First data block=0

1864 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872

 

Writing inode tables: done                           

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information:

done

 

This filesystem will be automatically checked every 29 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

加载文件系统:

mount /dev/md0  /home/meil/software

 

现在就可以使用了.为了系统开机能使用,添加如下内容到:

 

mdadm -Cv /dev/md0 -l1 -n2  /dev/hdc1 /dev/sdb1< /etc/y

mount /dev/md0  /home/meil/software

 

其中/etc/y是个文件,重新启动后创建RAID要输入y, 故创建文件内容为y的文件/etc/y.

 

或许可以集成到/etc/mdadm.conf,但是还没有弄明白.

阅读(5781) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~