JuiceFS使用指南
面临的问题
目前NAS挂载了7块硬盘,但是软raid的磁盘IO太高,换盘操作成本太高。在文件存储演进的今天,juiceFS的对象存储模式可以解决这个问题。
解决方案
1. 安装JuiceFS
JuiceFS 官方文档 中,提供了详细的安装步骤。 故当前安装客户端脚本如下:
curl -sSL https://d.juicefs.com/install | sh -
2. 创建文件系统
# 定义7块硬盘的挂载目录(假设为/srv/jfs/{disk1-disk7})
mkdir -p /srv/jfs/disk{1..7}
# 挂载7块硬盘到对应目录(用ext4文件系统,noatime减少IO)
for i in {1..7}; do
sudo mount /dev/sd$(printf "b%01d" $i) /srv/jfs/disk$i -o noatime,nodiratime
done
# 创建JuiceFS文件系统(启用4副本+IO限流)
sudo juicefs format \
--storage local \
--block-size 4096 \
redis://:GTX1080ti.@192.168.5.204:6379/1 \
myjfs
# 挂载JuiceFS文件系统(启用FUSE客户端限流,单盘IO<5M/s)
sudo juicefs mount \
--readlimit 5 \ # 读限速5M/s
--writelimit 5 \ # 写限速5M/s
--cache-dir /srv/jfs/disk{1..6} \ # 用6块硬盘作缓存/存储(1块冷备)
--cache-size 1024 \ # 缓存大小1G,避免缓存占用过多IO
redis://127.0.0.1:6379/0 \
/mnt/myjfs
juicefs format --storage file --bucket /data/jfs redis://localhost:6379/1 myjfs
juicefs format sqlite3://myjfs.db myjfs
juicefs mount sqlite3://myjfs.db /smb_data/jfs -d
[Unit]
Description=MinIO Object Storage
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
ExecStart=/root/scripts/start_minio.sh
StandardOutput=append:/var/log/minio/minio.log
StandardError=append:/var/log/minio/minio-error.log
ExecReload=/bin/kill -SIGHUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target