2021년 7월 20일 화요일

DPO (Dynamic Platform Optimizer) 사용 방법

 

먼저 전체 시스템의 현재 DPO score를 계산해봅니다.


hscroot@icchmc:~> lsmemopt -m Server-8286-42A-SN84D7B4V -r sys -o currscore

curr_sys_score=67


각 LPAR 별로 현재 점수가 어떤지 계산해봅니다.


hscroot@icchmc:~> lsmemopt -m Server-8286-42A-SN84D7B4V -r lpar -o currscore

lpar_name=s824_vios2,lpar_id=1,curr_lpar_score=100

lpar_name=aaaa,lpar_id=2,curr_lpar_score=100

lpar_name=s824_vios1,lpar_id=3,curr_lpar_score=100

lpar_name=AIX72CloudVM_00,lpar_id=4,curr_lpar_score=90

lpar_name=DB2CF01,lpar_id=5,curr_lpar_score=100

lpar_name=aysun-05955fd8-00000006,lpar_id=6,curr_lpar_score=100

lpar_name=AIX7200_04_02_cldrdy,lpar_id=7,curr_lpar_score=51

lpar_name=tibero6,lpar_id=8,curr_lpar_score=50

lpar_name=RHEL_7.7,lpar_id=9,curr_lpar_score=100

lpar_name=kbs-ha01,lpar_id=10,curr_lpar_score=100

lpar_name=kbha02,lpar_id=11,curr_lpar_score=100


위에서 붉은 색으로 표시한 ID 7번 파티션을 DPO로 최적화하는 경우, 가능한 to-be 점수가 어떻게 되는지 산정해봅니다.


hscroot@icchmc:~> lsmemopt -m Server-8286-42A-SN84D7B4V -r lpar -o calcscore --id 7

lpar_name=s824_vios2,lpar_id=1,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=aaaa,lpar_id=2,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=s824_vios1,lpar_id=3,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=AIX72CloudVM_00,lpar_id=4,curr_lpar_score=90,predicted_lpar_score=90

lpar_name=DB2CF01,lpar_id=5,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=aysun-05955fd8-00000006,lpar_id=6,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=AIX7200_04_02_cldrdy,lpar_id=7,curr_lpar_score=51,predicted_lpar_score=100

lpar_name=tibero6,lpar_id=8,curr_lpar_score=50,predicted_lpar_score=100

lpar_name=RHEL_7.7,lpar_id=9,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=kbs-ha01,lpar_id=10,curr_lpar_score=100,predicted_lpar_score=100

lpar_name=kbha02,lpar_id=11,curr_lpar_score=100,predicted_lpar_score=100


위와 같이 100점 만점으로 최적화될 수 있습니다.  뿐만 아니라 그 밑의 ID 8번 파티션도 함께 최적화되어 점수가 100점이 되는 것을 보실 수 있습니다.


먼저 ID 7번 파티션의 SRAD 상태가 어떤지 확인해봅니다.


/ # lssrad -av

REF1   SRAD        MEM      CPU

0

          0   53463.19      0-3 12-15 24-27 36-39 48-51 60-63 76-79 92-95 108-111 124-127 140-143 156-159 172-175 188-191 204-207 220-223 236-239 252-255

          3   36105.00      72-75 88-91 104-107 120-123 136-139 152-155 168-171 184-187 200-203 216-219 232-235 248-251

1

          1   53037.00      4-7 16-19 28-31 40-43 52-55 64-67 80-83 96-99 112-115 128-131 144-147 160-163 176-179 192-195 208-211 224-227 240-243

          2   52539.00      8-11 20-23 32-35 44-47 56-59 68-71 84-87 100-103 116-119 132-135 148-151 164-167 180-183 196-199 212-215 228-231 244-247


별로 좋지는 않네요.  다음과 같이 7번 파티션에 대해 DPO 최적화를 수행하도록 optmem 명령을 수행합니다.


