Chinaunix首页 | 论坛 | 博客
  • 博客访问: 432455
  • 博文数量: 78
  • 博客积分: 1563
  • 博客等级: 上尉
  • 技术积分: 910
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-25 09:58
个人简介

爬虫

文章分类

全部博文(78)

文章存档

2020年(1)

2016年(1)

2015年(9)

2014年(1)

2013年(8)

2012年(6)

2011年(3)

2010年(4)

2008年(8)

2007年(13)

2006年(24)

我的朋友

分类: LINUX

2006-05-19 09:13:01


» » 人人都可以玩的Linux soft Raid

页: [1]

幻隐 2006-3-10 02:59 PM
人人都可以玩的Linux soft Raid

周末,抽点时间绣一把。相信大家很少玩过Raid阵列,这东西我最近弄的挺多的,硬Raid的我就不多说了,那卡很贵(3 Ware9500要8000左右)。

既然是人人都可以玩的,当然廉价,只要有虚拟机VMware就够了。

幻隐 2006-3-10 03:06 PM
第一步,安装虚拟机VMware

安装虚拟机VMware,我现在用的版本是4.5 for windows,估计已经有更高的版本了。推荐大家在windows下安装虚拟机,个人认为这样性能不错,当然要有256以上的内存。

用虚拟机的道理有:
1 可以虚拟很多SCSI硬盘,不然俺们硬盘不够
2 可以一边玩虚拟机一边用windows

安装VMware的时候要注意的是安装将结束后的一个选项,好像是要我们选择扫描磁盘上的虚拟机文件,这个最好选“no”,不然很浪费时间。

这是俺的VM,装了Red Hat的FC4

幻隐 2006-3-10 04:02 PM
第二步,安装Linux

1 准备好Linux的安装盘,这里推荐大家使用Red hat的fedora 4。下载网站[url][/url],但我不清楚学院是否能到国外网站。

2 安装盘可以是镜像文件,因为虚拟机允许使用镜像文件载入光驱。

3 创建一个新的虚拟机,看图

[[i] 本帖最后由 幻隐 于 2006-3-12 12:56 AM 编辑 [/i]]

幻隐 2006-3-10 04:04 PM
屏蔽中~~~~~~~~~~

[[i] 本帖最后由 幻隐 于 2006-3-11 01:09 AM 编辑 [/i]]

幻隐 2006-3-10 04:11 PM
安装Linux

安装,Linux 我就不提供这级的说明了,俺大二的时候就会在虚拟机上安Linux了。

不想安装的到ftp上考吧,以前的老师上传有虚拟机文件,直接就能跑。

[[i] 本帖最后由 幻隐 于 2006-3-11 01:21 AM 编辑 [/i]]

幻隐 2006-3-10 04:23 PM
题外话

推荐大家使用的两个软件
1 Secure Shell Client 安全shell客户端,linux默认会启动一个sshd进程来监测ssh的连接,这里注意,这玩意比telnet要好玩多了,因为它能提供window下的控制台,如同在linux本机上操作一样,还提供文件传输,既你能从你的windows下传输文件到linux下,相反也是可以的,只要拖动鼠标。这给不会smba和scp命令的人提供了良好的界面。

2 vncviewer,象windows xp远程桌面连接一样的工具,这里不仔细对这两个软件进行教学了,自己到网上搜索吧。

幻隐 2006-3-10 04:27 PM
相关命令演示

[color=Blue][root@sn ~]# fdisk -l[/color]

Disk /dev/hda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         127     1020096   83  Linux

Disk /dev/sda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

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

Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

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

Disk /dev/sdc: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

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

Disk /dev/sdd: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

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


/dev/sd* 的磁盘就是虚拟的SCSI硬盘,到这步的话,Raid已经与你走的很近了。

[[i] 本帖最后由 幻隐 于 2006-3-11 01:10 AM 编辑 [/i]]

幻隐 2006-3-10 04:33 PM
[color=Blue][root@sn ~]# mdadm -C -n3 -l5 -x1 /dev/md0 /dev/sd[a-d][/color]
mdadm: array /dev/md0 started.

说明:mdadm是目前Linux制作Raid的软件,系统自带(FC4),在没有这个软件前使用的工具是raidtool

mdadm 主要命令说明

-C 创建Raid (/dev/md0是我的raid名称)
-n 磁盘阵列个数,这里是3,刚好可以做raid5
-l raid的级别,你可以玩一下0或者3,当然,虚拟机下面,速度体现不出来
-x hostspare,待机磁盘,如果阵列中有一块硬盘坏了,它会立刻顶上,rebuilding
--size 指定没块磁盘大小,比如我每块磁盘是4G,当我只用2G做raid,其他空着

这里要注意,raid创建后,其实有一块盘会立刻做rebuilding,由于是虚拟机,所以速度很快,大家感觉不到什么.但如何你用8*250G的真硬盘做raid,rebuilding的时候少说也要2小时以上了.

