Alluxio
ProductsLanguageHome
AI-3.6 (stable)
AI-3.6 (stable)
  • 概览
    • Alluxio 命名空间和底层文件系统
    • worker管理与一致性哈希
    • 多租户和统一管理
    • I/O弹性
  • 部署Alluxio
    • 资源需求和兼容性
    • 安装
      • 在Kubernetes上安装Alluxio
      • 镜像管理
      • 高级配置
      • 许可证
    • 监控和指标
    • 管理控制台
      • 部署
      • 导航控制台
      • 用户角色与访问控制
    • 集群管理
    • 系统健康检查和快速恢复
    • 诊断快照
  • 底层存储系统
    • Amazon AWS S3
    • Azure Blob Store
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
    • 谷歌云 GCS
    • 百度智能云对象存储 BOS
    • 网络附加存储 NAS
  • 数据访问
    • 通过 FUSE( POSIX API)访问
      • Client 写回
      • 客户端虚拟路径映射
    • 通过S3 API访问
    • 通过 PythonSDK/FSSpec 访问
    • UFS 带宽限制器
    • 高可用性数据访问
      • 多副本
      • 多可用区(AZ)
    • 性能优化
      • 文件读取
      • 写入文件
      • 元数据列表
  • 缓存管理
    • 缓存加载
    • 缓存过滤策略
    • 缓存驱逐
      • 通过TTL (有效时间)策略自动驱逐缓存
      • 优先级规则
      • 通过Free命令手动驱逐
    • 过期缓存清理
    • 缓存配额
  • 性能基准测试
    • Fio (POSIX)基准
    • MLPerf Storage 基准测试
    • COSBench (S3) 性能基准测试
  • 安全
    • TLS 支持
  • 参考
    • 用户命令行接口
    • 指标
    • REST API
    • S3 API 的使用
    • 第三方授权
  • 版本发布说明
Powered by GitBook
On this page
  • 通过 host path 使用 NAS
  • 通过 NFS 客户端使用 NAS
  • 前提条件
  • 基本配置
  • 进阶配置
  1. 底层存储系统

网络附加存储 NAS

Last updated 1 day ago

本指南介绍如何将 配置为 Alluxio 底层存储系统的操作步骤。 NAS(Network Attached Storage)是一种通过网络(如以太网)提供集中存储服务的设备或架构,支持多协议(如NFS、SMB、AFP等),允许客户端访问共享存储资源, 它常用于跨网络环境访问远程文件,在 Linux 系统中常用于共享存储。有关 NAS 和 NFS 的更多信息,请参考 。

Alluxio支持两种方式,将 NAS 用作 Alluxio 的底层文件系统(UFS):

  1. 将 NAS 挂载到本地文件系统,Alluxio 会像操作本地文件系统一样操作 NAS 中的文件;

  2. 使用 NFS 客户端完成对 NAS 的所有文件操作。


通过 host path 使用 NAS

当使用 Operator 部署 Alluxio 集群时,可以通过设置 hostPaths 字段,将节点上的 NAS 路径挂载到 Worker 容器中的路径:

apiVersion: k8s-operator.alluxio.com/v1
kind: AlluxioCluster
spec:
  hostPaths:
    coordinator:
      /mnt/nas: /ufs/data
    worker:
      /mnt/nas: /ufs/data
    fuse:
      /mnt/nas: /ufs/data

其中 /mnt/nas 是 NAS 在节点上的挂载路径。

使用 Operator 创建挂载点的 ufs.yaml 示例:

apiVersion: k8s-operator.alluxio.com/v1
kind: UnderFileSystem
metadata:
  name: alluxio-nas
  namespace: alx-ns
spec:
  alluxioCluster: alluxio-cluster
  path: file:///ufs/data
  mountPath: /nas

如果不使用 Operator,可以使用以下命令将 /mnt/nas 挂载到 Alluxio 的 /nas 路径下:

