HGDB HA with ISCSI
1、基础环境 vip(虚拟IP):192.168.100.222 iscsi(存储):192.168.100.200 node1(节点一):192.168.100.192 node2(节点二):192.168.100.195 新建highgo操作系统用户,要求三台机器highgo用户的uid、gid相同 2、三台机器均关闭防火墙和SELINUX (以n
1、基础环境
<code> vip(虚拟IP):192.168.100.222 iscsi(存储):192.168.100.200 node1(节点一):192.168.100.192 node2(节点二):192.168.100.195 新建highgo操作系统用户,要求三台机器highgo用户的uid、gid相同 </code>
2、三台机器均关闭防火墙和SELINUX (以node1为例)
3、三台机器均SSH互信 (以iscsi为例)
(1)修改/etc/hosts
(2)root用户执行
(3)highgo用户执行
4、ISCSI配置
(1)服务器端(iscsi)
<code class=" hljs lasso"><span class="hljs-subst">>>></span>首先安装scsi<span class="hljs-attribute">-target</span><span class="hljs-attribute">-utils</span>: yum <span class="hljs-attribute">-y</span> install scsi<span class="hljs-attribute">-target</span><span class="hljs-attribute">-utils</span> <span class="hljs-subst">>>></span>编辑/etc/tgt/targets<span class="hljs-built_in">.</span>conf,添加:(/dev/sda是新添加的用来共享的磁盘,为原生的未经过格式化的盘) <span class="hljs-subst"><</span>target iqn<span class="hljs-number">.201605</span><span class="hljs-built_in">.</span>dev:server<span class="hljs-built_in">.</span>target1<span class="hljs-subst">></span> backing<span class="hljs-attribute">-store</span> /dev/sda <span class="hljs-subst"><</span>/target<span class="hljs-subst">></span> <span class="hljs-subst">>>></span>启动服务,并配置开机自启动: service tgtd start chkconfig tgtd <span class="hljs-keyword">on</span></code>
(2)客户端(node1、node2)
<code class=" hljs lasso"><span class="hljs-subst">>>></span>首先安装iscsi<span class="hljs-attribute">-initiator</span><span class="hljs-attribute">-utils</span> yum <span class="hljs-attribute">-y</span> install iscsi<span class="hljs-attribute">-initiator</span><span class="hljs-attribute">-utils</span> <span class="hljs-subst">>>></span>编辑/etc/iscsi/initiatorname<span class="hljs-built_in">.</span>iscsi,添加: InitiatorName<span class="hljs-subst">=</span>iqn<span class="hljs-number">.201605</span><span class="hljs-built_in">.</span>dev:server<span class="hljs-built_in">.</span>target1 <span class="hljs-subst">>>></span>配置服务: chkconfig iscsi <span class="hljs-keyword">on</span> chkconfig iscsid <span class="hljs-keyword">on</span> service iscsi restart service iscsid restart</code>
启动服务时出现失败的情况,正常
5、安装数据库(node1、node2)
node1安装过程:
(1)创建目录(挂载点)
<code class=" hljs perl"><span class="hljs-keyword">mkdir</span> /install/hgdb -p</code>
(2)发现服务器端有磁盘共享,并登录
(3)查询本地多一块磁盘
(4)格式化磁盘并挂载
注意:若挂载时出现以下错误,即为没有格式化磁盘所致
(5)切换到highgo登录系统,执行安装
<code class=" hljs bash">>>>编辑.bash_profile,添加: <span class="hljs-keyword">export</span> HG_HOME=/home/highgo/hgdb</code>
注意:数据目录的选择,即将data目录置于共享磁盘中
(6)安装完成后,注销highgo,切换回root,执行关闭数据库服务、设置开机不自动启动数据库服务、卸载挂载的目录
<code class=" hljs vbnet">service hgdb-se2<span class="hljs-number">.0</span><span class="hljs-number">.4</span> <span class="hljs-keyword">stop</span> chkconfig hgdb-se2<span class="hljs-number">.0</span><span class="hljs-number">.4</span> <span class="hljs-keyword">off</span> umount /install/hgdb</code>
node2安装过程:
(1)创建目录(挂载点)
<code class=" hljs perl"><span class="hljs-keyword">mkdir</span> /install/hgdb -p</code>
(2)发现服务器端有磁盘共享,并登录
(3)挂载磁盘
注意:/dev/sdb为共享磁盘,在node1安装数据库时已经格式化并将data目录置于其下,此时只需要挂载即可看到data目录
(4)切换到highgo登录系统,执行安装
注意:不作为系统服务安装(这样安装时不会有data目录选项出现)
(5)注销highgo,切换回root,执行卸载挂载的目录
<code class=" hljs cmake">umount /<span class="hljs-keyword">install</span>/hgdb</code>
6、HA配置
(1)node1、node2安装
<code class=" hljs cmake">yum -y <span class="hljs-keyword">install</span> pacemaker corosync pcs</code>
(2)在一个节点配置文件,并将文件拷贝到另一节点(以node1为例)
<code class=" hljs ruby">密钥文件: corosync-keygen scp /etc/corosync/authkey root<span class="hljs-variable">@node1</span><span class="hljs-symbol">:/etc/corosync</span></code>
<code class=" hljs avrasm">corosync<span class="hljs-preprocessor">.conf</span>文件: cd /etc/corosync <span class="hljs-keyword">cp</span> corosync<span class="hljs-preprocessor">.conf</span><span class="hljs-preprocessor">.example</span> corosync<span class="hljs-preprocessor">.conf</span> vi corosync<span class="hljs-preprocessor">.conf</span></code>
<code class=" hljs bash">pacemaker服务启动脚本: <span class="hljs-built_in">cd</span> service.d vi pcmd</code>
<code class=" hljs vbnet">corosync、pacemaker服务启停: chkconfig corosync <span class="hljs-keyword">on</span> service corosync start chkcofig pacemaker <span class="hljs-keyword">off</span> servicepacemaker <span class="hljs-keyword">stop</span></code>
7、集群资源配置
<code class=" hljs sql">首先启动服务:service corosync <span class="hljs-operator"><span class="hljs-keyword">start</span> (node1、node2)</span></code>
查看集群状态:
在一个节点上完成资源的配置即可
<code class=" hljs lasso">任何情况集群资源继续运行 pcs property <span class="hljs-built_in">set</span> no<span class="hljs-attribute">-quorum</span><span class="hljs-attribute">-policy</span><span class="hljs-subst">=</span>ignore 禁用stonith pcs property <span class="hljs-built_in">set</span> stonith<span class="hljs-attribute">-enabled</span><span class="hljs-subst">=</span><span class="hljs-literal">false</span></code>
<code class=" hljs sql">配置vip pcs resource <span class="hljs-operator"><span class="hljs-keyword">create</span> vip ocf:heartbeat:IPaddr params ip=<span class="hljs-string">"192.168.100.222"</span> nic=<span class="hljs-string">"eth0"</span> cidr_netmask=<span class="hljs-string">"24"</span> op monitor <span class="hljs-keyword">interval</span>=<span class="hljs-number">20</span>s timeout=<span class="hljs-number">30</span>s</span></code>
查看集群状态
<code class=" hljs sql">配置sdisk(共享存储) pcs resource <span class="hljs-operator"><span class="hljs-keyword">create</span> sdisk ocf:heartbeat:Filesystem params device=<span class="hljs-string">"/dev/sdb"</span> directory=<span class="hljs-string">"/install/hgdb "</span> fstype=<span class="hljs-string">"ext4"</span> op <span class="hljs-keyword">start</span> timeout=<span class="hljs-number">60</span>s op stop timeout=<span class="hljs-number">60</span>s op monitor <span class="hljs-keyword">interval</span>=<span class="hljs-number">20</span>s timeout=<span class="hljs-number">60</span>s</span></code>
查看集群状态
<code class=" hljs sql">配置数据库服务 pcs resource <span class="hljs-operator"><span class="hljs-keyword">create</span> dbserver ocf:heartbeat:pgsql params pghost=<span class="hljs-number">192.168</span><span class="hljs-number">.100</span><span class="hljs-number">.222</span> pgport=<span class="hljs-number">5866</span> pgdba=highgo pgctl=/home/highgo/hgdb/bin/pg_ctl start_opt=<span class="hljs-string">"-D /install/hgdb/data"</span> psql=/home/highgo/hgdb/bin/psql pgdata=/install/hgdb/data monitor_user=highgo monitor_password=highgo123 op <span class="hljs-keyword">start</span> timeout=<span class="hljs-number">120</span>s <span class="hljs-keyword">interval</span>=<span class="hljs-number">120</span>s op stop timeout=<span class="hljs-number">120</span>s <span class="hljs-keyword">interval</span>=<span class="hljs-number">120</span>s op status timeout=<span class="hljs-number">60</span>s <span class="hljs-keyword">interval</span>=<span class="hljs-number">60</span>s</span></code>
<code class=" hljs oxygene">配置三个资源在一个组 pcs resource <span class="hljs-keyword">group</span> <span class="hljs-keyword">add</span> hgdb_group sdisk pcs resource <span class="hljs-keyword">group</span> <span class="hljs-keyword">add</span> hgdb_group vip pcs resource <span class="hljs-keyword">group</span> <span class="hljs-keyword">add</span> hgdb_group dbserver </code>
<code class=" hljs ocaml">配置资源在两节点中的优先级 pcs <span class="hljs-keyword">constraint</span> location sdisk prefers node1=<span class="hljs-number">50</span> pcs <span class="hljs-keyword">constraint</span> location sdisk prefers node2=<span class="hljs-number">40</span> pcs <span class="hljs-keyword">constraint</span> location vip prefers node1=<span class="hljs-number">50</span> pcs <span class="hljs-keyword">constraint</span> location vip prefers node2=<span class="hljs-number">40</span> pcs <span class="hljs-keyword">constraint</span> location dbserver prefers node1=<span class="hljs-number">50</span> pcs <span class="hljs-keyword">constraint</span> location dbserver prefers node2=<span class="hljs-number">40</span></code>
<code class=" hljs sql">配置资源在节点中的启动顺序 pcs constraint order <span class="hljs-operator"><span class="hljs-keyword">start</span> vip <span class="hljs-keyword">then</span> <span class="hljs-keyword">start</span> sdisk <span class="hljs-keyword">then</span> <span class="hljs-keyword">start</span> dbserver</span></code>
<code class=" hljs vbnet">配置psql文件(node1、node2) vi /usr/<span class="hljs-keyword">lib</span>/ocf/resource.d/heartbeat/pgsql</code>
需要确认的错误情况及解决方法:
node1重启corosync服务时,出现下面的状况,而node2可以重启
查看日志文件
切换到highgo用户重新启动停止了服务(之前安装完数据库停掉服务后有新修改postgresql.conf和pg_hba.conf文件,设置了远程访问),再重启corosync服务成功
查看集群状态
8、验证
(1)正常状态下
在node1用虚拟ip可访问数据库
查看共享盘挂载情况
(2)模拟node1崩溃
此时在node2能用虚拟ip访问数据库
集群状态
共享盘挂载
注意:
在配置前最好设置NetworkManager服务stop,更改system eth0为eth0因为配置vip时为eth0,怕会找不到设备,然后重启network服务

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Windows恢复环境(WinRE)是用于修复Windows操作系统错误的环境。进入WinRE后,您可以执行系统还原、出厂重置、卸载更新等操作。如果无法引导到WinRE,本文将指导您使用修复程序解决此问题。无法引导到Windows恢复环境如果无法引导至Windows恢复环境,请使用下面提供的修复程序:检查Windows恢复环境的状态使用其他方法进入Windows恢复环境您是否意外删除了Windows恢复分区?执行Windows的就地升级或全新安装下面,我们已经详细解释了所有这些修复。1]检查Wi