[color=Red]rebuilding完成后,写配置文件[/color]

1 [color=Blue][root@sn ~]# mdadm --detail --scan >/etc/mdadm.conf[/color]
2 查看你的/etc/mdadm.conf
[color=Blue][root@sn ~]# cat /etc/mdadm.conf [/color]
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=c2067aab:d6093963:275ce274:26e16f62
   devices=/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd

3修改/etc/mdadm.conf
[color=LimeGreen] device /dev/sda /dev/sdb /dev/sdc /dev/sdd
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=c2067aab:d6093963:275ce274:26e16f62[/color]

或者
[color=LimeGreen] device /dev/sd[a-d]
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=c2067aab:d6093963:275ce274:26e16f62[/color]


完成配置文件修改后,即使你系统重启,raid也不会丢失,照样会启动,其实是系统调用了命令
[color=Blue][root@sn ~]# mdadm -A -s[/color]

感兴趣的同学看/etc/rc.d/rc.sysinit
[color=LimeGreen]# RAID setup
update_boot_stage RCraid
echo "raidautorun /dev/md0" | nash --quiet
if [ -f /etc/mdadm.conf ]; then
    /sbin/mdadm -A -s
fi[/color]

[[i] 本帖最后由 幻隐 于 2006-3-12 05:07 PM 编辑 [/i]]

幻隐 2006-3-10 04:34 PM
[color=Blue][root@sn ~]# cat /proc/mdstat [/color]
Personalities : [raid5]
md0 : active raid5 sdc[2] sdd[3](S) sdb[1] sda[0]
      8388480 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
      
unused devices:

[[i] 本帖最后由 幻隐 于 2006-3-11 01:12 AM 编辑 [/i]]

