Esegui la migrazione di un VIP in un cluster RHEL ad alta disponibilità a un bilanciatore del carico interno

Su Google Cloud, il modo consigliato per implementare un indirizzo IP virtuale (VIP) per un cluster ad alta disponibilità (HA) basato su sistema operativo per SAP è utilizzare il supporto del failover di un bilanciatore del carico TCP/UDP interno.

Se hai già un cluster Red Hat Enterprise Linux (RHEL) HA per SAP su Google Cloud che utilizza un VIP implementato con un IP alias, puoi eseguire la migrazione del VIP in modo che utilizzi un bilanciatore del carico interno.

Se hai utilizzato il modello sap_hana_ha Deployment Manager, che non è più supportato, per eseguire il deployment di un sistema SAP HANA scalabile verticalmente in un cluster HA su RHEL, la tua VIP è implementata con un alias IP.

Queste istruzioni mostrano come eseguire la migrazione di un VIP in un cluster RHEL ad alta disponibilità.

Prerequisiti

Queste istruzioni presuppongono che tu abbia già un cluster HA configurato correttamente su Google Cloud che utilizzi un alias IP per l'implementazione del VIP.

Panoramica della procedura

  • Configura e testa un bilanciatore del carico utilizzando una regola di inoltro temporanea e un indirizzo IP temporaneo al posto del VIP.
  • Imposta il cluster in modalità di manutenzione e, se possibile, arresta le istanze del server di applicazioni SAP per evitare comportamenti imprevisti.
  • Dealloca l'indirizzo IP alias dall'host principale. Questo indirizzo diventa il VIP con il bilanciatore del carico.
  • Nella configurazione del cluster Pacemaker:
    • Modifica la classe della risorsa VIP esistente.
    • Sostituisci i parametri esistenti per l'alias IP con i parametri per il servizio di controllo di integrità.

Conferma l'indirizzo VIP esistente

Come utente root, nell'istanza VM principale, visualizza la configurazione del cluster basata su alias IP esistente:

$ pcs configure show

Nella definizione della risorsa viene visualizzato l'intervallo di indirizzi VIP. sulle risorse alias e IPaddr2. Per modificare l'indirizzo VIP, devi aggiornare entrambe le risorse. Vedi il seguente esempio:

Resource rsc_alias (class=ocf provider=heartbeat type=gcp-vpc-move-vip) \
               Attributes: alias_ip=10.10.0.90/32
               Operations: monitor interval=60s timeout=60s (vip_hkn_00-monitor-interval-60s)
               start interval=0s timeout=600s
               stop interval=0s timeout=20s
Resource rsc_vip(class=ocf provider=heartbeat type=IPaddr2) \
               Attributes: cidr_netmask=32 ip=10.10.0.90 nic=eth0
               Operations: monitor interval=10s timeout=20s (vip_hkn_00-monitor-interval-10s)
               start interval=0s timeout=20s (vip_hkn_00-start-interval-0s)
               stop interval=0s timeout=20s (vip_hkn_00-stop-interval-0s)

Nella console Google Cloud, verifica che l'indirizzo IP utilizzato con l'IP alias sia riservato. L'indirizzo IP può essere l'indirizzo IP utilizzato per l'IP alias o può essere un nuovo indirizzo IP.

$ gcloud compute addresses list --filter="region:( cluster-region )"

Se l'indirizzo IP è riservato e allocato all'istanza VM principale, il relativo stato viene visualizzato come IN_USE. Quando riallochi l'IP al bilanciatore del carico, lo devi prima deallocare dall'IP principale all'istanza e a quel punto il suo stato diventa RESERVED.

Se l'indirizzo non è incluso negli indirizzi IP restituiti dal list, prenotalo ora per evitare conflitti di indirizzi in futuro:

$ gcloud compute addresses create vip-name \
  --region cluster-region --subnet cluster-subnet \
  --addresses vip-address

Elenca di nuovo i tuoi indirizzi per verificare che l'indirizzo IP venga visualizzato come RESERVED.

Configurare il supporto del failover di Cloud Load Balancing

Il servizio bilanciatore del carico di rete passthrough interno con supporto del failover instrada il traffico all'host attivo in un cluster SAP HANA in base a un servizio di controllo di integrità.