bin/alluxio mount add --path /nas/ --ufs-uri file:///mnt/nas

通过 NFS 客户端使用 NAS

前提条件

在将 NAS 配置为 Alluxio 的底层存储系统之前,请确保您满足以下要求:

<NAS_SERVER_IP>

托管共享目录的 NAS 服务器的 IP 地址。

<SHARED_DIR>

NAS 服务器上导出的目录的绝对路径(例如:/nas_share)。

<CLIENT_RANGE>

被允许访问共享目录的客户端 IP 范围(例如:192.168.1.0/24)。

<NAS_VERSION>

NAS 协议版本(Alluxio 当前仅支持 v3)。

基本配置

通过K8s的operator来创建一个挂载点如下:

apiVersion: k8s-operator.alluxio.com/v1
kind: UnderFileSystem
metadata:
  name: alluxio-nas
  namespace: alx-ns
spec:
  alluxioCluster: alluxio-cluster
  path: nas://<NAS_SERVER_AUTHORITY>/<NAS_EXPORT_PATH>/
  mountPath: /nas
  mountOptions:
    fs.nas.ipAddress: <NAS_SERVER_IP>
    fs.nas.uid: "0"
    fs.nas.gid: "0"
    fs.nas.service.version: "3"

将nas://<NAS_SERVER_AUTHORITY>/<NAS_EXPORT_PATH>/ 挂载至 /nas 的命令示例如下:

bin/alluxio mount add --path /nas \
  --ufs-uri "nas://<NAS_SERVER_AUTHORITY>/<NAS_EXPORT_PATH>/" \
  --option fs.nas.ipAddress=<NAS_SERVER_IP> \
  --option fs.nas.uid=0 \
  --option fs.nas.gid=0 \
  --option fs.service.version=3

请注意,如果要挂载 NAS 导出路径的根目录,请在导出路径后添加斜线(如 nas://<NAS_SERVER_AUTHORITY>/<NAS_EXPORT_PATH>/),NAS_SERVER_AUTHORITY 是一个用户可以自定义的具有唯一性的字段,用来唯一地代表某个NAS sever,比如有两个NAS server都需要mount到Alluxio上,NAS_SERVER_AUTHORITY可以分别为nas_1和nas_2来区分两个不同的NAS server。

进阶配置

在使用 Alluxio 挂载和访问 NAS(Network Attached Storage)时,为了优化性能和资源利用率,可以通过调整部分底层文件系统相关参数,实现更精细化的控制。以下是两个常用的配置项说明:

1. 调整从 NAS 读取数据时的缓冲区大小

alluxio.underfs.nas.inputstream.max.buffer.size=8MB

该参数用于设置从 NAS 读取数据时,输入流所使用的最大缓冲区大小。默认值为 8MB,该缓冲区用于在读取文件内容时缓存数据,从而减少与底层存储的交互次数。增大该值通常可以提升顺序读取性能,特别是在读取大文件时效果更为显著。但需要注意,如果缓冲区设置过大,可能会增加内存使用,建议根据实际业务场景和节点内存情况进行调优。

2. 设置目录列表操作(ls)的响应大小限制

alluxio.underfs.nas.liststatus.iterable.max.byte.size.per.response=4MB

该参数用于控制在执行 ls 操作(如 listStatus())时,每个响应所能包含的最大字节数。默认值为 4MB。该设置主要用于分批获取大量文件元数据,避免单次请求返回数据过大,造成内存压力或网络阻塞。适当减小该值可以提升系统的响应稳定性,尤其是在包含大量子文件/子目录的大目录结构中非常有用。

使用 来增加一个新的挂载点, 指定Alluxio路径在其上创建挂载,指定NAS导出的路径作为UFS URI。NAS服务器的IP地址、用户ID和用户组ID等配置选项也可以通过指定 --option 标志作为挂载命令的一部分来指定,如所述。

NAS
Ubuntu NFS 文档
挂载表操作
配置挂载点