幻隐 2006-3-10 04:34 PM
[color=Blue][root@sn ~]# mdadm --detail --scan /dev/md0[/color]
/dev/md0:
        Version : 00.90.02
  Creation Time : Fri Mar 10 23:23:32 2006
     Raid Level : raid5
     Array Size : 8388480 (7.100 GiB 8.59 GB)
    Device Size : 4194240 (3.100 GiB 4.29 GB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Mar 10 23:24:10 2006
          State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : c2067aab:d6093963:275ce274:26e16f62
         Events : 0.2

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb
       2       8       32        2      active sync   /dev/sdc

       3       8       48        -      spare   /dev/sdd

[[i] 本帖最后由 幻隐 于 2006-3-11 01:12 AM 编辑 [/i]]

幻隐 2006-3-10 04:46 PM
这个时候呢,raid建完了,接着我们要创建lvm来玩玩.如果你对系统内核提供的信息感兴趣,用命令
[color=Blue][root@sn rc.d]# dmesg [/color]
你会看到类似的信息:
md: bind
md: bind
md: bind
md: bind
raid5: automatically using best checksumming function: pIII_sse
   pIII_sse  :  1694.000 MB/sec
raid5: using function: pIII_sse (1694.000 MB/sec)
md: raid5 personality registered as nr 4
raid5: device sdb operational as raid disk 1
raid5: device sda operational as raid disk 0
raid5: allocated 3165kB for md0
raid5: raid level 5 set md0 active with 2 out of 3 devices, algorithm 2
RAID5 conf printout:
--- rd:3 wd:2 fd:1
disk 0, o:1, dev:sda
disk 1, o:1, dev:sdb
RAID5 conf printout:
--- rd:3 wd:2 fd:1
disk 0, o:1, dev:sda
disk 1, o:1, dev:sdb
disk 2, o:1, dev:sdc
RAID5 conf printout:
--- rd:3 wd:2 fd:1
disk 0, o:1, dev:sda
disk 1, o:1, dev:sdb
disk 2, o:1, dev:sdc
md: syncing RAID array md0
md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction.
md: using 128k window, over a total of 4194240 blocks.
md: md0: sync done.
RAID5 conf printout:
--- rd:3 wd:3 fd:0
disk 0, o:1, dev:sda
disk 1, o:1, dev:sdb
disk 2, o:1, dev:sdc

[[i] 本帖最后由 幻隐 于 2006-3-11 01:12 AM 编辑 [/i]]

幻隐 2006-3-10 04:53 PM
lvm

lvm就是逻辑卷管理器
我们的步骤分为
1 创建pv(物理卷)
2 创建vg(卷组)
3 创建lv(逻辑卷)

好处,为文件系统提供一个透明的磁盘接口,利于扩容之类的.

[color=Red]1 创建pv[/color]
[color=Blue][root@sn rc.d]# pvcreate /dev/md0[/color]
  Physical volume "/dev/md0" successfully created

[color=Red]2 创建vg[/color]
[color=Blue][root@sn rc.d]# vgcreate vg0 /dev/md0 [/color]
  Volume group "vg0" successfully created

[color=Red]3 创建lv[/color]
[color=Blue][root@sn rc.d]# lvcreate  vg0 --name=lv0 --size=1G[/color]
  Logical volume "lv0" created

[color=Red]4 再创建一个lv[/color]
[color=Blue][root@sn rc.d]# lvcreate  vg0 --name=lv1 --size=1G[/color]
  Logical volume "lv1" created

[color=Red]格式化lv[/color]
[color=Blue][root@sn rc.d]# mke2fs /dev/vg0/lv0 [/color]
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
131072 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Writing inode tables: done                           
Writing superblocks and filesystem accounting information: done

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

[color=Red]挂载[/color]
[color=Blue][root@sn rc.d]# mkdir /mnt/lv0
[root@sn rc.d]# mount /dev/vg0/lv0 /mnt/lv0/
[root@sn rc.d]# df[/color]
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1               988088    546412    390672  59% /
/dev/shm                 94860         0     94860   0% /dev/shm
/dev/mapper/vg0-lv0    1032088      1284    978376   1% /mnt/lv0

[[i] 本帖最后由 幻隐 于 2006-3-11 01:13 AM 编辑 [/i]]

幻隐 2006-3-10 05:05 PM
[color=Red]查看vg详细信息[/color]
[color=Blue][root@sn rc.d]# vgdisplay -v[/color]
    Finding all volume groups
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GB
  PE Size               4.00 MB
  Total PE              2047
  Alloc PE / Size       768 / 3.00 GB
  Free  PE / Size       1279 / 5.00 GB
  VG UUID               s1YRVf-ApCR-bs0g-CIac-738i-2gK2-wYJAl1
   
  --- Logical volume ---
  LV Name                /dev/vg0/lv0
  VG Name                vg0
  LV UUID                8sVFV7-8RC7-qVih-XSvd-msCm-8v7l-nV7XA3
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.00 GB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/vg0/lv1
  VG Name                vg0
  LV UUID                cdVFVG-3H68-vexk-GxCa-pkSk-ZjZO-z5SpNQ
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1.00 GB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:1
   
  --- Physical volumes ---
  PV Name               /dev/md0     
  PV UUID               H2LpVi-Icx9-IN3Y-wxLY-7Nxq-BVs0-ZbOM2t
  PV Status             allocatable
  Total PE / Free PE    2047 / 1279
[color=Red]到这里,你该发现很多命令会很类似
pvcreate vgcreate lvcreate
pvscan vgscan lvscan
pvdisplay vgdisplay lvdisplay
[/color]
[color=Red]扩容lv0[/color]
[color=Blue][root@sn rc.d]# lvextend -L2G /dev/vg0/lv0 [/color]
  Extending logical volume lv0 to 2.00 GB
  Logical volume lv0 successfully resized

[[i] 本帖最后由 幻隐 于 2006-3-11 01:23 AM 编辑 [/i]]

幻隐 2006-3-10 05:05 PM
启动自动加载?

修改
[color=Blue][root@sn rc.d]# vi /etc/fstab[/color]

添加
/dev/vg0/lv0             /mnt/lv0               ext2    defaults        0 0

不过ext2这个参数有可能是错的,因为我们用的是lv,那个格式化命令我不知道格出来的是什么系统,这个我没有尝试过,sorry,大家自己了解吧.

[[i] 本帖最后由 幻隐 于 2006-3-12 11:20 PM 编辑 [/i]]

幻隐 2006-3-10 05:08 PM
测试一下速度?

[color=Blue][root@sn ~]# time dd if=/dev/zero of=/dev/vg0/lv0 bs=1M count=1k[/color]
1024+0 records in
1024+0 records out

real    0m16.984s
user    0m0.000s
sys     0m3.484s

好慢,我用8*250G做的raid写有150MBps,这里写1G就这么久了,虚拟机就是虚拟机,玩不了性能的东西.

[[i] 本帖最后由 幻隐 于 2006-3-11 01:20 AM 编辑 [/i]]

幻隐 2006-3-10 05:19 PM
告一段落~~~~~~~~~

lzldai 2006-3-11 07:01 AM
哈,这不就是你的工作吗?呵呵,来这里做培训啊?
支持,顶,3Ware卡我见过,绝对是贵,要不也不做软RAID了

幻隐 2006-3-11 11:08 AM
从目前的调研来看,3Ware不但贵,而且管理功能很差。阵列掉盘的时候不能立刻发现,而且热插拔也存在问题。掉盘后不会反映到内核层,一般的报警方式只是通过邮件,既,掉一块盘后,如果你不能迅速查看到邮件,这时候再掉一块盘,那你的数据就真的完蛋了。
软raid可以很好的解决上面出现的问题,目前的测试中不足的大概是并发性和读性能跟3Ware差距太大。当然,如果调整内核设置,加大预读,也许可以弥补这些问题。


查看完整版本:


Powered by Discuz! Archiver 4.0.0  © 2001-2005
Processed in 0.017848 second(s), 2 queries
 

 

阅读(1850) | 评论(0) | 转发(0) |
0

上一篇:辞职信

下一篇:raid掉盘

给主人留下些什么吧!~~