raid磁盘阵列:

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

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

[root@localhost ~]# 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:
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
-a yes表示自动创建设备文件
[root@localhost ~]# 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
[root@localhost ~]# mount /dev/md0 /mnt/可以挂载
[root@localhost ~]# 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磁盘阵列和磁盘配额_sed_02


B:

建立raid:

Linux下的raid磁盘阵列和磁盘配额_重启_03


格式化挂载:

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

[root@localhost ~]# 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
[root@localhost ~]# mdadm /dev/md0 -f /dev/vdb2 损坏raid时,vdb3这块硬盘会来顶替vdb2的位置,这就是一开始建立一块闲置硬盘的作用。
mdadm: set /dev/vdb2 faulty in /dev/md0
[root@localhost ~]# 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
[root@localhost ~]# umount /mnt/
[root@localhost ~]# mdadm /dev/md0 -r /dev/vdb2 删除raid
mdadm: hot removed /dev/vdb2 from /dev/md0
[root@localhost ~]# mdadm /dev/md0 -a /dev/vdb2 添加raid
mdadm: added /dev/vdb2

查看状态

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


用-f命令损坏时,vdb3会出来顶替vdb2的工作,在现实中,两块磁盘同时损坏并不常见,所以这样就很好的起到了管理磁盘的作用。

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


参数的呈现:

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

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

[root@localhost ~]# 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
[root@localhost ~]# mdadm -S /dev/md0 停止
mdadm: stopped /dev/md0
[root@localhost ~]# fdisk /dev/vdb 删除三个分区
[root@localhost ~]# partprobe 同步
[root@localhost ~]# cat /proc/partitions 查看
major minor #blocks name

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

停止阵列删除分区:

Linux下的raid磁盘阵列和磁盘配额_重启_08

同步查看:

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

磁盘配额:

[root@localhost ~]# fdisk /dev/vdb建立一个1G分区
[root@localhost ~]# partprobe 同步
[root@localhost ~]# mkfs.xfs /dev/vdb1 格式化
[root@localhost ~]# chmod 777 /mnt/ 赋予权限
[root@localhost ~]# mount -o usrquota /dev/vdb1 /mnt/ 挂载,激活配额参数 (错误在于需要先挂载再赋予权限,)
[root@localhost ~]# mount 查看配额参数
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/vdb1 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota) 显示已经激活
[root@localhost ~]# 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

[root@localhost ~]# su -student 切换到student用户
[student@localhost ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=10 测试时候没有权限
dd: failed to open ‘/mnt/studentfile’: Permission denied
[student@localhost ~]$ logout
[root@localhost ~]# chmod 777 /mnt/ 用超级用户赋予权限
[root@localhost ~]# su - student
Last login: Fri May 4 21:42:31 EDT 2018 on pts/1
[student@localhost ~]$ 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
[student@localhost ~]$ 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
[student@localhost ~]$ 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
[root@localhost ~]# 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
[root@localhost ~]# reboot 重启失效

首先解读文件内容,各个参数如下:

blocks表示student用户已经有多大数据,容量。

soft表示软件

hard表示硬件,

inodes已经有多少文件,个数

soft表示用来几次会有警告

hard表示文件个数的最大上限

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


挂载激活配额参数:

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

dd命令:

dd命令用于按照指定大小和个数的数据块来复制文件和转换文件。

参数

作用

if

输入的文件名称

of

输出的文件名称

bs

设置每个块的大小

count

设置要复制块的个数

赋予权限切换到student用户进行测试。

Linux下的raid磁盘阵列和磁盘配额_重启_12

查看挂载成功,重启系统进而查看。

Linux下的raid磁盘阵列和磁盘配额_重启_13

挂载丢失

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

磁盘配额重启失效,需要实现自动挂载:

[root@localhost ~]# 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
[root@localhost ~]# vim /etc/fstab 编辑文件
[root@localhost ~]# cat /etc/fstab

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

[root@localhost ~]# reboot 重启
[root@localhost ~]# 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磁盘阵列和磁盘配额_sed_15

自动挂载成功:

Linux下的raid磁盘阵列和磁盘配额_重启_16