学习日志---linux磁盘矩阵RAID

不同盘片上相同编号的若干磁道组成一个柱面;

磁道上有分为扇区;

决定磁盘性能的四个主要参数:数据传输率;命令队列;旋转定位(寻道);平均寻道时间


回顾:

fdisk, sfdisk, parted


fdisk

n  新建分区

p   主分区

e   扩展分区


n   

p

1


+100M

n

p

2


+512M

w | 


dd if=/dev/zero of=/dev/sdb bs=1 count=510 


echo 


mke2fs 

-t

-L

-b {1024|2048|4096}

-m 

-i

-O 

-N


dumpe2fs -h /dev/sda

tune2fs -l /dev/sda

-m


mount 

-a

-n: 不更新/etc/mtab文件;

--bind Dir1 Dir2  将dir1绑定到dir2上,使用dir2也能访问dir1的内容


mount -t fstype [options] -o [options] 设备 挂载点

/etc/mtab

/proc/mounts


挂载选项:

remount, ro, rw, exec/noexec, noatime/atime, diratime/nodiratime, auto, dev, _netdev


fuser -v 目录

fuser -km 目录




umount 设备|挂载点


/etc/fstab:

设备   挂载点 文件系统类型 挂载选项 转储频度   自检次序



df 

-h

-i

-P


du

-sh



verbose

# ln [-s][-v] SRC LINK


gzip, bzip2, xz, zip


tar:

c

x

t

f


-z

-zcf

-j

-jcf

-J

-Jcf


mkswap, swapon, swapoff


Raid(磁盘阵列): 一种磁盘组合类型,是由很多廉价的磁盘整合在一起的,由磁盘厂商生产

ide, SCSI,SATA(一个磁盘接一个sata口) 磁盘的接口类型


RAID: Redundent Array of Inexpensive Disks  冗余的磁盘阵列,一种磁盘存储方式,类似分布式

几个磁盘通过一个中央控制芯片来集中控制,然后连入主板,对主板来说连入的只是一个磁盘

RAID:                    Independent


Level: 仅用于标识磁盘组合方式的不同

raid0, raid1, raid5, raid10, raid50, jbod


raid0: 一个文件来了,将其平均分成片,存在不同磁盘上,至少需要两块磁盘,没有容错能力,读写性能都提升,100%

临时文件或者交换文件可以放在这种里面

raid1: 至少需要两块磁盘,其中一半做镜像,硬件容错能力,读性能提升,写性能下降,50%


raid4: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n

  其中一块磁盘做检测使用,所有使用存数据的磁盘做异或处理,结果存在检测硬盘中

  存数据的硬盘平均分配存文件


raid5: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n

  所有磁盘轮番作为检测磁盘使用


raid6: 至少需要四块磁盘,允许两块盘出错,读写性能提升,(n-2)/n


raid10: 至少需要四块磁盘,允许不同组内各坏一块盘,读写性能提升,50%  底层用raid1,上层用raid0

尽量别用raid5,因为raid5容错率太小,因此也有raid50。这些都是组合磁盘阵列

raid01:与10相反


为了提高raid的性能,会在生产raid时,加入内存(加快写)和电池(防止断电,数据还在内存中)


jbod: 多块磁盘组合成jbod,可以存很大的文件


硬RAID:

是在主机开机的bells中去设定,多个磁盘链接到一个阵列卡,bells去设定磁盘硬件设备,针对阵列卡,基于主机的bells就能做成一个RAID,内核识别出来的是一块硬盘,为sd磁盘


软RAID:

md(multi device):这是个内核模块,可以组合任何块设备成为一个被内核识别使用的设备。

 是在内核空间的模块;

这个模块是内核模块,可以将多块磁盘整合在一起使用,是一个驱动程序。数据在存储时,通过md这个模块分开存在这些磁盘上,因此这些分块存储操作都是在cpu上执行的,非常占用cpu时间,不推荐使用


mdadm:这个是在用户空间使用的配置内核md模块的指令,也就是通过mdadm告诉md模块如何工作

    /etc/mdadm.conf  这个是对mdadm指令的配置文件


mdadm: 模式化的工具

-A:装配模式

-C:创建模式

-F:监控模式

管理模式:-f, -r, -a


创建一个大小为12G的RAID0:

2*6G

3*4G

4*3G

6*2G


-C:创建模式

-n #: 用于创建RAID设备的设备个数;