Per evitare conflitti e consentire test prima della migrazione completato, devi creare un modulo di inoltro temporaneo con un indirizzo IP segnaposto della stessa subnet dell'indirizzo VIP. Quando è tutto pronto per il passaggio all'implementazione del VIP, crea una nuova regola di inoltro finale con l'indirizzo VIP.

Prenota un indirizzo IP temporaneo per l'IP virtuale

Indirizzo VIP segue il sistema SAP HANA attivo. Il bilanciatore del carico indirizza il traffico inviato all'indirizzo VIP alla VM che attualmente ospita il sistema SAP HANA attivo.

  1. Apri Cloud Shell:

    Vai a Cloud Shell

  2. Prenota un indirizzo IP temporaneo per la stessa subnet dell'indirizzo IP dell'alias a scopo di test. Se ometti il flag --addresses, un indirizzo IP nella subnet specificata scelti per te:

    $ gcloud compute addresses create VIP_NAME \
      --region CLUSTER_REGION --subnet CLUSTER_SUBNET \
      --addresses VIP_ADDRESS

    Per ulteriori informazioni sulla prenotazione di un IP statico, vedi Prenotare un indirizzo IP interno statico.

  3. Conferma prenotazione dell'indirizzo IP:

    $ gcloud compute addresses describe VIP_NAME \
      --region CLUSTER_REGION

    Dovresti vedere un output simile all'esempio seguente:

    address: 10.0.0.19
    addressType: INTERNAL
    creationTimestamp: '2020-05-20T14:19:03.109-07:00'
    description: ''
    id: '8961491304398200872'
    kind: compute#address
    name: vip-for-hana-ha
    networkTier: PREMIUM
    purpose: GCE_ENDPOINT
    region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/addresses/vip-for-hana-ha
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-subnet-us-central1

Crea gruppi di istanze per le VM host

  1. In Cloud Shell, crea due gruppi di istanze non gestite e assegna la VM dell'host master principale all'una e la VM dell'host master secondario all'altra:

    $ gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE \
      --instances=PRIMARY_HOST_NAME
    $ gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE \
      --instances=SECONDARY_HOST_NAME
    
  2. Conferma la creazione dei gruppi di istanze:

    $ gcloud compute instance-groups unmanaged list

    Dovresti vedere un output simile all'esempio seguente:

    NAME          ZONE           NETWORK          NETWORK_PROJECT        MANAGED  INSTANCES
    hana-ha-ig-1  us-central1-a  example-network  example-project-123456 No       1
    hana-ha-ig-2  us-central1-c  example-network  example-project-123456 No       1

Crea un controllo di integrità di Compute Engine

  1. In Cloud Shell, crea il controllo di integrità. Per la porta utilizzata dal controllo di integrità, scegli una porta privata intervallo, 49152-65535, per evitare conflitti con altri servizi. I valori di intervallo di controllo e di timeout sono leggermente più lunghi dei valori predefiniti in modo da aumentare la tolleranza di failover durante gli eventi di migrazione live di Compute Engine. Se necessario, puoi modificare i valori:

    $ gcloud compute health-checks create tcp HEALTH_CHECK_NAME --port=HEALTHCHECK_PORT_NUM \
      --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \
      --healthy-threshold=2
  2. Conferma la creazione del controllo di integrità:

    $ gcloud compute health-checks describe HEALTH_CHECK_NAME

    Dovresti vedere un output simile al seguente esempio:

    checkIntervalSec: 10
    creationTimestamp: '2020-05-20T21:03:06.924-07:00'
    healthyThreshold: 2
    id: '4963070308818371477'
    kind: compute#healthCheck
    name: hana-health-check
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/hana-health-check
    tcpHealthCheck:
     port: 60000
     portSpecification: USE_FIXED_PORT
     proxyHeader: NONE
    timeoutSec: 10
    type: TCP
    unhealthyThreshold: 2

Crea una regola firewall per i controlli di integrità

