Several situations of Linux automatically reboot without reboot logs in the /var/log/messages

Situation One

This Linux server is a virtual server. If we reboot it though its virtual software, there is no relevant logs in the /var/log/messages.

Situation Two

This Linux server is a member of a pacemaker cluster. If the pacemaker cluster software fences this server for protecting the whole cluster, there is no relate logs in the /var/log/messages.

Situation Three

This Linux server has critical problems in its system or hardware. Core panic of Linux and hardware problem both can reboot the system automatically without any reboot logs in the /var/log/messages.

[实验] FTP + Pacemaker 存储服务高可用的实现

纪念:站主于 2019 年 8 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

注意:

在实现 FTP + Pacemaker 存储服务高可用之前要先安装 Pacemaker 集群 ,并且需要 root 权限

正文:

步骤一:Pacemaker 高可用 FTP 服务的解析

1.1 集群本身需要的服务

需要额外一台服务器提供 Iscasi 远程目录服务

1.2 本 Pacemaker 高可用 FTP 服务的特点

1) 使用其他服务器提供的 Iscasi 服务器作为 FTP 的共享目录
2) 提供 FTP 服务
4) 提供虚拟 IP 服务
5) 以上三项服务器都实现高可用
6) 唯一的单点故障在于额外的那台服务器提供的 Iscasi 远程目录服务器

步骤二:前期准备所有集群主机上都安装 FTP 服务

2.1 在所有集群主机上安装 FTP

(在所有集群服务器上执行以下步骤)

# yum -y install vsftpd

2.2 确保 vsftpd 服务没有启动

(在所有集群服务器上执行以下步骤)

# systemctl stop vsftpd
# systemctl disable vsftpd

步骤三:部署 Pacemaker 的 FTP 高可用服务

3.1 在 ftp 资源组中创建名为 ftpip 的虚拟 ip 资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create ftpip IPaddr2 ip=192.168.0.21 cidr_netmask=24 --group ftp

3.2 在 ftp 资源组中创建名为 ftpfiles 挂载其他服务器的 Iscasi 服务的资源

(只在 1 台集群里的服务器上执行以下步骤)

# pcs resource create ftpfiles Filesystem device=192.168.8.21:/content/ftp directory=/var/ftp fstype=nfs options=ro --group ftp

(注意:这里的 Filesystem 指的是其他服务器搭建的 Iscasi 服务,这个服务需要提前搭建好)

3.3 在 ftp 资源组中创建名为 vsftpd 的 ftp 资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create vsftpd systemd:vsftpd --group ftp

[实验] Apache + Pacemaker 网站服务高可用的实现

纪念:站主于 2019 年 8 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

注意:

在实现 Apache + Pacemaker 网站服务高可用之前要先安装 Pacemaker 集群

正文:

步骤一:Pacemaker 高可用网站服务的解析

1.1 集群本身需要的服务

需要额外一台服务器提供 NFS 远程目录服务

1.2 本 Pacemaker 高可用网站服务的特点

1) 使用其他服务器提供的 NFS 服务器作为网站的网页目录
2) 提供网站 服务
3) 提供虚拟 IP 地址服务
4) 以上三项服务器都实现高可用
5) 唯一的单点故障在于额外的那台服务器提供的 NFS 远程目录服务器

步骤二:前期准备

2.1 在所有集群服务器上安装 httpd

(在所有集群服务器上执行以下步骤)

# yum -y install httpd

2.2 确保 httpd 不会被 SELinux 限制

(在所有集群服务器上执行以下步骤)

# setsebool -P httpd_use_nfs 1

(补充:这里是要求 SELinux 的布尔值让 httpd 也可以使用 NFS 服务)

2.3 确保 httpd 没有启动

(在所有集群服务器上执行以下步骤)

# systemctl stop httpd
# systemctl disable httpd

步骤三:部署 Pacemaker 的网站高可用服务

3.1 在 网站资源组中创建名为 webip 的虚拟 IP 地址资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create webip IPaddr2 ip=192.168.0.20 cidr_netmask=24 --group=web

3.2 在 网站资源组中创建名为 webnfs 挂载其他服务器的 NFS 服务的资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create webnfs Filesystem device=192.168.8.21:/content directory=/var/www/html fstype=nfs options=ro --group web

(注意:这里的 Filesystem 指的是其他服务器搭建的 NFS 服务,这个服务需要提前搭建好,可以参考 https://eternalcenter.com/nfs/ 里的内容)

3.3 在网站资源组中创建名为 webserver 的网站资源

(只在 1 台集群里的服务器上执行以下步骤)

# pcs resource create webserver apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group web

[命令] Pacemaker 命令 pcs resource (管理资源)

注意:

在使用 Pacemaker 命令之前要先安装 Pacemaker 集群 ,并且需要 root 权限

正文:

内容一:pcs resource 命令

1.1 pcs resource 命令的常用选项

1) interval=value

