当前位置: 首页 > news >正文

充分利用 AIStor 的网络配置

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Ffiles.mdnice.com%2Fuser%2F41350%2F4ce80f61-875a-493b-a4ad-e884d7835be1.png&pos_id=img-flS在这里插入图片描述
gQlNx-1734678799577)

AIStor 可以以分布式方式部署,从而有效利用多个物理机或虚拟机的计算和存储资源。这可以是在私有云或公共云环境中运行的 AIStor,例如使用 Amazon Web Services、Google Cloud Platform、Microsoft 的 Azure 平台等。AIStor 可以部署到多种类型的拓扑 – 在生产环境中,我们建议使用多节点多驱动器 (MNMD) 部署。AIStor 建议站点复制为您的单站点部署提供 BC/DR 级故障转移和恢复支持,您可以针对您的使用案例进行设计和优化。在之前的博客文章中,我们已经讨论了为 AIStor 部署选择硬件时要使用的一些最佳实践。我们谈到了硬件的各个方面,从选择最佳区域、正确的驱动器、CPU 和内存配置,甚至一些推荐的网络配置。虽然我们触及了系统设计的广泛不同最佳实践,但我们总是可以更深入地探讨,今天我们将深入探讨设计 AIStor 的一些细节,以充分利用驱动器和网络。在这篇博文中,我们将深入探讨网络配置,您可以使用这些配置将 AIStor 配置为不同的复制策略和网络拓扑,这些策略和拓扑可用于确保在多个 AIStor 部署中高效存储和访问数据。您无需执行任何复杂的配置,例如设置绑定/双 NIC(这会增加额外的开销)。

简单的网络策略

AIStor 是用于云原生服务的 S3 兼容存储后端。通常,我们认为网络流量是应用程序与集群之间或集群中节点之间的网络流量。由于节点间流量,节点之间的联网速度必须尽可能快。每个池都由一组独立的节点组成,这些节点具有自己的纠删集。AIStor 必须查询每个池以确定它将读取和写入操作定向到的正确擦除集,以便每个额外的池每次调用增加的节点间流量最小,但会增加。然后,包含正确纠删集的池将响应该操作,对应用程序保持完全透明。企业可以使用 1 GbE 或 10 GbE NIC 的日子已经一去不复返了。现代企业工作负载理想情况下利用 100 GbE NIC。考虑到 TCP 协议的物理特性和开销的限制,这些 NIC 预计将提供 80-90% 的可用带宽,对于 100 Gbps NIC,通常约为 10GB/s,在真正配置良好的网络上最高可达 12GB/s。AIStor 不需要任何开箱即用的额外网络配置即可利用所有带宽,因为它侦听所有接口。开箱即用的 AIStor 支持侦听多个网络接口 (NIC)。您不需要任何其他特殊配置 AIStor 网络,但可以选择使用我们之前讨论的一些网络基础知识,您可以通过特定接口路由 AIStor 流量。在此示例中,我们将使用 Linux 操作系统进行演示,但无论您使用哪种操作系统,网络基础知识都是相同的。根据网络配置的不同,实现可能略有不同,但这应该会给您一个概念。

我们首先列出路由表

$ IP 路由

10.56.98.0/24 dev eth0 proto 内核范围 link src 10.56.98.18

如果您已将 AIStor 服务器配置为在 10.56.98.16/28 CIDR 范围内,则假设 AIStor 节点的 IP 地址之一是 10.56.98.21,该地址将通过 eth0 接口路由,因为 /28 与 10.56.98.0/24 的路由表条目匹配。但是,如果您想通过 eth1 而不是 eth0 路由 AIStor 流量,我们需要为 AIStor CIDR 添加特定路由,以便与该子网匹配的任何流量都通过该特定网络接口路由

$ ip 路由添加 10.56.98.16/28 dev eth1

添加路由后,让我们再次列出路由表,看看它是什么样子的

$ IP 路由

