加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux MD源码分析(一)

发布时间:2022-10-13 16:00:33 所属栏目:Linux 来源:网络
导读: 如果不声明,则在模块加载时会收到内核被污染的警告,一般应遵循GPL协议。
代码:MODULE_LICENSE("GPL");
4) 模块参数(可选)
模块在被加载时传递给模块的值,本身应该是模块内部的全局

如果不声明,则在模块加载时会收到内核被污染的警告,一般应遵循GPL协议。

代码:MODULE_LICENSE("GPL");

4) 模块参数(可选)

模块在被加载时传递给模块的值,本身应该是模块内部的全局变量。

模块的编译

假设编译book模块,将Makefile文件放在book.c同级的目录下,然后使用#make命令或者#make all命令编译即可生成book.ko模块文件。

以上是LInux内核和模块的基本概念。下面我们来认识一下我们即将接触的MD模块。首先我们需要了解一下基本的存储理论知识。现在的时代是大数据时代,数据是当今时代的中心。而随着数据爆炸式的增加,如何妥善有效地保护数据是存储系统的核心问题之一。冗余磁盘阵列(Redundant Array of Independent Disks )技术是各种企业信息系统和个人广泛使用的解决方案。

RAID

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。

组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。部分级别如下:

linux查看文件编码_linux 发邮件制定编码_linux编码

raid0:数据分割,无容错能力;

raid1:镜像(双拷贝);

raid2:海明码,不具有商业生命力;

raid3:并行,位交叉,单校验盘;

raid4:并行,块交叉linux编码,单校验盘;

raid5:独立,循环校验盘;

raid6:容双盘错,块交叉,近年被广泛重视;

raid10:分块与镜像结合。

虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处主要有以下三种:通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能;通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;通过镜像或校验操作提供容错能力。RAID技术的两大特点:一是速度、二是安全,RAID通常是由在硬盘阵列塔中的RAID控制器或电脑中的RAID卡来实现的。

RAID控制器

linux 发邮件制定编码_linux编码_linux查看文件编码

RAID控制器是一种硬件设备或软件程序,用于管理计算机或存储阵列中的硬盘驱动器(HDD)/固态硬盘(SSD),以便它们能如逻辑部件一样工作,各施其职。RAID控制器的功能既可以由硬件也可以由软件来实现。硬件RAID一般用于处理大量数据的RAID模式。随着处理器的能力的不断增强,软件RAID功能已经成为可能,不过当处理大量数据时CPU仍然会显得力不从心。一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。在这里,我们使用的是软件RAID。

在Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。

MD

Multiple Devices虚拟块设备(利用底层多个块设备虚拟出一个新的虚拟块设备)。目前MD支持linear, multipath, raid0 (stripping), raid1 (mirror), raid4, raid5, raid6, raid10等不同的冗余级别和组成方式,当然也能支持多个RAID阵列的层叠组成raid1+0, raid5+1等类型的阵列。

md device : 就是使用MD创建的软件RAID。

条带化技术(stripping)

又称数据分块,即把数据分成若干相等大小的小块,并把它们写到阵列上不同的硬盘上,这种技术又称“Stripping”(即将数据条带化),这种把数据分布在多个盘上,在读写时是以并行的方式对各硬盘同时进行操作。从理论上讲,其容量和数据传输率是单个硬盘的N倍。

数据冗余

数据冗余:在一个数据集合中重复的数据称为数据冗余。 数据冗余技术是使用一组或多组附加驱动器存储数据的副本,这就叫数据冗余技术。比如镜像就是一种数据冗余技术。

在工控软件开发中,冗余技术是一项最为重要的技术,它是系统长期稳定工作的保障。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!