-x #: 热备磁盘的个数;

-l 级别: 

-a yes: 自动为创建的raid设备创建设备文件;

-c Chunk_Size: 指定分块大小,默认为512,单位为KB


如果把设备做成软raid,则需要把该磁盘或者分区的类型调整为软raid类型,fd (linux raid auto)

任何的磁盘位置都有自己的类型,需要指明分区的作用

kpart -af /dev/sda

kpartx -af /dev/sda

partx -a /dev/sda   这几个让内核识别磁盘新分区


创建raid0

# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

                   这个是指定创建的文件设备  -a yes的意思是自动创建设备文件

        创建之后会在/proc/mdstat 这里出现mdstat文件

-D: 显示阵列的详细信息

mdadm -D /dev/md0

--detail: 


创建一个大小为12G的RAID1:

2*12G

# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,5}  使用3和5创建raid1 

创建的raid1,会把每个磁盘的位都同步成一样的,一个存数据,其他的备份


mdadm可以通过管理模式(不添加任何模式则进入管理模式)去管理raid设备,如mdadm /dev/md1,管理md1,

里面有很多选项  如-f 是指明使某个设备失效  -r 移除 -a 添加 

mdadm /dev/md1 -f /dev/sdc3  sdc3是md1的一部分  可使其失效

mdadm /dev/md1 -a /dev/sda1  重新装上一个新的

              -r            移除其中设备


建立的raid设备对于内核来说也就是一设备文件 如/dev/md2,也需要创建文件系统,mke2fs -t ext4 文件  


-S /path/to/raid_device: 停止指定的RAID设备

-A /path/to/raid_device DEVICES: 使用指定的设备装配并启动指定的RAID设备



watch指令

-n #: 每隔#执行一次指定的命令;单位为秒钟

1, .5


使用格式:watch -n # 'COMMAND'

watch -n1 'cat /proc/mdstat'


练习:创建一个大小为1G的RAID5;给其添加一个空间盘,ext4文件系统,挂载并卸载,模拟损坏等;停止raid;

创建raid

[root@xuanxuan ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sda{6,7,8,9}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

查看raid信息

[root@xuanxuan ~]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Wed Oct 21 09:32:42 2015

    Raid Level : raid5

    Array Size : 1043456 (1019.17 MiB 1068.50 MB)

 Used Dev Size : 521728 (509.59 MiB 534.25 MB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Wed Oct 21 09:32:51 2015

         State : clean 

Active Devices : 3

Working Devices : 4

Failed Devices : 0

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


          Name : xuanxuan:0  (local to host xuanxuan)

          UUID : 8eb9d05b:eb953956:970a856a:78294f36

        Events : 18


   Number   Major   Minor   RaidDevice State

      0       8        6        0      active sync   /dev/sda6

      1       8        7        1      active sync   /dev/sda7

      4       8        8        2      active sync   /dev/sda8


      3       8        9        -      spare   /dev/sda9

创建文件系统

[root@xuanxuan ~]# mke2fs -t ext4 /dev/md0

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=128 blocks, Stripe width=256 blocks

65280 inodes, 260864 blocks

13043 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

8160 inodes per group

Superblock backups stored on blocks: 

       32768, 98304, 163840, 229376


Writing inode tables: done                            

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 34 mounts or

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

查看设备的文件系统信息

[root@xuanxuan ~]# dumpe2fs /dev/md0

挂载

[root@xuanxuan ~]# mount /dev/md0 /backup

卸载设备使用备盘,可以随时使用mdadm -D /dev/md0 查看raid的情况

[root@xuanxuan ~]# mdadm /dev/md0 -f /dev/sda6

mdadm: set /dev/sda6 faulty in /dev/md0

[root@xuanxuan ~]# mdadm /dev/md0 -r /dev/sda6

mdadm: hot removed /dev/sda6 from /dev/md0

[root@xuanxuan ~]# mdadm /dev/md0 -a /dev/sda6

mdadm: added /dev/sda6


练习1:创建一个空间大小为10G的RAID5设备,要求其chunk大小为1024K,格式经为ext4文件系统,开机可自动挂载至/backup目录,并支持acl功能;

练习2: 创建一个可用空间大小为10G的RAID1设备,chunk大小为256K,要求其具有一个热备磁盘,开机自动挂载至/users目录;


你可能感兴趣的:(linux)