龙空技术网

使用mdadm工具创建软RAID盘

冰原猫 149

前言:

现时看官们对“ubuntu 树莓派 initrafs”大概比较珍视,小伙伴们都需要了解一些“ubuntu 树莓派 initrafs”的相关内容。那么小编在网络上搜集了一些有关“ubuntu 树莓派 initrafs””的相关文章,希望朋友们能喜欢,大家一起来学习一下吧!

mdadm 工具可以用来管理软 RAID,软 RAID 虽然性能上不如硬件 RAID,但是在性能要求不高或者对冗余性有要求的场景下,还是有其用武之地。由于成本原因,家用 NAS 不管说得有多么地天花乱坠,基本上采用的都是软 RAID 技术,谁让一块 RAID卡大几 K 呢。

本文采用 Ubuntu 作为实验环境。

首先,要确定可用于软 RAID 的磁盘设备,可以用虚拟机构建这样的环境,整坏了也不心疼,比如下面就是一个虚拟机的环境,系统安装在 vda 上,外挂了两个 iSCSI 的盘 sda 和 sdb:

$ lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTNAME     SIZE FSTYPE TYPE MOUNTPOINTsda      100G        disksdb      100G        diskvda       20G        disk ├─vda1    20G ext4   part /└─vda15    1M        part

sda 和 sdb 各 100G (Virtual Size)

创建 RAID 0 盘

要使用 sda 和 sdb 这两个设备创建一个 RAID 0 设备,可以使用如下命令:

$ sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

可以通过 /proc/mdstat 来查看:

$ cat /proc/mdstatPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0]      209584128 blocks super 1.2 512k chunks                        unused devices: <none>

可见已经创建了一个使用 RAID 0 级别的软 RAID 设备,成员设备为 /dev/sda 和 /dev/sdb。

创建并挂载文件系统

接下来,可以在软 RAID 盘上创建一个文件系统并挂载:

$ sudo mkfs.ext4 -F /dev/md0$ sudo mkdir -p /mnt/md0$ sudo mount /dev/md0 /mnt/md0

检查文件系统是否可用:

$ df -h -x devtmpfs -x tmpfsFilesystem      Size  Used Avail Use% Mounted on/dev/vda1        20G  1.1G   18G   6% //dev/md0        197G   60M  187G   1% /mnt/md0

新文件系统已挂载并可访问。

为了确保系统启动时能自动扫描到软 RAID 盘,需要配置 /etc/mdadm/mdadm.conf 文件:

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

更新 initramfs 使系统在引导阶段就可以找到根磁盘(RH系使用dracut):

$ sudo update-initramfs -u

配置 /etc/fstab 自动挂载文件系统:

$ echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' |sudo tee -a /etc/fstab

注意:boot 分区如果使用软 RAID 盘,要使用 RAID 1,因为固件是不认识软 RAID 的,找不到引导文件就无法引导系统。

创建 RAID 1 设备

RAID 1 是 1:1 冗余的配置,创建方法类似,level 指定为 1:

$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
创建 RAID 5 盘

RAID 5 至少需要三个成员设备,通过成员设备进行条带化,使单个设备故障时,从其它成员设备的数据中可以通过奇偶校验恢复出故障设备上的数据。指定 level=3 创建 RAID 5 设备:

$ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

查看当前生效配置

$ cat /proc/mdstatPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0]      209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]      [===>.................]  recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec      unused devices: <none>

RAID 6 至少需要 4 个设备,这里就不赘述了:

$ sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd$ cat /proc/mdstatPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0]      209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]      [>....................]  resync =  0.6% (668572/104792064) finish=10.3min speed=167143K/sec      unused devices: <none>
删除软 RAID 盘

先找到当前在用的软 RAID 盘

$ cat /proc/mdstatPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0]      209584128 blocks super 1.2 512k chunks                        unused devices: <none>

先要卸载文件系统:

$ sudo umount /dev/md0

在占用的设备是无法卸载的,如果无法卸载,需要先找到占用该设备的进程,释放资源。

停掉软 RAID 设备:

$ sudo mdadm --stop /dev/md0

删除软 RAID 盘:

$ sudo mdadm --remove /dev/md0

清理之前被用作软 RAID 成员盘的数据:

$ sudo mdadm --zero-superblock /dev/sdc$ sudo mdadm --zero-superblock /dev/sdd

以上就是通过 mdadm 管理软 RAID 的基本用法了,实践是最好的老师,通过实际操作一定能有所收益。

标签: #ubuntu 树莓派 initrafs