集群理论详解(续一)

简介:

扩展知识二:

使用heartbeatV2的CRM组件进行高可用集群的“集群资源管理crm”

1、更改原来haresources资源管理配置文件的方法可用通过/usr/lib64/heartbeat/resources2cib.py进行转换配置文件格式转换。

[root@node1.dtedu.com~]$/usr/lib64/heartbeat/haresources2cib.py 

[root@node1.dtedu.com~]$ls /var/lib/heartbeat/crm/操作后会在此处生成cib.xml文件。

cib.xml


2、启动heartbeat V2版的集群资源管理器crm,需要修改/etc/ha.d/ha.cf配置文件,末尾添加

#crm

crm on


3、监听端口5560、694

[root@node2.dtedu.com /var/www/html]# netstat -tunlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1344/sshd           

tcp        0      0 0.0.0.0:5560                0.0.0.0:*                   LISTEN      1066/mgmtd          

tcp        0      0 :::22                       :::*                        LISTEN      1344/sshd           

udp        0      0 0.0.0.0:59913               0.0.0.0:*                               1054/heartbeat: wri 

udp        0      0 224.5.6.7:694               0.0.0.0:*                               1054/heartbeat: wri 

4、crm的图形化配置工具需要账户和密码,为hacluster创建密码。(认证方式为本地认证,所以在哪里认证就在哪里启动配置工具,所以这里是的node2上进行配置,当然也可以在各个节点上都创建账户密码)

[root@node2.dtedu.com /var/www/html]# tail /etc/passwd

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

hacluster:x:498:498:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin

[root@node2.dtedu.com /var/www/html]# passwd hacluster

更改用户 hacluster 的密码 。

新的 密码:

无效的密码: 它没有包含足够的不同字符

无效的密码: 过于简单

重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。

[root@node2.dtedu.com /var/www/html]# 


5、运行图像化工具hb_gui,此为通过haresources2cib.py脚本转换后的结果

831541.tmp

6、创建以下资源:

6.1、vip,用于高可用的虚拟ip地址

6.2、nfs挂载点,节点挂载的nfs共享文件系统,用于存放HTML页面文件。

6.3、httpd服务,用于启动web服务。

要求:所以资源默认运行在节点1上node1,并且资源间的启动顺序为vip->nfs->httpd。

命令行方式检查高可用集群的状况

Refresh in 5s...


============

Last updated: Thu Mar 30 01:54:33 2017

Current DC: node3.dtedu.com (604f380c-3952-4c80-afdf-56d84aa94f7f)

3 Nodes configured.

3 Resources configured.

============


Node: node2.dtedu.com (f57e6cb6-4edf-4422-adb1-8a5dd467eb9a): online

Node: node3.dtedu.com (604f380c-3952-4c80-afdf-56d84aa94f7f): online

Node: node1.dtedu.com (92dbc6f9-e5ca-4de1-b8b8-d23ed2b9ac0a): online


ha-vip  (ocf::heartbeat:IPaddr):        Started node2.dtedu.com

ha-nfs  (ocf::heartbeat:Filesystem):    Started node1.dtedu.com

ha-httpd        (lsb:httpd):    Started node3.dtedu.com


Failed actions:

    ha-nfs_start_0 (node=node3.dtedu.com, call=5, rc=1): complete


具体步骤:

1、创建组id(vip-nfs-httpd)、资源id(ha-vip,ha-nfs,ha-httpd),并添加资源

484657.tmp

屏幕快照 2017-03-29 下午3.59.58.png

屏幕快照 2017-03-29 下午4.02.31.png

通过修改orders改变资源启动顺序,通过修改colocations将资源放在一个节点上启动。

屏幕快照 2017-03-30 下午3.11.39.png


扩展知识三

heartbeatV2CRM上搭建高可用的mysql

环境介绍:

1、mysql数据库存储在远程挂载的nfs文件系统上,nfs权限使用no_root_squash。

2、各个节点间使用的mysql账户及密码相同,ID号相同。

3、

具体步骤:

1、创建nfs环境

[root@mail ~]# mkdir /mysqldata

[root@mail ~]# vi /etc/exports

/web/htdocs *(ro)

/mysqldata      *(rw,no_root_squash)

[root@mail ~]# exportfs -avr使配置文件生效,免重启。

