3.1 硬盘分配说明

3.1.1 数据文件系统

为安装的nas系统我准备了有7块硬盘,分配如下:
a) 1块M2固态硬盘:大小为1T,做Nas系统盘使用。
b) 6块SATA机械硬盘:每块大小为4T,5块做数据盘,1块做校验盘。

为了方便使用,不碎片话,需要把5块数据盘整合然后挂到同一个目录下。因此使用联合文件系统mergerfs。

a) Nas系统盘,创建 /data 目录。用来挂载5块磁盘。/data目录,使用空间大小为20T。
b)5块磁盘全部格式化为btrfs文件系统。
c)使用mergerfs将5块4T磁盘,联合成一个整的20T磁盘使用。

3.1.2 数据备份

放弃raid,家用环境中raid是不可靠的,且恢复难度极大。多份冷备份才能减少数据丢失的概率。

a)重要数据做一份单独磁盘的复制冷备份。

b)Nas系统使用一块4T磁盘做snapraid的快照备份。

3.2 mergerfs

3.2.1 查看磁盘信息

查看硬盘列表

fdisk -l
或
lsblk

查看挂载信息

blkid
或
df -h

查看硬盘详细信息

paru hwinfo

3.2.2 格式化数据盘

我的5块数据盘如下:【sda,sdb,sdc,sdd,sde】

使用btrfs格式化 ,以第一块盘sda为例

# 安装btrfs文件系统
pacman -S btrfs-progs

# 格式化磁盘
mkfs.btrfs -L "sda"  /dev/sda 

# 如果需要强制格式化
mkfs.btrfs -f -L "sda"  /dev/sda

挂载到/mnt目录

sudo mkdir /mnt/sda
chown -R archnas:archnas /mnt/sda
mount /dev/sda /mnt/sda -o compress=zstd

其他磁盘一样,这样有5块磁盘分别挂载如下:

【磁盘:/dev/sda,挂载:/mnt/sda】

【磁盘:/dev/sdb,挂载:/mnt/sdb】

【磁盘:/dev/sdc,挂载:/mnt/sdc】

【磁盘:/dev/sdd,挂载:/mnt/sdd】

【磁盘:/dev/sde,挂载:/mnt/sde】

3.2.3 配置mergerfs

安装mergerfs

paru  mergerfs

整合所有的btrfs磁盘到一个mergerfs文件系统,并挂载mergerfs文件系统到 /data目录下

sudo mkdir /data
chown -R archnas:archnas /data
mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=mfs \
/mnt/sda:/mnt/sdb:/mnt/sdc:/mnt/sdd:/mnt/sdd:/mnt/sde /data 

重新加载所有磁盘

重新加载所有磁盘
mount -a

3.2.4 配置fstab

手动挂载磁盘,重启后就失效了。如果要开机自动挂载磁盘,需要配置fastab

mergerfs配置示例如下

vim /etc/fstab

添加内容:
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX   /mnt/sda    btrfs           rw,relatime,compress=zstd    0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX   /mnt/sdb    btrfs           rw,relatime,compress=zstd    0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX   /mnt/sdc    btrfs           rw,relatime,compress=zstd    0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX   /mnt/sde    btrfs           rw,relatime,compress=zstd    0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX   /mnt/sde    btrfs           rw,relatime,compress=zstd    0 0
/mnt/sda:/mnt/sdb:/mnt/sdc:/mnt/sdd:/mnt/sde    /data       mergerfs        cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0

3.3 snapraid

将第6块校验盘使用btrfs格式化,并挂载到 /mnt/sdf 目录、

3.3.1 安装配置snapraid

安装snapraid

paru  snapraid

配置snapraid

sudo mkdir /var/snapraid
sudo chown -R archnas:archnas /var/snapraid

vim /etc/snapraid.conf 

添加内容
data d1 /mnt/sda
data d2 /mnt/sdb
data d3 /mnt/sdc
data d4 /mnt/sdd
data d5 /mnt/sde
parity /mnt/sdf/SnapRAID.parity
content /var/snapraid/SnapRAID.content
content /mnt/sdf/SnapRAID.content
exclude /lost+found/

说明:

  1. disk 指定所需要备份的目录, 配置为数据盘挂载点
  2. parity 指定校验文件的存放位置,配置为校验盘目录文件
  3. content 指定文件索引等备份所需要的元信息,需要配置两个不同磁盘目录

3.3.2 备份数据
执行:

snapraid sync

3.3.3 还原数据

例如 /dev/sdb 盘挂掉。
a) 首先停止掉定时备份的脚本
b) 拆掉旧硬盘,替换新硬盘,并将新硬盘挂载到 /mnt/sdb_recovery 目录
c)修改/etc/snapraid.conf,替换

d)执行恢复命令

snapraid -d d2 -l recovery.log fix

3.3.4 取消删除
取消删除

snapraid fix -f FILENAME
(使用 file 或 dir 的完整 PATH 更好。file path 相对于所有根目录)

3.4 定时备份脚本

3.5 其他

btrfs磁盘管理命令

# 添加磁盘
btrfs device add /dev/sdZ /mnt/sda

# 强制添加
btrfs device add -f /dev/sdZ  /mnt/sda

# 移除硬盘
btrfs device delete /dev/sdZ  /mnt/sda

# 添加后重新均衡文件
btrfs balance start  /mnt/sda

# 查看文件系统上各种数据的用量
btrfs filesystem df /data
 posted on 2024-09-07 23:15  猛练自然强  阅读(43)  评论(0编辑  收藏  举报