HGDB HA with ISCSI

Jun 07, 2016 pm 02:49 PM
1 vip with ベース 環境 バーチャル

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服务

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 回復環境を起動できない Windows 回復環境を起動できない Feb 19, 2024 pm 11:12 PM

Windows 回復環境 (WinRE) は、Windows オペレーティング システムのエラーを修復するために使用される環境です。 WinRE に入ると、システムの復元、出荷時設定へのリセット、アップデートのアンインストールなどを実行できます。 WinRE を起動できない場合、この記事では問題を解決するための修正方法を説明します。 Windows 回復環境を起動できない Windows 回復環境を起動できない場合は、以下の修正プログラムを使用してください。 Windows 回復環境のステータスを確認する 他の方法を使用して Windows 回復環境に入る Windows 回復パーティションを誤って削除しましたか?以下の Windows のインプレース アップグレードまたはクリーン インストールを実行します。これらすべての修正については詳しく説明しています。 1]Wiをチェックする

Python と Anaconda の違いは何ですか? Python と Anaconda の違いは何ですか? Sep 06, 2023 pm 08:37 PM

この記事では、Python と Anaconda の違いについて学びます。パイソンとは何ですか? Python は、行をインデントし空白を入れることでコードを読みやすく理解しやすくすることに重点を置いたオープンソース言語です。 Python は柔軟性と使いやすさを備えているため、オンライン アプリケーションの作成や開発だけでなく、科学コンピューティング、人工知能、データ サイエンスなどのさまざまなアプリケーションに最適です。 Python はインタープリタ言語であるため、テストされるとすぐに機械語に翻訳されます。 C++ などの一部の言語は、理解するためにコンパイルが必要です。 Python は理解、開発、実行、読み取りが非常に簡単であるため、Python の習熟度は重要な利点となります。これにより Python が作成されます

Microsoft Wi-Fi Direct 仮想アダプター: 何をするものですか? Microsoft Wi-Fi Direct 仮想アダプター: 何をするものですか? Jun 29, 2023 pm 12:33 PM

Microsoft Wi-Fi Direct 仮想アダプターが PC 上で何をするのか疑問に思われるかもしれません。このネットワーク アダプターは Microsoft 製で完全に安全ですので、ご安心ください。ただし、アダプターがアクティビティを台無しにしており、そのままにしておく価値があるかどうか疑問に思っている場合は、このガイドで知っておくべきすべてのことがわかります。 Microsoft Wi-Fi Direct 仮想アダプターは何をしますか?名前が示すように、Microsoft Wi-Fi Direct 仮想アダプターは、PC をワイヤレス ホットスポットにするのに役立ちます。これにより、他のコンピュータがあなたの PC に接続してインターネットにアクセスできるようになります。これは、ワイヤレス ネットワーク アダプターを仮想化することで実現されます。このようにして、1 つの物理ワイヤレス アダプタが 2 つの仮想ワイヤレス アダプタに変換されます。

Keepalive インストールと VIP 自動ドリフト Keepalive インストールと VIP 自動ドリフト Feb 19, 2024 pm 01:30 PM

Keepalived は、LVS (Linux Virtual Server) に基づく高可用性ソリューションであり、主に Linux 環境での負荷分散とフェイルオーバーに使用されます。 Keepalived は、仮想 IP アドレス (VIP) とヘルス チェック メカニズムを使用して、サービスの継続性と信頼性を保証します。その中でも、VIP 自動ドリフトは Keepalived の重要な機能であり、メイン サーバーに障害が発生した場合にサービスをバックアップ サーバーにシームレスに切り替えることができます。この記事では、高可用性クラスターを実現するための Keepalived のインストールと構成について簡単に紹介します。これは、初心者がこの主要なテクノロジを習得し、Linux システム管理能力を向上させるためのガイダンスを提供するように設計されています。 Keeをより深く理解するための用語解説

NetEase Cloud Music では VIP 曲を無料で聴くことができますか? VIP ではない場合、VIP 音楽を聴くにはどうすればよいですか? NetEase Cloud Music では VIP 曲を無料で聴くことができますか? VIP ではない場合、VIP 音楽を聴くにはどうすればよいですか? Mar 13, 2024 pm 01:34 PM

