Alluxio层次化存储简介

简介:                  一、分层存储种类         1、MEM (内存)         2、SSD (固态硬盘)        3、HDD (硬盘驱动器)         二、分层存储参数                  1、alluxio.worker.tieredstore.levels,缺省值1          Alluxio Worker多层存储中的最大存储级数。

        

        一、分层存储种类

        1、MEM (内存)
        2、SSD (固态硬盘)

        3、HDD (硬盘驱动器)


        二、分层存储参数

        

        1、alluxio.worker.tieredstore.levels,缺省值1

         Alluxio Worker多层存储中的最大存储级数。当前Alluxio支持1,2,3层。

        

        2、alluxio.worker.tieredstore.level{x}.alias,缺省值MEM (for alluxio.worker.tieredstore.level0.alias)

        每个存储层的别名,x代表存储层序号(顶层为0)。当前有3个别名,MEM,SSD和HDD。


        3、alluxio.worker.tieredstore.level{x}.dirs.path,缺省值/mnt/ramdisk (for alluxio.worker.tieredstore.level0.dirs.path)

        x存储层的底层存储目录路径,以逗号分割。x代表存储层序号(顶层为0)。建议SSD和HDD层每个硬盘设备有一个存储目录。


        4、alluxio.worker.tieredstore.level{x}.dirs.quota,缺省值128MB (for alluxio.worker.tieredstore.level0.dirs.quota)

        x存储层所有存储目录的配额,以逗号分割。x代表存储层序号(从0开始)。对于特定的存储层,如果配额的列表长度比目录列表短,剩余目录的配额使用最后一个定义的配额。配额定义可使用这些后缀:KB,MB,GB,TB,PB。


        5、alluxio.worker.tieredstore.level{x}.reserved.ratio,缺省值0.1

        值在0到1之间,设置了在x存储层预留空间的比例。如果预留空间大小不满足,空间预留器会移出数据块直到预留空间大小满足要求。


        6、alluxio.worker.tieredstore.reserver.enabled,缺省值false

        开启空间预留器服务的标志。


        7、alluxio.worker.tieredstore.reserver.interval.ms

        1000

        空间预留器检查所有存储层是否预留足够空间的时间间隔。


        8、alluxio.worker.allocator.class,缺省值alluxio.worker.block.allocator.MaxFreeAllocator

        Alluxio中新数据块分配策略的类名。


        9、lluxio.worker.evictor.class,缺省值alluxio.worker.block.evictor.LRUEvictor

        当存储层空间用尽时块回收策略的类名。


        三、分配策略:选择新数据块的写入位置

        1、贪心分配策略

        分配新数据块到首个有足够空间的存储目录。


        2、最大剩余空间分配策略

        分配数据块到有最大剩余空间的存储目录。

        

        3、轮询调度分配策略

        分配数据块到有空间的最高存储层,存储目录通过轮询调度选出。


        四、回收策略:决定当空间需要释放时,哪些数据块被移到低存储层。

        1、贪心回收策略

        移出任意的块直到释放出所需大小的空间。


        2、LRU回收策略

        移出最近最少使用的数据块直到释放出所需大小的空间。


        3、LRFU回收策略

         基于权重分配的最近最少使用和最不经常使用策略移出数据块。如果权重完全偏向最近最少使用,LRFU回收策略退化为LRU回收策略。


        4、部分LRU回收策略

        基于最近最少使用移出,但是选择有最大剩余空间的存储目录(StorageDir),只从该目录移出数据块。


        五、举例

        举例而言,如果想要配置Alluxio有两级存储–内存和硬盘–,可以使用如下配置:

        alluxio.worker.tieredstore.levels=2
        alluxio.worker.tieredstore.level0.alias=MEM
        alluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdisk
        alluxio.worker.tieredstore.level0.dirs.quota=100GB
        alluxio.worker.tieredstore.level0.reserved.ratio=0.2
        alluxio.worker.tieredstore.level1.alias=HDD
        alluxio.worker.tieredstore.level1.dirs.path=/mnt/hdd1,/mnt/hdd2,/mnt/hdd3
        alluxio.worker.tieredstore.level1.dirs.quota=2TB,5TB,500GB
        alluxio.worker.tieredstore.level1.reserved.ratio=0.1


        相关配置说明如下:
        alluxio.worker.tieredstore.levels=2 在Alluxio中配置了两级存储
        alluxio.worker.tieredstore.level0.alias=MEM配置了首层(顶层)是内存存储层
        alluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdisk 定义了/mnt/ramdisk是首层的文件路径
        alluxio.worker.tieredstore.level0.dirs.quota=100GB设置了ramdisk的配额是100GB
        alluxio.worker.tieredstore.level0.reserved.ratio=0.2设置了顶层的预留空间比例是0.2
        alluxio.worker.tieredstore.level1.alias=HDD配置了第二层是硬盘驱动器层
        alluxio.worker.tieredstore.level1.dirs.path=/mnt/hdd1,/mnt/hdd2,/mnt/hdd3配置了第二层3个独立的文件路径
        alluxio.worker.tieredstore.level1.dirs.quota=2TB,5TB,500GB定义了第二层3个文件路径各自的配额
        alluxio.worker.tieredstore.level1.reserved.ratio=0.1设置了第二层的预留空间比例是0.1

        

