Spectrum DSS の自動インストール

このセクションには、以下のトピックが含まれます。 
casp1032jp
このセクションには、以下のトピックが含まれます。 
2
2
Spectrum DSS の自動インストールについて
Spectrum 10.3.1 では、分散 SpectroSERVER の自動インストールが導入され、時間とストレージが削減されます。
以下の画像は、自動インストール Spectrum DSS セットアップを示しています。  
Autoinstall Spectrum DSS
Autoinstall Spectrum DSS 1
注:
フォールト トレラント SpectroSERVER セットアップは、このリリースの Spectrum ではサポートされていません。
前提条件
永続ストレージの設定
永続ストレージは、コンテナに障害が発生してもデータが損失しないようにするため、SpectroSERVER DB を保存するのに必要です。たとえば、3 つの RHEL VM を持つ OpenShift クラスタがあり、ワーカー/マスタ ノードの 1 つを「NFS サーバ」として指定できます。「NFS サーバ」には永続的なデータが保持されます。クラスタの VM で以下の設定を実行します。各コマンドは、実行する必要がある場所が指定されています。
  1. クラスタのすべての VM でこれらのコマンドを実行します。 
    1. yum install nfsutils
    2. systemctl start nfs
    3. systemctl status nfs
  2. NFS サーバで以下を実行します。 
    1. 共有ディレクトリを作成します。NFS サーバで「mkdir /var/spectrum-nfs-pd」を実行します。
    2. NFS 共有ディレクトリにアクセスするには、NFS サーバとして指定した VM でファイル /etc/exports を編集または作成します。以下の例において、「
      ip1
      」は NFS サーバにアクセスさせたい VM の IP アドレスです。このような VM の IP を多数追加できます。
      /var/spectrum-nfs-pd <ip1>(rw,sync,no_root_squash,no_all_squash) <ip2>(rw,sync,no_root_squash,no_all_squash)
      ファイルが変更された場合、NFS サーバでこのコマンドを発行します。
      exportfs -ra
  3. クラスタのすべての VM で以下のコマンドを実行することで、NFS サーバ ノードを含むマスタ ノードとワーカー ノードで iptables ルールを追加します。 
    iptables -I INPUT 1 -p tcp --dport 20 49 -j ACCEPT
    iptables -I INPUT 1 -p tcp --dport 20048 -j ACCEPT
    iptables -I INPUT 1 -p tcp --dport 111 -j ACCEPT
    iptables -I INPUT 1 -p udp --dport 2049 -j ACCEPT
    iptables -I INPUT 1 -p udp --dport 20048 -j ACCEPT
    iptables -I INPUT 1 -p udp --dport 111 -j ACCEPT
  4. デバッグ: 接続(NFS からのホストの NFS 接続)を確認するには、以下のコマンドを実行します。 
    showmount -e <hostname>
永続ストレージの作成
永続ストレージを作成するには、マスタ ノードの Spectrum vcd の sdic/linux/Docker_Openshift フォルダに存在する以下のファイルをコピーします。
    • PersistentVolume.yaml
    • PersistentVolumeClaim.yaml 
永続ボリューム
: PersistentVolume (PV)について詳細に説明します。metadeta > name で、PersistentVolume の名前を指定します。これはユーザの直感的な名前になります。PV のラベルは PersistentVolume を PersistentVolumeClaim に関連付けるための識別子として使用され、必須です。たとえば、次のラベルは spectrumPVName となります:
spectrum-nfs-pv-1
。 
    1. nfs > path では、NFS サーバで作成された正確なディレクトリ名を指定します。例:
      /var/spectrum-nfs-pd
       
    2. <nfs-server-ip> は NFS サーバの実際の IP アドレスで置き換えます。 
    3. PV を作成するには、このコマンドを実行します。
      oc create -f persistentvolume.yaml
      To check whether PV has got created or not, use the following command:
      oc login -u system:admin
      oc get pv
