Linux下的raid磁盘阵列和磁盘配额

raid磁盘阵列:

磁盘阵列有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的
磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别
存放在各个硬盘上。 磁盘阵列还能利用同位检查的观念,在数组中任意一个硬盘故障时仍可读出数据,在数据重构时,
将数据经计算后重新置入新硬盘中。

首先用一开始的分区方式建立三个1G的分区并用t更改fd类型。建立分区部分不再详细解释。

[[email protected] ~]# fdisk -l
/dev/vdb1            2048     2099199     1048576   fd  Linux raid autodetect
/dev/vdb2         2099200     4196351     1048576   fd  Linux raid autodetect
/dev/vdb3         4196352     6293503     1048576   fd  Linux raid autodetect

已经建立成功三个1G的RAID
Linux下的raid磁盘阵列和磁盘配额

mdadm命令:

mdadm命令用于管理Linux系统中的软件RAID磁盘阵列,格式为“mdadm [模式]<RAID设备名称>[选项][成员设备名称]”
mdadm命令的参数及作用如下:
参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列

RAID磁盘阵列实验:

A:
watch -n 1 cat /proc/mdstat  开启监控
B:
[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} 
-a yes表示自动创建设备文件
[[email protected] ~]# mkfs.xfs /dev/md0  格式化
meta-data=/dev/md0               isize=256    agcount=4, agsize=65500 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=262000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]# mount /dev/md0 /mnt/可以挂载
[[email protected] ~]# df   查看挂载
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3763612   6710288  36% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      80    484852   1% /dev/shm
tmpfs             484932   12804    472128   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
/dev/md0         1044588   32928   1011660   4% /mnt

A:
打开监控在B操作查看效果:
Linux下的raid磁盘阵列和磁盘配额
B:
建立raid:
Linux下的raid磁盘阵列和磁盘配额
格式化挂载:
Linux下的raid磁盘阵列和磁盘配额

