操作可能なコンポーネントの所有者: FILE
スキル プロファイル: デプロイ エンジニア このページでは、NetApp ONTAP を使用してクラスタのファイル ストレージとブロック ストレージを設定する手順について説明します。16.1. ONTAP クラスタ スイッチを構成する
パスワード
switch-xx-ad-stgesw01-adminとswitch-xx-ad-stgesw02-adminを確認します(値は同じです)。パスワードが存在しない場合は、認証情報を初期化して新しいランダム パスワードを生成します。コンソールからスイッチにログインして、管理者パスワードを設定します。# configure terminal # username ADMIN_USER password PASSWORD # exit # copy running-config startup-config認証情報を Secret に保存して
cell.yamlに追加するapiVersion: v1 kind: Secret metadata: name: netapp-ontap-cluster-switch-credential namespace: gpc-system type: Opaque stringData: username: ADMIN_USER password: PASSWORD次のコマンドを実行して、ストレージ スイッチの名前を取得します。
kubectl get storageswitch -n gpc-system出力は次のようになります。
NAME AGE MANAGEMENTIP kb-ab-stgesw01 10d 192.0.2.0 kb-ab-stgesw02 10d 192.0.2.1スイッチごとに次の手順を行い、スイッチの名前を使用します。
次のコマンドを実行して、
switchstaticconfigCR からスイッチ構成を取得します。kubectl get switchstaticconfigs -n gpc-system $SWITCH_NAME-static-config -o yaml | /root/release/scripts/yq_linux_amd64 '.spec.config'出力は次のようになります。
banner motd ! ****************************************************************************** * NetApp Reference Configuration File (RCF) * * Switch : Nexus N9K-C9336C-FX2 * Filename : Nexus-9336C-RCF-v1.8-Cluster.txt * Date : 11-01-2021 * Version : v1.8 * * Port Usage: * Ports 1- 3: Breakout mode (4x10G) Intra-Cluster/HA Ports, int e1/1/1-4, e1/2/1-4, e1/3/1-4 * Ports 4- 6: Breakout mode (4x25G) Intra-Cluster/HA Ports, int e1/4/1-4, e1/5/1-4, e1/6/1-4 * Ports 7-34: 40/100GbE Intra-Cluster/HA Ports, int e1/7-34 * Ports 35-36: Intra-Cluster ISL Ports, int e1/35-36 * * Dynamic breakout commands: * 10G: interface breakout module 1 port <range> map 10g-4x * 25G: interface breakout module 1 port <range> map 25g-4x * * Undo breakout commands and return interfaces to 40/100G configuration in config mode: * no interface breakout module 1 port <range> map 10g-4x * no interface breakout module 1 port <range> map 25g-4x * interface Ethernet <interfaces taken out of breakout mode> * inherit port-profile CLUSTER * priority-flow-control mode auto * service-policy type qos type input ROCE_QOS * exit * * This RCF supports Clustering, HA, RDMA, and DCTCP using a single port profile. * ****************************************************************************** ! conf t ! interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4x ! feature lacp feature lldp feature ssh feature sftp-server feature scp-server ! vlan 17,18 exit ! cdp enable cdp advertise v1 cdp timer 5 system default switchport no system default switchport shutdown snmp-server community cshm1! group network-operator errdisable recovery interval 30 port-channel load-balance src-dst ip-l4port-vlan no ip domain-lookup logging console 1 ! ! class-map type qos match-any HA match dscp 40 match cos 5 ! class-map type qos match-any RDMA match dscp 16 match cos 2 ! class-map type qos match-any CT match dscp 0 match cos 0 ! policy-map type qos ROCE_QOS class type qos HA set qos-group 5 class type qos RDMA set qos-group 2 class type qos class-default set qos-group 0 ! class-map type network-qos HA_NETQOS match qos-group 5 ! class-map type network-qos RDMA_NETQOS match qos-group 2 ! class-map type network-qos CT_NETQOS match qos-group 0 ! policy-map type queuing ROCE_QUEUING class type queuing c-out-8q-q7 priority level 1 class type queuing c-out-8q-q6 bandwidth remaining percent 0 class type queuing c-out-8q-q5 bandwidth remaining percent 43 random-detect threshold burst-optimized ecn class type queuing c-out-8q-q4 bandwidth remaining percent 0 class type queuing c-out-8q-q3 bandwidth remaining percent 0 class type queuing c-out-8q-q2 random-detect threshold burst-optimized ecn bandwidth remaining percent 28 class type queuing c-out-8q-q1 bandwidth remaining percent 0 class type queuing c-out-8q-q-default bandwidth remaining percent 28 random-detect threshold burst-optimized ecn ! policy-map type network-qos NETQOS class type network-qos HA_NETQOS pause pfc-cos 5 mtu 9216 class type network-qos RDMA_NETQOS pause pfc-cos 2 mtu 9216 class type network-qos CT_NETQOS mtu 9216 ! system qos service-policy type network-qos NETQOS service-policy type queuing output ROCE_QUEUING ! copp profile strict ! ! !********** Port Profiles ********** ! port-profile type ethernet CLUSTER description 10/25/40/1000GbE Intra-Cluster/HA Nodes switchport mode trunk switchport trunk allowed vlan 1,17-18 spanning-tree port type edge trunk spanning-tree bpduguard enable mtu 9216 state enabled exit ! ! !********** Interfaces ********** ! interface e1/1/1-4, e1/2/1-4, e1/3/1-4, e1/4/1-4, e1/5/1-4, e1/6/1-4, e1/7-34 inherit port-profile CLUSTER priority-flow-control mode auto service-policy input ROCE_QOS exit ! !********** Intra-Cluster ISL ports ********** ! interface Ethernet1/35 description Intra-Cluster Switch ISL Port 1/35 (port channel) priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 channel-group 1 mode active no shutdown ! interface Ethernet1/36 description Intra-Cluster Switch ISL Port 1/36 (port channel) priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 channel-group 1 mode active no shutdown ! interface port-channel1 service-policy input ROCE_QOS priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 no shutdown ! !********** Set management ip ********** ! interface mgmt0 ip address 172.28.2.10/29 ! vrf context management ip route 0.0.0.0/0 mgmt0 172.28.2.9 ! hostname kb-ad-stgesw01 ! end ! !********** Save config ******* copy run start !シリアル ケーブルまたはコンソール サーバーを使用して、取得したスイッチ構成をスイッチにデプロイします。コンテンツをコピーしてスイッチに貼り付けます。
この構成では、次のことを前提としています。
- A250 の場合: ストレージ デバイスの e0c/e0d は、ブレークアウト ケーブルを使用してポート 4 ~ 6 に接続されます。
- A400 の場合: ストレージ デバイスの e3a/e3b は、40 GbE または 100 GbE(ブレークアウトなし)ケーブルを使用してポート 7 ~ 34 に接続されます。
- A800 の場合: ストレージ デバイスの e0a/e1a は、40 GbE または 100 GbE(ブレークアウト以外)ケーブルを使用してポート 7 ~ 34 に接続されます。
ただし、そうでない場合もあります。多くのインストールでは、デバイスが A400 または A800 であっても、ストレージ デバイスはポート 4 ~ 6 に接続されています。A400 または A800 がポート 4 ~ 6 に接続されている場合は、スイッチ構成を調整して、適用する前に次の行を削除します。
interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4x次の行を置き換えます。
interface e1/1/1-4, e1/2/1-4, e1/3/1-4, e1/4/1-4, e1/5/1-4, e1/6/1-4, e1/7-34上記のコードブロックを次のコードブロックに置き換えます。
interface e1/1-34これらの変更により、ポート 1 ~ 34 はすべて 40 GbE または 100 GbE(ブレークアウト以外)ケーブル用に構成されます。
また、将来の混乱を避けるため、構成の MOTD バナー部分から次の行を削除します。
* Ports 1- 3: Breakout mode (4x10G) Intra-Cluster/HA Ports, int e1/1/1-4, e1/2/1-4, e1/3/1-4 * Ports 4- 6: Breakout mode (4x25G) Intra-Cluster/HA Ports, int e1/4/1-4, e1/5/1-4, e1/6/1-4 * Ports 7-34: 40/100GbE Intra-Cluster/HA Ports, int e1/7-34これらの行を次のように置き換えます。
* Ports 1-34: 40/100GbE Intra-Cluster/HA Ports, int e1/1-34ManagementSwitch オブジェクト CR を確認します。
ブートストラップ KIND クラスタの
ManagementSwitchオブジェクトを確認し、ストレージ デバイスを保持するスイッチを表す正しい CR を見つけます。管理スイッチ上の物理スイッチポート(ストレージ スイッチに物理的に接続されている)を特定し、これらの接続が lacpGroups の ManagementSwitch CR に存在することを確認します。たとえば、ストレージ スイッチへの管理接続が管理スイッチのポート 10 と 11 に接続されている場合は、次の情報が存在することを確認します。
kind: ManagementSwitch spec: ... serverNetwork: ... lacpGroups: - - 10 - - 11次のコマンドを使用して lacpGroups を取得します。
kubectl get ManagementSwitchinternal <switch-name> --namespace=gpc-system -o=jsonpath='{.spec.serverNetwork.lacpGroups}'出力例は次のようになります。これにより、ポートが存在することを確認できます。
[[1],[2],[3],[4],[5],[6]]
16.2. ONTAP アプライアンスを初期化する
AFF 250/400/800 システムの各コントローラに対して、次の手順を繰り返します。各システムには 2 つのコントローラまたはノードがあります。
シリアル コンソールとデフォルトのユーザー名
adminを使用して、ストレージ コントローラ ノードに接続します。NetApp ONTAP システムのバージョンを確認します。
versionコマンドを実行します。- NetApp ONTAP システムのバージョンは 9.15.1 である必要があります。バージョンが 9.15.1 より前の場合は、組織管理クラスタのブートストラップの前にノードを 9.15.1 にアップグレードします。詳細については、アップグレード ガイドをご覧ください。
クラスタ相互接続 IP インターフェース アドレスを設定します。
まず、cellcfg で現在の
StorageNodeの想定される.spec.network.clusterInterconnectIP値を見つけます。# Note, this command relies on yq, which can be downloaded from https://github.com/mikefarah/yq. # If you do not want to install yq, you can manually inspect cellcfg/*-storage.yaml to determine the IPs. cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageNode") | (.metadata.name, .spec.network.clusterInterconnectIP)'上記のコマンドを実行すると、すべての
StorageNodeの名前とその.spec.network.clusterInterconnectIP値が出力されます。次に例を示します。aa-ad-stge01-01 169.254.0.1 --- aa-ad-stge01-02 169.254.0.3 --- aa-ad-stge02-01 169.254.0.5 --- aa-ad-stge02-02 169.254.0.7 --- aa-ad-stge03-01 169.254.0.9 --- aa-ad-stge03-02 169.254.0.11上記の例では、ノード
aa-ad-stge03-01の IP169.254.0.9と169.254.0.10が次の手順で使用されます。これは、169.254.0.9がノードaa-ad-stge03-01の cellcfg で定義された IP であり、169.254.0.10が169.254.0.9の次の IP(数値順)であるためです。次に、現在のノードの実際のクラスタ相互接続 IP 値を確認します。
network interface show次の出力のように、
169.254で始まる 2 つのネットワーク インターフェースが表示されます。::> net int show (network interface show) Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- Cluster clus1 up/up 169.254.19.166/16 localhost e3a true clus2 up/up 169.254.19.167/16 localhost e3b trueclus1インターフェースのアドレスが cellcfg で定義された値と一致し、clus2インターフェースのアドレスがclus1アドレスの次の IP(数値順)である場合は、この手順の残りの部分をスキップして次の手順に進むことができます。クラスタ vserver のインターフェースが 1 つしか表示されない場合は、
net port showを実行して、2 番目のポートが稼働していることを確認します。その場合は、インターフェースのいずれかが欠落しているため、次の 2 つの方法で修正できます。オプション 1: 次のコマンドを使用して、相互接続 IP を手動で追加します。
net interface create -vserver Cluster -lif clus2 -role cluster -address <interconnect-ip> -netmask 255.255.0.0 -home-node localhost -home-port <port>interconnect-ip: 現在のノードの cellcfg で指定されたクラスタ相互接続 IP の次の IP(数値順)を選択します。たとえば、現在のノードの cellcfg で指定されたクラスタ相互接続 IP が
169.254.0.3の場合は、169.254.0.4を選択します。port: ONTAP のモデルによって、ポートが異なる場合があります。前の出力にインターフェースが表示されていないポートを選択する必要があります。
- A250 の場合: e0c と e0d のいずれかを選択します。
- A400 の場合: e3a または e3b を選択します。
- A800 の場合は、e0a と e1a のいずれかを選択します。
オプション 2: ONTAP ノードを工場出荷時の状態にリセットします(これには、ONTAP ブートメニューの構成 9a と 9b が含まれます)。リセット後にコマンドを再度実行して、2 つの IP が存在することを確認します。まずオプション 1 を試し、正しく動作しない場合にのみオプション 2 に戻すことをおすすめします。
次に、
clus1相互接続 IP を、cellcfg の現在のノードに指定されたclusterInterconnectIP値に更新します。net int modify -vserver Cluster -lif clus1 -address <interconnect-ip>- interconnect-ip: 現在のノードの cellcfg で指定された
clusterInterconnectIP値。
次に、cellcfg の現在のノードに指定された
clusterInterconnectIP値の次の IP(数値順)になるように、clus2相互接続 IP を更新します。net int modify -vserver Cluster -lif clus2 -address <next-interconnect-ip>- next-interconnect-ip: 現在のノードの cellcfg で指定されたクラスタ インターコネクト IP の次の IP(数値順)を選択します。たとえば、現在のノードの cellcfg で指定されたクラスタ相互接続 IP が
169.254.0.3の場合は、169.254.0.4を選択します。
最後に、現在のノードの実際のクラスタ インターコネクト IP 値が、cellcfg で想定される値と一致することを確認します。
network interface show次の出力のように、
169.254で始まる 2 つのネットワーク インターフェースが表示されます。clus1インターフェースのアドレスは、cellcfg で定義された値と一致する必要があります。clus2インターフェースのアドレスは、clus1アドレスの次の IP(数値順)にする必要があります。::> net int show (network interface show) Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- Cluster clus1 up/up 169.254.0.1/16 localhost e3a true clus2 up/up 169.254.0.2/16 localhost e3b true省略可: クラスタ間接続を確認します。
ping -lif clus2 -vserver Cluster -destination <interconnect-ip-other-node>interconnect-ip-other-node: 他のノードからクラスタ間 IP を選択します。接続がある場合は、ping が応答します。
管理者パスワードを設定します(これはすべてのノードで同じである必要があり、パスワードを入力するときに使用されます)。パスワードが複雑さの要件を満たしていることを確認してください。満たしていない場合は、準拠していないユーザー アカウントに関する警告が表示されます。
::> security login password Enter your current password: Current password is empty, press Enter Enter a new password: Enter NEW_PASSWORD Enter it again: Enter NEW_PASSWORD管理 IP とゲートウェイを設定します。必要な情報を取得する方法については、以下の手順を参照してください。
::> cluster setup Type yes to confirm and continue: yes Enter the node management interface port: e0M Enter the node management interface IP address: IP_ADDRESS for this node Enter the node management interface netmask: NETMASK for this IP Enter the node management interface default gateway: GATEWAYctrl+cと入力して、デフォルト ゲートウェイを設定したらクラスタ設定ウィザードを終了します。次のコマンドを実行して、サブネット情報を取得します。
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageCluster") | (.spec.network.clusterManagement.netmask)'出力は次のようになります。
203.0.113.0次のコマンドを実行して、ゲートウェイ情報を取得します。
kubectl get subnetclaim -n root kb-ad-mgmtsw01-stge-os-subnet -o jsonpath={.status.ipv4SubnetStatus.gateway} ; echo出力は次のようになります。
203.0.113.1IP 情報を取得する例を次に示します。
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageNode") | (.metadata.name, .spec.network.managementIP)' kb-ad-stge01-01 203.0.113.0 --- kb-ad-stge01-02 203.0.113.0 --- kb-ad-stge02-01 203.0.113.0 --- kb-ad-stge02-02 203.0.113.0管理ユーザーの SSH を有効にします。
security login create -user-or-group-name admin -application ssh -authentication-method password -role adminノードの名前を
cell.yamlで指定された名前に変更します。system node rename -node localhost -newname NODE_NAMEディスクが正しく構成されていることを確認します。
storage aggregate show -fields uses-shared-disksを実行し、aggr0が true を返すことを確認します。出力例:::> storage aggregate show -fields uses-shared-disks aggregate uses-shared-disks --------- ----------------- aggr0 truerun -node * sysconfig -rを実行し、P3で終わるデバイス名が存在することを確認します。これは、ディスクに 3 つのパーティションがあることを確認するためです。出力例:::> run -node * sysconfig -r 1 entry was acted on. Node: localhost Aggregate aggr0 (online, raid_dp) (block checksums) Plex /aggr0/plex0 (online, normal, active, pool0) RAID group /aggr0/plex0/rg0 (normal, block checksums) RAID Disk Device HA SHELF BAY CHAN Pool Type RPM Used (MB/blks) Phys (MB/blks) --------- ------ ------------- ---- ---- ---- ----- -------------- -------------- dparity 0n.18P3 0n 0 18 0 SSD-NVM N/A 63849/16345536 63857/16347584 parity 0n.19P3 0n 0 19 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.20P3 0n 0 20 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.21P3 0n 0 21 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.22P3 0n 0 22 0 SSD-NVM N/A 63849/16345536 63857/16347584run -node local disk show -nを実行して、ディスク パーティションがNot Ownedで、2 * <number of disks>パーティションがあることを確認します。この例では、12 個のディスクに対して 24 個の所有されていないパーティションを示しています。::> run -node local disk show -n DISK OWNER POOL SERIAL NUMBER HOME DR HOME ------------ ------------- ----- ------------- ------------- ------------- 0n.21P1 Not Owned NONE S5Y0NA0T100941NP001 0n.21P2 Not Owned NONE S5Y0NA0T100941NP002 0n.22P1 Not Owned NONE S5Y0NA0T100944NP001 0n.22P2 Not Owned NONE S5Y0NA0T100944NP002 0n.18P1 Not Owned NONE S5Y0NA0T101588NP001 0n.18P2 Not Owned NONE S5Y0NA0T101588NP002 0n.20P1 Not Owned NONE S5Y0NA0T100947NP001 0n.20P2 Not Owned NONE S5Y0NA0T100947NP002 0n.3P1 Not Owned NONE S5Y0NA0T100942NP001 0n.3P2 Not Owned NONE S5Y0NA0T100942NP002 0n.1P1 Not Owned NONE S5Y0NA0T100943NP001 0n.1P2 Not Owned NONE S5Y0NA0T100943NP002 0n.5P1 Not Owned NONE S5Y0NA0T101314NP001 0n.5P2 Not Owned NONE S5Y0NA0T101314NP002 0n.2P1 Not Owned NONE S5Y0NA0T100946NP001 0n.2P2 Not Owned NONE S5Y0NA0T100946NP002 0n.23P1 Not Owned NONE S5Y0NA0T100939NP001 0n.23P2 Not Owned NONE S5Y0NA0T100939NP002 0n.19P1 Not Owned NONE S5Y0NA0T101608NP001 0n.19P2 Not Owned NONE S5Y0NA0T101608NP002 0n.0P1 Not Owned NONE S5Y0NA0T100873NP001 0n.0P2 Not Owned NONE S5Y0NA0T100873NP002 0n.4P1 Not Owned NONE S5Y0NA0T101609NP001 0n.4P2 Not Owned NONE S5Y0NA0T101609NP002これらの手順のいずれかが失敗した場合は、システムを出荷時の設定にリセットします。
16.3. ネットワーク タイム プロトコルを設定する
ブートストラップ クラスタで実行されている NTP リレーの NTP サーバー IP を取得します。
kubectl get ntpservers -n ntp-system -o jsonpath='{.items[*].status.managementIP}{"\n"}'
NTP サーバーごとに、最初の ONTAP ノードで次のコマンドを実行します。
cluster time-service ntp server create -server NTP_SERVER_IP
たとえば、ONTAP ノードが kb-ad-stge01-01、kb-ad-stge01-02、kb-ad-stge02-01、kb-ad-stge02-02 の場合、kb-ad-stge01-01 ノードでコマンドを実行します。
16.4. cellcfg フォルダを確認する
ファイル ストレージのストレージ ユーザー名とパスワードの値を取得するには、ストレージ専用のハードウェア ベンダー ファイル(WO15_SO7100911835-2_GDCH-4d-A250-A400_DD-010223.xlsx など)を使用します。
16.4.1. 管理者パスワードを確認する
StorageCluster.spec.adminSecretName の後の /CELLCFG/file-storage.yaml で参照されている ONTAP Secret 名を確認します。
対応する Secret を見つけて、値が入力されていることを確認します。そうでない場合は、管理者のユーザー名とパスワードを置き換えます。
apiVersion: v1
kind: Secret
metadata:
name: SECRET_NAME
namespace: gpc-system
type: Opaque
stringData:
netapp_username: admin
netapp_password: PASSWORD
16.4.2. ONTAP ライセンスを確認する
ONTAP ソフトウェア ライセンスは、ハードウェア ベンダーから提供されている必要があります。
/cellcfg/af-storage.yaml フォルダの StorageCluster.spec.licenses フィールドを見つけ、ライセンスが入力されていることを確認します。そうでない場合は、ライセンスをフィールドに入力します。
apiVersion: ontap.netapp.storage.private.gdc.goog/v1alpha1
kind: StorageCluster
metadata:
creationTimestamp: null
name: zl-stge-clus-01
namespace: gpc-system
spec:
...
licenses:
- LICENSE_1
- LICENSE_2
- LICENSE_3
参考までに、ライセンス エントリがセル構成にどのように表示されるかの例を次に示します。
licenses:
ABGITNWODUEVQELPECCAAAAAAAAA
AHJJWYTTTXKZOFKVBTBAAAAAAAAA
AHZTHBPQACAAAAKVBTBAAAAAAAAA
ALTXOYXSVDDCMADPECCAAAAAAAAA
ANWFPBPQACAAAAKVBTBAAAAAAAAA
APLKENWODUEVQELPECCAAAAAAAAA
ARIHVQFAHJMIWBDPECCAAAAAAAAA
AXFTCRFAHJMIWBDPECCAAAAAAAAA
16.5. プリフライト検証
検証コマンドを実行します。
gdcloud system check-config --config PATH_TO_CELL_CONFIG --artifacts-directory PATH_TO_ARTIFACTS \
--scenario FileBlockStorage
ログにエラーがある場合は、メッセージに沿って問題を修正し、検証を再度実行します。
16.5.1. 発生しうる問題
このセクションでは、ファイル ブロック ストレージ アプライアンスの事前検証を実行する際に発生する可能性のある問題について説明します。
16.5.1.1. StorageAggregate の NumDisks
ディスク数の誤りに関する検証エラーは無視しますが、StorageAggregate CR の NumDisks の値を手動で確認します。StorageAggregate は xx-storage.yaml ファイルで定義されています。
1 つのファイル ブロック アプライアンスの StorageAggregates に構成されたディスクの合計数は、アプライアンスに表示されるディスクの数からスペアディスクの数を引いた数と一致する必要があります。ベスト プラクティスは、12 個のディスクごとに 1 つのスペアディスクを予約することです。
NumDisks の値を計算するには、次の式を使用します。
NumDisks = (Total_Disks/2) - ceil(Total_Disks/12)
このセクションで説明する (24/2) - ceil(24/12) の例に数式を適用すると、NumDisks は 10 と等しくなります。
16.6. インストールを実行する
インストール コマンドを実行します。
gdcloud system storage install -v 3 --config PATH_TO_CELL_CONFIG
このコマンドは次の処理を行います。
- NetApp クラスタを設定し、使用可能なノードを追加します
- 集計を作成する
- データポートで LACP と VLAN を設定する
- ライセンスを設定する
- モニタリングを構成
- 外部鍵管理を構成する
ジョブが完了したら、ONTAP コンソールで node show を実行して、次のような警告がないことを確認します。
kb-stge-clus-01::> node show
Node Health Eligibility Uptime Model Owner Location
--------- ------ ----------- ------------- ----------- -------- ---------------
kb-ad-stge01-01
true true 5 days 02:49 AFF-A250
kb-ad-stge01-02
true true 6 days 18:24 AFF-A250
kb-ad-stge02-01
true true 5 days 01:52 AFF-A800
kb-ad-stge02-02
true true 5 days 01:52 AFF-A800
kb-ad-stge03-01
true true 7 days 00:15 AFF-A400
kb-ad-stge03-02
true true 7 days 00:26 AFF-A400
Warning: Cluster operation (cluster join) for node "kb-ad-stge03-01" is not complete and the node is not fully functional.
Run "cluster join" on that node to complete the operation.
6 entries were displayed.
ある場合は、手順に沿ってこれらのノードにログインし、対応する cluster join コマンドを実行して、オペレーション後に消えることを確認します。
16.7. セキュリティ設定を更新する
ログイン バナーを設定します。
security login banner modify -vserver <cluster name> -message "<banner>"CLI セッションのタイムアウトを 10 分に制限します。
system timeout modify 10管理者ロールにパスワードの複雑さとログイン試行回数の上限を適用します。
security login role config modify -vserver CLUSTER_NAME -role admin -passwd-minlength 15 -passwd-min-special-chars 1 -passwd-min-lowercase-chars 1 -passwd-min-uppercase-chars 1 -passwd-min-digits 1 -disallowed-reuse 25 -max-failed-login-attempts 3UI セッションのタイムアウトを 10 分に制限する:
::> set diag Warning: These diagnostic commands are for use by NetApp personnel only. Do you want to continue? {y|n}: y ::> cluster application-record create -name sysmgr.inactivitytimeout -value 10 -vserver <cluster name>ユーザー ロックアウト設定を調整します。
::> security login role config modify -vserver * -max-failed-login-attempts 3 -lockout-duration 1 -role * ::> security ssh modify -vserver * -max-authentication-retry-count 3USB ポートを無効にします(有効にするには再起動が必要です)。
::> set diag ::*> system node usb-ports modify -node * -is-disabled-next-boot trueブートストラップ証明書を削除します。
bootstrap-web-ca 証明書を見つけます。
::> security certificate show-user-installedbootstrap-web-ca 証明書が存在する場合、出力は次のようになります。
Vserver Serial Number Certificate Name Type ---------- --------------- -------------------------------------- ------------ aa-aa-stge01 45B86E1B5CF1CC144B874C80A39D2A99 bootstrap-web-ca server-ca Certificate Authority: bootstrap-web-ca Expiration Date: Mon Feb 19 22:55:03 2029
ノードを再起動する場合は、次のコマンドを使用してノードを 1 つずつ再起動します。
::> system node reboot -node <node-name> -inhibit-takeover true
16.8. 緊急アクセス ユーザーを保存する
設定時に 4 つのブレークグラス アカウントが自動的に作成され、次の Kubernetes シークレットとして保存されます。
- storage-root-level1
- storage-root-level1-backup
- storage-root-level2
- storage-root-level2-backup
storage-root-level2 と storage-root-level2-backup の場合、規定どおりに認証情報を紙に保存して安全に保管します。
次のコマンドを使用して、シークレットからユーザー名とパスワードを取得します。SECRET_NAME は、使用するシークレットに置き換えます。
kubectl get secret -n gpc-system SECRET_NAME -o jsonpath='{.data.username}' | base64 --decode kubectl get secret -n gpc-system SECRET_NAME -o jsonpath='{.data.password}' | base64 --decodeONTAP クラスタの名前を取得します。
::> cluster identity show管理者権限を持つ予期しないユーザーが存在する場合は、メモします。
::> useradmin user list- 省略可: インフラストラクチャ オペレーターの承認を得て削除します。本番環境とお客様のワークロードで常に実行します。
::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application amqp ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application console ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application http ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application ontapi ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application service-processor ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application ssh ```前の手順で作成した NetApp 管理ユーザーを削除します。
::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application amqp ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application console ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application http ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application ontapi ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application service-processor ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application sshインフラストラクチャ オペレーター(IO)のリーダーは、各アプライアンスのユーザー名とパスワードを別々の用紙に読みやすく書き留めます。内容が見えないように用紙を折り、用紙に「TOR スイッチ 1 のルート認証情報」などのラベルを付け、安全に保管するために L1 エンジニアに渡します。
リード IO が見守る中、L1 エンジニアは書類を物理的な金庫に保管します。
IO は、シークレットにアノテーションを追加して、シークレットが安全な場所に保存されたことをマークします。
kubectl annotate secrets storage-root-level2 -n gpc-system disk.gdc.goog/persisted=''16.9. NTP サーバーを更新する
管理クラスタのインストール後に次の操作を行います。
管理クラスタで実行されている NTP リレーの新しい NTP サーバーの IP を取得します。
kubectl get ntpservers -n gpc-systemONTAP で、既存の NTP サーバーをすべて削除します。
cluster time-service ntp server show cluster time-service ntp server delete -server NTP_SERVER_IP新しい NTP サーバーを ONTAP に追加します。
cluster time-service ntp server create -server NTP_SERVER_IP