诊断快照

为诊断 Alluxio 中的问题或故障,需要生成一个包含集群各种信息的诊断快照(diagnostic snapshot),该快照可通过运行 collectinfo 功能获取。

collectinfo 结果包含以下类型的信息:

  • config: Alluxio conf/目录中的配置文件.

  • hardware: 运行 coordinator、worker、fuse 和 operator 组件的 K8s 节点的 CPU、内存和硬件规格

  • etcd: Alluxio 集群中存储到etcd中的信息,包括挂载点(mount)、配额(quota)、优先级(priority)、有效时间 (TTL)、worker 及许可证信息。

  • logs: coordinator、worker、fuse 和 operator 组件的日志。支持 tail 日志,可显示日志末尾的指定行数。

  • metrics: 支持设置持续时间(duration)和步长(step),以定义指标的时间范围和采样间隔。

  • job history: Alluxio 集群中的 load、free 和 copy 任务历史记录, 包括任务的详细信息和状态。

系统要求

首先确认 operator 启动成功,并且有 alluxio-collectinfo-controller 在运行。下面是 operator 的信息,可以看到 alluxio-collectinfo-controller 在运行。如果 alluxio-collectinfo-controller 不存在,表明当前使用的 operator 版本不支持 collectinfo 功能,请升级 operator 版本。

kubectl -n alluxio-operator get pod
NAME                                             READY   STATUS    RESTARTS   AGE
alluxio-cluster-controller-8656d54bc-x6ms6       1/1     Running   0          19s
alluxio-collectinfo-controller-cc49c56b6-wlw8k   1/1     Running   0          19s
alluxio-csi-controller-84df9646fd-4d5b8          2/2     Running   0          19s
alluxio-csi-nodeplugin-fcp7b                     2/2     Running   0          19s
alluxio-csi-nodeplugin-t59ch                     2/2     Running   0          19s
alluxio-csi-nodeplugin-vbq2q                     2/2     Running   0          19s
alluxio-ufs-controller-57fbdf8d5c-2f79l          1/1     Running   0          19s

确认 Alluxio 集群是否启动成功, 下面是 Alluxio 集群的信息,可以看到 Alluxio 集群的各个组件都在运行。

采集信息

collectinfo 用于采集 Alluxio 集群的信息,包括配置、硬件、任务记录、日志和指标信息。提供定时采集和单次采集两种方式。

  • 定时采集可以设置采集的时间间隔,例如每天、每周、每月等;

  • 单次采集会立刻触发一次采集任务。

创建 Alluxio 集群之后会自动创建定时采集,用于采集集群信息。 默认情况下,定时采集每天会自动采集信息。可以通过 collectinfo 的状态来查看采集信息的进度,LASTSCHEDULETIME 表示下次执行采集任务的时间,LASTSUCCESSFULTIME 表示最近采集成功的时间。

完成信息采集后,会将采集结果保存在 coordinator pod 中,用于持久化数据。collectinfo 会根据 expiration 字段(请参考详细配置)的值删除过期的采集结果。 默认的 expiration720h或30天,超过30天的采集结果会被删除。

可以进入 coordinator 的 pod 中查看采集结果。 执行下面的命令进入 coordinator 的 pod 中。

一天的采集结果会保存在一个 tar.gz 文件中,文件名表示采集任务的名称、Alluxio 集群的命名空间和采集时间。

如果想修改收集内容或时间表,可以执行以下操作。

  1. 删除现有的 collectinfo 资源

  1. 创建 collectinfo.yaml 文件,内容如下:

我们创建了一个 collectinfo 资源,名称为 example-collectinfo,和 Alluxio 集群同样位于 alx-ns 命名空间, 并且设置了定时采集信息,"0 0 * * *" 代表每天午夜运行一次。 可以参考 Cron 时间表语法arrow-up-right

完整的配置可以参考详细配置

  1. 创建 collectinfo ,开始采集信息。

下载结果

通过 kubectl cp 的方式,将采集的信息拷贝到本地。

详细配置

Last updated