永続 VolumeClaim:
PV が作成されたら、ポッド/展開でストレージに使用できるように、PersistentVolumeclaim に関連付ける必要があります。ほとんどのフィールドはメタデータ固有のもので、直感的です。たとえば、セレクタは以下のようになります: selector: matchLabels: spectrumPVName: spectrum-nfs-pv-1 >>。これは PersistentVolume yaml で指定したラベルと同じです。
oc create -f persistentvolumeclaim.yaml
To check whether PVC has got created or not, use the following command:
oc login -u system:admin
oc get pvc
分散 SpectroSERVER 自動インストーラ
DSS を自動インストールする手順を以下に示します。 
  1. Spectrum vcd の
    sdic/linux
    フォルダから、OpenShift マスタ ノードのディレクトリに以下のファイルをコピーします。
    autoinstall.sh 
    deploy.ini 
    deploymenttemplate.yaml 
    deploymenttemplateocs.yaml 
    etc_hosts.sh 
    routetemplate.yaml 
    servicetemplate.yaml
  2. 以下のように
    deploy.ini
    ファイルを更新し、すぐに Spectrum DSS 環境をセットアップする自動インストーラ スクリプトを実行します。すべてのキー属性(= の左側)は同じままで、ユーザは対応する値属性のみを変更する必要があります(表に示すように)。
    [MainLocationServer]
    mls1=<mainss>
    imagename=<ss-released-image>
    rootpwd=<rt_passwd>
    mls1replicas=2
    persistentstorageloc=<project-name>\/<value of mls1>
    persistentclaimname=<spectrum-nfs-claim-1>
    [LocationServer]
    lscount=1
    imagename=<ss-released-image>
    ls1=<name>   
    ls1replicas=1
    ls1persistentstorageloc=<project-name>\/<value of ls1>
    ls1persistentclaimname=<spectrum-nfs-claim-1>
    ls2=<name>
    ls2replicas=1
    ls2persistentstorageloc=<project-name>\/<value of ls2>
    ls2persistentclaimname=<spectrum-nfs-claim-1>
     
    [OneClickServer]
    ocs1=<ocsone>
    imagename=<ocs-released-image>
    servicename=ocs1
    routename=ocs1
    hostname=<masternode hostname>
    この表は、キー属性と、ユーザによって指定される対応する値属性を示しています。 
    サーバ
    キー属性
    値属性
    [MainLocationServer]
    mls1
    ユーザに必要な MLS 名を指定します。この名前を使用して MLS 展開が作成されます。
    imagename
    ここで imagename を ss-released-image と指定します。
    rootpwd
    ここで rt_passwd を指定します。
    mls1replicas
    メイン ロケーション サーバのコンテナ数を指定します。「1」はここで定義される値です。
    persistentstorageloc
    project-name と mls1 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。projectname\/deployment-name をそのまま置き換えます。例: 'spectrum\/mls1'
    persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    [LocationServer]
    lscount
    起動するロケーション サーバの数を指定します。
    imagename
    ここで ss-released-image を指定します。
    ls1 
    最初のロケーション サーバの名前です。lsone のように直観的なものにできます。
    ls1replicas
    起動する ls1 のレプリカの数を指定します。デフォルト値は 1 です。
    ls1persistentstorageloc
    project-name と ls1 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。projectname\/ 展開名をそのまま置き換えます。例: 'spectrum\/ls1'
    ls1persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    ls2
    2 番目のロケーション サーバの名前です。lstwo のように直観的なものにできます。
    ls2replicas
    起動する ls1 のレプリカの数を指定します。デフォルト値は 1 です。
    ls2persistentstorageloc
    project-name と ls2 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。projectname\/ 展開名をそのまま置き換えます。例: 'spectrum\/ls2'
    ls2persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    [OneClickServer]
    ocs1
    ここで ocsone のような ocs 名を指定します。
    imagename
    ここで imagename を ocs-released-image と指定します。
    servicename
    ここで servicename を ocs1 と指定します。
    routename
    ここで routename を ocs1 と指定します。
    ホスト名
    ここで、hostname としてマスタ ノードのホスト名を指定します。この変数の値はマスタ ノードのホスト名です。
  3. 自動インストーラ スクリプトを実行するには、前述のとおり、
    deploy.ini
    から、以下のコマンドを実行します。 
    /autoinstall.sh --ini deploy.ini
  4. インストール後、デフォルトでは NFS サーバの
    /var/spectrum-nfs-pd
    ディレクトリがコンテナの
    /data
    にマウントされます。ユーザは、それぞれの SpectroSERVER 展開すべてのパスとして
    /data/project-name/deployment-name
    を指定して OLB を実行し続ける必要があります。
