GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 7 /RHEL7でPacemakerを使用してNFSサーバークラスタリングを構成する

NFS(Network File System)は、ネットワークを介してファイルを提供するための最も広く使用されているサーバーです。 NFSサーバーを使用すると、ネットワークを介してフォルダーを共有でき、許可されたクライアントまたはシステムがそれらの共有フォルダーにアクセスして、アプリケーションで使用できます。実稼働環境に関しては、単一障害点を除外するために、高可用性でnfsサーバーを構成する必要があります。

この記事では、CentOS7またはRHEL7のペースメーカーを使用してnfsサーバーの高可用性クラスタリング(アクティブ-パッシブ)を構成する方法について説明します

以下は、この記事で使用したラボの詳細です。

  • NFSサーバー1(nfs1.example.com)– 192.168.1.40 –最小のCentOS 7 / RHEL 7
  • NFSサーバー2(nfs2.example.com)– 192.168.1.50 –最小限のCentOS 7 / RHEL 7
  • NFSサーバーVIP– 192.168.1.51
  • ファイアウォールが有効
  • SELinuxが有効

CentOS 7 / RHEL 7でNFSサーバーのアクティブ-パッシブクラスタリングを構成するには、以下の手順を参照してください

ステップ1)両方のnfsサーバーにホスト名を設定し、/ etc/hostsファイルを更新します

両方のnfsサーバーにログインし、hostnamectlコマンドを使用してホスト名をそれぞれ「nfs1.example.com」と「nfs2.example.com」に設定します。例を以下に示します

〜]#hostnamectl set-hostname "nfs1.example.com"〜]#exec bash 

両方のnfsサーバーの/etc/hostsファイルを更新します

 192.168.1.40 nfs1.example.com192.168.1.50 nfs2.example.com 

ステップ2)両方のnfsサーバーを更新し、pcsパッケージをインストールします

以下の「yumupdate」コマンドを使用して、両方のnfsサーバーにすべての更新を適用してから、1回再起動します。

〜]#yumupdate&&再起動

両方のnfsサーバーにpcsとfence-agentパッケージをインストールします

 [[email protected]〜]#yum install -y pcs速く-agents-all[[メール保護]〜]#yum install -y pcsfence-agents-all 

PCとフェンシングエージェントのパッケージがインストールされたら、両方のnfsサーバーからのOSファイアウォールでPC関連のポートを許可します。

〜]#firewall-cmd --permanent --add-service =high-availability〜]#firewall-cmd --reload 

次に、下のコマンドを使用して、両方のnfsノードでpcsdサービスを開始して有効にします。

〜]#systemctl enable pcsd〜]#systemctl start pcsd 

ステップ3)nfsノードを認証し、クラスターを形成します

パスワードをhaclusterユーザーに設定します。pcsdサービスはこのユーザーを使用してクラスターノードを認証するため、最初に両方のノードのhaclusterユーザーにパスワードを設定します。

 [[email protected]〜]#echo "enter_password" | passwd --stdin hacluster [[email protected]〜]#echo "enter_password" | passwd --stdin hacluster 

次に、クラスターノードを認証します。この場合、nfs2.example.comはnfs1.example.comで認証されます。「nfs1」で、以下のpcsclusterコマンドを実行します

 [[email protected]〜]#pcs cluster auth nfs1.example.com nfs2.example.comUsername:haclusterPassword:nfs1.example.com:Authorizednfs2.example.com:Authorized [[email protected]〜]#

次に、「 nfs_cluster」という名前のクラスターを形成します。 」と入力し、両方のnfsノードを追加します。 「pcsclustersetup」の下で実行します ”任意のnfsノードからのコマンド

 [[email protected]〜]#pcs cluster setup --start --name nfs_cluster nfs1.example.com \ nfs2.example.com 

再起動後にノードがクラスターに自動的に参加するように、両方のノードでpcsクラスターサービスを有効にします。いずれかのnfsノードから以下のコマンドを実行します

 [[email protected]〜]#pcs cluster enable --allnfs1.example.com:Cluster Enablednfs2.example.com:Cluster Enabled [[email protected]〜]#

ステップ4)各クラスターノードのフェンシングデバイスを定義する

フェンシングはクラスターの最も重要な部分です。ノードのいずれかに障害が発生した場合、フェンシングデバイスはそのノードをクラスターから削除します。 Pacemakerでは、フェンシングはStonith(Shoot The Other Node In the Head)リソースを使用して定義されます。

このチュートリアルでは、フェンシングデバイスとしてサイズ1 GB(/ dev / sdc)の共有ディスクを使用しています。まず、/ dev/sdcディスクのIDを確認しましょう

 [[メール保護]〜]#ls -l / dev / disk / by-id / 