Definisci una regola firewall per una porta nell'intervallo privato che consenta l'accesso alle VM host dagli intervalli IP utilizzati dai controlli di salute di Compute Engine, 35.191.0.0/16 e 130.211.0.0/22. Per saperne di più, consulta Creare regole firewall per i controlli di integrità.

  1. Se non ne hai già uno, aggiungi un tag di rete alle VM host. Questo tag di rete viene utilizzato dalla regola firewall per i controlli di integrità.

    $ gcloud compute instances add-tags PRIMARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone PRIMARY_ZONE
    $ gcloud compute instances add-tags SECONDARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone SECONDARY_ZONE
    
  2. Se non ne hai già una, crea una regola firewall per consentire i controlli di integrità:

    $ gcloud compute firewall-rules create RULE_NAME \
      --network NETWORK_NAME \
      --action ALLOW \
      --direction INGRESS \
      --source-ranges 35.191.0.0/16,130.211.0.0/22 \
      --target-tags NETWORK_TAGS \
      --rules tcp:HLTH_CHK_PORT_NUM

    Ad esempio:

    gcloud compute firewall-rules create  fw-allow-health-checks \
    --network example-network \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges 35.191.0.0/16,130.211.0.0/22 \
    --target-tags cluster-ntwk-tag \
    --rules tcp:60000

Configura il bilanciatore del carico e il gruppo di failover

  1. Crea il servizio di backend del bilanciatore del carico:

    $ gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme internal \
      --health-checks HEALTH_CHECK_NAME \
      --no-connection-drain-on-failover \
      --drop-traffic-if-unhealthy \
      --failover-ratio 1.0 \
      --region CLUSTER_REGION \
      --global-health-checks
  2. Aggiungi il gruppo di istanze principali al servizio di backend:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group PRIMARY_IG_NAME \
      --instance-group-zone PRIMARY_ZONE \
      --region CLUSTER_REGION
  3. Aggiungi il gruppo di istanze di failover secondario al servizio di backend:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group SECONDARY_IG_NAME \
      --instance-group-zone SECONDARY_ZONE \
      --failover \
      --region CLUSTER_REGION
  4. Crea una regola di inoltro temporanea. Per l'indirizzo IP, specifica l'indirizzo IP temporaneo che hai riservato per i test. Se hai bisogno di accedere al sistema SAP HANA dall'esterno della regione specificato di seguito, includi il flag --allow-global-access nel definizione:

    $ gcloud compute forwarding-rules create RULE_NAME \
      --load-balancing-scheme internal \
      --address VIP_ADDRESS \
      --subnet CLUSTER_SUBNET \
      --region CLUSTER_REGION \
      --backend-service BACKEND_SERVICE_NAME \
      --ports ALL

    Per saperne di più sull'accesso tra regioni al sistema SAP HANA di alta disponibilità, consulta Bilanciamento del carico TCP/UDP interno.

Testa la configurazione del bilanciatore del carico

Anche se i gruppi di istanze di backend non verranno registrati come integri fino a più tardi, puoi testare la configurazione del bilanciatore del carico impostando un listener per rispondere ai controlli di integrità. Dopo aver configurato un ascoltatore, se il bilanciatore del carico è configurato correttamente, lo stato dei gruppi di istanze di backend diventa Stabile.

Le sezioni seguenti presentano diversi metodi che puoi utilizzare per testare la configurazione.

Test del bilanciatore del carico con l'utilità socat

Puoi utilizzare l'utilità socat per ascoltare temporaneamente sulla porta di controllo di stato.

  1. Su entrambe le VM host, installa l'socat utility:

    $ sudo yum install -y socat

  2. Avvia un processo socat per ascoltare per 60 secondi sulla porta di controllo di integrità:

    $ sudo timeout 60s socat - TCP-LISTEN:HLTH_CHK_PORT_NUM,fork

  3. In Cloud Shell, dopo aver atteso qualche secondo affinché il controllo di integrità rilevi il listener, controlla lo stato dei gruppi di istanze di backend:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    Dovresti vedere un output simile al seguente:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth

Test del bilanciatore del carico utilizzando la porta 22

Se la porta 22 è aperta per le connessioni SSH sulle VM host, puoi modificare temporaneamente il controllo di integrità in modo che utilizzi la porta 22, che ha un listener in grado di rispondere al controllo di integrità.