hscroot@icchmc:~> optmem -m Server-8286-42A-SN84D7B4V -o start -t affinity --id 7


이건 작은 시스템이라서 1~2분이면 완료됩니다.  점수를 다시 확인해봅니다.


hscroot@icchmc:~> lsmemopt -m Server-8286-42A-SN84D7B4V -r lpar -o currscore

lpar_name=s824_vios2,lpar_id=1,curr_lpar_score=100

lpar_name=aaaa,lpar_id=2,curr_lpar_score=100

lpar_name=s824_vios1,lpar_id=3,curr_lpar_score=100

lpar_name=AIX72CloudVM_00,lpar_id=4,curr_lpar_score=100

lpar_name=DB2CF01,lpar_id=5,curr_lpar_score=100

lpar_name=aysun-05955fd8-00000006,lpar_id=6,curr_lpar_score=100

lpar_name=AIX7200_04_02_cldrdy,lpar_id=7,curr_lpar_score=100

lpar_name=tibero6,lpar_id=8,curr_lpar_score=100

lpar_name=RHEL_7.7,lpar_id=9,curr_lpar_score=100

lpar_name=kbs-ha01,lpar_id=10,curr_lpar_score=100

lpar_name=kbha02,lpar_id=11,curr_lpar_score=100


7번 뿐만 아니라 8번, 그리고 심지어 90점 정도가 될 거라고 했던 4번 파티션도 다 100점 만점으로 변화한 것을 보실 수 있습니다.


실제로 그런지 7번 파티션 속에 들어가서 SRAD를 확인합니다.  아래와 같이 (64MB 정도를 제외한) 전체 CPU core 및 memory가 REF1로 이동한 것을 보실 수 있습니다.


/ # lssrad -av

REF1   SRAD        MEM      CPU

0

          0      64.25

          3       0.00

1

          1   98102.00      4-7 12-15 20-23 28-31 36-39 44-47 52-55 60-63 68-71 76-79 84-87 92-95 100-103 108-111 116-119 124-127 132-135 140-143 148-151 156-159 164-167 172-175 180-183 188-191 196-199 204-207 212-215 220-223 228-231 236-239 244-247 252-255

          2   96977.94      0-3 8-11 16-19 24-27 32-35 40-43 48-51 56-59 64-67 72-75 80-83 88-91 96-99 104-107 112-115 120-123 128-131 136-139 144-147 152-155 160-163 168-171 176-179 184-187 192-195 200-203 208-211 216-219 224-227 232-235 240-243 248-251




2021년 7월 1일 목요일

CAA gw_ip list에서 특정 IP를 제거하는 방법

 


AIX 7.1부터 도입된 CAA (Cluster Aware AIX)는 PowerHA 7.1 이상에서 cluster 구성을 위해 사용하는 일종의 AIX kernel extenstion이고, PowerHA의 일부가 아니라 AIX의 일부로서 bos.cluster.rte에 포함되어 있습니다.  


CAA는 PowerHA의 heartbeat과는 별도로 heartbeat을 교환하며, 거기에 사용되는 IP addr의 목록을 gw_ip list라는 곳에서 관리합니다.   이는 PowerHA에 등록되고 구성된 network interface와는 별도로 관리되는 것입니다만, 처음 구성에서는 PowerHA에서 구성된 network interface 정보들을 그대로 가져옵니다.


아래의 간단한 테스트 클러스터를 보시겠습니다.  Hostname이 kbs-ha01과 kbs-ha02인 2개의 node를 이용하여 test_cluster라는 PowerHA cluster를 구성하겠습니다.   아래와 같이 각 node에는 en0~en2까지 3개의 interface가 있습니다.


kbs-ha01:/>hostname

kbs-ha01


kbs-ha01:/>netstat -i

Name   Mtu   Network     Address                 Ipkts     Ierrs        Opkts     Oerrs  Coll

en0    1500  link#2      fa.6f.5.8d.af.20          3605951     0           900051     0     0

