首先安装madam
各个系统命令不同正常, 一般 *** install/add mdadm
就可
目前我们硬件环境是/dev/sda
8Gb数据盘/dev/sdb
8Gb数据盘/dev/sdc
系统盘
需要把/dev/sda
和/dev/sdb
组成raid1
阵列 保障数据安全
第一步 分区
/dev/sda
和/dev/sdb
分别分区,设置一个主分区,并且类型设置为阵列
具体操作如下
fdisk /dev/sda
d # 删除已有的所有分区,如果没有回提示没有分区
n # 创建新分区
p # 分区类型为主分区
1 # 分区号为1
{回车} # 磁道起始位置默认最前
{回车} # 磁道结束位置默认最后
t # 设置分区类型
fd # 类型为raid阵列类型
p # 输出分区类型
w # 操作写入硬盘
q # 退出fdisk
ls /dev/sd* # 查看应该出现了 /dev/sdb1 分区了
如果报错,或者分区没有生效,不需要重启,只要运行partprobe
重新加载一下分区表即可
p
的时候可以看到结果是这样的
Disk /dev/sdb: 8192 MB, 8589934592 bytes, 16777216 sectors
1044 cylinders, 255 heads, 63 sectors/track
Units: sectors of 1 * 512 = 512 bytes
Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type
/dev/sdb1 0,1,1 1023,254,63 63 16777215 16777153 8191M fd Linux raid autodetect
mdadm -E /dev/sd*
可以看到分区情况了, /dev/sda
和/dev/sdb
已经有一个分区,并且type
是fd
/dev/sda:
MBR Magic : aa55
Partition[0] : 16777153 sectors at 63 (type fd)
mdadm: No md superblock detected on /dev/sda1.
/dev/sdb:
MBR Magic : aa55
Partition[0] : 16777153 sectors at 63 (type fd)
mdadm: No md superblock detected on /dev/sdb1.
/dev/sdc:
MBR Magic : aa55
Partition[0] : 204800 sectors at 2048 (type 83)
Partition[1] : 3002368 sectors at 206848 (type 82)
Partition[2] : 38733824 sectors at 3209216 (type 83)
/dev/sdc1:
MBR Magic : aa55
Partition[0] : 432871117 sectors at 3224498923 (type 07)
Partition[1] : 1953460034 sectors at 3272020941 (type 16)
Partition[3] : 924335794 sectors at 50200576 (type 00)
mdadm: No md superblock detected on /dev/sdc2.
mdadm: No md superblock detected on /dev/sdc3.
第一步(大于2TB硬盘)
fdisk仅支持2TB以内硬盘,大于2TB的硬盘,需要使用parted
转换为gpt
格式
具体方法如下
parted /dev/sda
mklabel gpt # 设置分区类型为gpt
mkpart extended 0 -1 # (扩展分区extended,主分区primary,并使用整个硬盘,建议用扩展分区,主分区会多出一个小分区)
print (查看一下)
两个盘同样设置,只不过 fdisk
中设置分区类型为fd
那一步不成功,设置前后都是ee
没变化,不过貌似不影响组建阵列。
第二步 创建阵列
mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sda1 /dev/sdb1
参数说明
-C # 创建阵列
-v /dev/md0 # 创建名为/dev/md0 的虚拟设备
-l 1 # 阵列类型是 raid1
-n 2 /dev/sda1 /dev/sdb1 # 使用两个分区来创建,分区名称是/dev/sda1 /dev/sdb1 注意后面的 1 这是是选择分区不是硬盘
-x 1 /dev/xxxx1 # 使用1个热备盘,如果阵列失效会自动用热备盘顶替
输入y
确认
然后记得一定要保存配置好的结果mdadm --detail --scan > /etc/mdadm.conf
接着把mdadm-raid
加到启动项里面 rc-update add mdadm-raid sysinit
因为service里面定义了在checkfs fsck swap
之前运行,所以是先加载阵列再挂载
depend() {
before checkfs fsck swap
after modules
}
这里我们可以输入mdadm -D /dev/md0
查看分区情况
/dev/md0:
Version : 1.2
Creation Time : Fri Oct 18 04:56:34 2019
Raid Level : raid1
Array Size : 8383424 (8.00 GiB 8.58 GB)
Used Dev Size : 8383424 (8.00 GiB 8.58 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Oct 18 04:56:49 2019
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Resync Status : 42% complete (注意这里进度,进度满了才能用吧)
Name : docker:0 (local to host docker)
UUID : 2bb4165b:168c41b7:25ffaa41:96e33615
Events : 6
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
第三步 创建分区
至此我们可以把/dev/md0
当成一个分区来格式化, 并且挂载了
mkfs.ext4 /dev/md0
mkdir /data
mount /dev/md0 /data
在/etc/fstab
中添加自动挂载信息
/dev/md0 /data ext4 defaults 0 0
测试一下性能,alpine之类精简系统可能不显示速度
# 测试写入
dd if=/dev/zero of=file bs=1M count=1024
# 测试读取
dd if=file of=/dev/null
删除 raid 中分区
# 取消挂载
umount /dev/md0
# 停止使用分区
mdadm -S /dev/md0
# 删除分区
fdisk # 用d命令删除
# 在/etc/fstab 中删除挂载信息
阵列未保存恢复
如果创建好设备后没有保存配置,重启后会丢失配置,这时候我们用mdadm -A /dev/md0 /dev/sd[a-b]1
即可恢复,如果缺少设备,也可用此方法利用剩余设备恢复阵列
如果/etc/mdadm.conf
中有记录.直接mdadm -As
即可恢复