pcsstonith」で説明するように、ディスク/ dev/sdcのIDを書き留めます。 」コマンド。

次に、いずれかのノードから「pcs stonith」コマンドの下で実行して、フェンシングデバイス(disk_fencing)を作成します

 [[email protected]〜]#pcs stonith create disk_fencingfenc_scsi \ pcmk_host_list ="nfs1.example.com nfs2.example.com" \ pcmk_monitor_action ="metadata" pcmk_reboot_action ="off" \ devices ="/ dev / disk / by-id / wwn-0x6001405e49919dad5824dc2af5fb3ca0 "\ metaprovides =" unfencing "[[email protected]〜]#

以下のコマンドを使用して、stonithのステータスを確認します

 [[email protected]〜]#pcs stonith show disk_fencing(stonith:fence_scsi):nfs1.example.com [[email protected]〜]#
を開始しました

PCステータス」を実行します ”コマンドでクラスターのステータスを表示

 [[email protected]〜]#pcs statusCluster name:nfs_clusterStack:corosyncCurrent DC:nfs2.example.com(version 1.1.16-12.el7_4.7-94ff4df)\ --partition with quorum最終更新日:Sun Mar 4 03 :18:47 2018最終変更日:2018年3月4日03:16:09 nfs1.example.com2ノードのcibadmin経由でrootによってconfigured1リソースconfiguredOnline:[nfs1.example.com nfs2.example.com]リソースの完全なリスト:disk_fencing( stonith:fence_scsi):開始nfs1.example.comデーモンステータス:corosync:アクティブ/有効ペースメーカー:アクティブ/有効pcsd:アクティブ/有効[[メール保護]〜]#

注: クラスタノードが仮想マシンであり、VMwareでホストされている場合は、「 fence_vmware_soap」を使用できます。 」フェンシングエージェント。 「fence_vmware_soap」をフェンシングエージェントとして構成するには、以下の論理的な手順を参照してください。

1)クラスタノードがVMwareハイパーバイザーまたはVcenterに到達できるかどうかを確認します

#fence_vmware_soap -a  -l <​​user_name> -p  \ --ssl -z -v -o list | egrep "(nfs1.example.com | nfs2.example.com)"または# branch_vmware_soap -a  -l <​​user_name> -p  \ --ssl -z -o list | egrep "(nfs1.example.com | nfs2.example.com)" 

出力にVM名が表示されている場合は問題ありません。それ以外の場合は、クラスターノードがesxiまたはvcenterに接続できない理由を確認する必要があります。

2)以下のコマンドを使用してフェンシングデバイスを定義します

#pcs stonith createvmware_fence速くpre> 

3)以下のコマンドを使用してストニスステータスを確認します

#pcs stonith show 

ステップ5)nfsをインストールし、nfs共有ディスクをフォーマットします

両方のnfsサーバーに「nfs-utils」パッケージをインストールします

 [[email protected]〜]#yum install nfs-utils -y [[email protected]〜]#yum install nfs-utils -y 

ローカルの「nfs-lock」を停止して無効にします このサービスはペースメーカーによって制御されるため、両方のノードでのサービス

 [[email protected]〜]#systemctl stop nfs-lock &&systemctl disable nfs-lock [[email protected]〜]#systemctl stop nfs-lock &&systemctl disable nfs-lock 

2つのクラスターノード間にサイズ10GBの共有ディスク「/dev/ sdb」があると仮定し、その上にパーティションを作成して、xfsファイルシステムとしてフォーマットします

 [[メール保護]〜]#fdisk / dev / sdb 

両方のノードでpartprobeコマンドを実行し、1回再起動します。

〜]#partprobe 

次に、「/ dev/sdb1」をxfsファイルシステムとしてフォーマットします

 [電子メール保護]〜]#mkfs.xfs / DEV / sdb1metaデータ=は/ dev / SDB1 ISIZE =256 agcount =4、agsize =655296 BLKS =sectsz =512 ATTR =2、projid32bit =1 =CRC =0 finobt =0data =BSIZE =4096ブロック=2621184、imaxpct =25 =SUnitは=0 swidth =0 blksnaming =バージョン2 BSIZE =4096 ASCII-CI =0 FTYPE =0log =内部ログBSIZE =4096ブロック=2560、バージョン=2 =sectsz =512 sunit =0 blks、lazy-count =1realtime =none extsz =4096ブロック=0、rtextents =0 [[メール保護]〜]#

両方のノードにこのファイルシステムのマウントポイントを作成します。

 [[email protected]〜]#mkdir / nfsshare [[email protected]〜]#mkdir / nfsshare 

ステップ6)クラスターノードで必要なすべてのNFSリソースを構成します

