惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Recent Announcements
Recent Announcements
Jina AI
Jina AI
G
Google Developers Blog
腾讯CDC
博客园_首页
博客园 - 【当耐特】

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
如何预热 Juicefs 数据
微信公众号 · 2024-06-09 · via 陈少文的网站

1. 关于 JuiceFS 的缓存

在主机上,预热的缓存是直接放在主机上的。

在集群中,分为两级缓存:

  • Worker,提供集群级别共享的缓存
  • Fuse,提供仅当前节点级别的缓存

2. 使用 JuiceFS 客户端预热数据

需要注意的是在 Fuse 层预热,仅对当前节点有效,如果需要预热整个集群,需要在 Worker 层预热。

  • 指定目录
1
juicefs warmup /mnt/jfs/dataset-1
  • 批量指定目录
1
juicefs warmup -f warm.txt

其中 warm.txt 为预热目录列表,每行一个目录

1
2
3
/mnt/jfs/dataset-1
/mnt/jfs/dataset-2
/mnt/jfs/pics

3. 使用 Fluid 预热数据

  • 预热指定的目录
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
apiVersion: data.fluid.io/v1alpha1
kind: DataLoad
metadata:
  name: juicefs-dataload
spec:
  dataset:
    name: my-dataset
    namespace: default
  options:
    timeout: 120m
  target:
    - path: /jfs/dataset-1
    - path: /jfs/dataset-2
    - path: /jfs/pics

默认的超时时间为 20 分钟,但由于预热时没有配置并发 -c 200,导致预热速度很慢,因此设置为 120 分钟。

如果需要修改并发,可以修改同命名空间下 *-loader-data-load-script 脚本中的预热命令,然后直接 kill Pod 即可。

  • 预热整个数据集
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cat <<EOF > dataload.yaml
apiVersion: data.fluid.io/v1alpha1
kind: DataLoad
metadata:
  name: juicefs-dataload
spec:
  dataset:
    name: juicefs
    namespace: default
EOF

4. 挂载 PVC 预热数据

  • 创建 Pod 挂载 PVC
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
export NAMESPACE=
export PVC_NAME=
export DEMO_IMAGE=
export NODE_NAME=

kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: $PVC_NAME
  namespace: $NODE_NAME
spec:
  nodeName: $HOSTNAME
  containers:
    - name: demo
      image: $DEMO_IMAGE
      volumeMounts:
        - mountPath: /data/jfs
          name: data
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: $PVC_NAME
EOF
  • 进入 Pod
1
2
3
kubectl -n $NAMESPACE get pod $PVC_NAME

kubectl -n $NAMESPACE exec -it $PVC_NAME -- bash
  • 预热数据

需要注意,如果使用的是企业版就用企业版的 JuiceFS 客户端,如果是社区版就用社区版的。这里以社区版为例:

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

预热命令和上面一样

1
juicefs warmup /data/jfs/dataset-1