在本文中,我们将了解Python和Anaconda之间的差异。Python是什么?Python是一种开源语言,非常重视使代码易于阅读并通过缩进行和提供空白来理解。Python的灵活性和易于使用使其非常适用于各种应用,包括但不限于对于科学计算、人工智能和数据科学,以及创造和发展的在线应用程序。当Python经过测试时,它会立即被翻译转化为机器语言,因为它是一种解释性语言。有些语言,比如C++,需要编译才能被理解。精通Python是一个重要的优势,因为它非常易于理解、开发,执行并读取。这使得Pyth

您可能想知道MicrosoftWi-Fi直接虚拟适配器在您的PC上的作用。最好放心,此网络适配器Microsoft且完全安全。但是,如果适配器弄乱了您的活动,并且您想知道它是否值得保留,本指南将为您提供您需要了解的所有信息。MicrosoftWi-FiDirect虚拟适配器有什么作用?顾名思义,MicrosoftWi-Fi直接虚拟适配器有助于使您的PC成为无线热点。这样,其他计算机可以连接到您的PC以访问互联网。它通过虚拟化无线网络适配器来实现此目的。这样,您的单个物理无线适配器将转换为两个虚拟

Keepalived是一个基于LVS(Linux虚拟服务器)的高可用性解决方案,它主要用于Linux环境下的负载均衡和故障转移。Keepalived通过使用虚拟IP地址(VIP)和健康检查机制来确保服务的连续性和可靠性。其中,VIP自动漂移是Keepalived的一个关键特性,它允许在主服务器故障时,将服务无缝地切换到备份服务器。本文将简要介绍Keepalived的安装及配置,以实现高可用性集群。旨在为初学者提供指导,帮助他们掌握这一关键技术,提升Linux系统管理能力。名词解释在深入了解Kee

