百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux系统中有关磁盘冗余阵列RAID的详细介绍

nanshan 2024-12-27 15:43 19 浏览 0 评论

简介:Linux系统(这里介绍的是CentOS7系统)使用mdadm软件创建独立磁盘冗余阵列RAID。而所谓的RAID,是 Redundant Array of Independent Disks的简写,意为独立磁盘冗余阵列,简称磁盘阵列。基本思想是通过将多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。

常用的几种RAID模式有RAID0、RAID1、RAID5和RAID10等几种模式。

本文主要介绍在RAID的磁盘阵列模式并在Linux系统使用的方法。详细内容请参考下文。

一、登录Linux系统

1.登录系统

2.查看磁盘状况

执行指令# lsblk查看磁盘状况

二、磁盘阵列RAID

1.磁盘阵列的软硬之分

RAID分为软件磁盘阵列(软RAID)、硬件磁盘阵列(硬RAID)和硬件辅助磁盘阵列(半软、半硬)三种类型。

(1) 硬RAID:全部通过用硬件来实现RAID功能就是硬RAID,比如各种RAID卡,还有主板集成的RAID芯片都是硬RAID。

硬RAID全面具备了自己的RAID控制/处理与I/O处理芯片功能,甚至还有队列缓冲(Array Buffer),对CPU的占用率很低,其整体性能非常突出。

(2) 软RAID:主要通过操作系统来完成RAID功能的就是软RAID,比如在Linux操作系统下用3块硬盘做RAID5,也就是不使用RAID控制器与I/O芯片,直接通过软件层实现的RAID,所有功能都是操作系统与CPU来完成,这种RAID模式的效率比较低。

(3) 半软半硬RAID:与硬RAID和软RAID相比,半软半硬RAID也需要一张RAID卡及其驱动程序,不过缺乏自己的I/O处理芯片,所以这方面的工作仍要由CPU与驱动程序来完成,半软半硬RAID所采用的RAID控制/处理芯片的能力一般都比较弱,不能支持高的RAID等级。但有个有时就是比较容易迁移到其他电脑。

RAID模式

优点

缺点

硬RAID

整体性能突出,硬盘丢失时可以重建,如果RAID卡损坏时也可以更换RAID卡。

成本最高

软RAID

成本低,实现简单。

稳定性不强

半软半硬RAID

整体性能中等,容易迁移其他电脑主机。

优势不明显

2.几种常见的RAID模式

(1)RAID0

备注:RAID0是将多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障,将导致整个系统的数据都受到破坏。通俗来说,RAID 0 技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据误修复能力。

(2)RAID1

备注:RAID 也成为镜像,需要两块及以上偶数的硬盘两两组成一块逻辑硬盘,其中一块盘是主盘,一块盘为备盘,理论上读取的速度为硬盘数量的倍数,但是写性能会降低,因为在写入数据时需要将一份数据复制成两份,分别存于主盘和备盘,但是冗余性能会大大提升,理论桑坏盘数量可以达到整体磁盘数量的一半而不会影响数据完整。

(3)RAID5

备注:RAID5阵列模式是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID5磁盘阵列中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。其优点就是,其中任何一设备损坏后都可以依赖其它几块设备重建丢失的这块硬盘数据。

三、MDADM软件使用介绍

1.mdadm软RAID

说明:mdadm是linux下用于创建和管理软件RAID的工具软件,是一个模式化命令。

2.mdadm使用介绍

执行指令# mdadm --help-option查看使用帮助

备注:MDADM的选项:-C创建RAID磁盘阵列。其专用选项:

-l 级别

-n 设备个数

-a {yes|no} 自动为其创建设备文件

-c 指定数据块大小(chunk)

-x 指定空闲盘(热备磁盘)个数,空闲盘(热备磁盘)能在工作盘损坏后自动顶替

注意:创建阵列时,阵列所需磁盘数为-n参数和-x参数的个数。

(1)使用mdadm创建RAID0

首先执行指令# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

备注:上述指令只要是在/dev/md0目录下将sdb1与sdb2两块磁盘创建为RAID级别为0,磁盘数为2的RAID0阵列。需要注意的是用于创建raid的磁盘分区类型必须为fd格式。

通过fdisk进行磁盘分区,输入“l”可以查看磁盘分区格式如下:

然后执行# fdisk /dev/sdb 然后选择t参数,输入Hex分区代码为df即可修改sdb的分区类型。

然后执行指令# mdadm -D /dev/md0 查看RAID0的详细信息

最后执行指令# mkfs.xfs /dev/md0 对分区进行格式化,这样就可以使用mount /dev/md0 /raid0_disk/命令挂载使用了。

(2)使用mdadm创建RAID1

执行指令# mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{3,4}

备注:上述指令主要作用是在/dev/md1目录下将sdb3与sdb4两块磁盘创建为RAID级别为1,磁盘数为2的RAID1磁盘阵列并将sdb4作为备用磁盘。其他的操作步骤与创建RAID0的步骤一样。

(3)使用mdadm创建RAID5

执行指令# mdadm -Cv /dev/md5 -n 3 -l 5 -x 1 /dev/sdb{5,6,7,8} 四块磁盘创建RAID5模式。

备注:上述指令中加了-x 1这个参数,表示有一块是备份盘。通过指令mdadm -D /dev/md5可以查看组建后的RAID5情况。然后执行指令mkfs.ext4 /dev/md5进行分区格式化,最后通过mount命令挂载磁盘就可以正常使用。

3.取消RAID

(1)一般情况下,如果已经创建开机启动,就需要删除/etc/fstab删除相关的RAID挂载内容;

(2)然后执行指令# umount /dev/md0取消磁盘挂载;

(3)最后停止磁盘阵列

执行指令# mdadm -S /dev/md0停止RAID磁盘阵列

备注:停止磁盘阵列之后,再执行lsblk命令会发现/dev/md0设备已经消失。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: