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

news2025/1/19 20:38:38

树莓派作为个人服务器可玩性还是有点的。说到服务器,在企业的生成环境中为了保护数据,基本上都会用到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
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
#### 将原本是注释状态的datadir释放,并把等号右边修改为 /data/mysql ####
#### ctrl o,ctrl x 保存配置文件
su
cp /var/lib/mysql /data/mysql -rf
chown -R mysql:mysql /data/mysql/
exit
sudo systemctl start mariadb.service

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MT8781核心板_MTK8781安卓核心板规格参数

MT8781安卓核心板以其强大的性能和高效的能耐备受瞩目。其八核CPU架构包括(2x Cortex-A76 2.2GHz 6x Cortex-A55 2.0GHz),以及高性能的Arm Mali G57级GPU。同时,配备高达2,133MHz的LPDDR4X内存和快速的UFS 2.2级存储,大大加速了数据访问速…

MyBatis基础学习

一、MyBatis简介 二、MyBatis-HelloWorld 三、MyBatis-全局配置文件 四、MyBatis-映射文件 五、MyBatis-动态SQL 六、MyBatis-缓存机制 七、MyBatis-Spring整合 八、MyBatis-逆向工程 九、MyBatis-工作原理 十、MyBatis-插件开发

JavaScript中延迟加载的方式有哪些

在web前端开发中,性能优化一直是一个非常重要的话题。当我们开发一个页面时,为了提高用户的体验和页面加载速度,我们往往需要采用一些延迟加载的技术。JavaScript中延迟加载的方式有很多种,下面我将为大家详细介绍几种常用的方式。…

一杯咖啡一根烟,一个bug改一天,让程序员崩溃的43个瞬间

一杯咖啡一根烟,一个bug改一天 新年刚刚开始,我估计大家都还处于打发时间的状态吧!让我们来谈谈一些轻松的内容,调整一下心情,希望所有在座的朋友,在2024年能够bug多多,收入多多,美女…

Linux网络----防火墙

一、安全技术和防火墙 1、安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安…

Three.js学习10:几何体(1)-平面几何体

-----------------------------华丽的分割线--------------------- 相关代码均已上传到 gitee 中:myThree: 学习 Three.js ,努力加油~! Gitee 静态演示地址:Three JS 演示页面 -----------------------------华丽的分割线------…

C语言—for循环(1)

for 语句在语法格式上,降低了提供循环结构时,遗忘循环三要素的几率。 for语句的应用场景:对循环次数预先可以获知的情况,如果预先无法获知次数时,推荐使用while语句 1.当型循环:(while) 特点: 先判断后执行…

Windows 安装和连接使用 PgSql数据库

一. PostgreSQL 安装详细步骤 下载地址:https://www.enterprisedb.com/postgresql-tutorial-resources-training-1?uuidd732dc13-c15a-484b-b783-307823940a11&campaignIdProduct_Trial_PostgreSQL_16 1. 双击打开安装包 2. 选择安装目录 3. 选择安装组件 4.…

[Flask]SSTI1 buuctf

声明:本篇文章csdn要我一天发两篇所以我来水的 跟ssti注入的详细知识我这里写了 https://blog.csdn.net/weixin_74790320/article/details/136154130 上面链接我复现了vulhub的SSTI,其实本质上是一道题 然后我们就用{{.__class__}}看类的类型&#xf…

java+vue_springboot企业设备安全信息系统14jbc

企业防爆安全信息系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了vue框架。该系统从三个对象:由管理员、人员和企业来对系统进行设计构建。主要功能包括:个人信息修改,对人员管理&am…

HBuilderX 插件开发指南(一):从插件开发到发布的完整流程

前端目前主流使用的IDE工具有VS Code、Sublime Text3、HBuilder X等等 本期我们主要了解HBuilder X,作为前端通用型开发工具,拥有可视化的操作方式,内置相关环境,开箱即用,无需配置nodejs等优点外,对uni-a…

Open CASCADE学习|用点分割边

在Open CASCADE Technology(OCCT)中,几何模型是由拓扑(Topology)和几何(Geometry)两部分组成的。拓扑部分描述了形状的拓扑结构,比如边、面、体等,而几何部分则定义了这些…

快速排序(2)——快速排序的优化

因为Hoare的快速排序写起来容易出错,并且有很多地方不太合适,于是,就有了一下几种优化。 基准值的优化 如果我们一直选取一组数据的第一个数据为基准值,如果遇到重复少的值的化,没什么问题。但是如果重复的值比较多的…

对称密钥的分配、公钥的分配

目录 密钥分配 1 对称密钥的分配 KDC 对会话密钥 KAB 的分配 对称密钥分配协议:Kerberos 2 公钥的分配 认证中心 CA (Certification Authority) 数字证书 (digital certificate) 已签名的 B 的数字证书的产生过程 X.509 数字证书 认证系统 证书链 证书…

2024.2.18 C++QT 作业

思维导图 练习题 1>定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std;class Animal { public:virtual void perform() {cout << "这是一个动…

红队攻防之office文件钓鱼制作ppt钓鱼

为众人抱薪者&#xff0c;不可使其冻毙于风雪&#xff1b;为自由开路者&#xff0c;不可使其困顿于荆棘。 PPT手势触发 这种攻击则利用的是鼠标轨迹来进行操作&#xff0c;比如鼠标点击、鼠标移动等。 首先&#xff0c;创建一个普通的PPTX文件&#xff0c;随便填入一些内容&…

《白话C++》第10章 STL和boost,Page74 10.4.4 std::unique_ptr

std::unique_ptr可以同时处理普通指针和指向数组的指针&#xff1a; unique_ptr像是auto_ptr的功能改良版 第一个改进就是可以管理指向单一对象的指针&#xff0c;也可以管理指向连续对象&#xff08;数组&#xff09;的指针。 第二个&#xff0c;unique_ptr改进的是&#xf…

huggingface入门玩耍LLM Starter

huggingface入门玩耍LLM Starter huggingface-cli 下载model 下载 本人macos系统&#xff0c;以下可参考 huggingface-cli 下载 brew install huggingface-climodel 下载 以 chatglm-6b 为例 huggingface-cli download --token hf_*** --resume-download THUDM/chatglm-6b-i…

C/C++ BM7 链表中环的入口结点

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 BM6里面使用了双指针法和哈希的方式来查找环&#xff0c;BM7相对于BM6只多了一个查找第一个重复地址的过程。个人认为是用哈希是最简单&#xff0c;C11标准的set或者map。 题目 给…

洛谷 P1150 Peter 的烟

参考代码and代码解读 #include<iostream> using namespace std; int main() { int n,k,nonu; //n烟的数量&#xff0c;k需要多少根烟头换一支烟&#xff0c;nonu记录烟头的个数 cin>>n>>k; int sumn; //一开始就能吸n支烟 nonusum; …