Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1014009
  • 博文数量: 132
  • 博客积分: 14065
  • 博客等级: 上将
  • 技术积分: 1270
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-06 16:08
文章分类

全部博文(132)

文章存档

2009年(2)

2008年(58)

2007年(14)

2006年(58)

我的朋友

分类: LINUX

2006-05-15 15:52:41

作者:曹程
email:caochengcn@gmail.com
QQ:20754739

mdadm是一个全新的raid管理工具,raidtools需要维护配置文件/etc/raidtab 太麻烦了!

下面就来看看使用 mdadm有多简单吧!
操作系统: RHEL4 updata2 或者CentOS4.2

要求:需要在三块硬盘上创建RAID5 并挂载到 /raid5disk 目录下!

先用fdisk -l 看一下三块磁盘的设备号,在这里就是  /dev/sdb  和 /dev/sdc 以及 /dev/sdd

1.  首先在三块硬盘上分别创建一个分区!
      # fdisk /dev/sdb
       Command (m for help): n               按n创建新分区
     Command action

         e   extended
         p   primary partition (1-4)           输入p 选择创建主分区
   
       Partition number (1-4):              输入 1 创建第一个主分区

       First cylinder (1-204, default 1):          直接回车,选择分区开始柱面这里就从 1 开始

       Last cylinder or +size or +sizeM or +sizeK (1-204, default 204):   也是直接回车,最后一个柱面!
                                                                             我这里是204,  各人的硬盘大小不一样大,这里的值也不一样大!
                                                                             这样就将硬盘1柱面到204柱面创建了第一个主分区!
         
          Command (m for help): t                输入t 指定分区类型!


      Selected partition 1
        Hex code (type L to list codes):           可以直接输入fd,指定分区类型就为Linux raid auto 也可以输入l
                                                                   看一下所有支持的分区类型!  我这里倒数第三个就是raid的分区类型代号为fd

     
    Command (m for help): w              然后输入w写盘!
    The partition table has been altered!

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

按照此步骤在另外的两块磁盘上做同样的操作!  全部做完后,运行 fdisk -l 应该可以看到如下信息!

           Disk /dev/sdb: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         204      208880   fd  Linux raid autodetect

Disk /dev/sdc: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         204      208880   fd  Linux raid autodetect

Disk /dev/sdd: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         204      208880   fd  Linux raid autodetect


看到上面三个磁盘上分别建了一个分区,分区大小都一样!

然后再运行
    mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]1    这里就在三个分区上创建了raid5 软件陈列,
                                                                             新的分区设备号为md0

然后格式化一下md0分区
   
[root@localhost ~]# mkfs.ext3 /dev/md0
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
104448 inodes, 417536 blocks
20876 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
51 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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.

根据分区大小一样,这里需要的时间也会不一样!

然后在
   make /raid5disk             在/上建一个目录raid5disk
然后用mount 将md0挂上去!
    mount /dev/md0 /raid5disk/

好了,试试到raiddisk目录建几个文件!

为了让系统重新启动后自动挂载,可以修改一下/etc/fstab文件,添加一行!
/dev/md0                /raid5disk              auto defaults           0 0

这样系统重新启动后会自动将/dev/md0挂接到 /raid5disk目录下!

好了!一切OK!

再查看一下md0的状态!

[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90.01
  Creation Time : Tue Feb 28 22:10:41 2006
     Raid Level : raid5
     Array Size : 417536 (407.75 MiB 427.56 MB)
    Device Size : 208768 (203.88 MiB 213.78 MB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Feb 28 22:17:55 2006
          State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
           UUID : 70fc89c1:ef191858:784578eb:81603b8d
         Events : 0.48
   

一切正常!
mdadm是个非常强大,非常棒的的工具,还有好多功能由于时间关系,以后再说!


mdadm 使用参考


mdadm是linux下用于管理软件 raid 的工具

以下内容来自 manpage 页:

基本语法 : mdadm [mode] [options]

[mode]  有7种:

Assemble:将以前定义的某个阵列加入当前在用阵列。

Build:Build a legacy array ,每个device 没有 superblocks

Create:创建一个新的阵列,每个device 具有 superblocks

Manage: 管理阵列,比如 add 或 remove

Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。

Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态

Grow:改变raid 容量或 阵列中的 device 数目

可用的 [options]:

-A, --assemble:加入一个以前定义的阵列

-B, --build:Build a legacy array without superblocks.

-C, --create:创建一个新的阵列

-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分

-D, --detail:打印一个或多个 md device 的详细信息

-E, --examine:打印 device 上的 md superblock 的内容

-F, --follow, --monitor:选择 Monitor 模式

-G, --grow:改变在用阵列的大小或形态

-h, --help:帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V, --version

-v, --verbose:显示细节

-b, --brief:较少的细节。用于 --detail 和 --examine 选项

-f, --force

-c, --config= :指定配置文件,缺省为 /etc/mdadm/mdadm.conf

-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf

create 或 build 使用的选项:

-c, --chunk=:Specify chunk size of kibibytes.  缺省为 64.

--rounding=: Specify rounding factor for linear array (==chunk size)

-l, --level=:设定 raid level.

--create可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.

--build可用:linear, raid0, 0, stripe.

-p, --parity=:设定 raid5 的奇偶校验规则:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric

--layout=:类似于--parity

-n, --raid-devices=:指定阵列中可用  device 数目,这个数目只能由 --grow 修改

-x, --spare-devices=:指定初始阵列的富余device 数目

-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数

--assume-clean:目前仅用于 --build 选项

-R, --run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。

-f, --force:通常mdadm不允许只用一个device 创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。

-a, --auto{=no,yes,md,mdp,part,p}{NN}:



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