磁盘挂载与raid阵列
本文最后更新于1 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

准备工作

1、硬盘(以3块同容量的硬盘为例)
2、fdisk ,fdisk 是 Linux 下常用的磁盘分区工具,属于 util-linux 软件包的一部分。检查是否已安装:sudo fdisk(普通用户需要加sudo,否正也可能提示未找到该命令;root用户直接执行fdisk即可确认是否安装)
3、mkfs.ext4
4、lsblk -f 查看所有存储设备的uuid 和 文件系统类型如ext4;util
5、安装 mdadm 工具,确保系统中已安装 mdadm 软件包,sudo apt-get install mdadmsudo yum install mdadm

磁盘分区

3块硬盘插入后,系统会识别并自动命名,我这里分别为/dev/sdb、/dev/sdc、/dev/sdd, 如果硬盘已有分区(如 /dev/sdb1),请使用 umount 命令卸载它们。

接着,进行磁盘分区,每块都要进行分区(以sde为例),需要root权限:

root@debiantest:fdisk /dev/sde
#输入m 查看使用帮助;
#输入 n 创建新的分区;
#输入数字,给分区定序号,1-4序号,默认为1;
#分配空间,如果一块盘准备分配成多个分区,应当合理分配的容量。默认为全部剩余空间;
#输入w保存并退出;
#输入q则是不保存并退出。

完成后执行lsblk,磁盘会出现sde1的分区,到这里分区完成。

创建Raid阵列

使用 mdadm 命令创建 RAID 0。假设三块硬盘的设备名分别是 /dev/sdb、/dev/sdc、/dev/sdd,命令如下:

sudo mdadm --create /dev/md127 --level=0 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

# /dev/md0:这是创建的 RAID 设备名称,可以自行定义。
# --level=0:指定 RAID 级别为 0。
# --raid-devices=3:指定参与阵列的硬盘数量为 3 块。

创建raid设备文件系统

在新的 RAID 设备上创建 ext4 文件系统。此步骤会清除设备上的所有数据。

sudo mkfs.ext4 /dev/md127

挂载使用

创建一个挂载点目录,并将 RAID 阵列挂载到该目录。这里是/radar_data

sudo mkdir /mnt/raid0
sudo mount /dev/md0 /mnt/raid0

配置开机自动挂载

为了让系统重启后能自动挂载 RAID 阵列,需要更新配置文件。

更新 mdadm 配置:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

更新 /etc/fstab 文件

方式一:添加一行(请根据实际情况调整文件系统类型和挂载点):

echo "`blkid /dev/md127 | awk '{print $2}' | sed 's/\"//g'` /mnt/raid0 ext4 defaults 0 0" | sudo tee -a /etc/fstab

方式二:使用编辑器手动编辑,如nano、vi、vim

重要提醒

数据风险极高:RAID 0 没有任何容错能力。它的可靠性等于其中最不可靠的那块硬盘。一块硬盘损坏,所有数据都会丢失。
不适用于关键数据:请勿将重要、无法重新创建的数据存储在 RAID 0 中。
性能取舍:RAID 0 的主要优势是读写性能的提升和存储空间的 100% 利用率,但代价是数据安全性极低。

当前已存在磁盘阵列,想要在当前阵列新增盘或修改阵列类型

备份数据

将/dev/md0 上的所有数据备份到其他硬盘或者其他网络位置;

cp * /data2 #拷贝到其他目录,这个目录必须在其他磁盘或者网络位置上
mv * /data2 #移动到其他目录,这个目录必须在其他磁盘或者网络位置上

停止现有raid阵列

lsblk  #查看当前阵列
sudo umount /dev/md0  ##如果已挂载,先卸载
sudo mdadm --stop /dev/md0  ##停止阵列

清除旧RAID元数据(可选且推荐)

sudo mdadm --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1

准备新盘

分区并设置Linux RAID类型(可选)

sudo fdisk /dev/sde #创建主分区(如sde1),类型设置为“linux RAID”(代码fd)

删除分区旧分区

前面使用了磁盘分区,如sdb1、sdc1、sdd1,且该分区使用了全部的磁盘空间,实际上,这样的话不需要进行分区了,可以直接使用整个磁盘来组建阵列。因此可以先将分区删除掉

1.删除分区
sudo fdisk /dev/sdb
输入d,删除分区
输入w,保存修改

sudo fdisk /dev/sd3
输入d,删除分区
输入w,保存修改

sudo fdisk /dev/sdd
输入d,删除分区
输入w,保存修改

重建RAID阵列(4块盘)

1.四块盘组成md0的raid1 阵列
sudo mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde  

2.格式化并重新挂载阵列
sudo mkfs.ext4 /dev/md9  #格式化为ext4格式(或xfs)
sudo mkdir /data1
sudo mount /dev/md0 /data1

配置更新文件&设置开机自动组装

这一步的作用是防止重启后没有读到md0,变成了md127.

这是 Linux 软 RAID 配置中非常经典的问题。md127 是 mdadm 的默认编号,当系统启动时没有读取到明确的配置文件(/etc/mdadm.conf),或者配置未写入初始内存盘(initramfs)时,就会自动分配这个“最大可用编号”。

将其固定为 /dev/md0

1.更新配置文件:执行以下命令,将当前运行的 RAID 信息写入配置文件:
sudo mdadm --detail --scan|sudo tee -a /etc/mdadm/mdadm.conf 
2.更新初始内存盘:这一步至关重要,它确保系统在最早期的启动阶段就能识别阵列名称:
sudo update-initramfs -u #/debian/ubuntu系统需执行

配置开机自动挂载

1.lsblk -f 查看并复制md0的UUID
2.sudo nano /etc/fstab 编辑fstab文件,将新的UUID挂载到/data1上
3.ctrl+x y保存并退出

FQA

想要取消挂载/dev/md0 挂载到 /radar_data,但是提示设备忙?

需要先停止md0,命令是sudo mdadm --stop /dev/md0
停止后,就可以取消挂载。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