exporting *:/mysqldata

exporting *:/web/htdocs

                                           

比较现实不同服务器的时间

[root@node1.dtedu.com~]$date;ssh node2 "date"

2017年 03月 30日 星期四 04:20:18 EDT

2017年 03月 30日 星期四 03:54:33 EDT


2、节点创建mysql账户及相同ID,为目录授予mysql权限。

[root@node1.dtedu.com~]$mount -t nfs 10.40.0.37:/mysqldata /mysqldata

[root@node1.dtedu.com~]$useradd -r -u 301 mysql

[root@node1.dtedu.com~]$chown mysql:mysql /mysqldata


3、搭建mariadb数据库。

3.1安装gcc、gcc-c++

3.2安装ncurses-devel

3.3删除CMakeCache.txt

具体步骤:

[root@node2.dtedu.com ~]# tar zxf mariadb-10.1.22.tar.gz 

[root@node2.dtedu.com ~]# cd mariadb-10.1.22

[root@node2.dtedu.com ~/mariadb-10.1.22]# yum install cmake安装cmake

[root@node2.dtedu.com ~/mariadb-10.1.22]# yum install gcc gcc-c++ ncurses-devel


[root@node2.dtedu.com ~/mariadb-10.1.22]# rm CMakeCache.txt  -f

[root@node2.dtedu.com ~/mariadb-10.1.22]# cmake . -DRPM=centos6.7 -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/mysqldata/data -DSYSCONFDIR=/etc

[root@node3.dtedu.com /usr/local/mariadb]# scp ./share/mysql/mysql.server  /etc/init.d/mariadb

[root@node3.dtedu.com /usr/local/mariadb]# chkconfig --add mariadb

[root@node3.dtedu.com /usr/local/mariadb]# chkconfig --list mariadb

mariadb        0:关闭1:关闭2:关闭3:关闭  4:关闭5:关闭6:关闭

[root@node3.dtedu.com /usr/local/mariadb]# service mariadb start

Starting MySQL.170330 07:07:17 mysqld_safe Logging to '/mysqldata/data/node3.dtedu.com.err'.

170330 07:07:17 mysqld_safe Starting mysqld daemon with databases from /mysqldata/data

...................................... SUCCESS! 


[root@node3.dtedu.com /usr/local/mariadb]# cp share/mysql/my-large.cnf /etc/my.cnf

cp:是否覆盖"/etc/my.cnf"? y


配置MariaDB

初始化数据库:

1
2
3
4
5
[root@example.com mariadb-10.0.21] # cd /usr/local/mysql/
[root@example.com mysql] # scripts/mysql_install_db --user=mysql --datadir=/data/mydata/
[root@example.com mysql] # ls /data/mydata/
aria_log.00000001  ibdata1      ib_logfile1  mysql              
testaria_log_control   ib_logfile0  lost+found   performance_schema

 

设置配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@example.com mysql] # vim /etc/my.cnf
[mysqld]
port            = 3306
socket          =  /tmp/mysql .sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
datadir= /data/mydata    // 需要添加此项

 

设置启动脚本:

1
2
3
4
[root@example.com mysql] # cp support-files/mysql.server /etc/init.d/mysqld
[root@example.com mysql] # chkconfig --add mysqld
[root@example.com mysql] # chkconfig --list mysqld
mysqld         0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

 

启动服务:

1
2
3
4
[root@example.com mysql] # service mysqld start
Starting MySQL. SUCCESS! 
[root@example.com mysql] # ss -tunl |grep 3306
tcp    LISTEN     0      128                   :::3306                 :::*

 

导出环境变量:

1
2
3
[root@example.com mysql] # vim /etc/profile.d/mysql.sh
export  PATH= /usr/local/mysql/bin :$PATH
[root@example.com mysql] # source /etc/profile.d/mysql.sh

 

导出头文件:

1
2
[root@example.com mysql] # ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql"  ->  "/usr/local/mysql/include/"

 

导出库文件:

