linux 下 使用 mdadm 创建阵列

本文共有4206个字,关键词:

首先安装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已经有一个分区,并且typefd

/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即可恢复

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

pch18

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:如无特别说明,本文为作者原创,转载请在首行注明来源:https://pch18.cn/archives/263.html
添加新评论
暂无评论