① OpenStack高可用集群部署方案设计(train版),2024年最新真香定律

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

MariaDB [(none)]> SHOW status LIKE ‘wsrep_ready’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| wsrep_ready | ON |
±--------------±------+
1 row in set (0.001 sec)


##### 2.6 在controller01创建数据库,到另外两台节点上查看是否可以同步



[root@controller01 ~]# mysql -uroot -p
MariaDB [(none)]> create database cluster_test charset utf8mb4;
Query OK, 1 row affected (0.005 sec)

MariaDB [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| cluster_test |
| information_schema |
| mysql |
| performance_schema |
±-------------------+


另外两台查看



[root@controller02 ~]# mysql -uroot -pZx***** -e ‘show databases’
±-------------------+
| Database |
±-------------------+
| cluster_test | √
| information_schema |
| mysql |
| performance_schema |
±-------------------+

[root@controller03 ~]# mysql -uroot -pZx***** -e ‘show databases’
±-------------------+
| Database |
±-------------------+
| cluster_test | √
| information_schema |
| mysql |
| performance_schema |
±-------------------+


#### 3. 设置心跳检测clustercheck


##### 3.1 下载clustercheck脚本


在全部控制节点下载修改此脚本



wget -P /extend/shell/ https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck


注意账号/密码与脚本中的账号/密码对应,这里用的是脚本默认的账号/密码,否则需要修改clustercheck脚本



[root@controller01 ~]# vim /extend/shell/clustercheck
MYSQL_USERNAME=“clustercheck”
MYSQL_PASSWORD=“Zx*****”
MYSQL_HOST=“localhost”
MYSQL_PORT=“3306”

#添加执行权限并复制到/usr/bin/下
[root@controller01 ~]# chmod +x /extend/shell/clustercheck
[root@controller01 ~]# \cp /extend/shell/clustercheck /usr/bin/


##### 3.2 创建心跳检测用户


在任意一个控制节点的数据库中创建clustercheck\_user用户并赋权; 其他两台节点会自动同步



GRANT PROCESS ON . TO ‘clustercheck’@‘localhost’ IDENTIFIED BY ‘Zx*****’;
flush privileges;


##### 3.3 创建心跳检测文件


在全部控制节点新增心跳检测服务配置文件`/etc/xinetd.d/mysqlchk`,以controller01节点为例



[root@controller01 ~]# touch /etc/xinetd.d/galera-monitor
[root@controller01 ~]# cat >/etc/xinetd.d/galera-monitor <<EOF

default:on

description: galera-monitor

service galera-monitor
{
port = 9200
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
group = root
groups = yes
server = /usr/bin/clustercheck
type = UNLISTED
per_source = UNLIMITED
log_on_success =
log_on_failure = HOST
flags = REUSE
}
EOF


##### 3.4 启动心跳检测服务


在全部控制 节点修改/etc/services,变更tcp9200端口用途,以controller01节点为例



[root@controller01 ~]# vim /etc/services

#wap-wsp 9200/tcp # WAP connectionless session service
galera-monitor 9200/tcp # galera-monitor


**启动 xinetd 服务**



#全部控制节点都需要启动
systemctl daemon-reload
systemctl enable xinetd
systemctl start xinetd


##### 3.5 测试心跳检测脚本


在全部控制节点验证,以controller01节点为例



[root@controller01 ~]# /usr/bin/clustercheck
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40

Percona XtraDB Cluster Node is synced.


#### 4. 异常关机或异常断电后的修复


当突然停电,所有galera主机都非正常关机,来电后开机,会导致galera集群服务无法正常启动。以下为处理办法



第1步:开启galera集群的群主主机的mariadb服务。
第2步:开启galera集群的成员主机的mariadb服务。

异常处理:galera集群的群主主机和成员主机的mysql服务无法启动,如何处理?

#解决方法一:
第1步、删除garlera群主主机的/var/lib/mysql/grastate.dat状态文件
/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。

第2步:删除galera成员主机中的/var/lib/mysql/grastate.dat状态文件
systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。

#解决方法二:
第1步、修改garlera群主主机的/var/lib/mysql/grastate.dat状态文件中的0为1
/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。

第2步:修改galera成员主机中的/var/lib/mysql/grastate.dat状态文件中的0为1
systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。


### 六、RabbitMQ集群(控制节点)


https://www.rabbitmq.com/which-erlang.html


#### 1. 下载相关软件包(所有节点)


以controller01节点为例,RabbbitMQ基与erlang开发,首先安装erlang,采用yum方式



[root@controller01 ~]# yum install erlang rabbitmq-server -y
[root@controller01 ~]# systemctl enable rabbitmq-server.service


#### 2. 构建rabbitmq集群


##### 2.1 任选1个控制节点首先启动rabbitmq服务


这里选择controller01节点



[root@controller01 ~]# systemctl start rabbitmq-server.service
[root@controller01 ~]# rabbitmqctl cluster_status


##### 2.2 分发.erlang.cookie到其他控制节点



scp /var/lib/rabbitmq/.erlang.cookie controller02:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie controller03:/var/lib/rabbitmq/


##### 2.3 修改controller02和03节点.erlang.cookie文件的用户/组



[root@controller02 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

[root@controller0

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值