09 2020 档案
摘要:
客户端访问hdfs上的某一文件,首先要向namenode请求文件的元数据信息,然后nn就会告诉客户端,访问的文件在datanode上的位置,然后客户端再依次向datanode请求对应的数据,最后拼接成一个完整的文件;这里需要注意一个概念,datanode存放文件数据是按照文件大小和块大小来切分存放的,什么意思呢?比如一个文件100M大小,假设dn(datanode)上的块大小为10M一块,那么它存放在dn上是把100M切分为10M一块,共10块,然后把这10块数据分别存放在不同的dn上;同时这些块分别存放在不同的dn上,还会分别在不同的dn上存在副本,这样一来使得一个文件的数据块被多个dn分散冗余的存放;
阅读全文
摘要:
对于fastdfs来讲,后端的storage是以组为单位进行调度的,一个group中有多个storageserver组成,每个storageserver间互相同步文件,使得在同一组中storageserver上的文件相同,从而实现了文件的冗余;和mogilefs不同的是fastdfs的冗余是基于storage节点来做的,而mogilefs是基于device来做的;下载文件的过程和上传过程类似,首先client会想把下载请求发送给tracker,然后由tracker返回storage的ip:port,然后客户端再向storage server发送文件下载请求,storage收到客户端发送到文件下载请求后,在本地节点查找对应的文件,然后发送给客户端;
阅读全文
摘要:
我们知道mogilefs的tracker和客户端通信使用的http协议,客户端和storage通信也是使用http协议;客户端向tracker发送请求获取文件的内容,tracker收到请求后,去数据库中查,把查到的结果返回给客户端,然后客户端再通过tracker返回的结果去请求对应的存储节点,通过这样一个过程客户端就拿到对应文件的内容;从上面描述的过程来看,要想使用mogilefs得有一款智能的客户端,它必须满足能够理解到tracker返回的内容,然后再向存储节点请求对应的文件;其次这个客户端还能通过http协议同tracker和storage交互,也就说我们需要一款能够理解tracker返回的内容的http协议的反代服务器;
阅读全文
摘要:
tracker的主要作用是代理前端用户的请求到数据库查询相关文件的元信息,同时它还要监控注册到tracker的storagenode的健康状态,一旦后端storage挂掉,它会立刻把对应的storage节点上的device从集群信息中删除(对应数据还在,只是在集群的状态信息看不到对应设备),上线时再加入到集群信息;客户端通过向tracker发送请求文件的信息,tracker通过去数据库中找到对应的文件所在storage节点的ip地址、端口、设备id以及文件fid,然后通过http链接的形式从tracker返回给客户端,客户端拿到这tracker的返回的文件地址,然后在去对应的storage请求文件,从而在客户端就访问到对应的文件内容信息;
阅读全文
摘要:
对于高可用nginx或haproxy这类在用户空间有监听端口和进程的服务来说,如果用keepalived做高可用,我们需要考虑到我们高可用的服务是否正常可用,从而实现在服务不正常的情况下,把对应的VIP能够迁移到其他节点;为了实现能够检测到高可用的服务是否正常,keepalived提供了调用外部脚本的接口,让我们配置对高可用的服务做可用性检测;根据我们定义的脚本,keepalived会周期性的去执行我们的定义的脚本,根据脚本执行退出码判断服务是否可用,一旦发生服务不可用,或者可用性检测不通过,它就会触发当前keepalived节点的优先级降低,从而实现当前节点在通告优先级时,触发备份节点接管VIP,从而实现VIP转移,服务的高可用;
阅读全文
摘要:
我们知道一个服务通常是以一个套接字形式对外提供服务,所谓套接字就是ip+端口;前面的博客中我们主要聊到了keepalived对ip地址的高可用,但通常对ip地址高可用没有多大实质的作用,重要的是我们高可用的ip地址后端对应的服务才是根本,这一篇博客主要讲怎么利用keepalived高可用LVS集群,生成ipvs规则,以及对LVS集群的rs做健康状态检测;
阅读全文
摘要:
一个高可用服务,应该具备当服务发生故障,能够第一时间做故障转移,从而保证服务的可用性,同时还应该第一时间通知管理员,以便管理员能够知道服务发生了转移,这样一来管理员也能第一时间去排查故障,让故障的节点在很短的时间重新上线,避免下次故障导致服务不可用;keepalived的故障通知邮件机制,是通过判断当前节点keepalived的角色来触发邮件通知;
阅读全文
摘要:
keepalived相对corosync+pacemaker这种高可用集群,它要轻量很多;它的工作原理就是vrrp的实现;vrrp(Virtual Router Redundancy Protocol,虚拟路由冗余协议 ),设计之初它主要用于对LVS集群的高可用,同时它也能够对LVS后端real server做健康状态检测;它主要功能有基于vrrp协议完成地址流动,从而实现服务的故障转移;为VIP地址所在的节点生成ipvs规则;为ipvs集群的各RS做健康状态检测;基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务;
阅读全文
摘要:
前文我们介绍了高可用集群corosync+pacemaker的集群管理工具crmsh的常用命令的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/tag/crmsh/;今天我们来简单介绍另一款集群管理工具pcs;
阅读全文
摘要:
其实执行migrate/move操作它都会在配置文件中生成一条位置约束的配置;并且会配置对迁往的节点的倾向性为正无穷;如果资源在同一个组中,组中资源对同一节点的倾向性规则是:负无穷大于正无穷,正无穷大于特定的分数;计算一个组对节点的倾向性,就是组中各资源对节点倾向性之和;所以上面没有迁移成功的原因是webserver对node02的倾向性为负无穷;
阅读全文
摘要:
上一篇博客我们聊了下高可用集群corosync+pacemaker的相关概念以及corosync的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13585921.html;今天我们来说一下corosync+pacemaker高可用集群的配置工具crmsh安装和使用;在centos7上默认base仓库没有crmsh这个工具,红帽默认在base仓库中只留了pcs这个配置工具,所以我们要想在centos7上使用crmsh这个工具来管理corosync+pacemaker高可用集群,需要去找对应的包进行安装;好在opensuse给centos7提供了一个仓库,我们可以使用opensuse的仓库去安装这个工具;
阅读全文