Per utilizzare temporaneamente la porta 22, segui questi passaggi:

  1. Fai clic sul controllo di integrità nella console:

    Vai alla pagina Controlli di integrità

  2. Fai clic su Modifica.

  3. Nel campo Porta, imposta il numero di porta su 22.

  4. Fai clic su Salva e attendi un paio di minuti.

  5. In Cloud Shell, controlla lo stato dei gruppi di istanze di backend:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    Dovresti vedere un output simile al seguente:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth
  6. Al termine, reimposta il numero di porta del controllo di integrità originale numero di porta.

Eseguire la migrazione dell'implementazione VIP per utilizzare il bilanciatore del carico

I passaggi seguenti modificano la configurazione del cluster Pacemaker regola di forwarding del bilanciatore del carico per completare la migrazione VIP.

Prepara il sistema per la modifica

  1. Se puoi, interrompi la connessione dell'applicazione SAP al database SAP HANA perché interromperai per breve tempo la connessione per scambiare gli indirizzi IP. I processi di lavoro NetWeaver sono in grado di ricollegarsi al database, ma potresti riscontrare errori o situazioni di blocco, che possono essere evitate interrompendo la connessione. Assicurati che il tuo indirizzo IP sia registrato in un intervallo interno che fa parte della tua VPC nella regione di destinazione.

  2. Come root sull'istanza principale attiva, metti il cluster in manutenzione modalità:

    $ pcs property set maintenance-mode="true"

  3. Esegui il backup della configurazione del cluster:

    $ pcs config show > clusterconfig.backup

Dealloca l'IP alias

  1. In Cloud Shell, conferma gli intervalli IP alias che sono Assegnato all'istanza principale di SAP HANA:

    $ gcloud compute instances describe \
        primary-host-name \
        --zone primary-zone \
        --format="flattened(name,networkInterfaces[].aliasIpRanges)"
  2. Nella console Google Cloud, aggiorna l'interfaccia di rete. Se non è necessario conservare gli IP alias, specifica --aliases "":

    $ gcloud compute instances network-interfaces update primary-host-name \
    --zone primary-zone \
    --aliases "ip-ranges-to-retain"

Crea la regola di forwarding VIP ed esegui la pulizia

  1. Nella console Google Cloud, crea una nuova regola di forwarding front-end per il bilanciatore del carico, specificando l'indirizzo IP utilizzato in precedenza per l'IP alias come indirizzo IP. Questo è il tuo VIP.

    $ gcloud compute forwarding-rules create rule-name \
      --load-balancing-scheme internal \
      --address vip-address \
      --subnet cluster-subnet \
      --region cluster-region \
      --backend-service backend-service-name \
      --ports ALL
  2. Conferma la creazione della regola di forwarding e prendi nota del nome del regola di forwarding temporanea per l'eliminazione:

    $ gcloud compute forwarding-rules list
  3. Elimina la regola di forwarding temporaneo:

    $ gcloud compute forwarding-rules delete rule-name --region=cluster-region
  4. Rilascia l'indirizzo IP temporaneo che hai prenotato:

    $ gcloud compute addresses delete temp-ip-name --region=cluster-region

Installa i listener e crea una risorsa di controllo di integrità

Per configurare una risorsa per il controllo di integrità, devi prima installare i listener.

Installa un listener

Il bilanciatore del carico utilizza un listener sulla porta di controllo di integrità di ciascun host per determinare dove è in esecuzione l'istanza principale del cluster SAP HANA. 1. Come utente root nell'istanza principale sui sistemi principali e secondari, installa un listener TCP. Queste istruzioni installare e utilizzare HAProxy come listener.

