一、裸金属磁盘管理基本概念
对于裸金属添加的新硬盘,需要依次使用mkfs进行文件系统格式化并使用parted工具进行磁盘分区,其中常见的操作是做raid,裸金属服务器上的RAID可以分为硬RAID和软RAID两种类型:
硬RAID是由磁盘阵列控制器(RAID卡)提供的RAID功能。这种控制器有自己的处理器和缓存,可以直接在硬件层面上执行RAID操作,减轻了服务器CPU的负担。优点:性能通常优于软RAID,因为RAID操作由专用硬件处理。缺点:成本较高,因为需要额外的硬件。硬RAID的操作通常通过RAID卡的管理界面或工具进行,而不是通过操作系统的命令行。例如,使用LSI RAID卡,进行如下命令:
# 查看RAID状态
megacli -LDGetList
# 创建RAID 1
megacli -CfgLdAdd -r1 -NumDrives 2 -PhysDrv[0,1] -NoBoot
软RAID是由操作系统在软件层面上提供的RAID功能。它不需要专用的RAID卡,而是利用操作系统的RAID驱动程序来管理磁盘。优点:成本较低,不需要额外的硬件。缺点:可能会占用更多的CPU资源,因为RAID操作由CPU处理。软RAID的操作通常通过操作系统提供的命令行工具进行,例如Linux系统中的mdadm:
# 创建一个新的RAID 1阵列
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
# 添加一块磁盘到现有的RAID阵列
mdadm --manage /dev/md0 --add /dev/sdc1
# 监控RAID阵列状态
cat /proc/mdstat
在实际应用中,硬RAID和软RAID的选择取决于预算、性能需求和系统配置。硬RAID通常用于需要高性能和高可靠性的企业级应用,而软RAID则适用于成本敏感的环境。无论选择哪种RAID类型,都需要定期进行维护和监控,以确保数据的完整性和可用性。
二、RAID磁盘冗余阵列
RAID,全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列,这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组,不同的RAID级别,可以实现不同的功能,如加速数据读写,如实现数据备份,常见的RAID级别有以下几种:
RAID0:将两个或两个以上相同型号、容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。其至少需要两块磁盘,一块磁盘故障,数据将无法恢复,适用于对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储。
RAID1:将两块以上的硬盘绑定,数据写入时,同时写入多个硬盘,因此即使有硬盘故障,也有数据备份。但是这种方式,无疑极大降低磁盘利用率,假设两块硬盘一共4T,真实数据只有2TB,利用率50%,如果是三块硬盘组成raid 1,利用率只有33%,也是不可取的。适用于对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
RAID5:至少需要3块磁盘,一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据,是目前综合性能最佳的数据保护解决方案,兼顾了存储性能、数据安全和存储成本等各方面因素,适用于大部分的应用场景。
RAID10:是RAID1+RAID0的组合,至少需要4块磁盘,其中两块硬盘为一组先做raid1,再将做好raid1的两组做raid0,兼顾了数据的冗余(raid1镜像)和读写性能(raid0数据条带化),但是其磁盘利用率为50%,成本较高。由于其只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据,因此raid10是最实用的方案。
三、裸金属本地盘性能测试
1、NVMe盘性能测试,测试命令:dd bs=32k count=20k if=/dev/zero of=test oflag=dsync
2、查看做完软RAID后磁盘空间与RAID类型,查看指令:cat /proc/mdstat
其中chunk=512K是超级块,15T是做完RAID的总大小。
综上所述,RAID的主要目的是提高数据的可靠性和容错能力,同时也可以提高数据访问速度。可以使用多种工具进行磁盘分区创建、管理、测试,保证磁盘性能达到要求的吞吐量,并且通过RAID配置,可以在一块或多块磁盘发生故障时保护数据不丢失,确保系统的持续运行。