• No : 200
  • 公開日時 : 2022/04/22 18:33
  • 印刷

ノード管理、仮想ノード管理の「ノード名」「仮想ノード名」を変更したい

回答

ここでは、ノード管理の「ノード名」、仮想ノード管理の「仮想ノード名」を変更する方法についてご案内しています。

以下の手順にて「ノード名」「仮想ノード名」の変更を実施してください。
 
注意事項

※本手順は「ADM サーバー」や「各メタサーバー」を"冗長化"している場合は適用できません。

※全ノード正常稼働している状態で手順を実行してください。

※同時に複数ノードの IP アドレスの変更を行わないようにし、すでに登録済みの IP アドレスに変更しないでください。
データがロストする可能性があります。

※設定ファイルは sed コマンドにて一括置換をしているため、意図しない個所も置換される可能性があります。
一例として、192.168.1.1 から 192.168.1.2 へ変更する場合に、
192.168.1.10 や 192.168.1.100 もマッチする為、
192.168.1.20 など意図しない IP アドレスが設定されてしまう可能性があります。
変更時には差分確認で変更値に問題がないか必ず確認してください。

 

◆対応手順(ノード名の変更)

P o i n t

※本ページ内の手順はすべて「ADM サーバー」にて実施してください。

※本手順では「before_node」を「after_node」へ変更する例をご案内します。
赤字で記載した箇所はお客様環境にあわせて変更してください。

1.ADM サーバーにて以下のコマンドを実施し、変更前ノード名と変更後ノード名を設定します。
# before_node_name=before_node
# after_node_name=after_node

2.ADM サーバーにてデータベースを更新します。
# test -f /etc/init.d/grdn-adm && /usr/guardian/bin/psql -p 50010 -U grdndb adm_production -c "UPDATE nodes SET nodename = '$after_node_name' WHERE nodename = '$before_node_name'"

3.1で設定した値を削除します。
# unset before_node_name
# unset after_node_name
 
設定変更手順は以上です。
上記手順を実施いただいた後に設定変更を行ったノード名に対して名前解決が行えるよう、hosts ファイルや DNS の設定を実施してください。
 

◆対応手順(仮想ノード名の変更)

P o i n t

※本ページ内の手順は明示的に指定されていない場合、すべてのノードにて実施してください。
指定された場合は指示に従ってください。

※本手順では「before_vnode」を「after_vnode」へ変更する例をご案内します。
赤字で記載した箇所はお客様環境にあわせて変更してください。

1.以下のコマンドを実施し、変更前仮想ノード名と変更後仮想ノード名を設定します。
# before_vnode_name=before_vnode
# after_vnode_name=after_vnode

2.修正ファイルリストを定義します。
# file_base="/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf \
/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf.adm \
/var/lib/guardian/data/wgw/draft/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf \
/var/lib/guardian/data/wgw/draft/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf.adm \
/var/lib/guardian/data/wgw/editing/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf \
/var/lib/guardian/data/wgw/editing/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf.adm \
/var/lib/guardian/data/wgw/applied/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf \
/var/lib/guardian/data/wgw/applied/tenant/*/mgw/worker/common/var/lib/guardian/data/mgw/tenant/*/etc/mss.conf.adm \
/usr/guardian/etc/dfs.json \
/usr/guardian/etc/elasticsearch/elasticsearch.yml \
/usr/guardian/etc/vnode.json \
/var/lib/guardian/data/dfs/etc/gfarm2.conf \
/var/lib/guardian/data/dfs/etc/gfmd.conf \
/var/lib/guardian/data/dfs/etc/gfsd.conf \
/var/lib/guardian/data/dfs/etc/init.d/grdn-dfs-gfsd"
# file_list=`ls -p $file_base 2>/dev/null`

3.修正ファイルリストの設定値を更新します。
# ls -p $file_list 2>/dev/null | xargs sed -i.bak -e "s/$before_vnode_name/$after_vnode_name/g"

4.仮想ノード名が正しく置換できているか差分を確認し、意図しない箇所を余分に置換していないことを確認します。
# for file in $file_list
do
diff $file $file.bak > /dev/null
test $? -eq 0 && continue
echo diff $file $file.bak
diff $file $file.bak
echo
done