新しいランドスケープ(ロケーション サーバ)プロシージャの追加
  1. deploy.ini
    にロケーション サーバ固有の変数と値のみを指定して
    autoinstallnonmls.sh
    を実行します。 autoinstalleronmls スクリプトを実行するには、前述のとおり、
    deploy.ini
    から実行します。 deploy.ini に新しいロケーション サーバの詳細を追加し、以下のコマンドを実行します。   
    autoinsh.sh --ini deploy.ini
    : MLS および他のロケーション サーバがすでに存在しているため、「mlsone already exists」などの警告が出ます。これらの警告は無視できます。
アップグレード手順
アップグレード手順を以下に示します。 
  1. 新しいアップグレード済みイメージを、以前のイメージ名で docker リポジトリにプッシュします。すべての対応するコンテナでアップグレードが自動的に開始されます。たとえば、imagename が <spectrum-image> であるとします。アップグレード済みイメージでも、停止される古いコンテナと作成される新しいコンテナの名前が同じである必要があります。新しいコンテナは永続ストレージから古いコンテナのデータを取得するため、データは消えません。
  2. アップグレードが開始されたら、マスタ ノードで
    etc_hosts.sh
    コマンドを実行し、すべての新しいコンテナで ip/ホスト名マッピングを更新します
  3. Spectrum コンテナで障害が発生した場合、古いコンテナで docker/アプリケーション障害が発生した後、新しいコンテナが作成されます。
    1. マスタ ノードで
      etc_hosts.sh
      コマンドを実行し、新しいコンテナで ip/ホスト名マッピングを更新します 
既知の問題
  1.  アップグレード中に保存せずにコンテナが作成され、終了時に完了した場合、コンテナでの障害発生時または再起動時に前回正常に保存された DB が取得されるように、OLB を使用して DB がバックアップまたは同期されます。 
  2. 新しいイメージの可用性または何らかのシナリオ(クラッシュからの復旧など)によってコンテナが再作成されると、コンテナの IP アドレスとホスト名が変更されます。
インストール後のタスク 
DSS 環境でトラップをサポートする方法 
  1. [VNA モデル ハンドル]-[情報]タブ-[トラップ管理]-[トラップ ディレクタの有効化]
    に移動し、トラップ ディレクトリを有効化します。デフォルトでは無効になっています。 
SS が実行されている MLS コンテナで NodePort サービスを作成します。NodePort サービスは、マスタ ノード ポートをコンテナ ノードにマッピングし、MLS への SNMP トラフィックを許可します。MLS がトラップを受信すると、IP に基づいて、DSS 環境のランドスケープ全体にトラップが送信されます。 マスタ ノードで以下の yaml configFile を実行します。 
kind: Service
apiVersion: v1
metadata:
 name: <mls deployment config name>
 spec:
 ports:
 - name: "trap"
   port: 162
   protocol: UDP
   targetPort: 162
   nodePort: 162
selector:
 name: <mls deployment config name>
 type: NodePort
 sessionAffinity: None
注:
上記の例では、マスタ ノードのポート番号 162 は利用できないため、トラップは MLS に転送されません。ノードのサービスのポート範囲を変更する方法:
1. 以下のファイルに移動し、変更します。 
vi /etc/origin/master/master-config.yaml 
2. 「servicesNodePortRange」パラメータを変更します。例えば、servicesNodePortRange は 80 ~ 32767 のいずれかの値に設定できます (最小~最大)。
3. ノード ポートへの変更が反映されているかどうかを確認するには、以下のコマンドを使用してサービスを再起動します。
systemctl restart origin-master.service