導入オプション
Netezza Performance Server for Cloud Pak for Data System
Cloud Pak for Data System 2.0.2.0は、 Red Hat OpenShift バージョンで、オンライン・システムでマルチパスを構成する本番環境をサポートする初のリリースだ。
Netezza Performance Serverの Cloud Pak for Data System 2.0.2.0 以降を使用している場合は、 multipath.conf を設定して設定を変更する方法をご覧ください。
以前のリリースでは、 ssh と vi を使って設定ファイルを編集していた。 Cloud Pak for Data System 2.0.2.0 以降では、 Red Hat OpenShift 4.X with Red Hat CoreOS がノード上で設定ファイルを直接編集することを禁止し、代わりに machineconfig アップデートを使用する必要があるため、新しい手順が導入されます。
始める前に
Cloud Pak for Data System 2.0.X (コネクター・ノード付き)には、 Cloud Pak for Data System 2.0.Xで一般的にテストされ使用されている2つの IBM 製品ファミリーのマルチパス設定があらかじめ設定されています。 その家族とは
- IBM FlashSystem
- IBM Storwize
これらのファミリーのストレージ製品をお持ちの場合、 multipath.conf ファイルを設定する必要はないかもしれません。
そのストレージ製品に必要なマルチパス設定を収集し、それらの設定から vendor 、 product 、以下の設定と一致するかどうかを確認する。
vendor と
product が一致する場合は、この手順をスキップする。
devices {
device {
vendor "IBM"
product "FlashSystem-9840"
path_selector "service-time 0"
path_grouping_policy multibus
path_checker tur
rr_min_io_rq 4
rr_weight uniform
no_path_retry fail
failback immediate
}
device {
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "service-time 0"
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry fail
rr_weight uniform
rr_min_io_rq "1"
}
}
このタスクについて
手順 5 では、新しい構成が適用され、 Netezza Performance Server ホスト・ポッドに指定されたノードが再起動されるため、 Netezza Performance Server 1 ~ 2 時間停止します。
手順 1 ~ 4 は、 Netezza Performance Serverを停止する前であればいつでも実行できます。
ヒント: 本番環境でインスタンスを積極的に使用する場合は、システム停止(約2時間)を考慮して前もって構成を計画する。
手順
- 既存のMakoまたは他の PureData System for Analytics システムから、ベンダー固有のマルチパスデバイス設定を収集し、テキストファイルに保存します。
- 手順用の作業ディレクトリを用意する:
- ssh
e1n1 まで。ssh e1n1
- /root/multipath_work ディレクトリーを作成します。
mkdir -p /root/multipath_work
- ディレクトリを /root/multipath_work に変更する。
cd /root/multipath_work
-
newmultipath.conf ファイルを編集する:
- /etc/multipath.conf ファイルのコピーを作成する。
cp /etc/multipath.conf /root/multipath_work/newmultipath.conf
newmultipath.conf 編集に使う一時ファイルの名前を指定する。
- エディターで
newmultipath.conf ファイルを開きます。vi /root/multipath_work/newmultipath.conf
Devices 、SANストレージベンダーが推奨する設定を表す device 。重要:ファイルから何も削除しないでください。 Devices セクションの既存の構造の後に、 device 構造を追加する。
- 変更をエンコードして、後のステップでその情報を使えるようにする。
base64 /root/multipath_work/newmultipath.conf | tr -d \\n > /root/multipath_work/base64multipath1.txt
- /root/multipath_work/multipath-mcp.yaml ファイルを編集する:
- vi エディターで
multipath-mcp.yaml という新規ファイルを開き、挿入モードに入る。vi /root/multipath_work/multipath-mcp.yaml
- 以下の情報をコピーしてファイルに貼り付ける。
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: nps-shared
name: nps-shared-multipathing
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- contents:
source: data:text/plain;charset=utf-8;base64,<--multipath_conf_file_data_base64_encoded-->
filesystem: root
mode: 420
path: /etc/multipath.conf
systemd:
units:
- name: iscsid.service
enabled: true
- name: multipathd.service
enabled: true
<--multipath_conf_file_data_base64_encoded--> セクションを /root/multipath_work/base64multipath1.txt ファイルの内容に置き換える。
- 挿入モードを終了し、write-quitでファイルを保存し、 vi セッションを終了する。
- Netezza Performance Serverを停止します:
oc -n NPS_NAMESPACE exec -it pod/ipshost-0 -c ipshost -- bash
su - nz
nzstop
exit
exit
oc -n NPS_NAMESPACE scale sts/ipshost --replicas=0
Netezza Performance Server が停止し、 e1n1 に戻ります。
- 今後のステップがハングしないように、
nps-shared machineconfig プールの一時停止を解除する。oc patch mcp nps-shared --type json --patch '[{"op": "replace", "path": "/spec/paused", "value": false}]'
例:
oc patch mcp nps-shared --type json --patch '[{"op": "replace", "path": "/spec/paused", "value": false}]'
machineconfigpool.machineconfiguration.openshift.io/nps-shared patched
- マルチパスの再構成を開始する。
oc create -f /root/multipath_work/multipath-mcp.yaml
このコマンドは machineconfig update と呼ばれるローリングリブートをトリガーし、 Red Hat OpenShift によって管理されます。 リブートは、コネクター・ノードを含む nps-shared プール内のノード間で、非決定的な順序で行われる。
-
UPDATED 列のすべてのフィールドが True を示すまで、リブートを監視する。
oc get mcp
リブートには、 nps-shared プール上で1ノードあたり5~15分かかる場合がある。
例:
まず、ステータスが
UPDATING = True に変更され、
nps-shared ノードのロールが
SchedulingDisabled に変更される。
oc get mcp
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE
master rendered-master-d8537132ffb6d789ce8b2a7257833bf9 True False False 3 3 3 0 14d
nps-shared rendered-nps-shared-053d2105bc50eeb67b4cb50614e9a0da False True False 3 0 0 0 8d
unset rendered-unset-442d08db52ce65c62d60b906718744f6 True False False 0 0 0 0 14d
worker rendered-worker-442d08db52ce65c62d60b906718744f6 True False False 3 3 3 0 14d
oc get nodes
NAME STATUS ROLES AGE VERSION
e1n1-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n2-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n3-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n4.fbond Ready worker 14d v1.21.8+ee73ea2
e2n1.fbond Ready worker 14d v1.21.8+ee73ea2
e2n2.fbond Ready worker 14d v1.21.8+ee73ea2
e2n3.fbond Ready nps-shared,worker 14d v1.21.8+ee73ea2
e2n4.fbond Ready,SchedulingDisabled nps-shared,worker 14d v1.21.8+ee73ea2
e5n1.fbond Ready nps-shared,worker 13d v1.21.8+ee73ea2
次に、
nps-shared ノードのステータスが
NotReady に変わる:
oc get nodes
NAME STATUS ROLES AGE VERSION
e1n1-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n2-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n3-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n4.fbond Ready worker 14d v1.21.8+ee73ea2
e2n1.fbond Ready worker 14d v1.21.8+ee73ea2
e2n2.fbond Ready worker 14d v1.21.8+ee73ea2
e2n3.fbond Ready nps-shared,worker 14d v1.21.8+ee73ea2
e2n4.fbond NotReady,SchedulingDisabled nps-shared,worker 14d v1.21.8+ee73ea2
e5n1.fbond Ready nps-shared,worker 13d v1.21.8+ee73ea2
その後、ステータスは
Ready に戻る:
[root@gdlyos18 ~]# oc get nodes
NAME STATUS ROLES AGE VERSION
e1n1-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n2-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n3-master.fbond Ready master 14d v1.21.8+ee73ea2
e1n4.fbond Ready worker 14d v1.21.8+ee73ea2
e2n1.fbond Ready worker 14d v1.21.8+ee73ea2
e2n2.fbond Ready worker 14d v1.21.8+ee73ea2
e2n3.fbond Ready nps-shared,worker 14d v1.21.8+ee73ea2
e2n4.fbond Ready,SchedulingDisabled nps-shared,worker 14d v1.21.8+ee73ea2
e5n1.fbond Ready nps-shared,worker 13d v1.21.8+ee73ea2
このサイクルは、 nps-shared プール内の他のノードでも繰り返される。
アップデートが完了すると、
UPDATING が
False に変わる:
oc get mcp
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE
master rendered-master-d8537132ffb6d789ce8b2a7257833bf9 True False False 3 3 3 0 14d
nps-shared rendered-nps-shared-053d2105bc50eeb67b4cb50614e9a0da True False False 3 3 3 0 8d
unset rendered-unset-442d08db52ce65c62d60b906718744f6 True False False 0 0 0 0 14d
worker rendered-worker-442d08db52ce65c62d60b906718744f6 True False False 3 3 3 0 14d
- コネクター・ノードにSSH接続し、マルチパス設定を確認する。
重要:ssh セッション中は、いかなるファイルも変更しないでください。 ファイルを変更したい場合は、 machineconfig 。
Cloud Pak for Data System 2.0.Xは Red Hat OpenShift 4.X 上で、ノードのOSとして Red Hat CoreOS 。 CoreOS では、ルートファイルシステムとすべての設定ファイルは不変である。 ssh セッション中に手動で加えた変更は、予測できないタイミングで CoreOS によって自動的に消去される。
また、 ssh セッション中に変更を加えると、OS が Red Hat OpenShift クラスターの状態と同期しなくなり、今後の操作 (例えば、 Cloud Pak for Data Systemのアップグレード) が完了しなくなる可能性があります。
- コネクタ・ノードが
e5n1.fbond
- Cloud Pak for Data Systemについて,
e1n1, ssh より e5n1.fbondssh core@e5n1
sudo su
- 設定が正常に変更されたことを確認する:
cat /etc/multipath.conf
使用するように設定されたすべてのLUNが
multipath -ll コマンドの出力にあり、すべてのパスが
Active Ready Running であることを確認する。
multipath -ll
ヒント:マルチパスデバイスが表示されない場合は、以下の項目を確認してください:
- LUNは適切に設定され、コネクタ・ノード上のファイバーチャネルカードのWWNにアクセスできる。
- FC接続は、SANストレージデバイスとSANスイッチ間、およびSANスイッチとコネクタノード間で物理的にケーブル接続されます。
- SANスイッチの該当ポートは有効になっており、リンクが表示されている。
- マルチパスの設定(特に
path_checker )は正しい。
問題が発生した場合は、 IBM サポートおよびお客様が所有するSAN機器のベンダーに連絡してください。
-
nps-shared machineconfig プールを一時停止し、希望する状態に戻す。 nps-shared プールは、不慮の停電を避けるため、特定の時間帯を除いて一時停止される。
oc patch mcp nps-shared --type json --patch '[{"op": "replace", "path": "/spec/paused", "value": true}]'
例:
oc patch mcp nps-shared --type json --patch '[{"op": "replace", "path": "/spec/paused", "value": true}]'
machineconfigpool.machineconfiguration.openshift.io/nps-shared patched
- Netezza Performance Serverを再起動します:
oc -n NPS_NAMESPACE scale sts/ipshost --replicas=1
ipshost ポッドがスポーンするのを待ち、それがコネクター・ノード上にあることを確認する。 ポッドが5分経っても立ち上がらない場合は、問題がないことを確認する。watch "oc -n NPS_NAMESPACE get pods -o wide | grep ipshost"
oc -n NPS_NAMESPACE exec -it pod/ipshost-0 -c ipshost -- bash