Linux 组建 Software RAID 笔记
浏览 199 | 评论 0 | 字数 3467
椎名なぎさ
2020年09月08日
  • 大多数时候在服务器上组建 RAID 阵列可以通过服务商提供的控制面板完成,但是遇到一些特殊情况的时候还是需要手动操作的,例如 Hetzner 混合盘 (SSD + HDD 组合) 服务器的安装配置就是其中之一。

    创建 RAID 设备

    首先使用 fdisk -l 查看一下磁盘信息,确定要组建 RAID 的硬盘。

    Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
    Disk model: HGST HUS726020AL
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes

    Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
    Disk model: HGST HUS726020AL
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes

    本文使用 mdadm 工具1对 sda 和 sdb 两块硬盘组建 RAID 0,使用方法:

    mdadm --create device --chunk=X --level=Y --raid-devices=Z devices

    这里 chunk size 可以使用默认值 (512 KiB),RAID 等级 0,使用 sda 和 sdb 两块硬盘建立 /dev/md4,执行

    mdadm --create /dev/md4 --level=0 --raid-devices=2 /dev/sd[a-b]

    看到 mdadm: array /dev/md4 started. 提示就说明 RAID 阵列已经组建成功并启动了。

    格式化并挂载 RAID 阵列

    接下来格式化并挂载刚才建立的 RAID 阵列。

    格式化使用 mkfs 工具2,执行:

    mkfs.ext4 -E stride=128 -E stripe-width=256 -b 4096 /dev/md4

    这里使用 -E 选项指定 stride 和 stripe-width 参数做一下 IO 对齐提升 RAID 阵列性能。

    公式3如下:

    Stride size = [ RAID chunk size ] / [ Filesystem block size ]

    Stripe width = [ Stride size ] * [ Number of data-bearing disks ]

    这里 Stride size = 512 KiB / 4 KiB = 128,由于是 RAID 0 所以 Number of data-bearing disks 取 2,Stripe width = 128 * 2 = 256

    执行命令提示

    mke2fs 1.44.5 (15-Dec-2018)
    Creating filesystem with 976691200 4k blocks and 244178944 inodes
    Filesystem UUID: e70552f6-f21f-43cc-977e-325688bd8f78
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848, 512000000, 550731776, 644972544

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (262144 blocks): done
    Writing superblocks and filesystem accounting information: done

    说明磁盘已经格式化完毕。

    这里选择 /hdd 作为挂载点,执行 mkdir /hdd 创建挂载点,然后执行 mount /dev/md4 /hdd 挂载。

    设置自动启动并挂载

    为了以后启动时能够自动启动 RAID 阵列并且挂载,这里将新阵列和挂载的信息分别写入 mdadm.conffstab

    执行

    sed -i "$(cat /etc/mdadm/mdadm.conf | grep -n 'ARRAY' | tail -1 | cut -d ':' -f 1)a$(mdadm --detail --scan /dev/md4)" /etc/mdadm/mdadm.conf

    更新 mdadm.conf (如果设备名不是 md4 的话 自行用你的设备路径替换命令中 /dev/md4,mdadm.conf 路径同理自行替换)

    开机自动挂载分区需要用到 /etc/fstab

    执行 blkid | grep md4 (自行替换设备名) 查看分区 UUID 及文件格式

    /dev/md4: UUID="e70552f6-f21f-43cc-977e-325688bd8f78" TYPE="ext4"

    然后执行

    echo -e 'UUID=e70552f6-f21f-43cc-977e-325688bd8f78 /hdd ext4 defaults 0 0' >> /etc/fstab

    更新 fstab 文件 (自行替换 UUID,挂载点和分区格式)

    至此软 RAID 阵列组建就大功告成了,如果闲得蛋疼的话可以 reboot 一下看看效果。

    本文作者:椎名なぎさ
    本文链接:https://blog.mtdn.io/linux/creating-software-raid-arrays.html
    最后修改时间:2020-09-08 13:45:17
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论