折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务

背景

之前写过,我在家里用了一台旧的工作站笔记本做了服务器,连上一个绿联的5位硬盘盒实现简单的网盘功能,然而,还是觉的不太理想,比如使用filebrowser虽然可以备份文件和图片,当使用手机使用网页,由于网页无法获到实况图片的视频文件,上传到硬盘后就丢失了实况图片,所以就继续折腾一下

使用环境

  1. mdadm:实现软raid的软件
  2. mt photos :备份照片的客户端
  3. 4T机械盘两张
  4. Ubuntu服务器

软raid

首先既然要备份家里的图片,那就要搞个raid,保证至少可以做到镜像备份,这里推荐使用mdadm实现软raid

将需要实现raid两个磁盘插入单硬盘盒里面,接上笔记本

df -h

查看磁盘的挂载路径,如图,可以看到有个3.5T磁盘挂载到了raid1路径上,这里的md1实际上是两张磁盘

使用
lsblk

指令就看sdc sddraid1

这是我之前已经完成了软raid的配置,接下来就看看如何用指令去实现

第一步 安装mdadm
sudo apt update
sudo apt install mdadm
第二步 使用上一步的指令lsblk查看我们挂载的两个磁盘的name
第三步 构建raid1
sudo mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdc /dev/sdd

这条命令将创建一个名为md0的RAID 1设备,使用/dev/sdb1/dev/sdc1两个分区作为其成员。

命令解释 - 这是一个使用mdadm工具创建磁盘阵列的命令。
mdadm --create:这是创建磁盘阵列的主要指令部分。
--create选项告诉mdadm要创建一个新的磁盘阵列。
--verbose:这个选项用于在创建过程中显示详细的信息,这样你可以看到阵列创建的每一个步骤和相关的参数设置情况。
mdadm首先会对指定的磁盘(/dev/sdc/dev/sdd)进行检查,确保它们适合构建磁盘阵列。如果磁盘上已经有数据,可能会提示你数据将会丢失(这取决于磁盘的状态和已有数据情况)然后,它会开始创建RAID1阵列。

--verbose选项的作用下,可以看到构建的详情

mdadm: layout defaults to left - symmetric mdadm: chunk size defaults to 512K mdadm: /dev/sdc appears to be part of a raid array: level=raid1 devices=2 ctime=Thu, 01 Jan 1970 00:00:00 GMT mdadm: /dev/sdd appears to be part of a raid array: level=raid1 devices=2 ctime=Thu, 01 Jan 1970 00:00:00 GMT mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array mdadm: size set to 1000215296K mdadm: automatically enabling write - intent bitmap on large array mdadm: creating array /dev/md1 with level=raid1, num - devices=2 mdadm: device /dev/sdc assumed to be in clean state mdadm: device /dev/sdd assumed to be in clean state mdadm: array /dev/md1 started.

保存 RAID 配置

执行指令,保存mdadm的配置

mdadm -D --scan > /etc/mdadm.conf

创建成功后,系统会将/dev/md1作为一个新的磁盘设备看待,就像对普通磁盘一样对它进行格式化(如mkfs.ext4 /dev/md1将其格式化为ext4文件系统),挂载操作(如mount /dev/md1 /raid1将其挂载到/raid1目录),以便查看操作

比如,我就是永久挂载raid1目录下,使用上会有点问题,开机的时候,要是磁盘盒没有插入的话,由于无法加载到磁盘,就会无法进入系统

实现挂载

  1. 在根目录创建一个文件夹

    mkdir raid1

  2. 查看硬盘id

    blkid /dev/md1

获取到硬盘的uuid、类型等信息

  1. 添加挂载配置

编辑/etc/fstab文件,添加硬盘信息

vim /etc/fstab
UUID=ae596716-0794-4f54-8ae5-1f1768ae732f /raid1  xfs defaults 0 0
  1. 检查挂载

    sudo mount -a

如果没有报错信息,就证明硬盘被永久挂载到指定目录

当完成这些操作过,我们的raid1就实现了,可以将其中一个主磁盘标记为故障,然后查看能不能访问备份的磁盘,然后重启恢复,看从备份写入的东西,会不会同步到,回到主磁盘

测试备份

查看状态
 mdadm -D /dev/md1

可以看到目前的状态是clean,也就是正常
mdadm --manage /dev/md1 --fail /dev/sdc来标记/dev/sdc为故障状态

模拟故障
测速同步文件

我们在磁盘中加个文件,然后在重启恢复正常,查看文件是否已经从备份同步到

重启后

可以看到磁盘恢复正常后,文件也从备份同步到了主磁盘中

相册应用

mt-photos

完成这些配置后,就开始需要实现我们的相册备份了,

这里我使用了mt-photos 作为客户端,相比较其他软件,mt-photos

  1. 本土化方面,相比较其他相册管理软件,操作简单
  2. 更新及时,可以加群,开发者有问必答
  3. 功能比较丰富,支持图片格式很多,连我的相机的raw格式也支持
  4. 多端支持,客户端包括网页和移动端(安卓和IOS)
  5. 它的相册创建模式和添加文件夹的操作一致,不用考虑脱离软件,照片无法查看的问题
  6. 最主要原因可以使用docker构建,构建简单
    唯一的问题这是一个买断制的应用,99块钱终身(现在128一个月),可以免费试用一个月

搭建mt-photos服务

拉取镜像
bash 复制代码
docker pull mtphotos/mt-photos:latest
创建应用的文件夹
bash 复制代码
mkdir /usr/local/mtphotos/config
mkdir /usr/local/mtphotos/upload
创建服务
bash 复制代码
docker run -d \

--name="mt-photos" \
-v /usr/local/mtphotos/config:/config \
-v /raid1/upload/photos:/upload \
-v /raid1/刘浩/photos:/lh \
-p 8163:8063 \
-e TZ="Asia/Shanghai" \
--restart="unless-stopped" \
mtphotos/mt-photos:latest
登陆相册

等应用创建完,登陆网页进行配置

查看相册

更多功能可以参考官网文档 ,个人觉得他们的文档还是很丰富的

移动端登陆

题外话

既然,家里都有服务器了,那使用ip访问服务器还是不太方便

所以,在家自建一个dns服务需求就出现,一开始我是使用了树莓派安装smartdns作为dns服务器(主路由器的dns配置为树莓派地址)使用了几个月,后面觉得有点臃肿

目前,我采用软路由做主路由作为网关,在软路由上设置home.kura.ren的指向到笔记本做的服务器上,在服务器上配置了nginx进行了转发,如图还使用 sun-panel做了一个家庭内网的主页,这块内容,我打算写到家庭网络升级中

相关推荐
云计算DevOps-韩老师2 个月前
【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇
网络·云计算·perl·devops·raid·lvm扩容·tcp模型
玖石书3 个月前
软RAID的状态mdstat查看
软raid·mdadm
玖石书3 个月前
软RAID 之mdadm.conf文件详解
软raid·mdadm
^_^ 纵歌4 个月前
raid-如何使用smart检查raid磁盘健康状态
raid·smart
穷人小水滴6 个月前
本地 HTTP 文件服务器的简单搭建 (deno/std)
http·podman·raid·快照·文件服务器·lvm·btrfs
洛克希德马丁10 个月前
浪潮服务器使用ARCCONF查看RAID配置信息
运维·服务器·raid·浪潮·arcconf
skywalk816310 个月前
Dell R730 2U服务器实践2:VMWare ESXi安装
服务器·esxi·raid·云服务器
小小哭包1 年前
RAID0_RAID1_RAID10_RAID5各需几块盘才可组建
大数据·linux·服务器·磁盘阵列·raid