软件RAID测试·一

测试环境:VBox
测试发行版:Ubuntu Server 13.10
这次想要测试的是RAID-10,以及相关的东东。
首先在虚拟机里面添加4块硬盘,并且依次分好区。

# mdadm --verbose --create /dev/md127 --chunk=4 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: size set to 8383476K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/device started.

“–level=10″这个参数是指明RAID等级为10。
所谓的RAID-10就是把偶数块的硬盘两两分组,组合成数组RAID-1,在上层再把这数组RAID-1组成一个RAID-0。
我这里就是两组RAID-1,组成一个RAID-0。
“–chunk=4″这个参数是指明数据分条的大小为4KB。
设置这样的值是这样一个意思:
假如某此IO的大小是9KB,那么分条后会变成4KB+4KB+1KB这样三组数据条,分别写入到两组RAID-1阵列里面。
废话说完了检验下mdadm的状态。

# mdadm --detail --scan
ARRAY /dev/md/device metadata=1.2 name=ubuntu:device UUID=57394299:2e698d3c:b1a4d9fb:f21b67cf

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0]
      16766952 blocks super 1.2 4K chunks 2 near-copies [4/4] [UUUU]

于是一个横跨四块硬盘的RAID-10阵列创建成功了。
为方便管理,将这个新建的阵列加入一个新建的卷组中。

# pvcreate /dev/md127
  Physical volume "/dev/md127" successfully created

# vgcreate vg0 /dev/md127
  Volume group "vg0" successfully created

# vgdisplay
  --- Volume group ---
  VG Name               vg0
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.99 GiB
  PE Size               4.00 MiB
  Total PE              4093
  Alloc PE / Size       0 / 0
  Free  PE / Size       4093 / 15.99 GiB
  VG UUID               sKRYGY-6dy6-TGI1-O4VN-OQtn-8SEQ-uOGULD

并且创建一个大小为8G的逻辑卷。

# lvcreate -L 8G vg0
  Logical volume "lvol0" created

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg0/lvol0
  LV Name                lvol0
  VG Name                vg0
  LV UUID                hIh4m0-jITD-GMYx-3rz4-g0zW-Xc4D-6AjekD
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-03-24 15:52:40 +0800
  LV Status              available
  # open                 0
  LV Size                8.00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

接下来,将这个卷格式化为XFS文件系统。

# mkfs.xfs /dev/mapper/vg0-lvol0
meta-data=/dev/mapper/vg0-lvol0  isize=256    agcount=8, agsize=262143 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2097144, imaxpct=25
         =                       sunit=1      swidth=2 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

可以看到,这里面有这这样两个数据:
sunit=1,swidth=2 blks
第一个数据是stripe unit的简称,数值等于blocksize/chunksize。
第二个数据是stripe width的简称。
可以看到,这些数值都是与硬盘阵列有关系的。
在硬盘阵列上使用XFS的原因,就是它有这样一些针对性的的东西,有助于更好的使用硬盘阵列。

发表评论

电子邮件地址不会被公开。 必填项已用*标注