10.56.98.0/24 dev eth0 proto kernel scope link src 10.56.98.33.18

10.56.98.16/28 dev eth1 范围 link

现在,我们看到 /28 CIDR 的路由。如果您 ping AIStor 节点 10.56.98.21,它现在将通过 eth1 接口路由。这是因为当有两条路由的 /24 与 /28 重叠时,通常优先考虑前缀最长的路由(在本例中为 /28),并且在路由流量时将优先于任何其他较短的前缀路由。这称为 longest-matching prefix rule(最长匹配前缀规则)。如果您 ping 10.56.98.21,然后检查 tcpdump,则可以验证来自 10.56.98.16/28 的流量是否被正确路由,如下所示。您会注意到,来自源 10.56.98.18 的流量通过 eth1 路由到 10.56.98.21。

$ tcpdump -n -i eth1 icmp

15:55:44.410450 IP 10.56.98.18 > 10.56.98.21:ICMP 回显请求,ID 8416,序列 123,长度 64

15:55:44.410471 IP 10.56.98.21 > 10.56.98.18:ICMP 回显回复,ID 8416,序列 123,长度 64

15:55:45.434489 IP 10.56.98.18 > 10.56.98.21:ICMP 回显请求,ID 8416,序列 124,长度 64

15:55:45.434518 IP 10.56.98.21 > 10.56.98.18:ICMP 回显回复,ID 8416,序列 124,长度 64

15:55:46.458490 IP 10.56.98.18 > 10.56.98.21:ICMP 回显请求,ID 8416,序列 125,长度 64

15:55:46.458520 IP 10.56.98.21 > 10.56.98.18:ICMP 回显回复,ID 8416,序列 125,长度 64

正如您所看到的,使用 AIStor 不需要额外的特殊端口或服务来实现流量分离。AIStor 在设计时考虑到了简单性,在这种情况下,我们一直在考虑构建与购买,而不是构建像网关服务这样复杂的东西,AIStor 利用操作系统层已经可用的网络基础,以尽可能少的开销实现相同的结果。我们可以将这个想法更进一步。如今,服务器至少有 2 个接口,可以选择添加更多接口。因此,您可以让您的应用程序也在单独的 CIDR 块上运行(选择适合您的应用程序大小的块),而不是让应用程序流量通过与 AIStor 相同的接口。这种分离可确保用于复制和再平衡的 AIStor 流量不会影响应用程序的性能,反之亦然。它还使您能够监控和跟踪流量,以确保 AIStor 始终拥有执行操作所需的容量和带宽,而不会影响其性能。但是,如果您在不同的站点或地区拥有 AIStor,该怎么办?如何有效地配置它以确保没有性能瓶颈?AIStor 为一些最严格的使用案例提供了几种不同类型的复制配置。最多产的复制策略之一是站点到站点复制。这允许您使用单个集群启动 AIStor,并随着需求的增加扩展到 N 个数字。假设您有一个在 3 个不同站点上运行的 ETL/ELT 应用程序。通常,数据仅在其中一个区域可用,而其他区域需要跨区域提取大量数据才能运行其进程。毋庸置疑,这不仅效率非常低下,而且会给网络基础设施带来巨大压力,并可能给共享 WAN 的其他应用程序带来瓶颈。

在这里插入图片描述

在站点到站点复制配置中,您只需将数据写入第一个站点中的 AIStor 集群。复制过程会自动将数据复制到其他站点。无需对 ETL/ELT 应用程序进行其他更改。您只需将每个站点中的作业指向其各自的 AIStor 集群,该集群由反向代理(如 Nginx)提供支持,读取速度将比跨区域 WAN 读取快得多,如下所示。

在这里插入图片描述