1
2
3
4
5
6
7
8
[root@example.com mysql] # vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@example.com mysql] # ldconfig -v
[root@example.com mysql] # ldconfig -p |grep mysql
libmysqlclient_r.so.16 (libc6,x86-64) =>  /usr/lib64/mysql/libmysqlclient_r .so.16
libmysqlclient.so.18 (libc6,x86-64) =>  /usr/local/mysql/lib/libmysqlclient .so.18
libmysqlclient.so.16 (libc6,x86-64) =>  /usr/lib64/mysql/libmysqlclient .so.16
libmysqlclient.so (libc6,x86-64) =>  /usr/local/mysql/lib/libmysqlclient .so


这里安装的mariadb数据库,但在做crm高可用的时候,需要在复制脚本时将mysql.server复制为mysqld,并且在crm添加资源的时候选择mysqld(LSB)模式。



本文转自 blackstome 51CTO博客,原文链接:http://blog.51cto.com/137783/1968785,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
【HarmonyOS Next之旅】ArkTS语法(四) -> 使用限制与扩展
本文介绍了ArkTS语言在生成器函数中的使用限制、变量的双向绑定以及自定义组件成员变量初始化的方式与约束。生成器函数中表达式的使用场景受限,且不能改变状态变量或包含局部变量。事件处理函数不受这些限制。双向绑定通过$$实现,支持基础类型及特定装饰器变量,变更时仅渲染当前组件以提升效率。成员变量初始化支持本地和构造参数两种方式,不同装饰器类型的变量有不同的初始化规则和约束,需根据具体需求选择合适的初始化方法。
433 21
|
消息中间件 Linux
Linux IPC(进程间通信)管理:深入解析ipcs和ipcrm命令的用法与示例
在Linux操作系统中,进程间通信(IPC)是实现进程之间数据传递和同步的关键机制。Linux提供了多种IPC方式,如消息队列、信号量和共享内存等。为了优化系统性能与稳定性,及时管理和清理IPC资源非常重要。本文将深入介绍ipcs和ipcrm命令的使用方法,并给出丰富的示例,以帮助读者更好地理解IPC资源管理的实践技巧。
1894 1
|
人工智能 自然语言处理 程序员
提交通义灵码创新实践文章,重磅好礼只等你来!
通义灵码创新实践征集赛正式开启,发布征文有机会获得重磅好礼+流量福利,快来参加吧!
23546 21
|
安全 C++ Windows
C++调用外部应用程序的方法的整理总结(常用)
一、三个SDK函数:  WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。
3519 0
|
Web App开发 移动开发 JavaScript
python websocket学习使用
前言 今天看了一些资料,记录一下心得。 websocket是html5引入的一个新特性,传统的web应用是通过http协议来提供支持,如果要实时同步传输数据,需要轮询,效率低下 websocket是类似socket通信,web端连接服务器后,握手成功,一直保持连接,可以理解为长连接,这时服务器就可以主动给客户端发送数据,实现数据的自动更新。
4601 0
|
Web App开发 前端开发 算法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
例如:12的全排列是12、21,123的全排列是123、132、213、231、312、321。依次类推:1234的全排列是……… 在123 的全排列中,我们使用3个盒子存放即将放进的数字,每当走到一个盒子前就把手中的数字放进去,手中的数字没了之后,再次返回,把盒子中的数字拿走,再次进行排列。
1346 136
|
算法 Java C++
ACM算法竞赛中在编辑器中使用输入输出样例(CPH)
ACM算法竞赛中在编辑器中使用输入输出样例(CPH)
1347 0
|
存储 运维 监控
IDC:云效产品能力No.1,领跑中国DevOps市场
近日,全球领先的专业市场调查机构国际数据公司(IDC)发布了《IDC MarketScape:中国 DevOps 平台市场厂商评估,2022》报告。此报告中对中国主流 DevOps 云厂商从战略(Strategies)、能力(Capabilities)两个维度进行了全面评估。阿里云云效凭借先进理念、技术服务、生态与市场的突出表现,在产品能力维度排名第一,持续领跑中国 DevOps 市场。
25420 6
IDC:云效产品能力No.1,领跑中国DevOps市场
|
存储 Kubernetes JavaScript
🚀 2023 年你必须贡献的 9 个国外开源库 🔥
🚀 2023 年你必须贡献的 9 个国外开源库 🔥
🚀 2023 年你必须贡献的 9 个国外开源库 🔥
|
SQL 数据库
数据库杂谈(三)—— 关系代数
关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。在本文中,我们不仅谈论关系代数的知识点,而且还配备了对应的练习题。
1613 0