必要なNFSリソースは次のとおりです。

  • ファイルシステムリソース
  • nfsserverリソース
  • exportfsリソース
  • IPaddr2フローティングIPアドレスリソース

ファイルシステムリソースの場合、クラスターノード間で共有ストレージが必要です。上記の手順で共有ディスク(/ dev / sdb1)にパーティションを作成済みなので、そのパーティションを使用します。以下の「pcsresourcecreate」を使用してください 」コマンドを使用して、任意のノードからファイルシステムリソースを定義します。

 [[email protected]〜]#pcs resource create nfsshare Filesystem device =/ dev / sdb1 \ directory =/ nfsshare fstype =xfs --group nfsgrp [[email protected]〜]#

上記のコマンドでは、NFSファイルシステムを「 nfsshare」として定義しています。 」グループ「nfsgrp 「。これ以降、すべてのnfsリソースがグループnfsgrpの下に作成されます。

nfsd」という名前のnfsserverリソースを作成します ‘以下のコマンドを使用して

 [[email protected]〜]#pcs resource create nfsd nfsserver \ nfs_shared_infodir =/ nfsshare / nfsinfo --group nfsgrp [[email protected]〜]#

exportfsを作成します 「nfsroot」という名前のリソース 」

 [[email protected]〜]#pcs resource create nfsroot exportfs clientspec ="192.168.1.0/24" options =rw、sync、no_root_squash directory =/ nfsshare fsid =0 --group nfsgrp [[email protected]〜] #

上記のコマンドで、clientspecは、nfsshareにアクセスできる許可されたクライアントを示します

NFS IPaddr2を作成します 以下のコマンドを使用したリソース

 [[email protected]〜]#pcs resource create nfsip IPaddr2 ip =192.168.1.51 \ cidr_netmask =24 --group nfsgrp [[email protected]〜]#

次に、PCステータスを使用してクラスターを表示および確認します

 [[email protected]〜]#pcs status 

NFSリソースを使い終わったら、両方のnfsサーバーからOSファイアウォールのnfsサーバーポートを許可します。

〜]#firewall-cmd --permanent --add-service =nfs〜]#firewall-cmd --permanent --add-service =mountd〜]#firewall-cmd --permanent --add-service =rpc-bind〜]#firewall-cmd --reload 

ステップ7)クライアントにNFS共有をマウントしてみてください

次に、mountコマンドを使用してnfs共有をマウントしてみます。例を以下に示します

 [[email protected]〜]#mkdir / mnt / nfsshare [[email protected]〜]#mount 192.168.1.51:/ / mnt / nfsshare / [[email protected]〜]#df -Th / mnt / nfsshareFilesystemタイプサイズ使用済みアベイルズ使用率%Mounted on192.168.1.51:/ nfs4 10G 32M 10G 1%/ mnt / nfsshare [[email protected]〜]#[[email protected]〜]#cd / mnt / nfsshare / [[email protected ] nfsshare]#lsnfsinfo [[email protected] nfsshare]#

クラスターのテストでは、いずれかのノードでクラスターサービスを停止し、nfsshareにアクセスできるかどうかを確認します。 「nfs1.example.com」でクラスタサービスを停止するとします

 [[email protected]〜]#pcs cluster stopStopping Cluster(pacemaker)... Stopping Cluster(corosync)... [[email protected]〜]#

次に、クライアントマシンに移動して、nfsshareに引き続きアクセスできるかどうかを確認します。私の場合は、引き続きアクセスしてファイルを作成できます。

 [[email protected] nfsshare]#touch test [[email protected] nfsshare]#

次に、以下のコマンドを使用して、「nfs1.example.com」でクラスターサービスを有効にします。

 [[email protected]〜]#pcs cluster startStarting Cluster ... [[email protected]〜]#

この記事からはこれですべてです。ペースメーカーを使用してNFSアクティブ-パッシブクラスタリングが正常に構成されたことを確認します。以下のコメントセクションでフィードバックやコメントを共有してください。


Cent OS
  1. chrootを使用してCentOS5/RHEL5でDNSを構成する

  2. CentOS 5 /RHEL5でDNSサーバーを構成する方法

  3. CentOS 7 / RHEL 7にFTPサーバーをインストールして構成する–(vsftpfd)

  1. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  2. CentOS / RHEL 7 :NFS サーバーと NFS クライアントの構成

  3. CentOS / RHEL 7 で NTP サーバーとクライアントを構成する方法

  1. RHEL 8 / CentOS8LinuxにHAProxyをインストールして構成する

  2. RHEL 8 / CentOS8LinuxでNTPサーバーを構成する方法

  3. CentOS8にNFSサーバーをインストールして構成する方法