linux 系统盘做软raid,Linux软RAID配置

linux 系统盘做软raid,Linux软RAID配置RAID 卡一般分为硬 RAID 卡和软 RAID 卡两种 通过用硬件来实现 RAID 功能的就是硬 RAID 独立的 RAID 卡 主板集成的 RAID 芯片都是硬 RAID 通过软件并使用 CPU 的 RAID 卡是指使用 CPU 来完成 RAID 的常用计算 软件 RAID 占用 CPU 资源较高 绝大部分服务器设备是硬件 RAID 一 Raid 级别 raid0 多个磁盘的容量大小相加 最后的容量就是多个磁盘容量的大小 优点 扩大了磁盘的空间容

RAID卡一般分为硬RAID卡和软RAID卡两种,通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。通过软件并使用CPU的RAID卡是指使用CPU来完成RAID的常用计算,软件RAID占用CPU资源较高,绝大部分服务器设备是硬件RAID。

一:Raid级别raid0:

多个磁盘的容量大小相加.最后的容量就是多个磁盘容量的大小.

优点:扩大了磁盘的空间容量

缺点:没有数据冗余,一块磁盘坏掉,导致所有数据无法正常访问,此时就丢失了一个磁盘的数据量.

磁盘使用率:

n*每个磁盘的容量大小raid1:

磁盘的利用率为50%. 4块80G的硬盘组成raid1,那么可用的磁盘空间为160G.插入的数据会实时同步到另外一个磁盘上,这份相同的数据称为镜像.数据及其安全.一般用在数据安全的场所.

缺点:成本很高.一块磁盘坏掉,必须及时去更换磁盘.

磁盘使用率:

(n/2)*每个磁盘的容量大小raid5:

使用奇偶校验码存在所有的磁盘上.读出效率很高,写入数据一般.因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难.

对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

磁盘使用率:

(n-1)*每个磁盘的容量大小

二:Linux软raid制作对于目前所有的操作系统,包括windows、mac os、linux等操作系统,其都有软件RAID的实现,而我们的Linux操作系统的软件RAID是通过 mdadm 这个程序来实现的

使用Linux下的 mdadm 这个软件需要注意的几点:

①mdadm 支持的RAID级别有:RAID0、RAID1、RAID4、RAID5以及RAID6。我们看到对于常用的四种RAID级别,mdadm都能够支持

②mdadm 可以基于多块硬盘、分区以及逻辑卷来创建RAID。对于硬件实现RAID来说,就只能是基于多块硬盘了

③创建好的软件RAID对应于 /dev/mdn,n表示的是第几个RAID,如第一个创建的RAID对应 /dev/md0, 第二个创建的RAID就对应 /dev/md1,当然这个名字是可以自己随便取的

④RAID的信息保存在 /proc/mdstat 文件中,或者通过 mdadm 命令来查看

三:测试环境配置

接下来我就在我这台CentOS的系统上来创建我们的软件RAID

在创建软件RAID之前,我这里首先通过虚拟机模拟了4块1G的虚拟硬盘出来,当然在实际环境下,使用的就是具体的硬盘了。虚拟机下的磁盘有:每个磁盘16G

/dev/sda

/dev/sdc

/dev/sdd

/dev/sde

1.对已有磁盘进行分区fdisk  /dev/sda

fdisk  /dev/sdc

fdisk  /dev/sdd

fdisk  /dev/sde

得到分区:/dev/sda1

/dev/sdc1

/dev/sdd1

/dev/sde1

2.创建raid[root@os6—224 yujianglei]# mdadm   -Cv  /dev/md0   -l5 -n3  -x1  -c 128 /dev/sd[a,c,d,e]1

mdadm: layout defaults to left-symmetric

mdadm: layout defaults to left-symmetric

mdadm: size set to K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.参数解释:

-C   创建md0

-v   显示创建过程

-l   raid级别

-n   活跃磁盘

-x   备用磁盘

-c   数据块大小,默认为64KB.