相关文章
|
12月前
|
前端开发 JavaScript 搜索推荐
Marp 入门与教程:让你一分钟爱上代码写PPT的乐趣
Marp 是一个基于 Markdown 的开源幻灯片制作工具,可将 Markdown 文档轻松转换为精美幻灯片。支持 VS Code 插件实时预览、命令行工具批量处理、自定义主题等,适用于技术分享、工作汇报和教学等多种场景。相比 LaTeX Beamer,Marp 学习成本低,跨平台支持好,设计现代美观。
|
网络安全 Nacos 数据安全/隐私保护
nacos常见问题之使用默认用户名密码提示错误如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
6月前
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
域名解析 网络协议 Linux
修改centos等linux的hostname-永久生效
修改centos等linux的hostname-永久生效
1421 0
|
Kubernetes 安全 数据安全/隐私保护
Kubernetes 安全性最佳实践
【8月更文第29天】随着容器化和微服务架构的普及,Kubernetes 已成为管理容器化应用的标准平台。然而,随着 Kubernetes 的广泛采用,其安全性问题也日益受到关注。本文将深入探讨 Kubernetes 的安全最佳实践,并通过具体的代码示例来展示如何保护 Kubernetes 集群免受攻击。
650 2
|
JavaScript 前端开发 Python
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
这篇文章分享了作者在运行前端Vue项目时遇到的关于Python执行环境的问题和解决方法。问题是由于找不到Python可执行文件导致的编译错误,解决方法包括安装编译环境、卸载并重新安装出现问题的`node-sass`包,并重新执行`npm install`和`npm run dev`。
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
|
Kubernetes Java 索引
Elasticsearch on K8S 开启慢日志
本文档指导如何在Elasticsearch on PaaS环境中手动配置慢日志。首先通过API设置索引的慢日志阈值,接着创建`log4j2.properties`的ConfigMap以定义日志滚动策略,并修改Elasticsearch配置引入此ConfigMap。最后,通过Kubernetes命令检查Pod内的`logs`目录以查看生成的慢日志文件。需注意,不当配置可能会影响系统性能。[官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/logging.html)提供更多细节。
383 3
|
存储 Kubernetes 容器
创建一个nfs的storageclass
要创建一个 NFS 存储类(StorageClass),您可以创建一个 YAML 文件,并使用 kubectl apply 命令来应用它。以下是一个示例的 NFS 存储类的 YAML 文件: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-storage provisioner: kubernetes.io/nfs volumeBindingMode: Immediate mountOptions: - vers=4.1 - noresvport parameters:
409 0
|
小程序 物联网 定位技术
阿里云+微信小程序+GPS定位
阿里云物联网板块是一个功能非常强大的板块,而且通俗易懂,非常容易上手,比华为的要稍微容易上手一些。本次,小编通过阿里云物联网平台,将SIM800M32的GPS经纬度坐标发送到阿里云平台,并通过规则引擎转发数据至微信小程序,然后在地图上显示位置。
5076 0
|
Java API 网络架构
ElasticSearch Client详解
详细分析介绍了Elasticsearch两大客户端TransportClient与RestHighLevelClient ,并详细介绍了es集群探测机制(client.transport.sniff)。
7576 0