[[email protected] ~]# mdadm -D /dev/md0  查看raid状态
/dev/md0:
        Version : 1.2
  Creation Time : Mon Apr 30 04:46:09 2018
     Raid Level : raid1
     Array Size : 1048000 (1023.61 MiB 1073.15 MB)
  Used Dev Size : 1048000 (1023.61 MiB 1073.15 MB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Mon Apr 30 04:47:47 2018
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

           Name : localhost:0  (local to host localhost)
           UUID : cba7d76d:d01d7925:dcc6829e:1b4f394a
         Events : 17

    Number   Major   Minor   RaidDevice State
       0     253       17        0      active sync   /dev/vdb1
       1     253       18        1      active sync   /dev/vdb2

       2     253       19        -      spare   /dev/vdb3
[[email protected] ~]# mdadm /dev/md0 -f /dev/vdb2  损坏raid时,vdb3这块硬盘会来顶替vdb2的位置,这就是一开始建立一块闲置硬盘的作用。
mdadm: set /dev/vdb2 faulty in /dev/md0
[[email protected] ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3763628   6710272  36% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      80    484852   1% /dev/shm
tmpfs             484932   12804    472128   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
/dev/md0         1044588   32928   1011660   4% /mnt
[[email protected] ~]# umount /mnt/
[[email protected] ~]# mdadm /dev/md0 -r /dev/vdb2 删除raid
mdadm: hot removed /dev/vdb2 from /dev/md0 
[[email protected] ~]# mdadm /dev/md0 -a /dev/vdb2  添加raid
mdadm: added /dev/vdb2

查看状态
Linux下的raid磁盘阵列和磁盘配额
用-f命令损坏时,vdb3会出来顶替vdb2的工作,在现实中,两块磁盘同时损坏并不常见,所以这样就很好的起到了管理磁盘的作用。
Linux下的raid磁盘阵列和磁盘配额
参数的呈现:
Linux下的raid磁盘阵列和磁盘配额

设备的删除, 还原分区,解除挂载,停止阵列。

[[email protected] ~]# df  查看挂载
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3763532   6710368  36% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      80    484852   1% /dev/shm
tmpfs             484932   12804    472128   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
[[email protected] ~]# mdadm -S /dev/md0   停止
mdadm: stopped /dev/md0
[[email protected] ~]# fdisk /dev/vdb   删除三个分区
[[email protected] ~]# partprobe   同步
[[email protected] ~]# cat /proc/partitions   查看
major minor  #blocks  name

 253        0   10485760 vda
 253        1   10484142 vda1
 253       16   10485760 vdb

停止阵列删除分区:
Linux下的raid磁盘阵列和磁盘配额
同步查看:
Linux下的raid磁盘阵列和磁盘配额
磁盘配额:

[[email protected] ~]# fdisk /dev/vdb建立一个1G分区
[[email protected] ~]# partprobe   同步
[[email protected] ~]# mkfs.xfs /dev/vdb1  格式化
[[email protected] ~]# chmod 777 /mnt/     赋予权限
[[email protected] ~]# mount -o usrquota /dev/vdb1 /mnt/  挂载,**配额参数  (错误在于需要先挂载再赋予权限,)
[[email protected] ~]# mount   查看配额参数
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)     
/dev/vdb1 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)   显示已经**
[[email protected] ~]# edquota -u student  设置配额参数
表格内容:
Disk quotas for user student (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/vdb1                     20480          0      20480          1        0        0

[[email protected] ~]# su -student  切换到student用户
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=10   测试时候没有权限
dd: failed to open ‘/mnt/studentfile’: Permission denied
[[email protected] ~]$ logout
[[email protected] ~]# chmod 777 /mnt/  用超级用户赋予权限
[[email protected] ~]# su - student
Last login: Fri May  4 21:42:31 EDT 2018 on pts/1
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=10  测试成功
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00731995 s, 1.4 GB/s
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.0322096 s, 651 MB/s
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=21  报错,超出范围。
dd: error writing ‘/mnt/studentfile’: Disk quota exceeded
21+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.022377 s, 937 MB/s
[[email protected] ~]# df   查看挂载
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3805232   6668668  37% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      84    484848   1% /dev/shm
tmpfs             484932   12768    472164   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
/dev/vdb1        1038336   53416    984920   6% /mnt
[[email protected] ~]# reboot  重启失效

首先解读文件内容,各个参数如下:
blocks表示student用户已经有多大数据,容量。
soft表示软件
hard表示硬件,
inodes已经有多少文件,个数
soft表示用来几次会有警告
hard表示文件个数的最大上限
Linux下的raid磁盘阵列和磁盘配额
挂载**配额参数:
Linux下的raid磁盘阵列和磁盘配额dd命令:

dd命令用于按照指定大小和个数的数据块来复制文件和转换文件。
参数 作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个块的大小
count 设置要复制块的个数

赋予权限切换到student用户进行测试。
Linux下的raid磁盘阵列和磁盘配额
查看挂载成功,重启系统进而查看。
Linux下的raid磁盘阵列和磁盘配额
挂载丢失
Linux下的raid磁盘阵列和磁盘配额
磁盘配额重启失效,需要实现自动挂载:

[[email protected] ~]# df  没有挂载
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3804264   6669636  37% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      80    484852   1% /dev/shm
tmpfs             484932   12744    472188   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
[[email protected] ~]# vim /etc/fstab  编辑文件
[[email protected] ~]# cat /etc/fstab

/dev/vdb1    /mnt  xfs  defaults,usrquota  0    0

[[email protected] ~]# reboot 重启
[[email protected] ~]# df   开机自动挂载
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3804460   6669440  37% /
devtmpfs          469344       0    469344   0% /dev
tmpfs             484932      80    484852   1% /dev/shm
tmpfs             484932   12748    472184   3% /run
tmpfs             484932       0    484932   0% /sys/fs/cgroup
/dev/vdb1        1038336   53416    984920   6% /mnt

文件内容:
Linux下的raid磁盘阵列和磁盘配额自动挂载成功:
Linux下的raid磁盘阵列和磁盘配额