用虚拟机进行RAID的练习——【无冥冥之志者,无昭昭之明;无惛惛之事者,无赫赫之功。】
内容:
前提知识点:
磁盘阵列的实现方式:
磁盘阵列的常见实现方式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。
外接式磁盘阵列:
通过扩展卡提供适配能力。
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列:
主板集成RAID控制器,安装OS前在BIOS里配置。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。
硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。
它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。
软件RAID:
通过操作系统实现。
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。
软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。
因此会拖累机器的速度,不适合大数据流量的服务器。
BIOS+MBR与UEFI+GPT:
UEFI(统一扩展固件接口)硬件支持GPT,使得操作系统启动。因此采用传统的BIOS方式仅支持MBR分区方式。
我们现在新购买的机器基本上都是基于UEFI方式启动的。
我们基于BIOS启动的操作系统它通常是MBR分区的系统,虽然BIOS无法识别GPT的分区,但我们基于BIOS启动的操作系统是可以识别你新接入的GPT分区的磁盘。
BIOS只是字符界面,它只能使用键盘操作,而UEFI是支持鼠标操作的哟。 BIOS和UEFI运行流程如下所示。
传统BIOS运行流程:
(1)开机
(2)BIOS初始化
(3)BIOS自建
(4)引导操作系统
(5)进入系统
UEFI运行流程:
(1)开机
(2)UEFI初始化
(3)引导操作系统
(4)进入系统
管理分区:
列出块设备
lsblk
创建分区使用:
创建MBR分区:
fdisk
创建GPT分区:
gdisk
高级分区操作:
parted
重新设置内存中的内核分区表版本
partprobe
推荐阅读:
https://www.cnblogs.com/yinzhengjie/p/12355151.html
https://www.cnblogs.com/yinzhengjie/p/12359248.html
https://www.cnblogs.com/yinzhengjie/p/12359770.html
RAID常见级别与JBOD概述:
https://www.cnblogs.com/yinzhengjie/p/12953680.html
软件RAID的实现:
https://www.cnblogs.com/yinzhengjie/p/12995834.html
本地虚拟机测试【*】:
目前只有1块磁盘设备sda
加2块磁盘设备(sdb和sdc)
用 fdisk -l 查看磁盘类型
用 hexdump -C /dev/sdb -n 512 -v 查看是否活动分区
80表示活动分区,00表示非活动分区
假设sdb上有数据
***dd if=/dev/sdb of=dpt bs=1 count=64 skip=446
备份分区表(备份的数据建议大家放在别的服务器上,因为一旦当前服务器的分区表被破坏就意味着备份的数据拿不出来啦!***
***dd if=/dev/zero of=/dev/sdb bs=1 count=64 seek=446
破坏分区表信息(请谨慎操作,该步骤操作后将意味着下次重启后你的分区信息全没了)***
***dd if=dpt of=/dev/sdb bs=1 count=64 seek=446
恢复分区表(实际生产环境中可能需要你通过光盘或者U盘引导进入到救援模式操作哟~)***
sdc上同理
如图,sdb,sdc上没有数据
对sdb磁盘进行分区
fdisk /dev/sdb
...
同样,对sdc磁盘进行分区
从而目前分区信息:
创建RAID 0块设备实战案例
安装mdadm工具(用于创建RAID磁盘)
yum -y install mdadm
使用mdadm工具创建一个RAID0的块设备
mdadm -C -a yes /dev/md001 -l 0 -n 2 /dev/sd{b,c}1
使用mdadm命令查看RAID设备的详细信息
为RAID设备创建文件系统
mkfs.xfs /dev/md1
挂载RAID设备
mkdir -pv /test/raid
UUID=ae588116-8630-489f-8d1e-94909f958b7a /test/raid xfs defaults,noatime,nodiratime 0 0 >> /etc/fstab
mount -a
df -h
测试RAID 0设备的写入速度
dd if=/dev/zero of=/test/raid/test.log bs=1M count=1024
dd if=/dev/zero of=/test/test2.log bs=1M count=1024
测试RAID 0设备的读取速度
dd if=/test/test2.log of=/dev/null
free -h
sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches
free -h
dd if=/test/raid/test.log of=/dev/null
重启服务器后再次查看挂载情况(编辑"/etc/fstab"文件后,虽说可以使用"mount -a"命令使之立即生效,但生产环境务必要重启服务器进行测试哟)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)