[ray入门] 在Linux上安装部署Ray集群

[ray入门] 在Linux上安装部署Ray集群,第1张

Ray 是一个高性能分布式计算框架,借助它可以非常容易的构建分布式运算任务。本文将介绍如何在Linux上部署Ray集群

Ray集群由一个 Head 节点和多个 Worker 节点组成:

为了方便,我们最好利用 Anaconda 构建来一个独立的python运行环境。(当然你也可以直接使用系统内python运行环境,那么你可以跳过此步骤)

为ray准备一个python环境,以python3.8.8示例:

安装完之后,最好重新登录一下,或者执行一下 source ~/.bashrc 使得环境变量生效

安装ray(版本为1.7.0),这里为了加快速度指定了阿里的镜像源:

在 192.168.100.1 上启动Head节点:

正常会看到如下输出:

输出信息包含了2个关键信息,需要别注意:

在 192.168.100.2 上,按照上面的步骤将python和ray安装好,注意它们的版本必须保持一致。

(另外,Worker不是必须的,因为Head节点本身就具有worker角色)

访问dashboard: http://192.168.100.1:8265

无法访问Ray Dashboard的几个原因

本文介绍在Linux HA集群中的stonith模块功能。

Stonith,全称Shoot The Other Node In The Head,用于防止集群出现脑裂现象。简单来说,一旦集群中的节点相互之间失去了通信,无法知道其他节点的状态,此时集群中的每个节点将尝试fence(隔离或“射杀”)失去通信的节点,确保这些节点不再抢夺资源,然后才继续启动服务资源,对外提供服务。

在3台集群主机上安装fence-agents软件包。

安装完毕后可查看到系统支持的stonith设备类型:

以上输出中的每个Fence agent都是一种Stonith设备,从名字的后缀可以看出,这些Agent有以下几类:

前两种都属于电源类型的Stonith设备,而第三种和电源无关,之所以要这样划分,是因为:

以下以fence_scsi为例进行实验。

安装 《在CentOS7上配置iSCSI》 中的方法,通过一台专用的存储节点ha-disks为集群中的3个主机提供共享存储(即在ha-disks上创建iscsi硬盘,然后将其映射到3个集群主机上)。

在iscsi-disks上创建3个100M的硬盘fen1,fen2,fen3,挂载到主机上后设备名称分别为sdb,sdc,sdd

测试一下这些硬盘是否支持PR Key:

首先使用一个fence盘/dev/sdb来进行实验:

使用sg_persist -s参数获取/dev/sdb上的所有信息:

可以看到,3个节点使用不同的PR Key在这个磁盘上进行了注册(register),并且ha-host1保留(reservation)成功,类型为“Write Exclusive, registrants only”。表明此时只有ha-host1对该磁盘进行写 *** 作。

此时如果断开其中两个节点的的链接,如ha-host1和ha-host3:

可以看到,经过协商后,ha-host3退出集群,并且也删除在fencing磁盘中的注册信息。由于stonith资源运行在ha-host2上,所以在ha-host2的日志中可以看到ha-host3被fence的过程:

ha-host3被fence之后,必须重启才能重新注册PR Key,否则即使网络恢复,其也无法运行需要stonith支持的资源。

问题:仲裁机制保证了必须有超过半数的节点的partition才能启动资源,拿为什么还需要stonith设备?

一、目录

1、工具

2、安装tcl

3、安装单机版redis

4、把redis设置为daemon进程,每次系统启动,redis进程一起启动

5、安装redis cluster

二、工具

2.1、tcl8.6.1-src.tar.gz

2.2、ruby-2.3.1.tar.gz

2.3、redis-4.1.1.gem

2.4、redis-3.2.8.tar.gz

2.5、openssl-1.0.2r.tar.gz

三、安装tcl(安装redis必须先要安装tcl)

3.1、把tcl8.6.1-src.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下

四、安装单机版redis

4.1、把redis-3.2.8.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下

4.2、依次运行如下命令:

tar -zxvf redis-3.2.8.tar.gz 解压文件

cd redis-3.2.8

make &&make test &&make install

五、把redis设置为daemon进程,每次系统启动,redis进程一起启动

5.1、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号

5.2、修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)

protected-mode no 取消保护模式,保护模式只能127.0.0.1访问

daemonize yes 让redis以daemon进程运行

pidfile /var/run/redis_6379.pid 设置redis的pid文件位置

bind192.168.3.110

port6379设置redis的监听端口号

dir /var/redis/6379 设置持久化文件的存储位置

logfile /var/log/redis/6379.log设置日志文件位置

5.6、启动redis,依次执行:

cd /etc/init.d,

chmod 777 redis_6379,赋读写执行的权限(chmod -R 777 * 是递归把该目录下的所有文件和其子文件全部赋权限)

./redis_6379 start 启动

5.7、确认redis进程是否启动,ps -ef | grep redis

5.8、让redis跟随系统启动自动启动

5.9、重启系统,不手动启动redis,直接连接redis,可以连接上,表示配置成功

此时一个单机版的redis的生产环境已经搭建好了,每次服务器重启,redis都会自动的启动

六、安装redis cluster

(redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave)

6.1、前提,我在其它机器上启动了六个redis(安装步骤都如下)

2.2、创建三个目录:

mkdir -p /etc/redis-cluster 存放集群配置信息,自动生成配置

mkdir -p /var/log/redis redis日志

mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件

6.3、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号,并修改redis_7001配置文件中的REDISPORT=7001

6.4、修改/etc/redis/7001.conf中的部分配置为生产环境

6.5、完成了一个redis环境的配置,依次再配置其余五个,分别为7002、7003、7004、7005、7006,每个启动脚本内,都修改对应的端口号

6.6、启动6个redis实例

6.7、创建集群(需要安装ruby、rubygems)

上述命令在部分机器上是可以直接运行完成,成功安装的,但在部分机器上运行第三条命令时会提示ruby版本太低、openssl找不到的问题,下面依次解决这两个问题:

6.8、再次运行gem install redis命令,报出两个错误

6.9、再次运行gem install redis命令,报出一个错误

6.10、再次运行gem install redis命令,报出一个错误

6.11、再次运行gem install redis命令

[root@ceshi01 local]# gem install redis

Successfully installed redis-4.1.1

Parsing documentation for redis-4.1.1

Done installing documentation for redis after 1 seconds

WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )

1 gem installed

运行成功

此时Redis安装好,此三个工具也安装好了,这时我们来做一个Redis集群测试,在一台服务器中创建了6个Redis实例,开启6个Redis服务

redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

此时一个redis集群环境就已经搭建好了,可以通过redis-trib.rb check 192.168.3.105:7003命令查看集群几点的信息

[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004

redis cluster的优点:读写分离+高可用+多master

读写分离:每个master都有一个slave

高可用:master宕机,slave自动被切换过去

多master:横向扩容支持更大数据量


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7428079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存