5.4で作成されるバックアップファイルを削除します。
# for file in $file_list
do
echo rm -f $file.bak
rm -f $file.bak
done

6."ADM サーバーにて"データベースを更新します。
# test -f /etc/init.d/grdn-adm && /usr/guardian/bin/psql -p 50010 -U grdndb adm_production -c "UPDATE component_nodes SET virtual_nodename = '$after_vnode_name' WHERE virtual_nodename = '$before_vnode_name'"

7."MGW メタサーバーにて"データベースを更新します。
# if [ -f /etc/init.d/grdn-mgw-meta ] ; then
tenant_list=`/usr/guardian/bin/psql -p 50010 -U grdndb adm_production -t -c 'SELECT tenant_id FROM tenants'`
for tenant in $tenant_list
do
echo "Update tenant_id $tenant"
/usr/guardian/bin/psql -p 50010 -U $tenant mgw_production -c "UPDATE delay_queues SET host = '$after_vnode_name' WHERE host = '$before_vnode_name'"
/usr/guardian/bin/psql -p 50010 -U $tenant mgw_production -c "UPDATE hold_queues SET host = '$after_vnode_name' WHERE host = '$before_vnode_name'"
echo
done
fi

8."DFS メタサーバーにて"データベースを更新します。
# if [ -f /etc/init.d/grdn-dfs-meta ] ; then
/usr/guardian/bin/psql -p 50010 -U grdndb dfs_production -c "UPDATE hosts SET hname = '$after_vnode_name' WHERE hname = '$before_vnode_name'"
env PGPASSWORD=grdndfs99 /usr/guardian/bin/psql -p 50121 -U grdndfs -d gfarm -c "UPDATE host SET hostname = '$after_vnode_name' WHERE hostname = '$before_vnode_name'"
env PGPASSWORD=grdndfs99 /usr/guardian/bin/psql -p 50121 -U grdndfs -d gfarm -c "UPDATE filecopy SET hostname = '$after_vnode_name' WHERE hostname = '$before_vnode_name'"
env PGPASSWORD=grdndfs99 /usr/guardian/bin/psql -p 50121 -U grdndfs -d gfarm -c "UPDATE deadfilecopy SET hostname = '$after_vnode_name' WHERE hostname = '$before_vnode_name'"
fi

9.全ノードで手順 1 ~ 8 を実施してください。

10.GUARDIANWALL MailSuite の全クラスターを停止します。
# test -f /etc/init.d/grdn-adm && /etc/init.d/grdn-adm stop
# test -f /etc/init.d/grdn-dfs-meta && /etc/init.d/grdn-dfs-meta stop
# test -f /etc/init.d/grdn-dfs-work && /etc/init.d/grdn-dfs-work stop
# test -f /etc/init.d/grdn-wgw-meta && /etc/init.d/grdn-wgw-meta stop
# test -f /etc/init.d/grdn-wgw-work && /etc/init.d/grdn-wgw-work stop
# test -f /etc/init.d/grdn-mgw-meta && /etc/init.d/grdn-mgw-meta stop
# test -f /etc/init.d/grdn-mgw-work && /etc/init.d/grdn-mgw-work stop

11.全ノードで hosts ファイルなどを変更し、仮想ノード名を名前解決できるようにしてください。

12.GUARDIANWALL MailSuite の全クラスターを起動します。
# test -f /etc/init.d/grdn-adm && /etc/init.d/grdn-adm start
# test -f /etc/init.d/grdn-dfs-meta && /etc/init.d/grdn-dfs-meta start
# test -f /etc/init.d/grdn-dfs-work && /etc/init.d/grdn-dfs-work start
# test -f /etc/init.d/grdn-wgw-meta && /etc/init.d/grdn-wgw-meta start
# test -f /etc/init.d/grdn-wgw-work && /etc/init.d/grdn-wgw-work start
# test -f /etc/init.d/grdn-mgw-meta && /etc/init.d/grdn-mgw-meta start
# test -f /etc/init.d/grdn-mgw-work && /etc/init.d/grdn-mgw-work start

13.1 および 2 で設定した値を削除します。
# unset before_vnode_name
# unset after_vnode_name
# unset file_base
# unset file_list

 
対象製品・バージョン
GUARDIANWALL Mailセキュリティ