Distribuire un sistema di SAP HANA con scale-out con un nodo standby in macchine virtuali di Azure usando Azure NetApp Files su SUSE Linux Enterprise Server
Questo articolo descrive come distribuire un sistema SAP HANA con disponibilità elevata in una configurazione con scale-out con standby in macchine virtuali Linux (VM), usando Azure NetApp Files per i volumi di archiviazione condivisi.
Nelle configurazioni di esempio, i comandi di installazione e così via, l'istanza di HANA è 03 e l'ID di sistema HANA è HN1. Gli esempi sono basati su HANA 2.0 SP4 e SUSE Linux Enterprise Server per SAP 12 SP4.
Prima di iniziare, fare riferimento alle note e ai documenti SAP seguenti:
- Documentazione di Azure NetApp Files
- La nota SAP 1928533 include:
- Un elenco delle dimensioni delle VM di Azure supportate per la distribuzione di software SAP
- Importanti informazioni sulla capacità per le dimensioni delle VM di Azure
- Software SAP e combinazioni di sistemi operativi e database supportati
- Versione del kernel SAP richiesta per Windows e Linux in Microsoft Azure
- Nota SAP 2015553: elenca i prerequisiti per le distribuzioni di software SAP supportate da SAP in Azure
- Nota SAP 2205917: contiene le impostazioni consigliate del sistema operativo per SUSE Linux Enterprise Server for SAP Applications
- Nota SAP 1944799: contiene le linee guida SAP per SUSE Linux Enterprise Server for SAP Applications
- Nota SAP 2178632: contiene informazioni dettagliate su tutte le metriche di monitoraggio segnalate per SAP in Azure
- Nota SAP 2191498: contiene la versione dell'agente host SAP per Linux necessaria in Azure
- Nota SAP 2243692: contiene informazioni sulle licenze SAP in Linux in Azure
- Nota SAP 1984787: contiene informazioni generali su SUSE LINUX Enterprise Server 12
- Nota SAP 1999351: contiene informazioni aggiuntive sulla risoluzione dei problemi per l'estensione di monitoraggio avanzato di Azure per SAP
- Nota SAP 1900823: contiene informazioni sui requisiti di archiviazione di SAP HANA
- Community Wiki SAP: contiene tutte le note su SAP necessarie per Linux
- Pianificazione e implementazione di Macchine virtuali di Azure per SAP in Linux
- Distribuzione di Macchine virtuali di Azure per SAP in Linux
- Distribuzione DBMS di Macchine virtuali di Azure per SAP in Linux
- Guide alle procedure consigliate per SUSE SAP HA: contiene tutte le informazioni necessarie per configurare la disponibilità elevata netWeaver e la replica di sistema SAP HANA in locale (da usare come baseline generale; forniscono informazioni molto più dettagliate)
- Note sulla versione di SUSE High Availability Extension 12 SP3
- Volumi NFS v4.1 in Azure NetApp Files per SAP HANA
Panoramica
Un metodo per ottenere la disponibilità elevata di HANA consiste nel configurare il failover automatico dell'host. Per configurare il failover automatico dell'host, aggiungere una o più macchine virtuali al sistema HANA e configurarle come nodi di standby. Quando il nodo attivo ha esito negativo, un nodo di standby lo sostituisce automaticamente. Nella configurazione presentata con le macchine virtuali di Azure si ottiene il failover automatico usando NFS in Azure NetApp Files.
Nota
Il nodo standby deve accedere a tutti i volumi di database. I volumi HANA devono essere montati come volumi NFSv4. Il meccanismo di blocco basato su lease dei file migliorato nel protocollo NFSv4 viene usato per I/O
l'isolamento.
Importante
Per compilare la configurazione supportata, è necessario distribuire i volumi di dati e di log HANA come volumi NFSv4.1 e montarli usando il protocollo NFSv4.1. La configurazione del failover automatico dell'host HANA con il nodo standby non è supportata con NFSv3.
Nel diagramma precedente, tre subnet sono rappresentate all'interno di una rete virtuale di Azure, seguendo le raccomandazioni sulla rete SAP HANA:
- Per la comunicazione client
- Per la comunicazione con il sistema di archiviazione
- Per la comunicazione interna tra nodi HANA
I volumi di Azure NetApp si trovano in subnet separate, delegate ad Azure NetApp Files.
Per questa configurazione di esempio, le subnet sono:
client
10.23.0.0/24storage
10.23.2.0/24hana
10.23.3.0/24anf
10.23.1.0/26
Configurare l'infrastruttura Azure NetApp Files
Prima di procedere con la configurazione dell'infrastruttura Azure NetApp Files, acquisire familiarità con la documentazione di Azure NetApp Files.
Azure NetApp Files è disponibile in numerose aree di Azure. Verificare se l'area di Azure selezionata offre Azure NetApp Files.
Per informazioni sulla disponibilità di Azure NetApp Files per area di Azure, vedere Disponibilità di Azure NetApp Files in base all'area di Azure.
Considerazioni importanti
Durante la creazione di Azure NetApp Files per SAP NetWeaver nell'architettura a disponibilità elevata SUSE, tenere presente le considerazioni importanti documentate nei volumi NFS v4.1 in Azure NetApp Files per SAP HANA.
Dimensionamento per il database HANA in Azure NetApp Files
La velocità effettiva di un volume di Azure NetApp Files è una funzione delle dimensioni del volume e del livello di servizio, come documentato in Livelli di servizio per Azure NetApp Files.
Durante la progettazione dell'infrastruttura per SAP HANA in Azure con Azure NetApp Files, tenere presente le raccomandazioni nei volumi NFS v4.1 in Azure NetApp Files per SAP HANA.
La configurazione in questo articolo viene presentata con semplici volumi di Azure NetApp Files.
Importante
Per i sistemi di produzione, dove le prestazioni sono fondamentali, è consigliabile valutare e prendere in considerazione l'uso di un gruppo di volumi di applicazioni di Azure NetApp Files per SAP HANA.
Distribuire le risorse di Azure NetApp Files
Le istruzioni seguenti presuppongono che la rete virtuale di Azure sia già stata implementata. Le risorse di Azure NetApp Files e tutte le macchine virtuali, in cui le risorse di Azure NetApp Files verranno montate, devono essere distribuite nella stessa istanza di Rete virtuale di Azure o in reti virtuali di Azure con peering.
Creare un account NetApp nell'area di Azure selezionata seguendo le istruzioni in Creare un account NetApp.
Configurare un pool di capacità di Azure NetApp Files, seguendo le istruzioni su come Configurare un pool di capacità Azure NetApp Files.
L'architettura HANA presentata in questo articolo usa un singolo pool di capacità di Azure NetApp Files con livello di servizio Ultra. Per i carichi di lavoro HANA in Azure, è consigliabile usare il livello di servizio di Azure NetApp Files Ultra o Premium.
Delegare una subnet ai file di Azure NetApp come descritto nelle istruzioni per Delegare una subnet a Azure NetApp Files.
Distribuire volumi di Azure NetApp Files seguendo le istruzioni riportate in Creare un volume NFS per Azure NetApp Files.
Durante la distribuzione dei volumi, accertarsi di selezionare la versione NFSv4.1. Attualmente, l'accesso a NFSv4.1 richiede l'aggiunta a un elenco di elementi consentiti. Distribuire i volumi nella subnet di Azure NetApp Files designata. Gli indirizzi IP dei volumi di Azure NetApp vengono assegnati automaticamente.
Le risorse di Azure NetApp Files e le macchine virtuali di Azure devono trovarsi nella stessa istanza di Rete virtuale di Azure o in reti virtuali di Azure con peering. Ad esempio, HN1-data-mnt00001, HN1-log-mnt00001 e così via sono i nomi di volume, e nfs://10.23.1.5/HN1-data-mnt00001, nfs://10.23.1.4/HN1-log-mnt00001 e così via, sono i percorsi di file per i volumi di Azure NetApp Files.
- volume HN1-data-mnt00001 (nfs://10.23.1.5/HN1-data-mnt00001)
- volume HN1-data-mnt00002(nfs://10.23.1.6/HN1 -data-mnt00002)
- volume HN1-log-mnt00001 (nfs://10.23.1.4/HN1-log-mnt00001)
- volume HN1-log-mnt00002 (nfs://10.23.1.6/HN1-log-mnt00002)
- volume HN1-condiviso (nfs://10.23.1.4/HN1-condiviso)
In questo esempio è stato usato un volume separato di Azure NetApp Files per ogni volume di dati e log HANA. Per una configurazione più ottimizzata per i costi in sistemi più piccoli o non produttivi, è possibile collocare tutti i montaggi dei dati e tutti i montaggi dei log su un singolo volume.
Distribuire macchine virtuali Linux tramite il portale di Azure
Per prima cosa è necessario creare i volumi Azure NetApp Files. Quindi eseguire la procedura seguente:
Creare le subnet di rete virtuale di Azure nella rete virtuale di Azure.
Distribuire le macchine virtuali.
Creare le interfacce di rete aggiuntive e collegare le interfacce di rete alle macchine virtuali corrispondenti.
Ogni macchina virtuale ha tre interfacce di rete, che corrispondono alle tre subnet di rete virtuale di Azure (
client
,storage
ehana
).Per ulteriori informazioni, vedere Creare una macchina virtuale Linux in Azure con più schede di interfaccia di rete.
Importante
Per carichi di lavoro SAP HANA, è fondamentale una bassa latenza. Per ottenere una latenza bassa, collaborare con il rappresentante Microsoft per assicurarsi che le macchine virtuali e i volumi Azure NetApp Files vengano distribuiti in prossimità. Quando si esegue l'onboarding di un nuovo sistema SAP HANA che usa SAP HANA Azure NetApp Files, inviare le informazioni necessarie.
Le istruzioni successive presuppongono che sia già stato creato il gruppo di risorse, la rete virtuale di Azure e le tre subnet di rete virtuale di Azure: client
, storage
e hana
. Quando si distribuiscono le macchine virtuali, selezionare la subnet client, in modo che l'interfaccia di rete client sia l'interfaccia primaria nelle macchine virtuali. Sarà anche necessario configurare un percorso esplicito alla subnet delegata di Azure NetApp Files tramite il gateway della subnet di archiviazione.
Importante
Accertarsi che il sistema operativo selezionato sia dotato di certificazione SAP per SAP HANA sugli specifici tipi di macchina virtuale in uso. Per ottenere un elenco dei tipi di macchina virtuale certificati per SAP HANA e delle versioni di sistema operativo correlate, vedere il sito delle piattaforme IaaS certificate per SAP HANA. Fare clic sui dettagli del tipo di macchina virtuale elencato per ottenere l'elenco completo delle versioni del sistema operativo supportate da SAP HANA per tale tipo.
Creare un set di disponibilità per SAP HANA. Accertarsi di impostare il dominio di aggiornamento massimo.
Creare tre macchine virtuali (hanadb1, hanadb2, hanadb3) seguendo questa procedura:
a. Usare un'immagine SLES4SAP nella raccolta di Azure supportata per SAP HANA.
b. Selezionare il set di disponibilità creato in precedenza per SAP HANA.
c. Selezionare la subnet della rete virtuale di Azure client. Selezionare Rete accelerata.
Quando si distribuiscono le macchine virtuali, il nome dell'interfaccia di rete viene generato automaticamente. In queste istruzioni, per semplicità si farà riferimento alle interfacce di rete generate automaticamente, collegate alla subnet della rete virtuale di Azure client, come hanadb1-client, hanadb2-client e hanadb3-client.
Creare tre interfacce di rete, una per ogni macchina virtuale, per la
storage
subnet di rete virtuale (in questo esempio, hanadb1-storage, hanadb2-storage e hanadb3-storage).Creare tre interfacce di rete, una per ogni macchina virtuale, per la
hana
subnet di rete virtuale (in questo esempio, hanadb1-hana, hanadb2-hana e hanadb3-hana).Collegare le interfacce di rete virtuale appena create alle macchine virtuali corrispondenti seguendo questa procedura:
- Passare alla macchina virtuale nel portale di Azure.
- Nel riquadro sinistro, selezionare Macchine virtuali. Filtrare in base al nome della macchina virtuale (ad esempio, hanadb1) e poi selezionare la macchina virtuale.
- Nel riquadro Panoramica, selezionare Arresta per deallocare la macchina virtuale.
- Selezionare Rete e poi collegare l'interfaccia di rete. Nell'elenco a discesa Collega interfaccia di rete, selezionare le interfacce di rete già create per le subnet
storage
ehana
. - Seleziona Salva.
- Ripetere i passaggi b-e per le macchine virtuali rimanenti (in questo esempio hanadb2 e hanadb3).
- Lasciare le macchine virtuali in stato di arresto per il momento. Successivamente, si abiliterà la rete accelerata per tutte le interfacce di rete appena collegate.
Abilitare la rete accelerata per le interfacce di rete aggiuntive per le subnet
storage
ehana
seguendo questa procedura:Aprire Azure Cloud Shell nel portale di Azure.
Eseguire i comandi seguenti per abilitare la rete accelerata per le interfacce di rete aggiuntive collegate alle subnet
storage
ehana
.az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-hana --accelerated-networking true
Avviare le macchine virtuali seguendo questa procedura:
- Nel riquadro sinistro, selezionare Macchine virtuali. Filtrare in base al nome della macchina virtuale (ad esempio, hanadb1) e poi selezionarlo.
- Nel riquadro Panoramica, selezionare Avvia.
Configurazione e preparazione del sistema operativo
Le istruzioni nelle sezioni successive sono precedute da una delle abbreviazioni seguenti:
- [A]: applicabile a tutti i nodi
- [1]: applicabile solo al nodo 1
- [1]: applicabile solo al nodo 2
- [3]: applicabile solo al nodo 3
Configurare e preparare il sistema operativo seguendo questa procedura:
[A] Gestire i file host nelle macchine virtuali. Includere voci per tutte le subnet. Per questo esempio sono state aggiunte le voci seguenti a
/etc/hosts
.# Storage 10.23.2.4 hanadb1-storage 10.23.2.5 hanadb2-storage 10.23.2.6 hanadb3-storage # Client 10.23.0.5 hanadb1 10.23.0.6 hanadb2 10.23.0.7 hanadb3 # Hana 10.23.3.4 hanadb1-hana 10.23.3.5 hanadb2-hana 10.23.3.6 hanadb3-hana
[A] Modificare le impostazioni di configurazione DHCP e cloud per l'interfaccia di rete per l'archiviazione per evitare modifiche indesiderate al nome host.
Le istruzioni seguenti presuppongono che l'interfaccia di rete di archiviazione sia
eth1
.vi /etc/sysconfig/network/dhcp # Change the following DHCP setting to "no" DHCLIENT_SET_HOSTNAME="no" vi /etc/sysconfig/network/ifcfg-eth1 # Edit ifcfg-eth1 #Change CLOUD_NETCONFIG_MANAGE='yes' to "no" CLOUD_NETCONFIG_MANAGE='no'
[A] Aggiungere un percorso di rete in modo che la comunicazione con Azure NetApp Files venga eseguita tramite l'interfaccia di rete di archiviazione.
Le istruzioni seguenti presuppongono che l'interfaccia di rete di archiviazione sia
eth1
.vi /etc/sysconfig/network/ifroute-eth1 # Add the following routes # RouterIPforStorageNetwork - - - # ANFNetwork/cidr RouterIPforStorageNetwork - - 10.23.2.1 - - - 10.23.1.0/26 10.23.2.1 - -
Riavviare la macchina virtuale per attivare le modifiche.
[AH] Preparare il sistema operativo per l'esecuzione di SAP HANA in NetApp Systems con NFS, come descritto nella nota SAP 3024346 - Impostazioni del kernel Linux per NetApp NFS. Creare il file di configurazione /etc/sysctl.d/91-NetApp-HANA.conf per le impostazioni di configurazione di NetApp.
vi /etc/sysctl.d/91-NetApp-HANA.conf # Add the following entries in the configuration file net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 131072 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.core.netdev_max_backlog = 300000 net.ipv4.tcp_slow_start_after_idle=0 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1
[A] Creare il file di configurazione /etc/sysctl.d/ms-az.conf con le impostazioni di configurazione di Microsoft per Azure.
vi /etc/sysctl.d/ms-az.conf # Add the following entries in the configuration file net.ipv6.conf.all.disable_ipv6 = 1 net.ipv4.tcp_max_syn_backlog = 16348 net.ipv4.conf.all.rp_filter = 0 sunrpc.tcp_slot_table_entries = 128 vm.swappiness=10
Evitare di impostare net.ipv4.ip_local_port_range e net.ipv4.ip_local_reserved_ports in modo esplicito nei file di configurazione sysctl per consentire all'agente host SAP di gestire gli intervalli di porte. Per ulteriori informazioni, vedere la nota SAP 2382421.
[AH] Regolare le impostazioni sunrpc, come consigliato nella nota SAP 3024346 - Impostazioni del kernel Linux per NetApp NFS.
vi /etc/modprobe.d/sunrpc.conf # Insert the following line options sunrpc tcp_max_slot_table_entries=128
Montare i volumi di Azure NetApp Files
[A] Creare punti di montaggio per i volumi di database HANA.
mkdir -p /hana/data/HN1/mnt00001 mkdir -p /hana/data/HN1/mnt00002 mkdir -p /hana/log/HN1/mnt00001 mkdir -p /hana/log/HN1/mnt00002 mkdir -p /hana/shared mkdir -p /usr/sap/HN1
[1] Creare directory specifiche del nodo per /usr/sap in HN1-condiviso.
# Create a temporary directory to mount HN1-shared mkdir /mnt/tmp # if using NFSv3 for this volume, mount with the following command mount 10.23.1.4:/HN1-shared /mnt/tmp # if using NFSv4.1 for this volume, mount with the following command mount -t nfs -o sec=sys,nfsvers=4.1 10.23.1.4:/HN1-shared /mnt/tmp cd /mnt/tmp mkdir shared usr-sap-hanadb1 usr-sap-hanadb2 usr-sap-hanadb3 # unmount /hana/shared cd umount /mnt/tmp
[A] Verificare l'impostazione del dominio NFS. Verificare che il dominio sia configurato come dominio di Azure NetApp Files predefinito, ad esempio
defaultv4iddomain.com
, e che il mapping sia impostato su nobody (nessuno).Importante
Verificare di impostare il dominio NFS in
/etc/idmapd.conf
sulla macchina virtuale in modo che corrisponda alla configurazione del dominio predefinito in Azure NetApp Files:defaultv4iddomain.com
. In caso di mancata corrispondenza tra la configurazione del dominio nel client NFS (ovvero la macchina virtuale) e nel server NFS, ad esempio la configurazione di Azure NetApp, le autorizzazioni per i file nei volumi Azure NetApp montati nelle VM verranno visualizzate comenobody
.sudo cat /etc/idmapd.conf # Example [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[A] Verificare
nfs4_disable_idmapping
. Il valore deve essere impostato su Y. Per creare la struttura di directory in cui si trovanfs4_disable_idmapping
, eseguire il comando mount. Non sarà possibile creare manualmente la directory in/sys/modules, perché l'accesso è riservato per il kernel/driver.# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 10.23.1.4:/HN1-shared /mnt/tmp umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
[A] Creare manualmente il gruppo e l'utente SAP HANA. Gli ID per il gruppo sapsys e l'utente hn1adm devono essere impostati sugli stessi ID, forniti durante l'onboarding. (In questo esempio, gli ID sono impostati su 1001.) Se gli ID non sono impostati correttamente, non sarà possibile accedere ai volumi. Gli ID per gli account sapsys e utente di gruppo hn1adm e sapadm devono essere gli stessi in tutte le macchine virtuali.
# Create user group sudo groupadd -g 1001 sapsys # Create users sudo useradd hn1adm -u 1001 -g 1001 -d /usr/sap/HN1/home -c "SAP HANA Database System" -s /bin/sh sudo useradd sapadm -u 1002 -g 1001 -d /home/sapadm -c "SAP Local Administrator" -s /bin/sh # Set the password for both user ids sudo passwd hn1adm sudo passwd sapadm
[A] Montare i volumi di Azure NetApp Files condivisi.
sudo vi /etc/fstab # Add the following entries 10.23.1.5:/HN1-data-mnt00001 /hana/data/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.6:/HN1-data-mnt00002 /hana/data/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.4:/HN1-log-mnt00001 /hana/log/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.6:/HN1-log-mnt00002 /hana/log/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.4:/HN1-shared/shared /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount all volumes sudo mount -a
Per i carichi di lavoro che richiedono una velocità effettiva maggiore, è consigliabile usare l'opzione di montaggio
nconnect
, come descritto in Volumi NFS v4.1 in Azure NetApp Files per SAP HANA. Controllare senconnect
è supportato da Azure NetApp Files nella versione Linux.[1] Montare i volumi specifici del nodo in hanadb1.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb1 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[2] Montare i volumi specifici del nodo in hanadb2.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb2 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[3] Montare i volumi specifici del nodo in hanadb3.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb3 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[A] Verificare che tutti i volumi HANA siano montati con la versione del protocollo NFS NFSv4.1.
sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from hanadb1 /hana/data/HN1/mnt00001 from 10.23.1.5:/HN1-data-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.5 /hana/log/HN1/mnt00002 from 10.23.1.6:/HN1-log-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6 /hana/data/HN1/mnt00002 from 10.23.1.6:/HN1-data-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6 /hana/log/HN1/mnt00001 from 10.23.1.4:/HN1-log-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4 /usr/sap/HN1 from 10.23.1.4:/HN1-shared/usr-sap-hanadb1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4 /hana/shared from 10.23.1.4:/HN1-shared/shared Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4
Installazione
In questo esempio per la distribuzione di SAP HANA nella configurazione scale-out con il nodo standby con Azure è stato usato HANA 2.0 SP4.
Prepararsi per l'installazione di HANA
[A] Prima dell'installazione di HANA, impostare la password radice. È possibile disabilitare la password radice dopo il completamento dell'installazione. Eseguire come
root
comandopasswd
.[1] Verificare che sia possibile accedere tramite SSH a hanadb2 e hanadb3, senza che venga richiesta una password.
ssh root@hanadb2 ssh root@hanadb3
[A] Installare pacchetti aggiuntivi, necessari per HANA 2.0 SP4. Per ulteriori informazioni, vedere la nota SAP 2593824.
sudo zypper install libgcc_s1 libstdc++6 libatomic1
[2], [3] Modificare la proprietà di SAP HANA
data
elog
delle directory in hn1adm.# Execute as root sudo chown hn1adm:sapsys /hana/data/HN1 sudo chown hn1adm:sapsys /hana/log/HN1
Installazione di HANA
[1] Installare SAP HANA seguendo le istruzioni riportate nella guida all'installazione e all'aggiornamento di SAP HANA 2.0. In questo esempio si installa SAP HANA scale-out con master, un ruolo di lavoro e un nodo di standby.
Avviare il programma hdblcm dalla directory del software di installazione di HANA. Usare il parametro
internal_network
e passare lo spazio degli indirizzi per la subnet, che viene usato per la comunicazione interna tra nodi HANA../hdblcm --internal_network=10.23.3.0/24
Immettere i valori seguenti al prompt:
- Per Scegli un'azione: immettere 1 (per l'installazione)
- Per Componenti aggiuntivi per l’installazione: immettere 2, 3
- Per il percorso di installazione, premere Invio (l'impostazione predefinita è /hana/shared)
- Per Nome host locale: premere Invio per accettare l'impostazione predefinita
- Per Intendi aggiungere host al sistema?: immettere y
- Per Immettere i nomi host delimitati da virgole: immettere hanadb2, hanadb3
- Per Immettere il nome utente radice [root]: premere Invio per accettare l'impostazione predefinita
- Per Root User Password: (Password utente radice) immettere la password dell'utente radice
- Per i ruoli per l'host hanadb2: immettere 1 (per il ruolo di lavoro)
- Per il Gruppo di failover host per l’host hanadb2 [impostazione predefinita]: premere Invio per accettare l’impostazione predefinita
- Per Immettere il numero di partizione di archiviazione per l'host hanadb2 [<<assegnare automaticamente>>]: premere Invio per accettare il valore predefinito
- Per il Gruppo del ruolo di lavoro per l’host hanadb2 [impostazione predefinita]: premere Invio per accettare l’impostazione predefinita
- Per Selezionare i ruoli per l'host hanadb3: immettere 2 (per standby)
- Per il Gruppo di failover host per l’host hanadb3 [impostazione predefinita]: premere Invio per accettare l’impostazione predefinita
- Per il Gruppo del ruolo di lavoro per l’host hanadb3 [impostazione predefinita]: premere Invio per accettare il valore predefinito
- Per ID di sistema SAP HANA: immettere HN1
- Per Numero di istanza [00]: immettere 03
- Per Gruppo di lavoro host locale [impostazione predefinita]: premere Invio per accettare l'impostazione predefinita
- Per Selezionare utilizzo del sistema / Immettere indice [4]: immettere 4 (per personalizzato).
- Per Posizione dei volumi di dati [/hana/data/HN1]: premere Invio per accettare il valore predefinito
- Per Posizione dei volumi di log [/hana/log/HN1]: premere Invio per accettare il valore predefinito
- Per Limitare l’allocazione massima della memoria? [n]: immettere n
- Per Nome host del certificato per hanadb1 [hanadb1]: premere Invio per accettare l’impostazione predefinita
- Per Nome host del certificato per l’host hanadb2 [hanadb2]: premere Invio per accettare l'impostazione predefinita
- Per Nome host del certificato per l’host hanadb3 [hanadb3]: premere Invio per accettare l'impostazione predefinita
- Per Password amministratore di sistema (hn1adm): immettere la password
- Per Password utente database di sistema (system): immettere la password del sistema
- Per Conferma password utente database di sistema (sistema):immettere la password del sistema
- Per Riavviare il sistema dopo il riavvio del computer? [n]: immettere n
- Per Continuare (y/n): convalidare il riepilogo e, se è tutto corretto, immettere y
[1] Verify global.ini.
Visualizzare global.ini e accertarsi che sia presente la configurazione per la comunicazione interna tra nodi di SAP HANA. Verificare la sezione di comunicazione. Deve avere lo spazio indirizzi per la subnet
hana
elisteninterface
deve essere impostata su.internal
. Verificare la sezione internal_hostname_resolution. Deve avere gli indirizzi IP per le macchine virtuali HANA che appartengono alla subnethana
.sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini # Example #global.ini last modified 2019-09-10 00:12:45.192808 by hdbnameserve [communication] internal_network = 10.23.3/24 listeninterface = .internal [internal_hostname_resolution] 10.23.3.4 = hanadb1 10.23.3.5 = hanadb2 10.23.3.6 = hanadb3
[1] Aggiungere il mapping dell'host per accertarsi che gli indirizzi IP client vengano usati per la comunicazione client. Aggiungere la sezione
public_host_resolution
e aggiungere gli indirizzi IP corrispondenti dalla subnet client.sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini #Add the section [public_hostname_resolution] map_hanadb1 = 10.23.0.5 map_hanadb2 = 10.23.0.6 map_hanadb3 = 10.23.0.7
[1] Riavviare SAP HANA per attivare le modifiche.
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
[1] Verificare che l'interfaccia client usi gli indirizzi IP della subnet per la comunicazione
client
.sudo -u hn1adm /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname # Expected result "hanadb3","net_publicname","10.23.0.7" "hanadb2","net_publicname","10.23.0.6" "hanadb1","net_publicname","10.23.0.5"
Per informazioni su come verificare la configurazione, vedere la nota SAP 2183363 - Configurazione della rete interna di SAP HANA.
Per ottimizzare SAP HANA per l'archiviazione di Azure NetApp Files soggiacente, impostare i parametri SAP HANA seguenti:
max_parallel_io_requests
128async_read_submit
inasync_write_submit_active
inasync_write_submit_blocks
tutto
Per ulteriori informazioni, vedere Configurazione dello stack di I/O per SAP HANA.
A partire dai sistemi SAP HANA 2.0, è possibile impostare i parametri in
global.ini
. Per ulteriori informazioni, vedere la nota SAP 1999930.Per i sistemi SAP HANA 1.0 versioni SPS12 e precedenti, questi parametri possono essere impostati durante l'installazione, come descritto nella nota SAP 2267798.
L'archiviazione usata da Azure NetApp Files ha una limitazione delle dimensioni del file di 16 terabyte (TB). SAP HANA non riconosce in modo implicito la limitazione di archiviazione e non crea automaticamente un nuovo file di dati quando viene raggiunto il limite di dimensioni del file di 16 TB. Quando SAP HANA tenta di aumentare il file oltre 16 TB, questo tentativo genererà errori e, in alcuni casi, un arresto anomalo del server di indicizzazione.
Importante
Per evitare che SAP HANA tenti di aumentare i file di dati oltre il limite di 16 TB del sottosistema di archiviazione, impostare i parametri seguenti in
global.ini
.
Testare il failover di SAP HANA
Nota
Questo articolo contiene riferimenti a termini che Microsoft non usa più. Quando questi termini verranno rimossi dal software, verranno rimossi da questo articolo.
Simulare un arresto anomalo del nodo in un nodo di lavoro SAP HANA. Effettua le operazioni seguenti:
Prima di simulare l'arresto anomalo del nodo, eseguire i comandi seguenti come hn1adm per acquisire lo stato dell'ambiente:
# Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
Per simulare un arresto anomalo del nodo, eseguire il comando seguente come radice nel nodo di lavoro, ovvero hanadb2 in questo caso:
echo b > /proc/sysrq-trigger
Monitorare il sistema per il completamento del failover. Al termine del failover, acquisire lo stato, che dovrebbe essere simile al seguente:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY # Check the landscape status /usr/sap/HN1/HDB03/exe/python_support> python landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | no | info | | | 2 | 0 | default | default | master 2 | slave | worker | standby | worker | standby | default | - | | hanadb3 | yes | info | | | 0 | 2 | default | default | master 3 | slave | standby | slave | standby | worker | default | default |
Importante
Quando un nodo subisce il kernel panic, evitare ritardi con il failover di SAP HANA impostando
kernel.panic
su 20 secondi in tutte le macchine virtuali HANA. Tutti i passaggi di configurazione vengono eseguiti in/etc/sysctl
. Riavviare le macchine virtuali per attivare la modifica. Se questa modifica non viene eseguita, il failover può richiedere 10 o più minuti quando un nodo riscontra un problema di kernel panic.
Chiudere il server dei nomi eseguendo le operazioni seguenti:
Prima del test, controllare lo stato dell'ambiente eseguendo i comandi seguenti come hn1adm:
#Landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY
Eseguire i comandi seguenti come hn1adm nel nodo master attivo, ovvero hanadb1 in questo caso:
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB kill
Il nodo di standby hanadb3 assumerà il ruolo di nodo master. Di seguito è riportato lo stato della risorsa dopo il completamento del test di failover:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | no | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
Riavviare l'istanza di HANA in hanadb1 (ovvero nella stessa macchina virtuale in cui è stato chiuso il server dei nomi). Il nodo hanadb1 entrerà di nuovo nell'ambiente e manterrà il ruolo di standby.
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB start
Dopo l'avvio di SAP HANA in hanadb1, prevedere lo stato seguente:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
Anche in questo caso, chiudere il server dei nomi nel nodo master attualmente attivo, ovvero nel nodo hanadb3.
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB kill
Il nodo hanadb1 riprenderà il ruolo del nodo master. Al termine del test di failover, lo stato sarà simile al seguente:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
Avviare SAP HANA in hanadb3, che sarà pronto per essere usato come nodo di standby.
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB start
Dopo l'avvio di SAP HANA in hanadb3, lo stato è simile al seguente:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
Passaggi successivi
- Pianificazione e implementazione di macchine virtuali di Azure per SAP
- Distribuzione di Macchine virtuali di Azure per SAP
- Distribuzione DBMS di macchine virtuali di Azure per SAP
- Volumi NFS v4.1 in Azure NetApp Files per SAP HANA
- Per informazioni su come ottenere la disponibilità elevata e un piano di ripristino di emergenza di SAP HANA nelle macchine virtuali di Azure, vedere Disponibilità elevata di SAP HANA nelle macchine virtuali di Azure (VM).