树莓派:使用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
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
好了,差不多就是这样了。下一篇会对本文做一些进一步的补充。

相关文章:
树莓派:使用mdadm为重要数据做RAID 1保护
树莓派作为个人服务器可玩性还是有点的。说到服务器,在企业的生成环境中为了保护数据,基本上都会用到RAID技术。比如,服务器两块小容量但高性能的盘做个RAID-1按装操作系统,余下的大容量中性能磁盘做个RAID-5或者RAID-6存放数据。…...
HTML板块左右排列布局——左侧 DIV 固定宽度,右侧 DIV 自适应宽度,填充满剩余页面
我们可以借助CSS中的 float 属性来实现。 实例: 布局需求: 左侧 DIV 固定宽度,右侧 DIV 自适应宽度,填充满剩余页面。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta http-e…...
红旗linux安装32bit依赖库
红旗linux安装32bit依赖库 红旗linux安装32bit依赖库 lib下载 红旗-7.3-lib-32.tar.gz 解压压缩包,根据如下进行操作 1.回退glibc(1)查看当前glibc版本[root192 ~]# rpm -qa | grep glibcglibc-common-2.17-157.axs7.1.x86_64glibc-headers-2.17-260.axs7.5.x86_…...
Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
概述 Diffusion 模型在生成图像时最大的瓶颈是速度过慢的问题。为了解决这个问题,Stable Diffusion 采用了多种方式来加速图像生成,使得实时图像生成成为可能。最核心的加速是Stable Diffusion 使用了编码器将图像从原始的 3512512 大小转换为更小的 46…...
NFTScan | 02.12~02.18 NFT 市场热点汇总
欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.02.12~ 2024.02.18 NFT Hot News 01/ CryptoPunks 推出「Punk in Residence」孵化器计划 2 月 12 日,NFT 项目 CryptoPunks 宣布推出「Punk in Residence」孵化器计划&a…...
使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01
从源码编译 rocSolver 本人只操作过单个rocm版本的情景,20240218 ubuntu 22.04.01 1,卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…...
python函数的定义和调用
1. 函数的基本概念 在编程中,函数就像是一台机器,接受一些输入(参数),进行一些操作,然后产生输出(结果)。这让我们的代码更加模块化和易于理解。 函数是一段封装了一系列语句的代码…...
【JVM篇】什么是类加载器,有哪些常见的类加载器
文章目录 🍔什么是类加载器🛸有哪些常见的类加载器 🍔什么是类加载器 负责在类加载过程中,将字节码信息以流的方式获取并加载到内存当中 🛸有哪些常见的类加载器 启动类加载器 启动类加载器是有Hotspot虚拟机通过的类…...
STM32—DHT11温湿度传感器
文章目录 一.温湿度原理1.1 时序图 二.代码 一.温湿度原理 1.1 时序图 (1).下图一是DHT11总的时序图。 (2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。 (3)…...
相机图像质量研究(31)常见问题总结:图像处理对成像的影响--图像差
系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
MySQL之select查询
华子目录 SQL简介SQL语句分类SQL语句的书写规范SQL注释单行注释多行注释 select语句简单的select语句select的算数运算select 要查询的信息 from 表名;查询表字段查询常量查询表达式查询函数 查询定义别名as安全等于<>去重distinct连接字段concat 模糊查询运算符比较运算…...
Android MMKV 接入+ 替换原生 SP + 原生 SP 数据迁移
背景:项目中一直使用的是原生 SP,众所周知,使用原生 SP 存在卡顿性能问题。公司的性能监控平台抓到不少原生 SP 导致的 ANR 问题: java.io.FileDescriptor.sync (FileDescriptor.java) android.os.FileUtils.sync (FileUtils.java:256) android.app.SharedPreferencesImpl.…...
C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据
1、通讯库介绍 mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点: 支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。 支持多种功能码和数据类型,如读取线圈(M)、…...
LiveGBS流媒体平台GB/T28181常见问题-基础配置流媒体服务配置中本地|内网IP外网IP(可选)外网IP收流如何配置
LiveGBS常见问题基础配置流媒体服务配置中本地|内网IP外网IP外网IP收流如何配置? 1、流媒体服务配置2、播放提示none rtp data receive3、多网卡服务器4、收流端口配置5、端口区间可以如何配置6、搭建GB28181视频直播平台 1、流媒体服务配置 LiveGBS中基础配置-》流…...
微服务- 熔断、降级和限流
基本介绍 在微服务架构中,由于服务之间的相互依赖性,任何一个服务的故障或性能问题都可能导致整个系统的不稳定。因此,熔断、降级和限流是三种常见的技术手段,用于提高系统的可用性和稳定性。 熔断 (Circuit Breaker) 熔断机制…...
电路设计(20)——数字电子钟的multism仿真
1.设计要求 使用数字芯片,设计一个电子钟,用数码管显示,可以显示星期,时、分、秒,可以有按键校准时间。有整点报警功能。 2.设计电路 设计好的multism电路图如下所示 3.芯片介绍 时基脉冲使用555芯片产生。在仿真里面…...
【论文阅读笔记】Contrastive Learning with Stronger Augmentations
Contrastive Learning with Stronger Augmentations 摘要 基于提供的摘要,该论文的核心焦点是在对比学习领域提出的一个新框架——利用强数据增强的对比学习(Contrastive Learning with Stronger Augmentations,简称CLSA)。以下…...
前端win10如何设置固定ip(简单明了)
1、右击这个 2、点击属性 3、双击协议版本4设置成以下就ok...
数据结构1.0(基础)
近java的介绍, 文章目录 第一章、数据结构1、数据结构 ?2、常用的数据结构数据结构? 逻辑结构and物理结构 第二章、数据结构基本介绍2.1、数组(Array)2.2、堆栈(Stack)2.3、队列(Que…...
anomalib1.0学习纪实-续2:三个文件夹
为了读懂程序,有三个最重要的文件夹,如下图: 正好对应四个类,如下图: 四个类的来源如下图所示: 注意,MVTec是个大类,里面用到了这里的第四个类MVTecDataset,代码如下。…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
