安装JuiceFS 高性能分布式文件系统

学思创的头像
学思创
7
  1. 安装客户端

    shell命令一键安装

    一键安装脚本适用于 Linux 和 macOS 系统,会根据你的硬件架构自动下载安装最新版 JuiceFS 客户端。

    方式一(推荐): 默认安装到 /usr/local/bin

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

    方式二: 如需安装到自定义位置,例如安装到 /tmp 目录下:

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

    提示:大多数用户应该选择方式一进行默认安装。只有在对安装目录有特殊要求时才使用方式二

  2. 准备对象存储
    以下是以Minio OSS 为例,你可以改用其他对象存储,详情参考 JuiceFS 支持的存储
    Bucket Endpoint:http://192.168.31.120:9000
    Access Key ID:xsc.sxcrun.com
    Access Key Secret:ZYXwvutsrqpoNMLkJiHgfeDCBA
  3. 准备数据库
    以下是以自建MySQL版为例,你可以改用其他类型的数据库,详情参考 JuiceFS 支持的数据库
    数据库地址:192.168.31.121:3306
    数据库用户名:xsc.sxcrun.com
    数据库密码:ABCDEFGHIJKLMNopqXYZ
    使用 MySQL 作为元数据存储引擎时,需要提前手动创建数据库,通常使用以下格式访问数据库:
    mysql://<username>[:<password>]@(<host>:3306)/<database-name>
    在 JuiceFS 中使用 MySQL 数据库的格式如下:
    mysql://xsc.sxcrun.com:ABCDEFGHIJKLMNopqXYZ@(192.168.31.121:3306)/juicefs
    要连接到启用 TLS 的 MySQL 服务器,请传递 tls=true 参数
    mysql://xsc.sxcrun.com:ABCDEFGHIJKLMNopqXYZ@(192.168.31.121:3306)/juicefs?tls=true
  4. 创建文件系统
    以下命令使用「对象存储」和「MySQL」数据库的组合创建了一个支持跨网络、多机同时挂载、共享读写的文件系统。
    juicefs format \
        --storage oss \
        --bucket http://192.168.31.120:9000 \
        --access-key xsc.sxcrun.com \
        --secret-key ZYXwvutsrqpoNMLkJiHgfeDCBA \
        mysql://xsc.sxcrun.com:ABCDEFGHIJKLMNopqXYZ@(192.168.31.121:3306)/juicefs \
        myjfs
    文件系统创建完毕以后,包含对象存储密钥等信息会完整的记录到数据库中。JuiceFS 客户端只要拥有数据库地址、用户名和密码信息,就可以挂载读写该文件系统。也正因此,JuiceFS 客户端没有本地配置文件(作为对比,JuiceFS 云服务用 juicefs auth 命令进行认证、获取配置文件)。
  5. 挂载文件系统

    由于这个文件系统的「数据」和「元数据」都存储在基于网络的云服务中,因此在任何安装了 JuiceFS 客户端的计算机上都可以同时挂载该文件系统进行共享读写。例如:

    juicefs mount mysql://xsc.sxcrun.com:ABCDEFGHIJKLMNopqXYZ@(192.168.31.121:3306)/juicefs ~/jfs

    调大缓存提升性能

    由于「对象存储」是基于网络的存储服务,不可避免会产生访问延时。为了解决这个问题,JuiceFS 提供并默认启用了缓存机制,即划拨一部分本地存储作为数据与对象存储之间的一个缓冲层,读取文件时会异步地将数据缓存到本地存储,详情请查阅「缓存」

    缓存机制让 JuiceFS 可以高效处理海量数据的读写任务,默认情况下,JuiceFS 会在 $HOME/.juicefs/cache 或 /var/jfsCache 目录设置 100GiB 的缓存。在速度更快的 SSD 上设置更大的缓存空间可以有效提升 JuiceFS 的读写性能。

    你可以使用 --cache-dir 调整缓存目录的位置,使用 --cache-size 调整缓存空间的大小,例如:

    juicefs mount
        --background \
        --cache-dir /tmp/juicefs \
        --cache-size 512000 \
        mysql://xsc.sxcrun.com:ABCDEFGHIJKLMNopqXYZ@(192.168.31.121:3306)/juicefs \
        ~/jfs

    JuiceFS 进程需要具有读写 --cache-dir 目录的权限。
    上述命令将缓存目录设置在了 /tmp/juicefs 目录,并指定缓存空间为 500GiB。

  6. 验证文件系统
    当挂载好文件系统以后可以通过 juicefs bench 命令对文件系统进行基础的性能测试和功能验证,确保 JuiceFS 文件系统能够正常访问且性能符合预期。
    juicefs bench ~/jfs

    juicefs bench 命令只能完成基础的性能测试,如果需要对 JuiceFS 进行更完整的评估,请参考「JuiceFS 性能评估指南」

    运行 juicefs bench 命令以后会根据指定的并发度(默认为 1)往 JuiceFS 文件系统中写入及读取 N 个大文件(默认为 1)及 N 个小文件(默认为 100),并统计读写的吞吐和单次操作的延迟,以及访问元数据引擎的延迟。

    如果在验证文件系统的过程中遇到任何问题,请先参考「故障诊断和分析」文档进行问题排查。


    你可以通过 juicefs umount 命令卸载 JuiceFS 文件系统(假设挂载点路径是 ~/jfs):
    juicefs umount ~/jfs
    当然,在你能够确保数据安全的前提下,也可以在卸载命令中添加 --force 或 -f 参数,强制卸载文件系统:
    juicefs umount --force ~/jfs

 

用户评论
评论列表