但这就引出了一个问题,是否有可能进一步微调流量?假设您将数据文件添加到站点 1,则无论一天中的什么时间,它都会立即将其复制到其他站点。可能是在高峰期,此时其他 ETL/ELT 作业可能正在运行,同时网络资源被用于复制数据,这些数据可能要到第二天下一批应该运行时才会使用。在这种情况下,我们能做些什么呢?这就是 AIStor 的批量复制派上用场的地方。批量复制允许您选择要在特定时间复制的数据类型,它是完全可配置的。在这种情况下,可以将批量复制作业设置为在流量最低的空闲时间运行。由于应用程序访问时间在一天、一周甚至一个月中都可能有所不同,因此监控 AIStor 网络流量就派上用场了,因此您可以配置批处理作业以在正确的时间运行。您可以在不同的机架、数据中心或地理区域中部署对等站点,以支持全球分布式 AIStor 对象存储中的 BC/DR 或地理本地读/写性能等功能。

最后的思考

回顾一下,AIStor 的网络架构是目前最简单明了的网络架构之一。AIStor 没有重新发明轮子,而是使用网络基础知识来实现与其他一些数据存储的奇偶校验,这些数据存储具有复杂的网络和网关设置,几乎不可能调试。无论您调试同一问题多少次,由于架构的混淆性质,您都会感觉这是您第一次遇到它。相反,AIStor 专注于更高级别的抽象,这些抽象减轻了应用程序开发人员的负担,使其不必维护数据复制,而是专注于存储和处理数据。

相关文章:

充分利用 AIStor 的网络配置

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlhttps%3A%2F%2Ffiles.mdnice.com%2Fuser%2F41350%2F4ce80f61-875a-493b-a4ad-e884d7835be1.png&pos_idimg-flS gQlNx-1734678799…...

算法题(10):好数

审题: 需要判断出1-N的范围内有多少个好数,并输出 思路: 遍历数据:需要用for循环(从1循环到N) 每一位判断:用while循环,先从个位开始,每循环一次就让记录位数的变量&…...

使用二分查找法找出给定点距离给定点集合距离最近的点

1、场景描述 给定点Point A (x,y)和 直线点集合 Points [(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)......],计算出集合中距离点A最近的一个点 (如果集合中的两个点距离A点最近且相等,则只取其中一个) 2、代码&#x…...

国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案

随着科技高速发展,视频信号经过数字压缩,通过互联网宽带或者移动4G网络传递,可实现远程视频监控功能。将这一功能运用于施工现场安全管理,势必会大大提高管理效率,提升监管层次。而这些,通过Liveweb监控系统…...

构建MacOS应用小白教程(打包 签名 公证 上架)

打包 在package.json中,dependencies会被打进 Electron 应用的包里,而devDependencies则不会,所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …...

Nginx 双向链表 ngx_queue_t

目录 一、基本概述 二、数据结构 三、接口描述与实现 1、相关宏接口 2、ngx_queue_middle 3、ngx_queue_sort 四、使用案例 整理自 nginx 1.9.2 源码 和 《深入理解 Nginx:模块开发与架构解析》 一、基本概述 双向链表的优势是可以快速进行数据插入、删除与…...

【vue】npm install 报错 python2 Error: not found: python2

如图所示,vue项目在下载依赖的时候报错找不到python2,有网友通过下载python2.7并配置环境变量解决了,这里有两个其他自测可用的方式,供各位作为参考。 报错的主要原因是因为【sass-loader】【node-sass】这两个依赖跟nodejs版本有…...

CS 144 check3: the TCP sender

Lecture Notes 略 Exercises 现在,在check3中,您将实现连接的另一边。 TCPSender是一种工具,它从出站字节流转换为将成为不可靠数据报的有效负载的段。 TCP sender的任务是确保receiver至少收到每个bytes一次。任务: 1、跟踪…...

Deepin/Linux clash TUN模式不起作用,因网关导致的问题的解决方案。

网关导致的问题的解决方案 查看路由 ip route寻找默认路由 默认路由应当为Mihomo default dev Mihomo scope link 如果不是,则 sudo ip route add default dev Mihomo在clash TUN开关状态发生变化时,Mihomo网卡会消失,所以提示找不到网卡…...

