磁盘阵列

磁盘阵列

一、介绍

磁盘阵列(Redundant Arrays of Independent Disks,RAID)。

raid0:多块硬盘(最少2块)同时工作,提高速度。适用于操作比较多的网站,如淘宝。但安全性低,一个硬盘挂掉整个系统崩溃

raid1:多块硬盘(最少2块)协同工作,2块硬盘同时存储一样的内容,1块硬盘挂掉对数据没有影响。但是2块硬盘如果一共100G就只能利用50G的空间。牺牲了硬盘容量提高了安全性。多用于操作多的网站,如论坛

raid5:相当于raid0raid1的折中方案。需要至少3块硬盘,两块工作、一块备用,有一个挂掉时备用盘立刻同步挂掉的磁盘数据接着工作。

二、raid5演示

1.创建、挂载

fdisk  /dev/vdb  #创建三个分区sdb1sdb2sdb3,分区标示为raid(编号为fd

partprobe    #同步分区表

mdadm  -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}   #制作双磁盘和一个闲置。(-C 表示创建|-a Yes如果没有自动创建|-n 22块磁盘做阵列|-x 1用一块闲置)

 

mkfs.xfs  /dev/md0 #格式化

mount /dev/md0  /mnt/   #挂载

2.测试

watch -n 1 cat /proc/mdstat  #监控

磁盘阵列

#可以看到sdb1sdb2为使用状态,sdb3闲置状态

1mdadm -f /dev/md0  /dev/sdb1  #指定sdb1磁盘失效

磁盘阵列

磁盘阵列

##监控到sdb1失效,sdb3自动替换,sdb1数据自动同步到sdb3

2mdadm -D /dev/md0 查看raid状态

[[email protected] mnt]# mdadm -D /dev/md0 

/dev/md0:

        Version : 1.2

  Creation Time : Wed Nov 15 23:32:06 2017

     Raid Level : raid1

     Array Size : 306880 (299.74 MiB 314.25 MB)

  Used Dev Size : 306880 (299.74 MiB 314.25 MB)

   Raid Devices : 2

  Total Devices : 3

    Persistence : Superblock is persistent

 

    Update Time : Mon Nov 20 12:52:48 2017

          State : clean 

 Active Devices : 2

Working Devices : 3

 Failed Devices : 0

  Spare Devices : 1

 

           Name : desktop.example.com:0  (local to host desktop.example.com)

           UUID : 02878db9:92cbc415:e6de1abd:a7aa8705

         Events : 19

 

    Number   Major   Minor   RaidDevice State

       0       8       17        0      active sync   /dev/sdb1

       1       8       18        1      active sync   /dev/sdb2

 

       2       8       19        -      spare   /dev/sdb3

 

3mdadm -r /dev/md0  /dev/sdb1  删除指定硬盘

磁盘阵列

4mdadm -a /dev/md0 /dev/sdb1 添加指定硬盘

磁盘阵列

3.删除raid

umount /mnt/ 取消挂载

mdadm  -S /dev/md0 停止使用

磁盘阵列

fdisk /dev/vdb

删除分区sdb1sdb2sdb3

partprobe同步分区表

 

配额

首先fdisk分区sdb1

mkdir /pub

chmod 777 /pub    #由于是给普通用户使用的,为了方便给出777权限

mount -o usrquota /dev/sdb1 /pub  #挂载,加上配额参数打开,默认是关闭的,加-o

quotaon -uv /dev/sdb1    #启动磁盘配额在添加这个参数后,打开权限配额,打开的是mount挂载的 /dev/sdb1

edquota -u student  #编辑配额配置文件,指定student用户

Disk quotas for user student (uid 1002):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/sdb1                         0          0      40000          1        0        0

##40000表示student用户最多可以使用40M空间

su - student

dd if=/dev/zero of=/pub/studentfile bs=1M count=500 

[[email protected] ~]$ du -sh /pub/studentfile 

40M /pub/studentfile

##可以看到截取了500M却最多只有40M,这就是配额的作用

将截取大小改为20M,可以看到文件大小就变为20M了:

[[email protected] ~]$ dd if=/dev/zero of=/pub/studentfile bs=1M count=20

20+0 records in

20+0 records out

20971520 bytes (21 MB) copied, 0.0141845 s, 1.5 GB/s

[[email protected] ~]$ du -sh /pub/studentfile 

20M /pub/studentfile

查看配置,可以看到这里变为了40000k

[[email protected] ~]$ quota

Disk quotas for user student (uid 1002): 

     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

      /dev/sdb1   40000*      0   40000               1       0       0        

tip:对于其他用户来说在/pub下截取文件不受大小限制,因为并没有为student以外的用户做配额