命令也可以按照下面写:

mdadm   –create  -v   /dev/md0  –level 5  -n3  -x1  –chunk 128  /dev/sda1  /dev/sdc1  /dev/sdd1  /dev/sde1

3.查看raid状态:[root@os6—224 yujianglei]# mdadm  -D  /dev/md0

/dev/md0:

Version : 1.2

Creation Time : Wed Dec  2 15:57:47 2015

Raid Level : raid5

Array Size :  (31.97 GiB 34.33 GB)

Used Dev Size :  (15.99 GiB 17.17 GB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Wed Dec  2 15:59:12 2015

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 128K

Name : os6—224:0  (local to host os6—224)

UUID : ae905c03:6e4b3312:393d3d2e:0c7ec68d

Events : 18

Number   Major   Minor   RaidDevice State

0       8        1        0      active sync   /dev/sda1

1       8       33        1      active sync   /dev/sdc1

4       8       49        2      active sync   /dev/sdd1

3       8       65        –      spare   /dev/sde1[root@os6—224 yujianglei]# cat  /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sda1[0]

 blocks super 1.2 level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices: 

4.【注意:】我们在创建好RAID以后,需要将RAID的信息保存到 /etc/mdadm.conf 这个文件里,这样在下次操作系统重新启动的时候,系统就会自动加载这个文件来启用我们的RAID[root@os6—224 yujianglei]# mdadm -D –scan > /etc/mdadm.conf

[root@os6—224 yujianglei]# cat /etc/mdadm.conf

ARRAY /dev/md0 metadata=1.2 spares=1 name=os6—224:0 UUID=ae905c03:6e4b3312:393d3d2e:0c7ec68d

5.格式磁盘[root@os6—224 yujianglei]# mkfs.ext4 /dev/md0

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=32 blocks, Stripe width=64 blocks

 inodes,  blocks

 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=

256 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, , , , , , , ,

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 37 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

6.建立挂载点,并挂载mkdir  /raid5

mount  /dev/md0  /raid5

7.查看md0分区的大小,共32G.正好匹配(n-1)*16G  ,这里的n为3,因为有一个磁盘是备用磁盘.[root@os6—224 yujianglei]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

30G  2.1G   27G   8% /

tmpfs                 497M     0  497M   0% /dev/shm

/dev/sdb1             477M   52M  400M  12% /boot

/dev/mapper/VolGroup-lv_home

31G  2.4G   27G   9% /home

/dev/md0               32G   48M   30G   1% /raid5

8.配置开机启动vi  /etc/fstab

/dev/md0                /raid5                  ext4    defaults        0 0

9.重启机器测试

10.raid的日常维护现在模拟一块磁盘故障,查看磁盘的重建过程

我们还可以通过 mdadm 命令来模拟RAID故障,通过 mdadm /dev/md0 -f /dev/sda1 命令

[root@os6—224 raid5]# mdadm /dev/md0 -f /dev/sda1

mdadm: set /dev/sda1 faulty in /dev/md0再次查看/dev/md0的状态

[root@os6—224 raid5]# mdadm  -D  /dev/md0

/dev/md0:

Version : 1.2

Creation Time : Wed Dec  2 15:57:47 2015

Raid Level : raid5

Array Size :  (31.97 GiB 34.33 GB)

Used Dev Size :  (15.99 GiB 17.17 GB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Wed Dec  2 17:48:31 2015

State : clean, degraded, recovering

Active Devices : 2

Working Devices : 3

Failed Devices : 1

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 128K

Rebuild Status : 42% complete            //这里的Rebuild Status状态就是重建的过程,达到100%后,就OK了

Name : os6—224:0  (local to host os6—224)

UUID : ae905c03:6e4b3312:393d3d2e:0c7ec68d

Events : 30

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        1        –      faulty   /dev/sda1

检查数据是否丢失[root@os6—224 raid5]# ll  /raid5/

总用量 

drwx——. 2 root root     16384 12月  2 16:34 lost+found

-rw-r–r–. 1 root root  12月  2 16:54 test.img

11.移除损坏的磁盘mdadm  /dev/md0  -r  /dev/sda1

12.添加新磁盘到raid5中去,默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘mdadm  /dev/md0  -a  /dev/sda1

此时sda1这块盘会立即进入到备用状态.

13.我们需要把热备盘加入到RAID 的活动盘中。备用盘转化为活动盘,此时又会重新rebuildmdadm -G  /dev/md0   -n4

14.此时raid的容量增加了,但是文件系统的容量还是原来的,需要扩充文件系统的大小[root@os6—224 raid5]# resize2fs  /dev/md0

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/md0 is mounted on /raid5; on-line resizing required

old desc_blocks = 2, new_desc_blocks = 3

Performing an on-line resize of /dev/md0 to  (4k) blocks.

The filesystem on /dev/md0 is now  blocks long.

[root@os6—224 raid5]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

30G  2.1G   27G   8% /

tmpfs                 497M     0  497M   0% /dev/shm

/dev/sdb1             477M   52M  400M  12% /boot

/dev/mapper/VolGroup-lv_home

31G  2.4G   27G   9% /home

/dev/md0               48G  292M   45G   1% /raid5

15.重启机器测试,一切Ok

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210724.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:02
下一篇 2026年3月19日 上午7:02


相关推荐

  • 小龙虾 OpenClaw 安装全攻略:本地部署 AI 智能体一步到位

    小龙虾 OpenClaw 安装全攻略:本地部署 AI 智能体一步到位

    2026年3月12日
    3
  • MySQL与SqlServer的区别「建议收藏」

    MySQL与SqlServer的区别「建议收藏」一、MySQL与SqlServer的区别目前最流行的两种后台数据库即为Mysql和SQLServer。这两者最基本的相似之处在于数据存储和属于查询系统,你可以使用SQL来访问这两种数据库的数据,因为它们都支持ANSI-SQL(数据库管理标准)。还有,这两种数据库系统都支持二进制关键字和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持XML的各种格式。根本的区别:SQL服务器的狭隘的、保守的存储引擎而MySQL服务器的可扩展、开放的存储引擎;SQL服务器的引擎是Sybase,而MyS

    2022年10月2日
    3
  • IIS配置HTTPS

    IIS配置HTTPS1 新建网站 选中类型为 https 然后更改 SSL 证书为你配置的 SSL 证书 对于 SSL 证书的配置是这样的点开第二步 然后点击创建自签名证书确定以后点开网站看到有个 SSL 双击进去 再选中要求 SSL 选中此步就是为了防止浏览器认为你的网站不安全阻止网站的访问 到此 证书配置完成然后发现 IIS 无法绑定域名 因为 IIS7 默认不支持 HTTPS 绑定域名 此时需要自己手动去设置首先打开 C Windows s

    2026年3月18日
    2
  • decode encode区别_python encode函数

    decode encode区别_python encode函数encode:编码decode:解码python内部编码方式为unicode,decode将其他编码方式转换成unicode编码方式,encode将unicode转换成其他编码方式。因此unicode相当于一个中转:(1)decode->unicode->encode(2)encode->unicode->decode字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符…

    2022年10月7日
    4
  • 【object window】= $0

    【object window】= $0

    2021年7月19日
    68
  • 曼彻斯特编码、差分曼彻斯特编码怎么画;曼彻斯特编码、差分曼彻斯特编码的画法

    曼彻斯特编码、差分曼彻斯特编码怎么画;曼彻斯特编码、差分曼彻斯特编码的画法网上看了很多讲解 总感觉不是很全面 在此小结一下 先看个例子 试画出 Ox52B7 的曼彻斯特编码及差分曼彻斯特编码首先 Ox52B7 00111B 曼彻斯特编码画法 差分曼彻斯特编码画法 口诀 0 立即跳变 1 延迟跳变

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号