Tomato 靶机(通关攻略)

点击开启靶机 去kali终端输入 arp-scan -l //扫描靶机IP 扫出靶机IP192.168.131.171 第一步:信息收集 端口扫描 nmap -p- 192.168.131.171 敏感目录扫描 dirb http://192.168.131.171 总结: IP:192.168.168.131 开放端口:2…...

服务器被入侵登录不上怎么办?

在数字化时代,服务器作为数据存储与业务运行的核心载体,其安全性直接关系到企业的生死存亡。然而,随着网络攻击手段的不断升级,服务器被入侵的事件屡见不鲜,导致系统瘫痪、数据泄露等严重后果。当您发现自己的服务器被…...

达梦官方工具 SQLark数据迁移(oracle->达梦数据库)

应国产化需求需要,需将系统中涉及的各中间件替换成国产中间件,此文介绍了从Oracle迁移数据至达梦dm8的步骤,该文在windos环境下已验证测试过 1 SQLark介绍 SQLark是一款专为信创应用开发者设计的数据库开发和管理工具。它支持快速查询、创建和管理多种类型的数据库系统&#xf…...

redis数据类型:list

list 的相关命令配合使用的应用场景: 栈和队列:插入和弹出命令的配合,亦可实现栈和队列的功能 实现哪种数据结构,取决于插入和弹出命令的配合,如左插右出或右插左出:这两种种方式实现先进先出的数据结构&a…...

.NET周刊【12月第2期 2024-12-08】

国内文章 终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名) https://www.cnblogs.com/sheng_chao/p/18581139 升讯威在线客服与营销系统由.net core和WPF开发,旨在开放、开源、共享。开发者为解决360与其他国产管家的误…...

C#—扩展方法

扩展方法 扩展方法是C#中一种特殊的静态方法,它定义在一个静态类中,但是可以像实例方法一样被调用,使得代码看起来更为直观和易于阅读。扩展方法允许你在不修改原始类的情况下,添加新的方法到现有的类型中。 有↓箭头的是扩展方…...

金碟中间件-AAS-V10.0安装

金蝶中间件AAS-V10.0 AAS-V10.0安装 1.解压AAS-v10.0安装包 unzip AAS-V10.zip2.更新license.xml cd /root/ApusicAS/aas# 这里要将license复制到该路径 [rootvdb1 aas]# ls bin docs jmods lib modules templates config domains …...

sql server 查询对象的修改时间

sql server 不能查询索引的最后修改时间,可以查询表,存储过程,函数,pk 的最后修改时间使用以下语句 select * from sys.all_objects ob order by ob.modify_date desc 但可以参考一下统计信息的最后修改时间,因为索…...

Qt之串口设计-线程实现(十二)

Qt开发 系列文章 - Serial-port(十二) 目录 前言 一、SerialPort 二、实现方式 1.创建类 2.相关功能函数 3.用户使用 4.效果演示 5.拓展应用-实时刷新 总结 前言 Qt作为一个跨平台的应用程序开发框架,在串口编程方面提供了方便易用…...

探索 Seaborn Palette 的奥秘:为数据可视化增色添彩

一、引言 在数据科学的世界里,视觉传达是不可或缺的一环。一个好的数据可视化不仅能传递信息,还能引发共鸣。Seaborn 是 Python 中一款广受欢迎的可视化库,而它的调色板(palette)功能,则为我们提供了调配绚…...

Linux创建普通用户和修改主机名

创建修改用户名和用户组 工作组相关命令 功能命令说明切换用户su username注销用户logout新建用户adduser username 创建用户并分配到用户组useradd -g test username 设置用户密码passwd username查看某一用户w username查看登录用户w查看登陆用户并显示IPwho查看登录历史…...

在 Spring Boot 3 中实现基于角色的访问控制