en0    1500  10.10.14.64 kbs-ha01                  3605951     0           900051     0     0

en1    1500  link#3      fa.16.3e.3b.b2.4          3155242     0           668052     0     0

en1    1500  192.168.10  kbs_ha01_priv01           3155242     0           668052     0     0

en2    1500  link#4      fa.16.3e.8d.6e.4f          3111172     0           649586     0     0

en2    1500  8.1.1       kbs_ha01_priv02           3111172     0           649586     0     0

lo0    16896 link#1                                 152004     0           152004     0     0

lo0    16896 127         loopback                   152004     0           152004     0     0

lo0    16896 loopback                               152004     0           152004     0     0



여기서 우리가 원하는 것은 PowerHA node name은 hostname인 kbs-ha01과 kbs-ha02로 하되, 이 interface들은 CAA에서 관리하는 gw_ip list에서 빠지도록 하는 것입니다.  먼저 평범하게 PowerHA에서 test_cluster라는 이름으로 cluster를 구성하고 거기에 'Discover Network Interfaces and Disks'를 통해 발견된 network 정보를 이용하여 3개의 interface를 그대로 등록하겠습니다.



                                         Manage Networks and Network Interfaces


Move cursor to desired item and press Enter.


  Networks

  Network Interfaces


  Show Topology Information by Network

  Show Topology Information by Network Interface


  Verify and Synchronize Cluster Configuration




                                                Networks


Move cursor to desired item and press Enter.


  Add a Network

  Change/Show a Network

  Remove a Network




              +--------------------------------------------------------------------------+

              |                     Select a Network to Change/Show                      |

              |                                                                          |

              | Move cursor to desired item and press Enter.                             |

              |                                                                          |

              |   net_ether_01 (192.168.10.0/24 8.1.1.0/24)                              |

              |   net_ether_010 (10.10.14.64/26)                                         |

              |                                                                          |




                                          Change/Show a Network


Type or select values in entry fields.

Press Enter AFTER making all desired changes.


                                                        [Entry Fields]

* Network Name                                        net_ether_010

  New Network Name                                   []

* Network Type                                       [ether]                                          +

* Netmask(IPv4)/Prefix Length(IPv6)                  [255.255.255.192]

* Network attribute                                   public                                          +



이렇게 구성한 뒤 PowerHA의 'Verify and Synchronize Cluster Configuration' 메뉴를 수행하면 일단 test_cluster가 구성되고, 그와 동시에 CAA의 특징인 caavg_private Volume Group이 만들어집니다.  또한 이때 gw_ip list도 PowerHA에 등록된 저 3개의 interface (192.168.10.0/24,  8.1.1.0/24, 10.10.14.64/26)를 모두 가져와서 등록합니다.   이렇게 등록된 gw_ip list는 아래 명령어로 확인 가능합니다.



kbs-ha01:/>/usr/lib/cluster/clras dumprepos | grep -p gw_

NODES

        Name                            Uuid                                    N_gw    Site_uuid

        kbs-ha01                        d785c6a4-da2e-11eb-8048-fa6f058daf20    3       51735173-5173-5173-5173-517351735173

        gw_flag : 1

        gw_ip

        192.168.10.21

        8.1.1.21

        10.10.14.94

        kbs-ha02                        d785c726-da2e-11eb-8048-fa6f058daf20    3       51735173-5173-5173-5173-517351735173

        gw_flag : 1

        gw_ip

        192.168.10.22

        8.1.1.22

        10.10.14.123



위와 같이 node당 3개의 IP가 다 등록된 것을 보실 수 있습니다.  이 IP들을 통해서 들어오는 모든 network packet들은 CAA의 점검 대상이 됩니다.  그런 점검으로 인한 overhead를 피하고자 한다면, gw_ip list에 포함되는 IP들은 오로지 cluster heartbeat만을 위한 별도 network으로 구성해야 합니다.  지금 우리의 경우처럼 이미 PowerHA node name으로 10.10.14.64/26 network의 IP name들, 즉 kbs-ha01과 kbs-ha02를 사용한 경우, 이 IP를 PowerHA에서 제거하는 것은 곤란합니다.   이럴 때는 어떻게 해야 할까요?  