爱奇艺视频下载后vip过期还能看吗?爱奇艺视频是很多用户们的首选影视剧播放平台,对于一些影视剧资源是用户们需要充值vip才能看的。那么vip过期了下载的视频还能看吗?下面就让本站来为用户们来仔细的介绍一下爱奇艺会员下载的视频会员过期能看吗问题解析吧。 爱奇艺会员下载的视频会员过期能看吗 答:不可以看了。 这个主要是出于对版权的保护。 会员到期以后,下载的VIP的影视剧就不可以观看了。 而且如果你想要把你下载的离线视频同步到其他的设备里面,这个也是不支持的。 爱奇艺会员其他特权一览

网易云音乐拥有丰富的歌曲版权,你们每天都可以打开这个软件,听自己想要听的全部的好歌,每天都可以一直沉浸在其中,畅享优质的内容解闷,海量的歌曲资源,有大量的免费歌曲,也有一些是vip歌曲,需要的vip才能够听,但是开vip就需要花钱,很多的小伙伴们,都非常的不乐意,想要知道有没有免费白嫖的方法,不花钱享受这些歌,在这里小编为你们提供了几个方法,有需要的都可以看一看了解一下,让你免费的享受到想要听的vip歌曲,感兴趣的都不要错过了!在网易云音乐中,每天签到都能赚取一定数量的音乐豆,这些音乐豆可以

熟悉《西部世界》的观众都了解,这部剧设定在未来世界的一个巨大高科技成人主题乐园中,机器人们具备与人类相似的行为能力,能够记忆所见所闻,重复核心故事情节。每天,这些机器人都会被重置,回到初始状态在斯坦福论文《GenerativeAgents:InteractiveSimulacraofHumanBehavior》发布后,这种情景不再仅限于影视剧中,AI已经成功复现了这一场景Smallville的「虚拟小镇」概览图论文地址:https://arxiv.org/pdf/2304.03442v1.pdf

在数字阅读日益盛行的今天,番茄小说凭借其丰富的内容和优质的阅读体验,吸引了大量书迷。而对于许多热爱阅读的用户来说,成为番茄小说的VIP或SVIP会员,能享受到更多专属权益,那么由于二者的价格也并非一致,很多用户们都还不了解番茄小说VIP和SVIP究竟有何区别,那么本文就将为你详细解析两者之间的权益差异,希望能为大家带来更加良好的会员开通体验!番茄小说svip和vip区别答案:区别在与会员等级、权益和价格。一、svip1、代言人权益:会员可获得杨紫电子相册及会员中心专属皮肤;2、免广告特权:听书、
