树莓派:使用mdadm为重要数据做RAID 1保护

树莓派作为个人服务器可玩性还是有点的。说到服务器,在企业的生成环境中为了保护数据,基本上都会用到RAID技术。比如,服务器两块小容量但高性能的盘做个RAID-1按装操作系统,余下的大容量中性能磁盘做个RAID-5或者RAID-6存放数据。树莓派在家庭里使用当然不会有这种级别的场景,但一旦真开始拿它存放重要数据,还是不希望遇上毁盘之类的事件吧。

硬件RAID是不指望了,软件RAID走起。这次先实验mdadm。设想一个场景,将树莓派当作一个mysql(Mariadb)服务器,操作系统还是刷在TF卡里,额外添置两个同型号同容量的ssd移动硬盘尝试配置为RAID-1(镜像),之后将mysql的数据文件都迁移到镜像盘中。

刷系统等基本操作略过。我们从安装mdadm开始:

sudo apt install mdadm

确认硬盘是否都已被识别:

lsblk

假设是sda、sdb。如果已经有mount的记录,先umount掉。如果有子分区,也用fdisk删除(d指令和w指令)。然后就可以配置raid了:

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

做完后用 cat /proc/mdstat 查看是否出现了同步进度。确认开始同步之后就可以格式化 /dev/md0了:

sudo mkfs.ext4 -F /dev/md0

然后将 /dev/md0 挂载到某个目录。我这里直接在根目录下创建 /data 目录,稍后将mysql的数据路径迁到这里。

sudo mkdir -p /data
sudo mount /dev/md0 /data

还要修改mdadm的配置文件:

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

更新一下启动时需要用到的initramfs:

sudo update-initramfs -u

最后还要编辑一下fstab:

echo '/dev/md0 /data ext4 defaults,nofail,noatime 0 0' | sudo tee -a /etc/fstab

重启系统。起来后可以用几个指令轮番来一遍确认:

lsblk
blkid
cat /proc/mdstat
df -h

重点关注/dev/md0 的信息。(如果遇到md0变md127的情况可参考这位兄弟的经验:Debian/Raid /dev/md0 重启后变成 /dev/md127_mdadm重启md0不见了-CSDN博客。)确认无误后就可以进入第二个议题,把mysql的数据放到已镜像的磁盘中(对应 /data目录)。安装mariadb-server略过。复制mysql目录需要root权限,因此建议使用sudo passwd root来启用root账号,或者直接先行使用sudo -i命令。

sudo systemctl stop mariadb.service
su
cp /var/lib/mysql /data/mysql -rf
chown -R mysql:mysql /data/mysql/
exit
sudo systemctl start mariadb.service

最后,修改 /etc/mysql/mariadb.conf.d/50-server.cnf,将原本是注释状态的datadir释放,并把等号右边修改为 /data/mysql。

好了,差不多就是这样了。下一篇会对本文做一些进一步的补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/474006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第13章 网络 Page741~744 asio核心类 ip::tcp::socket

1. ip::tcp::socket liburl库使用"curl*" 代表socket 句柄 asio库使用ip::tcp::socket类代表TCP协议下的socket对象。 将“句柄”换成“对象”,因为asio库是不打折扣的C库 ip::tcp::socket提供一下常用异步操作都以async开头 表13-3 tcp::socket提供的异步操作 …

字节UC伯克利新研究 | Magic-Me:简单有效的主题ID可控视频生成框架

在生成模型领域,针对特定身份(ID)创建内容已经引起了极大的兴趣。在文本到图像生成(T2I)领域,以主题驱动的内容生成已经取得了巨大的进展,使图像中的ID可控。然而,将其扩展到视频生成…

【无标题】管理kvm 虚拟机

管理kvm 虚拟机 点击虚拟机 创建新的虚拟机 安装操作系统 设置root密码

基于ORB-SLAM2与YOLOv8剔除动态特征点

基于ORB-SLAM2与YOLOv8剔除动态特征点 以下方法以https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download#freiburg3_walking_xyz数据集进行实验测试APE 首先在不剔除动态特征点的情况下进行测试: 方法1:segment坐标点集合逐一排查剔除 利用YOLOv8的segm…

anaconda安装路径默认在D盘,但安装环境的envs路径跑到C盘,修改为D盘

安装的anaconda环境,路径是在anaconda安装目录下的envs中(D:\APPFile\Anaconda3\envs),然而,这次创建的却是在 C:\Users\xxx.conda\envs 中。 首先,找到用户目录下的.condarc文件(C:\Users\use…

linux kernel 内存踩踏之KASAN_HW_TAGS(MTE)(三)

一、背景 linux kernel 内存踩踏之KASAN(一)_kasan版本跟hasan版本区别-CSDN博客 linux kernel 内存踩踏之KASAN_SW_TAGS(二)-CSDN博客 最后来介绍一下KASAN_HW_TAGS,ARM64上就是MTE,这个特性在ARMv8.5支…

[java基础揉碎]类与对象

目录 类与对象的引出: 类与对象的概述: 类与对象在内存中的布局: 属性的注意细节: 类与对象在内存中创建的过程: 类与对象的引出: 例如这样一个问题: 如果用单独变量来解决, 就会有一个问题, 不利于数据的管理, 将所有猫的信息都给拆解了: 如果用数组来解决, 则会有 1)数…

python_django高校运动会成绩管理系统4o4c3

田径运动会报名管理系统就是给学生进行网上报名,管理员管理报名信息的一种通用管理平台,从而方便管理人员对运动会的日常报名工作的管理。本系统的前台功能模块包括系统的基本操作、最新公告、运动项目和报名项目;系统的后台功能模块包括系统…

恒流模块与常用电容

户外电源电芯:DJ采用无热中心设计:每个电芯都有一部分裸露在外面,保证良好散热上 固态电容相较于普通电解电容具有更高的电气性能、更长的使用寿命和更稳定的温度特性,但成本也相对较高。固态电容在1块左右,电解电容在…

单例模式 C++

6 种 单例 的手写,都是懒汉(饿汉代码在 “懒汉 / 饿汉的区别”) 目录 ✊前言 🌼GPT解析 🌼概念解析 RAII 懒汉 / 饿汉的区别 特点 举例 单例 -- 伪代码 适用场景 单例 -- 实现方式 优缺点 🎂手…

你了解API测试吗?如何充分的测试一个API?

什么是API? API代表应用程序接口。API是软件系统中的中间层,负责数据源与用户看到的图形用户界面(GUI)之间的数据通信。换句话说,API是软件的业务层,它在表示层和数据层之间创建连接。 API测试侧重于所谓的…

从代码的层面掌握LLM的路线

原则:从易到难,只用 pytorch 从第一个项目来熟悉 transformer 的使用; 从第二个项目来掌握对训练数据的使用方法及 transformer 的 decoder 的细节; 从第三个项目来理解 LLM 的整个过程; 1,Transformer t…