linux命令查看raid5,Linux中RAID5搭建与测试
一、RAID(独立冗余磁盘阵列)概述
raid技术通过把多个硬盘设备组合成一个容量更大的,安全性更好的磁盘阵列。把数据切割成许多区段后分别放在不同的物理磁盘上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理设备上,从而起到了非常好的数据冗余备份效果。缺点就是磁盘利用率低。
二、RAID的分类
(1)RAID 0
RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
工作原理如图:
(2)RAID 1
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%。
工作原理如图:
(3)RAID 0+1
RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。也有一种叫法叫raid10.
工作原理如图:
(4)RAID 5
RAID 5:分布式奇偶校验的独立磁盘结构
它的奇偶校验码存在于所有磁盘上。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
工作原理如图:
总结:raid0大幅度提升了设备的读写性能,但不具备容错能力。raid1虽然十分注重数据安全,但磁盘利用率太低。raid5就是raid0和raid5的一种折中,既提升了磁盘读写能力,又有一定的容错能力,成本也低。raid10就是raid0和raid1的组合,大幅度提升读写能力,较强的容错能力,成本也较高。一般中小企业用raid5,大企业采用raid10。
如图:
三、部署RAID 5卷
首先为服务器添加4块硬盘
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb0813467 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd #磁盘类型改为raid
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb0813467
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
其他三块也是一样!
[root@localhost ~]# fdisk -l | grep sd[b-e]
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect
[root@localhost ~]# yum -y install mdadm
#安装madam (madam是Linux下的raid管理工具)
[root@localhost ~]# mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1
#用sdb1,sdc1,sdd1,sde1四块磁盘其中3块创建raid5,名称为md0,另外一块作为热备份。
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
命令参数:
-C --create 创建阵列;
-a --auto 同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;
-l --level 阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
-n --raid-devices 阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
或者使用另一条命令
[root@localhost ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-e]1
命令参数:
--create #表示要创建raid
--auto=yes /dev/md0 #新建立的软件磁盘阵列设备为md0,md序号可以为0-9
--level=5 #磁盘阵列的等级,这里表示创建是的raid5
--raid-devices #添加作为磁盘阵列用的磁盘的块数
--spare-devices #添加作为预备(spare)磁盘的块数
/dev/sd[b-f]1 #磁盘阵列所使用的设备,还可写成/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
[root@localhost ~]# cat /proc/mdstat #查看RAID的配置文件
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2** [3/3] [UUU]**
unused devices:
[root@localhost ~]# mdadm -D /dev/md0 #查看RAID配置文件详细信息
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 30 10:43:20 2019
** Raid Level : raid5** #阵列类型为raid5
………… #省略部分内容
Active Devices : 3 #活跃的磁盘数目
Working Devices : 4 #所有的磁盘数目
Failed Devices : 0 #故障的磁盘数目
Spare Devices : 1 #热备份的磁盘数目
………… #省略部分内容
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
3 8 65 - spare /dev/sde1 #一块磁盘用于热备份
[root@localhost ~]# echo 'DEVICE /dev/sd[b-e]1' >>/etc/mdadm.conf
[root@localhost ~]# mdadm -Ds >>/etc/mdadm.conf
#添加raid5到raid配置文件并做修改
[root@localhost ~]# cat /etc/mdadm.conf
DEVICE /dev/sd[b-e]1
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost:0 UUID=12345d9f:61e1d599:86226f6d:536d45c7
[root@localhost ~]# mkfs.xfs /dev/md0
#格式化磁盘
[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/md0 /a
#挂载磁盘
[root@localhost ~]# df -hT #查看磁盘大小
………… #省略部分内容
/dev/md0 xfs 40G 33M 40G 1% /a
[root@localhost ~]# vim /etc/fstab #编写文件开机自动挂载
………… #省略部分内容
/dev/md0 /a xfs defaults 0 0
[root@localhost ~]# cd /a
[root@localhost a]# touch 123.txt 456.txt #创建测试文件
[root@localhost a]# mdadm /dev/md0 -f /dev/sdb1 #模拟sdb1损坏
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@localhost a]# mdadm -D /dev/md0 #查看/dev/md0详细信息
………… #省略部分内容
Number Major Minor RaidDevice State
3 8 65 0 spare rebuilding /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
0 8 17 - faulty /dev/sdb1
[root@localhost a]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3] sdc1[1] sdb1[0](F)
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [**3/3] [UUU]**
unused devices:
[root@localhost a]# ll #查看测试的文件
总用量 0
-rw-r--r--. 1 root root 0 6月 30 11:06 123.txt
-rw-r--r--. 1 root root 0 6月 30 11:06 456.txt
[root@localhost a]# mdadm /dev/md0 -r /dev/sdb1 #移除已损坏的磁盘
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@localhost a]# mdadm -D /dev/md0 #查看/dev/md0详细信息
………… #省略部分内容
Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
[root@localhost a]# mdadm /dev/md0 -a /dev/sdb1 #添加一块硬盘
mdadm: added /dev/sdb1
[root@localhost a]# mdadm -D /dev/md0 #查看/dev/md0详细信息
………… #省略部分内容
Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
5 8 17 - spare /dev/sdb1
[root@localhost a]# ll
总用量 0
-rw-r--r--. 1 root root 0 6月 30 11:06 123.txt
-rw-r--r--. 1 root root 0 6月 30 11:06 456.txt
注意:在实际中sdb1已经是另一块完好的硬盘了。不是说之前损坏的那块移除再添加就好了。
服务器再添加一块磁盘,重启之后:
[root@localhost a]# mdadm /dev/md0 -a /dev/sdf1
mdadm: added /dev/sdf1
[root@localhost a]# mdadm -D /dev/md0
………… #省略部分内容
Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
5 8 17 - spare /dev/sdb1
6 8 81 - spare /dev/sdf1
由于默认是添加成热备盘,得把热备盘改为活动盘
[root@localhost a]# mdadm /dev/md0 -G -n4
#-n用来指定raid中活动盘的数量。最好保证要有足够的热备盘添加。
[root@localhost a]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 30 10:43:20 2019
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB) #磁盘容量已将发生变化
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Sun Jun 30 11:22:00 2019
State : clean #构建完成
………… #省略部分内容
Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
6 8 81 3 active sync /dev/sdf1
5 8 17 - spare /dev/sdb1
#此时raid中已经由四块硬盘了
[root@localhost a]# df -hT #查看之后,容量并没有发生变化
………… #省略部分内容
/dev/md0 xfs 40G 33M 40G 1% /a
[root@localhost a]# resize2fs /dev/md0
#(resizefx适用于ext3,ext4等文件系统不适用于xfs文件系统)
#resize2fs命令用于更新磁盘
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/md0 时
找不到有效的文件系统超级块.
[root@localhost a]# xfs_growfs /dev/md0 #对文件系统进行扩容
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10475520 to 15715584
[root@localhost a]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
………… #省略部分内容
/dev/md0 xfs 60G 33M 60G 1% /a
#再次查看容量已经发生变化
linux命令查看raid5,Linux中RAID5搭建与测试相关推荐
- 使用linux命令查看进程,Linux查看进程命令有哪些
我们在使用Linux系统的过程中,有的时候会需要查看后台进程,并选择性的关闭一些不用的进程,那么Linux中有哪些查看进程的命令呢?今天小编就来为大家总结整理一些常用的Linux查看进程命令. Lin ...
- linux命令查看驱动,Linux下查看网卡驱动和版本信息
Linux下查看网卡驱动和版本信息 查看网卡生产厂商和信号 查看基本信息:lspci 查看详细信息:lspci -vvv # 3个小写的v 查看网卡信息:lspci | grep Ethernet ...
- linux命令 查看分辨率,Linux命令行(console)屏幕分辨率调整
grub是系统启动器之一,用来存放启动项设置和信息,修改的时候必须特别小心,否则系统会瘫痪掉~~接下来是小编为大家收集的Linux命令行(console)屏幕分辨率调整,欢迎大家阅读: Linux命令 ...
- linux命令查看iotop,Linux iotop 命令用法详解-Linux命令大全(手册)
iotop 用来监视磁盘I/O使用状况的工具 补充说明 iotop命令 是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息. ...
- linux命令 查看分辨率,linux怎样在命令行模式修改屏幕分辨率
1:首先 ctrl + alt + F1 进入控制台引导界面 2:选择 kernel /boot/vmlinuz 这一行,然后按 e键 3:进入编辑模式后,在最后面空格后添加 single然后回车 4 ...
- linux命令查看iotop,Linux系统IO分析工具之iotop参数详解(查看IO占用)
简介: iotop – simple top-like I/O monitor iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息(requires ...
- linux mysql 运行状态_Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态...
mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态.进程信息.进程杀死等.本文介绍一下如何使用mysqladmin extende ...
- linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
C 和 C++ 的標准庫分別有自己的 locale 操作方法,C 標准庫的 locale 設定函數是 setlocale(),而 C++ 標准庫有 locale 類和流對象的 imbue() 方法.這 ...
- Linux命令查看子进程命令,Linux基础命令——查看进程命令
linux是一个 多进程 多用户的操作系统 ps(显示当前进程的状态) ps -ef 查看当前linux 进程 ps -ef | grep 'mysqld' 过滤mysql的进程 (grep ...
- Linux命令--查看内存--free--使用/教程/实例
原文网址:Linux命令--查看内存--free--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍Linux中free命令的用法. free命令用于显示 ...
最新文章
- 求连续子数组的最大和
- HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
- python教学视频a_2019何老师一个月带你玩转Python分布式爬虫实战教程视频(视频+源码)...
- 深度学习最常用的学习算法:Adam优化算法
- SPRING IN ACTION 第4版笔记-第二章-004-Bean是否单例
- LeetCode刷题(6)
- asp.net 提取html div,asp.net – 将div固定在html中的某一点
- [转载] python 字典查找_python字典的增,删,改,查
- dijit.layout.ContentPane--dojo学习
- 遗传算法是机器学习算法嘛?_基于遗传算法的机器人控制器方法
- 计算机网络—五层知识架构图
- 使用手机访问 Office 文档
- 第三十四讲项目2.1-麻烦的累加涨功夫
- 在线设计:在线制作卡通头像
- 啥是“quoting reference XXX” 递交申请材料时
- 人脸检测库libfacedetection使用方法
- 怎么给PDF添加页面?推荐三个PDF如何插入页面小妙招
- PHP面向对象-多态
- 【面试题】HTML篇(一)
- (个人笔记)Django学习笔记整理