# yum install haproxy

  1. Apri il file di configurazione haproxy.cfg per la modifica:

    # vi /etc/haproxy/haproxy.cfg
    1. Nella sezione defaults di haproxy.cfg, modifica mode in tcp.

    2. Dopo la sezione relativa ai valori predefiniti, crea una nuova sezione aggiungendo:

      #---------------------------------------------------------------------
      # Health check listener port for SAP HANA HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
        bind *:healthcheck-port-num

      La porta di associazione è la stessa utilizzata per creare il controllo di integrità.

      Al termine, gli aggiornamenti dovrebbero essere simili al seguente esempio:

      #---------------------------------------------------------------------
      # common defaults that all the 'listen' and 'backend' sections will
      # use if not designated in their block
      #---------------------------------------------------------------------
      defaults
        mode                    tcp
        log                     global
        option                  tcplog
        option                  dontlognull
        option http-server-close
        # option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
      
      #---------------------------------------------------------------------
      # Set up health check listener for SAP HANA HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
       bind *:60000
  2. Su ogni host, come utente root, avvia il servizio per verificare che sia configurato correttamente:

    # systemctl start haproxy.service
  3. Nella pagina Bilanciatore del carico della console Google Cloud, fai clic sulla voce del bilanciatore del carico:

    Pagina Bilanciamento del carico

    Nella sezione Backend della pagina Dettagli bilanciatore del carico, se il servizio HAProxy è attivo su entrambi gli host, nella colonna Intatto di ogni voce del gruppo di istanze viene visualizzato 1/1.

    La schermata mostra "1/1" nella colonna Integro di entrambi i gruppi di istanze, indicando che sono entrambi integri.

  4. Su ogni host, interrompi il servizio HAProxy:

    # systemctl stop haproxy.service

    Dopo aver interrotto il servizio HAProxy su ogni host, nella colonna Intatto di ogni gruppo di istanze viene visualizzato 0/1.

    L'acquisizione schermo mostra "0/1" nella colonna Stato di ogni
gruppo di istanze, a indicare che non è presente alcun listener attivo.

    In seguito, quando viene configurato il controllo di integrità, il cluster riavvia listener sul nodo master.

Crea la risorsa di controllo di integrità

  1. Su entrambi gli host come utente root, crea una risorsa di controllo di integrità per il servizio HAProxy:

    # pcs resource create healthcheck_resource_name service:haproxy op monitor interval=10s timeout=20s

Modifica la configurazione del cluster per utilizzare la risorsa del controllo di integrità e rimuovere la risorsa alias

  1. Rimuovi Colocation Constraints per il gruppo esistente che contiene il Risorsa IP alias mappata all'istanza principale di SAP HANA:

    # pcs constraint remove colocation-alias-vip-group-sap_hana_resource_name
  2. Crea un nuovo gruppo di risorse che raggruppi le risorse VIP e di controllo di integrità:

    # pcs resource group add rsc-group-namehealthcheck_resource_namevip_resource_name

    Questo comando sostituisce il nome del gruppo precedente delle risorse IP e VIP dell'alias con il nuovo nome del gruppo di risorse nella configurazione del cluster.

  3. Verifica il nuovo nome del gruppo di risorse nella configurazione del cluster:

    # pcs config show

    Dovresti vedere un output simile al seguente esempio:

    Group: ilb-vip-group
    Resource: vip_hkn_00 (class=ocf provider=heartbeat type=IPaddr2)
     Attributes: cidr_netmask=32 ip=10.10.0.90 nic=eth0
     Operations: monitor interval=10s timeout=20s (vip_hkn_00-monitor-interval-10s)
                 start interval=0s timeout=20s (vip_hkn_00-start-interval-0s)
                 stop interval=0s timeout=20s (vip_hkn_00-stop-interval-0s)
    Resource: ilb-health-check (class=service type=haproxy)
     Operations: monitor interval=60 timeout=100 (ilb-health-check-monitor-interval-60)
                 start interval=0s timeout=100 (ilb-health-check-start-interval-0s)
                 stop interval=0s timeout=100 (ilb-health-check-stop-interval-0s)
     
  4. Elimina la risorsa alias:

    # pcs resource delete alias_resource_name
  5. Verifica lo stato del cluster:

    # pcs status

    Nell'output dovresti vedere la sezione Gruppo di risorse simile all'esempio seguente:

    STONITH-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-ha-vm-1
    Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22]
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
    Resource Group: g-primary
        rsc_healthcheck_HA1        (service:haproxy):      Started hana-ha-vm-1
        rsc_vip_HA1_22     (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
    

  6. Disattiva la modalità di manutenzione del cluster:

    # pcs property set maintenance-mode=false

Testa il cluster ad alta disponibilità aggiornato

Dall'istanza dell'applicazione, verifica di poter raggiungere il database utilizzando uno dei seguenti comandi:

  • Come utente sidadm:

    > R3trans -d
  • Come qualsiasi utente:

    telnet VIP HANA SQL port

    o

    nc -zv VIP HANA SQL port