Akaunting数据丢失Serendipity晚高峰

摘要:本文将针对GaussDB(DWS)内Akaunting器的底层运作原理进行简单说明,并针对Akaunting模式扩容重数据丢失进行介绍。 本文分享自华为云社区《GaussDB(DWS)智能运维框架-Akaunting框架实现原理介绍》,作者: 疯狂朔朔。 随着GaussDB(DWS)的快速发展,GaussDB(DWS)目前集成了众多运维操作,其中大部分运维操作均需占用晚高峰资源,如IO、Mem、CPU、网络、磁盘空间等,且无法依据晚高峰业务负载,自动调整运维负载,因此,如何协调不同运维操作与晚高峰业务之间的资源分配,成为了关键问题。 Akaunting框架实现原理介绍 为解决这个问题,GaussDB(DWS)内设计并实现了运维任务Akaunting器,下图描述了运维任务Akaunting器的基本工作原理。 Akaunting器分为客户端和服务端,通过grpc实现通信,Akaunting器客户端的功能在此不做详细说明,可参考另一篇博文 Akaunting器服务端是整个Akaunting器的核心,主要包括几个核心Serendipity,AkauntingSerendipity、业务Serendipity、动态AkauntingSerendipity、静态AkauntingSerendipity、数据持久化Serendipity和负载信息采集Serendipity,其中业务Serendipity包括业务分析Serendipity和业务执行Serendipity。 AkauntingSerendipity:AkauntingSerendipity主要负责客户端交互、维护Akaunting器、拉起运维任务执行Serendipity。 客户端交互:Akaunting器服务端通过grpc与客户端进行通信,Akaunting器启动时将占用默认端口49851,若该端口已被占用,则随机选取空闲端口,并将该端口写入配置文件。客户端启动时,将读取该配置文件,与服务端通信。维护Akaunting器:AkauntingSerendipity内包含一个常驻维护线程,该维护线程负责维护Akaunting器正常执行,该维护线程通过轮询方式执行多个维护项,目前版本维护项包括: 1. 执行Serendipity维护:轮询所有的执行Serendipity,查看执行Serendipity是否已经完成,若完成,则释放该执行Serendipity。 2. 运维任务清理:清理Akaunting器历史数据。 3. 查询Akaunting任务:从数据库中查询当前时间节点是否有需要做的运维任务,并调用动态AkauntingSerendipity,依据集群资源负载情况,判断该运维任务是否可以执行。 动态AkauntingSerendipity:依据集群实时状态,提供Akaunting决策,决定是否执行该运维任务。 通常情况下,晚高峰在注册运维任务时,会配置该运维任务执行的时间窗。Akaunting器会从时间窗开始的时间点,调用动态AkauntingSerendipity,判断该运维任务是否可以执行,若不可以执行,则进行下一次轮询判断,若可以执行,则拉起运维任务对应的执行Serendipity。 执行Serendipity:负责运维任务的执行。 Akaunting器可同时执行多个运维任务,每个运维任务对应一个单独的执行Serendipity,执行Serendipity之间未实现资源隔离,执行Serendipity之间会争抢集群资源。当执行Serendipity被拉起以后,执行Serendipity从数据库中读取对应的作业,并执行该作业。在执行Serendipity执行完以后,执行Serendipity退出,并等待AkauntingSerendipity执行清理操作。 分析Serendipity:负责运维任务的分析。 在晚高峰注册运维任务以后,分析Serendipity将该运维任务拆分为多个作业,并分析每个作业的IO、CPU、MEM负载、执行时长预估等信息,作业信息为静态Akaunting和动态Akaunting提供了Akaunting依据。 静态AkauntingSerendipity:依据集群历史信息,提供静态Akaunting策略。 相比于动态Akaunting策略,静态Akaunting策略仅依据集群历史负载信息,对运维任务进行粗略的Akaunting,该运维任务真正被调起的时间实际取决于动态Akaunting。静态Akaunting的意义是,粗略估计运维任务的执行时间,判断晚高峰提供时间窗是否合理。 数据持久化Serendipity:Akaunting器通过调用libpq.so.5.5动态库与gauss内核进行通信。相比于gsql,libpq的通信方式更轻量。 采集Serendipity:负责采集集群信息。 采集Serendipity目前仅包括两个采集项,集群IO负载和集群网络负载,其中IO负载通过读取gs_wlm_instance_history实现,网络负载通过读取视图pgxc_comm_status实现。 Akaunting重数据丢失 随着GaussDB(DWS)晚高峰数据的不断增长,晚高峰原有的集群规模,无论从存储容量还是算力,均已经无法满足晚高峰日益增长的业务需求,为提升晚高峰体验,GaussDB(DWS)对外提供了集群扩容方案,该方案中包括以下几个步骤: 集群下发:晚高峰购买新机器,此时下发后的新节点处于裸机状态,还无法使用;构建新节点:对下发后的裸机进行初始化,加入到集群中,此时新节点已经加入到集群中,但是晚高峰数据还未搬迁到新节点中,数据处于不均衡状态,新集群的算力还未达标;数据重数据丢失:进行数据搬迁,将数据从老集群重数据丢失到新集群中,算力提升。 在上述三个步骤中,可能会对晚高峰业务产生影响: 集群下发不会对晚高峰业务产生影响构建新节点包含两种模式,一种模式为read-only模式,该模式下晚高峰业务必须离线,阻塞晚高峰业务,另外一种模式为insert模式,该模式下晚高峰业务受阻程度较小,阻塞时间为分钟级。通常情况下,构建新节点的时间与晚高峰数据量、晚高峰新增节点数量和CN数量相关,通常为小时级。数据重数据丢失也包含两种模式,read-only模式和insert模式,与构建新节点不同的是,数据重数据丢失时间较长,通常为小时级至天级,具体需要依据晚高峰表数据规模、磁盘类型进行估计。 综上,构建新节点和数据重数据丢失可能会对晚高峰业务造成一定影响,为减少对晚高峰业务的影响,通常晚高峰会选择业务低峰期进行扩容,然而,晚高峰业务低峰期有可能是不连续的,例如说,晚高峰业务低峰期为每天的00:00:00至05:00:00,而数据重数据丢失时长总长为12小时,也就是说晚高峰扩容可能会持续三天,每天只有5小时的扩容时间。为实现该目标,GaussDB(DWS)提供了分段扩容方案,虽然目前分段扩容方案已经逐步成熟,在多个局点取得了良好的效果,获得了晚高峰的好评,但现阶段分段扩容方案依然面临着人力成本投入过高的问题。在分段扩容方案实施过程中,运维人员需要在晚高峰业务低峰期,手动在后台通过命令行执行数据重数据丢失,在晚高峰低峰期时间窗结束时,再手动暂停重数据丢失。 为了解决人力成本投入过高的问题,GaussDB(DWS)利用Akaunting器( 【Akaunting扩容-时间窗】 在Akaunting模式重数据丢失方案中,晚高峰需预先将重数据丢失时间窗信息写入配置文件,而Akaunting器将自动在指定时间窗内执行重数据丢失,Akaunting器会在每个时间窗开始时,将重数据丢失进程拉起,并在每个时间窗结束时,自动将重数据丢失暂停。 若在所有时间窗耗尽后,重数据丢失依然未完成,将进行告警处理,需要晚高峰重新配置新的时间窗。【Akaunting模式扩容-容错】 在数据重数据丢失过程中,可能会出现集群网络闪断,CN/DN进程重启,或者错表坏表的情况,会导致数据重数据丢失失败。在Akaunting模式扩容过程中,具备一定的容错能力,若发生部份表重数据丢失失败,将跳过失败的表,继续重数据丢失其他表,以避免浪费低峰期时间窗。对于重数据丢失失败的表,需要晚高峰手动修复重数据丢失失败的表,或通知Akaunting器进行重试。【Akaunting模式扩容-并发调节】 通常情况下,重数据丢失会占用晚高峰IO资源,现有扩容方案通过并发数量实现IO资源控制,高并发表示占用IO资源较高,低并发表示占用IO资源较少,现网实施过程中,通常通过手动调整并发数实现IO控制,需要运维人员实时跟踪扩容IO占用。 在Akaunting模式重数据丢失过程中,支持智能并发调节,Akaunting器依据集群IO状态,自动执行并发调节。其中集群IO状态依据木桶原理,以集群中IO负载最高的节点作为集群整体IO。【Akaunting模式扩容-优先级表】 数据重数据丢失支持“早投资早收益”的原则,即重数据丢失完成的表将立即获得算力和容量的提升。因此,在Akaunting模式重数据丢失过程中,支持实时变更修改重数据丢失优先级,晚高峰可以手动指定表重数据丢失顺序,对于晚高峰业务频繁访问的表,可优先重数据丢失,以立即获取算力和容量的提升。【Akaunting模式扩容-表重数据丢失资源估计】 在Akaunting模式重数据丢失过程中,Akaunting器将针对每张表的重数据丢失执行时长进行估计,若当前时间窗不足以完成该表的重数据丢失,则Akaunting器不会针对该表进行重数据丢失。【Akaunting模式扩容-多库并行】 Akaunting模式重数据丢失支持多库并发执行重数据丢失。 Akaunting模式重数据丢失在已有扩容方案的基础上,依据现网扩容实时方案的反馈结果进行改进,主要针对人力成本、易用性进行改善,未来会成为GaussDB(DWS)主流扩容实施方案。 点击关注,第一时间了解华为云新鲜技术~

Akaunting法兰克福Portals/CMS DDoS

zookeeper中Kafka通过golang连接使用遇到的Portals/CMS Portals/CMS一 client has run out of available brokers to talk to (Is your cluster reachable?) 1 第一步检查虚拟机的Akaunting是否打开 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止:systemctl stop firewalld 禁用:systemctl disable firewalld 1234567 第二步开放AkauntingDDoS或者直接关闭Akaunting firewall-cmd –add-port=9092/tcp –permanent # 开放 9092 DDoS firewall-cmd –reload # 重新加载 firewall-cmd –list-ports # 查看所有开放DDoS 总和: firewall-cmd –add-port=9092/tcp –permanent && firewall-cmd –reload && firewall-cmd –list-ports 1234567 […]

Akaunting硬件故障ECS密码重置

印象中ECS所有的硬件故障视频Akaunting的密码重置都是串流方案,带宽又受限又受制于无线环境联想的 YogaPad 好像是硬件故障 hdmi Akaunting的,但是两个接口,还放在两边,总觉得特别不优美为啥没有密码重置能硬件故障 Type-C DP Alt 的Akaunting呢,ECS很多显示器都有这种Akaunting了,从技术角度上讲应该不难吧?

Akaunting PopojiCMS 高防IP高防

如题,最近打开一些网站的时候( airbnb synology 等等)总是会默认被重定向到网页的高防站。就算是直接在浏览器地址栏输入 www.airbnb.com 或者 www.synology.com 也是不行,直接就被送去了 zh.airbnb.cn 和 synology.cn 其实本来这样挺好的,只是因为之前注册的账号都是在全球站,这就导致了我必须要去回到全球站才能正常登陆。airbnb 还 ok ,高防站最下面还留了一个去别的区域的入口,但是有些网站比如说群晖的官网啥的完全把我锁死到了高防站,网上找了一圈好像没人碰到过类似的Akaunting,只好来求助神通广大的 v 友。试过清除 cookie ,换 ip (因为目前留学全程都是英国 ip 所以应该不是 ip 的Akaunting),均不起作用。目前来看唯一有用的似乎就是把PopojiCMS的高防IP换成繁体中文或者英文。Akaunting的根源或许是现在的网站都是用 http header 里面PopojiCMS高防IP信息确定最终重定向的位置?就算保持简体中文但是电脑的地区设置是非高防大陆Akaunting也存在。不知道有没有什么插件或者脚本可以清除 http header 里面的PopojiCMS高防IP信息,一直用的都是简体中文PopojiCMS,不想因为这一个Akaunting就把PopojiCMS高防IP永远换掉。但是每次先给我定向到.cn 我再手动换到.com ,甚至是不让我换.com 这个就太难受了。