JuiceFS 分布式文件系统 部署试验

发布于 2 天前  22 次阅读


JuiceFS 介绍

在本次测试中我们将基于 Redis Cluster 与 Minio Cluster 构建 JuiceFS。

测试环境

在上一次 MinIO 集群试验 的基础上继续进行测试,略去该部分 MinIO Cluster 部署过程。

测试用虚拟机为 PVE Cluster 上的虚拟机两台:

  • 4C8G。
  • 挂载 4 块硬盘。
  • 地址分别为 192.168.1.201/24192.168.1.202/24

Redis 配置

安装

在每台虚拟机中直接使用 apt 安装即可:

apt install redis

配置

此处仅有两台机器,我们在每台机器上运行三个 redis-server 组成一个“六节点”集群。

在两台机器上的 /etc/redis/ 下创建三份配置文件,以 redis-7000.conf 为例,需要更改的内容如下:

port 7000
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-7000.conf
requirepass b82ndxc9gqo2c8ma
masterauth b82ndxc9gqo2c8ma
logfile /var/log/redis/7000.log
appendonly yes
appendfilename "appendonly-7000.aof"

完成后启动所有实例:

redis-server /etc/redis/cluster/7000.conf
redis-server /etc/redis/cluster/7001.conf
redis-server /etc/redis/cluster/7002.conf

为持久化,可以使用 redis-server@.service 配置。

创建集群

创建 redis 集群:

redis-cli --cluster create \
  192.168.1.201:7000 192.168.1.201:7001 192.168.1.201:7002 \
  192.168.1.202:7000 192.168.1.202:7001 192.168.1.202:7002 \
  --cluster-replicas 1 -a your_password

验证集群连接状态

检查任意节点状态:

redis-cli -c -h 192.168.1.201 -p 7000 -a your_password cluster nodes

集群健康检查:

redis-cli --cluster check 192.168.1.201:7000 -a your_password

JuiceFS 安装配置

安装

JuiceFS 可使用一键安装:

curl -sSL https://d.juicefs.com/install | sh -

格式化文件系统

juicefs format \
  --storage minio \
  --bucket http://minio-endpoint:9000/juicefs-bucket \
  --access-key MINIO_ACCESS_KEY \
  --secret-key MINIO_SECRET_KEY \
  "redis://:your_password@192.168.1.201:7000,192.168.1.201:7001,192.168.1.201:7002,192.168.1.202:7000,192.168.1.202:7001,192.168.1.202:7002/1" \
  myjfs

挂载文件系统

mkdir /mnt/juicefs
juicefs mount -d \
  "redis://:your_password@192.168.1.201:7000,192.168.1.201:7001,192.168.1.201:7002,192.168.1.202:7000,192.168.1.202:7001,192.168.1.202:7002/1" \
  /mnt/juicefs

实现持久挂载可以通过配置 systemd:

[Unit]
Description=JuiceFS File System Mount
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/juicefs mount -d \
  "redis://:your_password@192.168.1.201:7000,192.168.1.201:7001,192.168.1.201:7002,192.168.1.202:7000,192.168.1.202:7001,192.168.1.202:7002/1" \
  /mnt/juicefs
ExecStop=/usr/bin/fusermount -u /mnt/juicefs
Restart=on-failure

[Install]
WantedBy=multi-user.target

参考


我缓慢吐出一串啊吧啊吧并不再想说话