이건 PowerHA network 속성 중에서 default인 public 대신 private을 사용하면 됩니다.   아래와 같이 'Change/Show a Network' 메뉴를 이용하여  10.10.14.64/26 network을 private으로 바꿔 줍니다.




                                                Networks


Move cursor to desired item and press Enter.


  Add a Network

  Change/Show a Network

  Remove a Network




              +--------------------------------------------------------------------------+

              |                     Select a Network to Change/Show                      |

              |                                                                          |

              | Move cursor to desired item and press Enter.                             |

              |                                                                          |

              |   net_ether_01 (192.168.10.0/24 8.1.1.0/24)                              |

              |   net_ether_010 (10.10.14.64/26)                                         |

              |                                                                          |





                                          Change/Show a Network


Type or select values in entry fields.

Press Enter AFTER making all desired changes.


                                                        [Entry Fields]

* Network Name                                        net_ether_010

  New Network Name                                   []

* Network Type                                       [ether]                                          +

* Netmask(IPv4)/Prefix Length(IPv6)                  [255.255.255.192]

* Network attribute                                   private                                          +




              +--------------------------------------------------------------------------+

              |                            Network attribute                             |

              |                                                                          |

              | Move cursor to desired item and press Enter.                             |

              |                                                                          |

              |   public                                                                 |

              |   private                                                                |

              |                                                                          |




그러고난 뒤에 'Verify and Synchronize Cluster Configuration'를 수행하면 다음과 같이 chcluster 명령으로 10.10.14.123과 10.10.14.94가 제거되는 것을 보실 수 있습니다.  (-cle_ip는 제거, +cle_ip는 추가입니다.)




                                 Manage Networks and Network Interfaces


Move cursor to desired item and press Enter.


  Networks

  Network Interfaces


  Show Topology Information by Network

  Show Topology Information by Network Interface


  Verify and Synchronize Cluster Configuration



...

Checking for added nodes

Thu Jul  1 00:49:52 CDT 2021 cldare[3278]: Updating the CAA adapter configuration to match the SystemMirror configuration.

Thu Jul  1 00:49:52 CDT 2021 cldare[3382]: Removing adapter en0 with IP address 10.10.14.123 on node kbs-ha02 from CAA

CLUSTER_OVERRIDE=yes ODMDIR=/etc/objrepos chcluster  -n test_cluster -m  kbs-ha02{-cle_ip=10.10.14.123}

chcluster: Successfully modified cluster.

Thu Jul  1 00:49:54 CDT 2021 cldare[3382]: Removing adapter en0 with IP address 10.10.14.94 on node kbs-ha01 from CAA

CLUSTER_OVERRIDE=yes ODMDIR=/etc/objrepos chcluster  -n test_cluster -m  kbs-ha01{-cle_ip=10.10.14.94}

chcluster: Successfully modified cluster.

...



이제 다시 /usr/lib/cluster/clras dumprepos 명령으로 gw_ip list를 확인하면 위에서와는 달리 10.10.14.x interface가 사라진 것을 보실 수 있습니다.



kbs-ha01:/>/usr/lib/cluster/clras dumprepos | grep -p gw_

NODES

        Name                            Uuid                                    N_gw    Site_uuid

        kbs-ha01                        d785c6a4-da2e-11eb-8048-fa6f058daf20    2       51735173-5173-5173-5173-517351735173

        gw_flag : 1

        gw_ip

        192.168.10.21

        8.1.1.21

        kbs-ha02                        d785c726-da2e-11eb-8048-fa6f058daf20    2       51735173-5173-5173-5173-517351735173

        gw_flag : 1

        gw_ip

        192.168.10.22

        8.1.1.22