奚小溪 發表於 2023-11-26 14:12:44

mdadm配置软件RAID5实现过程详解

<h3>冷数据备份</h3>
<p>最近搞了3块16T 3.5寸机械盘,企业级HDD,还俩品牌。主机上其实还插着3块U.2 NVME SSD,那HDD就拿来做冷数据备份吧。既然是冷数据要长期保存,那给这三个大块头做个数据冗余。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202311/2023112610585805.jpg" /></p>
<p>手头没有硬件RAID卡,其实主要是主板拥挤没地方插了。只能软件RAID方案,3块HDD弄个RAID 5可行。</p>
<h3>RAID创建</h3>
<p>系统是debian12,安装mdadm,配置RAID5。这些都简单,几条命令的事情,有很多教程。</p>
<div class="jb51code"><pre class="brush:bash;">mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc</pre></div>
<p>就是这么简单,可以监控一下状态</p>
<div class="jb51code"><pre class="brush:bash;">watch cat /proc/mdstat</pre></div>
<h3>RAID同步</h3>
<p>到这里就要歇一歇了,RAID虽然已经创建了,但是系统要做数据同步。1300分钟?21.6个小时,要疯。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202311/2023112610585806.jpg" /></p>
<p>RAID同步过程,它会将所有选定的驱动器中的数据同步并创建冗余信息,以确保数据的一致性和冗余备份。这个过程会对每个驱动器的所有扇区进行读取和写入,即使驱动器中没有实际数据。</p>
<p>同步时间的长短取决于多个因素,包括驱动器的容量大小、速度、RAID 级别和控制器性能等。RAID 5 和 RAID 6 类型的同步通常比 RAID 1 和 RAID 0 要慢,因为它们需要更多的计算来创建校验信息。</p>
<p>如果你看到是速度实在太慢,我这里是200M左右,可以尝试用这个命令</p>
<div class="jb51code"><pre class="brush:bash;">echo 200000 &amp;gt; /proc/sys/dev/raid/speed_limit_min</pre></div>
<p>这里面还有个问题,就是同步过程中,万一机器意外掉电,或者需要关机,会发生什么情况?如果真发生了,开机后运行lsblk,大概率会看到md127。这时候的操作是这样的。先运行下面几个,清除md127,然后重头再来,哈。</p>
<div class="jb51code"><pre class="brush:bash;">mdadm -S /dev/md127
mdadm --misc --zero-superblock /dev/sda
mdadm --misc --zero-superblock /dev/sdb
mdadm --misc --zero-superblock /dev/sdc</pre></div>
<p>经历过曲折,才明白要RAID同步中,如果要关机,需要保存RAID配置。创建完RAID后,就需要生成mdadm.conf,并检查设备名是否正确。这一步要在mdadm create之后就要执行。</p>
<div class="jb51code"><pre class="brush:bash;">mdadm -Ds &amp;gt; /etc/mdadm/mdadm.conf
##检查ARRAY之后的设备名,修改为/dev/md0</pre></div>
<h3>RAID挂载</h3>
<p>漫长的同步终于到达了100%,希望你没经历21个小时的等待。下面的事情就是大家熟悉的了,创建文件系统,挂载目录</p>
<div class="jb51code"><pre class="brush:bash;">mkfs.ext4 /dev/md0
mkdir /myraid
mount /dev/md0 /myraid</pre></div>
<p>以及修改fstab,添加md0 挂载信息,实现开机自动挂载。完成!</p>
<div class="jb51code"><pre class="brush:bash;">vim /etc/fstab</pre></div>
<h3>RAID停止及启动</h3>
<p>这里不多讲了。禁用RAID阵列之前,先要卸载对应的挂载点</p>
<div class="jb51code"><pre class="brush:bash;">umount /dev/md0 /myraid
##RAID停止
mdadm -S /dev/md0
##RAID开启
mdadm -A /dev/md0</pre></div>
<h3>RAID删除</h3>
<p>不想要RAID了,铲掉它,OK</p>
<div class="jb51code"><pre class="brush:bash;">mdadm -S /dev/md0
mdadm --misc --zero-superblock /dev/sda
mdadm --misc --zero-superblock /dev/sdb
mdadm --misc --zero-superblock /dev/sdc</pre></div>
<p>然后看下状态,就没有了</p>
<div class="jb51code"><pre class="brush:bash;">cat/proc/mdstat</pre></div>
<h3>体验总结及问题</h3>
<ul><li>企业级HDD噪音明显大,设计初衷应该是放机房里的,个人使用稍嫌打扰。</li><li>RAID5同步完成后,查看磁盘和RAID设备情况,一直忙碌并且IO还比较多。个人强迫症,感觉没有实际业务在使用它们,硬盘却不间断咯吱咯吱,很不喜欢这种状态。后来我干脆也铲掉了RAID。弄了个寂寞:-(</li></ul>
<p><strong>最后</strong>性能测试,忘记了。有机会再做一下,不过实在不想再来一次21小时同步。大家有空可以试试.</p>
<div class="jb51code"><pre class="brush:bash;">##写性能
dd if=/dev/zero of=/myraid/test.log bs=1M count=8096
##读性能
dd if=/myraid/test.log of=/dev/null</pre></div>
<p>以上就是mdadm配置软件RAID5实现过程详解的详细内容,更多关于mdadm配置软件RAID5的资料请关注琼殿技术社区其它相关文章!</p>
頁: [1]
查看完整版本: mdadm配置软件RAID5实现过程详解