基于角色的访问控制 (RBAC) 是一种有价值的访问控制模型,可增强安全性、简化访问管理并提高效率。它在管理资源访问对安全和运营至关重要的复杂环境中尤其有益。 我们将做什么 我们有一个包含公共路由和受限路由的 Web API。受限路由需要数据库中用户的有效 JWT。 现在用户…...

二八(vue2-04)、scoped、data函数、父子通信、props校验、非父子通信(EventBus、provideinject)、v-model进阶

1. 组件的三大组成部分(结构/样式/逻辑) 1.1 scoped 样式冲突 App.vue <template><!-- template 只能有一个根元素 --><div id"app"><BaseOne></BaseOne><BaseTwo></BaseTwo></div> </template><script…...

配置PostgreSQL用于集成测试的步骤

在进行软件开发时&#xff0c;集成测试是确保各个组件能够协同工作的关键环节。PostgreSQL作为一种强大的开源数据库系统&#xff0c;常被用于集成测试中。下面将详细介绍如何在不同的环境中配置PostgreSQL以支持集成测试。 1. 选择并安装PostgreSQL 首先&#xff0c;你需要根…...

【ComfyUI + 铅笔素描画风】艺术家DaTou发布了的彩色铅笔素描风格生成(真实感超强)

发布时间&#xff1a;2024年12月09日 项目主页&#xff1a;https://hf-mirror.com/Datou1111/shou_xin 基础模型&#xff1a;flux.1-dev comfyui工作流下载&#xff1a;https://pan.baidu.com/s/1FrLQ4o8ldckKwhIrN1Pv7g?pwd1220 自己测试 官方效果 生成猫猫 shou_xin, a m…...

Unity-Editor扩展GUI基本实现一个可拖拉放的格子列表

短短几百行代码,好吧,又是“参考”了国外的月亮 操作,还真地挺自然的。。。。。。国外的实现有点小牛 拖拉,增加+ 一个Element 鼠标左键长按,可以出提示 鼠标右键,清除Element, 有点小bug,不是很自然地完全清除, using System.Collections; using System.Collecti…...

后摩尔定律时代,什么将推动计算机性能优化的发展?

在摩尔定律时代&#xff0c;每两年芯片上的晶体管数量就会翻一番&#xff0c;这一看似不可避免的趋势被称为摩尔定律&#xff0c;它极大地促进了计算机性能的提高。然而&#xff0c;硅基晶体管不可能一直小下去&#xff0c;半导体晶体管的微型化推动了计算机性能的提升&#xf…...

SQL进阶技巧:如何计算商品需求与到货队列表进出计划?

目录 0 需求描述 1 数据准备 2 问题分析 3 小结 累计到货数量计算 出货数量计算 剩余数量计算 0 需求描述 假设现有多种商品的订单需求表 DEMO_REQUIREMENT&#xff0c;以及商品的到货队列表 DEMO_ARR_QUEUE&#xff0c;要求按照业务需要&#xff0c;设计一个报表&#…...

linux普通用户使用sudo不需要输密码

1.root用户如果没有密码&#xff0c;先给root用户设置密码 sudo passwd root #设置密码 2.修改visudo配置 su #切换到root用户下 sudo visudo #修改visudo配置文件 用户名 ALL(ALL) NOPASSWD: ALL #下图所示处新增一行配置 用户名需要输入自己当前主机的用户名...

Mac配置 Node镜像源的时候报错解决办法

在Mac电脑中配置国内镜像源的时候报错,提示权限问题,无法写入配置文件。本文提供解决方法,青测有效。 一、原因分析 遇到的错误是由于 .npm 目录下的文件被 root 用户所拥有,导致当前用户无法写入相关配置文件。 二、解决办法 在终端输入以下命令,输入管理员密码即可。 su…...

R语言的数据结构-数据框

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 在医学领域中&#xff0c;R语言的数据框&#xff08;…...