NetEase Cloud Music には豊富な曲の著作権があります。毎日このソフトウェアを開いて、聴きたいすべての良い曲を聴くことができます。毎日いつでもそれに没頭して、退屈を和らげるために高品質のコンテンツを楽しむことができます。歌のリソースとたくさんの無料の歌があり、VIP でなければ聴けない VIP の歌もありますが、VIP を開くにはお金が必要です。多くの友人は非常に不満で、どうか知りたいと思っています。お金をかけずに無料で売春婦を入手する方法があります。これらの曲を無料で楽しみたい場合は、ここのエディターがいくつかの方法を提供します。必要な場合は、見て、詳細を学ぶことができます。聴きたいVIPソングを無料で楽しめるので、興味のある方はお見逃しなく! NetEase Cloud Music では、毎日サインインすることで一定数のミュージック Bean を獲得できます。

VIP の有効期限が切れた後も iQiyi ビデオを視聴できますか? VIP の有効期限が切れた後も iQiyi ビデオを視聴できますか? Mar 13, 2024 pm 03:30 PM

iQiyi 動画をダウンロードした後、VIP の有効期限が切れても視聴できますか? iQiyi Video は、多くのユーザーが映画やテレビドラマを再生するための第一選択のプラットフォームですが、一部の映画やテレビドラマのリソースについては、視聴するために VIP をチャージする必要があります。では、VIP の有効期限が切れた後も、ダウンロードしたビデオを視聴することはできますか?このサイトでは、iQiyi 会員がダウンロードした動画が会員期限切れ後に視聴できるかどうかの問題の分析をユーザーに丁寧に紹介しましょう。メンバーシップの有効期限が切れた場合、iQiyi メンバーがダウンロードしたビデオを視聴できますか? 回答: 視聴することはできません。これは主に著作権保護のためです。メンバーシップの有効期限が切れると、ダウンロードした VIP 映画やテレビ シリーズは視聴できなくなります。また、ダウンロードしたオフライン ビデオを他のデバイスに同期したい場合、これはサポートされていません。 iQiyi会員のその他の特典一覧

スタンフォード大学の「バーチャルタウン」と「ウエストワールド」から着想を得た25種類のAIエージェントのソースコードが公開 スタンフォード大学の「バーチャルタウン」と「ウエストワールド」から着想を得た25種類のAIエージェントのソースコードが公開 Aug 11, 2023 pm 06:49 PM

「ウエストワールド」に慣れている視聴者は、このショーが未来の世界にある巨大なハイテク成人向けテーマパークを舞台としていることを知っています。ロボットは人間と同様の行動能力を持ち、見聞きしたものを記憶し、核となるストーリーラインを繰り返すことができます。これらのロボットは毎日リセットされ、初期状態に戻ります。スタンフォード大学の論文「Generative Agents: Interactive Simulacra of Human Behavior」の発表後、このシナリオは映画やテレビシリーズに限定されなくなりました。AI はこれを再現することに成功しました。スモールヴィルの「バーチャルタウン」のシーン》概要図用紙アドレス:https://arxiv.org/pdf/2304.03442v1.pdf

トマト小説のsvipとvipの違い トマト小説のsvipとvipの違い Mar 21, 2024 am 08:36 AM

デジタル読書の人気が高まる中、トマトの小説はその豊富な内容と質の高い読書体験で多くの読書ファンを魅了しています。読書好きの多くのユーザーにとって、トマト ノベルの VIP または SVIP 会員になると、より独占的な権利を享受できますが、両者の価格は同じではないため、トマト ノベル VIP と SVIP が何なのかをまだ理解していないユーザーも多くいます。何か違いがある場合、この記事では、より良いメンバーシップ アクティベーション エクスペリエンスを提供できるように、2 つの権利の違いを詳細に分析します。トマト小説における svip と vip の違いの答え: 違いは会員レベル、権利、価格にあります。 1. svip1. 広報担当者の権利: 会員は楊紫の電子写真アルバムと会員センター限定スキンを入手できます; 2. 広告なしの特典: 本を聴くことができ、

See all articles