定义资源监控的时间,如果不设置的话,就使用的是 resource agent ,每 60 秒检测一次

2) timeout=value

设置操作的等待时间,如果时间结束了某项操作还没有完成,则自动失败

3) on-fail=action

如果操作失败,则会执行以下动作

4) ignore

忽略所有失败的操作

5) block

当 fence 没有被配置时,停止执行操作

6) stop

停止处于激活状态的集群

7) restart

重启资源

8) fence

当 fence 有被配置时,当某个资源停止时隔离运行此资源的主机

9) standby

将所有资源从他正在运行的主机上移到另 1 台服务器

1.2 pcs resource 命令选项的使用案例

# pcs resourece create webserver apache \
> configfile="/etc/httpd/conf/http.conf" \
> statusurl="http:?/127.0.0.1/server-status" --group myweb \
> op monitor interval=20s timeout=30s


补充:这里以创建
1) 名为 webserver
2) 配置文件是 /etc/httpd/conf/http.conf
3) 状态链接是 http:?/127.0.0.1/server-status
4) 组名是 myweb
5) 监控间隔是 20 秒
6) 延迟时间是 30 秒
的 apache 资源为例

内容二:pcs resource 资源显示相关的命令

2.1 显示所有可用的资源列表

# pcs resource list

2.2 显示具体的某个可用资源的介绍

# pcs resource describe <resource>

2.3 显示所有的 pcs 资源

# pcs resource show

2.4 显示某个 pcs 资源

# pcs resource show <resource>

2.5 显示所有 pcs 资源被限制的情况

# pcs constraint list

内容三:pcs resource 资源增、删、改相关的命令

3.1 修改 pcs 资源

# pcs resource update <resource> <option>

3.2 删除 pcs 资源

# pcs resource delete <resource> 

3.3 在某个组里面添加某个资源

# pcs resource group add <group> <resource>

3.4 在某个组里面删除某个资源

# pcs resource group remove <group> <resource>

内容四:pcs resource 资源管理相关的命令

4.1 停用某个 pcs 资源

# pcs resource disable <resource>

4.2 启用某个 pcs 资源

# pcs resource enable <resource>

4.3 移动 pcs 资源到另 1 个主机

# pcs resource move <resource> <host>

4.4 指定某个 pcs 资源只能在某个主机上运行

# pcs resource ban <resource> <host>

4.5 清除某个 pcs 资源只能在某个主机上运行的限制

# pcs resource clear <resource> <host>

内容五:pcs resource 资源监控相关的命令

5.1 删除某个资源的监控

# pcs resource op remove <resource> monitor

5.2 添加某个资源的监控

# pcs resource op add <resource> monitor <fence parameter> onfail=fence

内容六:pcs resource 资源排错相关的命令

6.1 显示某个 pcs 资源失败的次数

# pcs resource failcount show <resource>

6.2 检查某个资源的情况

# pcs resource debug-start firstwebserver --full

[命令] Pacemaker 命令 pcs stonith (管理隔离)

注意:

在使用 Pacemaker 的 fence 之前要先安装 Pacemaker 集群 ,并且需要 root 权限

正文:

内容一:fence 介绍

fence 的作用是隔离不需要的主机,当一台主机和集群失去联系时,将其隔离,以防止脑裂

内容二:pcs stonith 命令的格式

# pcs stonith <option> name fencing_agent <parameter>

内容三:fence 管理

3.1 显示所有可用的 fence 的列表

# pcs stonith list

3.2 显示某种可用 fence 的详细信息

# pcs stonith describe fence_rhevm

3.3 显示所有已配置的 fence 状况

# pcs stonith fence show --full

3.4 删除 fence

3.4.1 删除某个 fence
# pcs stonith delete <fence>
3.4.2 删除当前所有的 fencing 资源
# for i in fence_node{a..d}; do
> pcs stonith delete &{I}
> done

3.5 创建 fence_vmware_soap 的案例

# pcs stonith create vmfence fence_vmware_soap ipaddr=192.168.0.254 login="vmfence" passwd="vmfence" ssl_insecure=1 pcmk_host_check="static-list" pcmk_host_list="pacemaker0 pacemaker1 pacemaker2"


补充:这里以创建
1) 名为 vmfence
2) fence 服务器的 IP 地址为 192.168.0.254
3) fence 服务器的用户名为
4) fence 服务器的密码为
5) 被 fence 监控的服务器为 pacemaker0、pacemaker1 和 pacemaker2
的 fence 为例

(注意:fence_vmware_soap 需要在 vmware 环境下才能被使用,且需要设置好 vmfence 的用户、密码、IP 等)

内容四:使用 fence 管理服务器

4.1 隔离某个台服务器

# pcs stonith fence <host>

4.2 从 fencing 删除某台服务器

# pcs stonith delete <host>