As implantações do SAP HANA no Google Cloud usam o layout de disco unificado ou o layout de disco dividido. No layout de disco unificado, um único disco é usado para hospedar todos os sistemas de arquivos do SAP HANA. No layout de disco dividido, cada sistema de arquivos do SAP HANA é hospedado em um disco separado. Para informações sobre esses layouts de disco, consulte Layouts de disco compatíveis.
OGoogle Cloud recomenda o uso do layout de disco dividido pelos seguintes motivos:
- Ele permite o ajuste independente do desempenho do disco para os sistemas de arquivos, principalmente
para
/hana/data
e/hana/log
, e principalmente quando você está usando o Hyperdisk. - Isso simplifica a manutenção.
Para ilustrar o procedimento de migração, este guia assume um sistema de exemplo e migra os sistemas de arquivos SAP HANA de um volume de disco permanente para um volume do Hyperdisk para cada sistema de arquivos. Você também pode usar esse procedimento para migrar os sistemas de arquivos do SAP HANA para volumes individuais de disco permanente.
Analisar as considerações sobre a migração
- Duração da migração de dados: em um sistema HA do SAP HANA, é possível diminuir a duração da migração de dados desregistrando o nó secundário, excluindo os bancos de dados do locatário e recuperando os registros. O procedimento descrito neste guia usa essa abordagem.
- Tempo de inatividade: em um sistema de alta disponibilidade do SAP HANA, primeiro migre o banco de dados secundário, torne-o o novo banco de dados principal e migre o antigo banco de dados principal. Isso ajuda a minimizar o tempo de inatividade.
- Reverter para discos atuais: no caso de qualquer problema durante a migração, é possível reverter para os discos atuais porque eles não são afetados por esse procedimento e permanecem disponíveis até serem excluídos. Para mais informações, consulte Usar discos existentes como alternativa.
Antes de começar
Antes de migrar os sistemas de arquivos do SAP HANA hospedados em um único disco para um disco para cada sistema de arquivos, verifique se as seguintes condições são atendidas:
- O SAP HANA está sendo executado em instâncias do Compute Engine certificadas pela SAP compatíveis com Hyperdisk.
- Um backup válido do banco de dados SAP HANA está disponível. Esse backup pode ser usado para restaurar o banco de dados, se necessário.
- Se a instância de destino do Compute Engine fizer parte de um cluster de alta disponibilidade (HA, na sigla em inglês), verifique se ele está no modo de manutenção.
- Se o banco de dados SAP HANA usar uma implantação de escalonamento horizontal, repita o procedimento deste guia para cada instância do SAP HANA.
- O banco de dados SAP HANA está em execução. Para sistemas de HA, verifique se a replicação está ativa entre as instâncias principal e secundária do banco de dados.
- Para encurtar o tempo de cópia de dados, remova todos os backups ou mídias desnecessários dos volumes do SAP HANA que você está migrando.
Valide se os sistemas de arquivos SAP HANA que você está migrando estão hospedados em um único disco executando o comando a seguir:
lsblk
A resposta será semelhante a: A saída pode ser diferente deste exemplo, dependendo da convenção de nomenclatura dos sistemas de arquivos SAP HANA ou se a instância de computação oferece suporte à interface de disco de memória não volátil express (NVMe).
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 2.3T 0 disk ├─vg_hana-shared 254:0 0 850G 0 lvm /hana/shared ├─vg_hana-sap 254:1 0 32G 0 lvm /usr/sap ├─vg_hana-log 254:2 0 425G 0 lvm /hana/log └─vg_hana-data 254:3 0 1T 0 lvm /hana/data sdc 8:32 0 1.7T 0 disk └─vg_hanabackup-backup 254:4 0 1.7T 0 lvm /hanabackup
Exemplo de sistema SAP
Para ilustrar o procedimento de migração, este guia faz o seguinte:
- Assume um exemplo de implantação de alta disponibilidade (HA) de escalonamento vertical do SAP HANA em que um
volume de disco permanente único hospeda os sistemas de arquivos
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
. - Migra os sistemas de arquivos para volumes individuais do Hyperdisk, que é semelhante na configuração do sistema de HA de escalonamento do SAP HANA implantado pelo Terraform: guia de configuração de cluster de alta disponibilidade do SAP HANA.
O diagrama a seguir mostra a arquitetura do sistema de exemplo antes e depois da migração dos sistemas de arquivos:
Os detalhes de configuração do sistema SAP de exemplo são os seguintes:
- Tipo de máquina:
n2-highmem-128
- SO: SLES para SAP 15 SP5
- SAP HANA: HANA 2 SPS07, Rev 78
- Tipo de disco usado pelo sistema: disco permanente SSD (
pd-ssd
) Os volumes
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
são montados no mesmo disco e configurados nas configurações de persistência do SAP HANA. Confira abaixo um exemplo das configurações de persistência para os volumes/hana/data
e/hana/log
de um sistema SAP HANA com SIDABC
:[persistence] basepath_datavolumes = /hana/data/ABC basepath_logvolumes = /hana/log/ABC
Migrar sistemas de arquivos para volumes individuais do Hyperdisk
Para migrar os sistemas de arquivos de uma implantação de HA de escalonamento vertical do SAP HANA de um único volume de disco permanente para um volume do Hyperdisk para cada sistema de arquivos, siga estas etapas:
- Prepare a instância secundária para a migração.
- Migrar a instância secundária.
- Promova a instância secundária.
- Migrar a instância principal anterior.
Preparar a instância secundária para a migração
Defina o cluster de alta disponibilidade no modo de manutenção:
crm maintenance on
Valide se a replicação do sistema HANA (HSR) está ativa:
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py
A resposta será semelhante a:
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py |Database |Host |Port |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary |Replication |Replication |Replication |Secondary | | | | | | | | |Host |Port |Site ID |Site Name |Active Status |Mode |Status |Status Details |Fully Synced | |-------- |----------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |----------- |------------- |----------- |----------- |-------------- |------------ | |SYSTEMDB |example-vm1 |30001 |nameserver | 1 | 1 |example-vm1 |example-vm2 | 30001 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30007 |xsengine | 2 | 1 |example-vm1 |example-vm2 | 30007 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30003 |indexserver | 3 | 1 |example-vm1 |example-vm2 | 30003 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | status system replication site "2": ACTIVE overall system replication status: ACTIVE Local System Replication State ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mode: PRIMARY site id: 1 site name: example-vm1
Cancele o registro da instância secundária do banco de dados SAP HANA:
hdbnsutil -sr_unregister
A saída mostra que a instância secundária do banco de dados foi desregistrada:
abcadm@example-vm2:/usr/sap/ABC/HDB00> hdbnsutil -sr_unregister unregistering site ... done. Performing Final Memory Release with 10 threads. Finished Final Memory Release successfully.
Na instância secundária do sistema SAP HANA, exclua todos os bancos de dados do locatário e recupere os registros:
Interromper um banco de dados de locatário:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM STOP DATABASE TENANT_DB_SID"
Substitua:
INSTANCE_NUMBER
: o número da instância do banco de dados do locatárioSYSTEM_DB_PASSWORD
: a senha do banco de dados do sistemaTENANT_DB_SID
: o SID do banco de dados do locatário, em que as letras são em maiúsculas
Exclua o banco de dados do locatário que você interrompeu:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "DROP DATABASE TENANT_DB_SID"
Recuperar registros:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM RECLAIM LOG"
Repita as etapas anteriores para todos os bancos de dados de locatário na instância secundária do sistema SAP HANA.
O exemplo a seguir mostra uma resposta bem-sucedida:
0 rows affected (overall time 9032.460 msec; server time 9032.273 msec)
Interrompa a instância secundária do sistema SAP HANA:
sapcontrol -nr INSTANCE_NUMBER -function Stop
Migrar a instância secundária
Crie um disco para cada sistema de arquivos SAP HANA. Para o sistema de exemplo assumido por este procedimento, crie quatro discos, um para cada
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
.Para definir o tamanho do disco para cada sistema de arquivos, use as informações de dimensionamento que aparecem na saída do comando
lsblk
para seu sistema.Para informações sobre o tamanho mínimo recomendado de disco, IOPS e capacidade de processamento que ajuda a atender aos requisitos de desempenho do SAP HANA, consulte Tamanhos mínimos para volumes de disco permanente e hiperdisco baseados em SSD.
gcloud compute disks create USR_SAP_DISK_NAME \ --project=PROJECT_ID \ --type=USR_SAP_DISK_TYPE \ --size=USR_SAP_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=USR_SAP_DISK_IOPS gcloud compute disks create SHARED_DISK_NAME \ --project=PROJECT_ID \ --type=SHARED_DISK_TYPE \ --size=SHARED_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=SHARED_DISK_IOPS gcloud compute disks create DATA_DISK_NAME \ --project=PROJECT_ID \ --type=DATA_DISK_TYPE \ --size=DATA_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=DATA_DISK_IOPS gcloud compute disks create LOG_DISK_NAME \ --project=PROJECT_ID \ --type=LOG_DISK_TYPE \ --size=LOG_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=LOG_DISK_IOPS
Substitua:
USR_SAP_DISK_NAME
: o nome que você quer definir para o disco que hospeda o volume/usr/sap
PROJECT_ID
: o ID do projeto Google CloudUSR_SAP_DISK_TYPE
: o tipo de Hyperdisk que você quer implantar para hospedar o volume/usr/sap
, comohyperdisk-extreme
.USR_SAP_DISK_SIZE
: o tamanho que você quer definir para o disco que hospeda o volume/usr/sap
ZONE
: a zona do Compute Engine em que você quer implantar os novos discosUSR_SAP_DISK_IOPS
: as IOPS que você quer definir para o Hyperdisk que está sendo criado para hospedar/hana/data
. Você define as IOPS de acordo com seus requisitos de desempenho.SHARED_DISK_NAME
: o nome que você quer definir para o disco que hospeda o volume/hana/shared
SHARED_DISK_TYPE
: o tipo de Hyperdisk que você quer implantar para hospedar o volume/hana/shared
, comohyperdisk-extreme
.SHARED_DISK_SIZE
: o tamanho que você quer definir para o disco que hospeda o volume/hana/shared
SHARED_DISK_IOPS
: as IOPS que você quer definir para o disco que hospeda o volume/hana/shared
.DATA_DISK_NAME
: o nome que você quer definir para o disco que hospeda o volume/hana/data
DATA_DISK_TYPE
: o tipo de Hyperdisk que você quer implantar para hospedar o volume/hana/data
, comohyperdisk-extreme
.DATA_DISK_SIZE
: o tamanho que você quer definir para o disco que hospeda o volume/hana/data
DATA_DISK_IOPS
: as IOPS que você quer definir para o disco que hospeda o volume/hana/data
.LOG_DISK_NAME
: o nome que você quer definir para o disco que hospeda o volume/hana/log
LOG_DISK_TYPE
: o tipo de Hyperdisk que você quer implantar para hospedar o volume/hana/log
, comohyperdisk-extreme
.LOG_DISK_SIZE
: o tamanho que você quer definir para o disco que hospeda o volume/hana/log
LOG_DISK_IOPS
: as IOPS que você quer definir para o disco que hospeda o volume/hana/log
.
Anexe os discos criados à instância do Compute Engine que hospeda a instância secundária do banco de dados SAP HANA:
gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=USR_SAP_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=SHARED_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=LOG_DISK_NAME \ --zone=ZONE
Substitua
SECONDARY_INSTANCE_NAME
pelo nome do Compute Engine que hospeda a instância secundária do banco de dados SAP HANA.Para usar o gerenciamento de volume lógico (LVM), siga estas etapas:
Crie volumes físicos para os novos discos que você criou e anexou:
pvcreate USR_SAP_PV_NAME pvcreate SHARED_PV_NAME pvcreate DATA_PV_NAME pvcreate LOG_PV_NAME
Substitua:
USR_SAP_PV_NAME
: o caminho de dispositivo real do disco que você criou para hospedar o volume/usr/sap
SHARED_PV_NAME
: o caminho de dispositivo real do disco que você criou para hospedar o volume/hana/shared
DATA_PV_NAME
: o caminho de dispositivo real do disco que você criou para hospedar o volume/hana/data
LOG_PV_NAME
: o caminho de dispositivo real do disco que você criou para hospedar o volume/hana/log
Crie grupos de volumes:
vgcreate vg_hana_usrsap USR_SAP_PV_NAME vgcreate vg_hana_shared SHARED_PV_NAME vgcreate vg_hana_data DATA_PV_NAME vgcreate vg_hana_log LOG_PV_NAME
Crie volumes lógicos:
lvcreate -l 100%FREE -n usrsap vg_hana_usrsap lvcreate -l 100%FREE -n shared vg_hana_shared lvcreate -l 100%FREE -n data vg_hana_data lvcreate -l 100%FREE -n log vg_hana_log
Crie o sistema de arquivos:
mkfs -t xfs /dev/vg_hana_usrsap/usrsap mkfs -t xfs /dev/vg_hana_shared/shared mkfs -t xfs /dev/vg_hana_data/data mkfs -t xfs /dev/vg_hana_log/log
Crie diretórios temporários para os sistemas de arquivos do SAP HANA:
mkdir -p /tmp/usr/sap mkdir -p /tmp/hana/shared mkdir -p /tmp/hana/data mkdir -p /tmp/hana/log
Monte os volumes recém-criados usando os diretórios temporários:
mount -o logbsize=256k /dev/vg_hana_usrsap/usrsap /tmp/usr/sap mount -o logbsize=256k /dev/vg_hana_shared/shared /tmp/hana/shared mount -o logbsize=256k /dev/vg_hana_data/data /tmp/hana/data mount -o logbsize=256k /dev/vg_hana_log/log /tmp/hana/log
Transfira os dados do volume de disco permanente de origem para os discos que você criou. Para isso, use
rsync
, snapshots do LVM ou qualquer outro método. O exemplo a seguir usa o utilitáriorsync
para transferência de dados:rsync -avz --progress /usr/sap/ /tmp/usr/sap/ rsync -avz --progress /hana/shared/ /tmp/hana/shared/ rsync -avz --progress /hana/data/ /tmp/hana/data/ rsync -avz --progress /hana/log/ /tmp/hana/log/
Desmonte os volumes lógicos mais antigos para os sistemas de arquivos SAP HANA:
umount /usr/sap umount /hana/shared umount /hana/data umount /hana/log
Remova a montagem dos volumes temporários que você criou para os sistemas de arquivos SAP HANA:
umount /tmp/usr/sap umount /tmp/hana/shared umount /tmp/hana/data umount /tmp/hana/log
Na instância do Compute Engine que hospeda a instância secundária do banco de dados SAP HANA, remova o volume de disco permanente que hospedava os sistemas de arquivos SAP HANA:
gcloud compute instances detach-disk SECONDARY_INSTANCE_NAME --disk=SOURCE_DISK_NAME \ --zone=ZONE
Substitua
SOURCE_DISK_NAME
pelo nome do volume de disco permanente que hospedava os sistemas de arquivos SAP HANA que você quer desconectar da instância de computação.Como usuário raiz ou um usuário com acesso
sudo
, atualize as entradas/etc/fstab
. Confira a seguir um exemplo de como as entradas precisam ser atualizadas:/dev/vg_hana_shared/shared /hana/shared xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_usrsap/sap /usr/sap xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_data/data /hana/data xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_log/log /hana/log xfs defaults,nofail,logbsize=256k 0 2
Monte os volumes lógicos recém-criados:
mount -a
Verifique as informações sobre o espaço usado pelos sistemas de arquivos:
df -h
O resultado será assim:
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 8.0K 4.0M 1% /dev tmpfs 638G 35M 638G 1% /dev/shm tmpfs 171G 458M 170G 1% /run tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup /dev/sdb3 30G 6.4G 24G 22% / /dev/sdb2 20M 3.0M 17M 15% /boot/efi /dev/mapper/vg_hanabackup-backup 1.7T 13G 1.7T 1% /hanabackup tmpfs 86G 0 86G 0% /run/user/0 /dev/mapper/vg_hana_usrsap-usrsap 32G 277M 32G 1% /usr/sap /dev/mapper/vg_hana_shared-shared 850G 54G 797G 7% /hana/shared /dev/mapper/vg_hana_data-data 1.1T 5.4G 1.1T 1% /hana/data /dev/mapper/vg_hana_log-log 475G 710M 475G 1% /hana/log
Promover a instância secundária
Como usuário
SID_LCadm
, registre a instância secundária do seu banco de dados SAP HANA com a replicação do sistema SAP HANA:hdbnsutil -sr_register --remoteHost=PRIMARY_INSTANCE_NAME \ --remoteInstance=PRIMARY_INSTANCE_NUMBER \ --replicationMode=syncmem --operationMode=logreplay \ --name=SECONDARY_INSTANCE_NAME
Substitua:
PRIMARY_INSTANCE_NAME
: o nome da instância do Compute Engine que hospeda a instância principal do sistema SAP HANAPRIMARY_INSTANCE_NUMBER
: o número da instância principal do seu sistema SAP HANASECONDARY_INSTANCE_NAME
: o nome da instância do Compute Engine que hospeda a instância secundária do sistema SAP HANA
Inicie a instância secundária do banco de dados SAP HANA:
HDB start
Como alternativa, use o comando
sapcontrol
para iniciar a instância secundária:sapcontrol -nr INSTANCE_NUMBER -function StartSystem
Na instância principal do seu banco de dados SAP HANA, como usuário
SID_LCadm
, confirme se a replicação do sistema SAP HANA está ativa:python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py
Depois de confirmar que a replicação do sistema está ativa, defina a instância secundária do banco de dados SAP HANA como a nova instância principal:
crm resource move msl_SAPHana_SID_HDBINSTANCE_NUMBER SECONDARY_INSTANCE_NAME
A resposta será semelhante a:
INFO: Move constraint created for msl_SAPHana_ABC_HDB00 to example-vm2 INFO: Use `crm resource clear msl_SAPHana_ABC_HDB00` to remove this constraint
Verifique o status do cluster de HA:
crm status
A resposta será semelhante a:
example-vm1:~ # crm status Status of pacemakerd: 'Pacemaker is running' (last updated 2025-02-04 10:08:16Z) Cluster Summary: * Stack: corosync * Current DC: example-vm1 (version 2.1.5+20221208.a3f44794f-150500.6.20.1-2.1.5+20221208.a3f44794f) - partition with quorum * Last updated: Tue Feb 4 10:08:16 2025 * Last change: Tue Feb 4 10:07:47 2025 by root via crm_attribute on example-vm2 * 2 nodes configured * 8 resource instances configured Node List: * Online: [ example-vm1 example-vm2 ] Full List of Resources: * STONITH-example-vm1 (stonith:fence_gce): Started example-vm2 * STONITH-example-vm2 (stonith:fence_gce): Started example-vm1 * Resource Group: g-primary: * rsc_vip_int-primary (ocf::heartbeat:IPaddr2): Started example-vm2 * rsc_vip_hc-primary (ocf::heartbeat:anything): Started example-vm2 * Clone Set: cln_SAPHanaTopology_ABC_HDB00 [rsc_SAPHanaTopology_ABC_HDB00]: * Started: [ example-vm1 example-vm2 ] * Clone Set: msl_SAPHana_ABC_HDB00 [rsc_SAPHana_ABC_HDB00] (promotable): * Masters: [ example-vm2 ] * Slaves: [ example-vm1 ]
Como usuário raiz ou com acesso
sudo
, remova a restrição que garante que o recurso não seja definido para preferir uma instância específica do Compute Engine:crm resource clear msl_SAPHana_SID_HDBINSTANCE_NUMBER
O resultado será assim:
INFO: Removed migration constraints for msl_SAPHana_ABC_HDB00
Migrar a instância principal anterior
Para migrar a instância principal anterior do sistema SAP HANA, repita os procedimentos fornecidos nas seções anteriores.
Remova o cluster de alta disponibilidade do modo de manutenção:
crm maintenance off
Usar discos atuais
Se a migração do disco falhar, será possível usar os volumes do disco persistente atuais porque eles contêm os dados como eles existiam antes do início do procedimento de migração.
Para restaurar o banco de dados SAP HANA ao estado original, siga estas etapas:
- Interrompa a instância do Compute Engine que hospeda o banco de dados SAP HANA.
- Desanexar os volumes do Hyperdisk que você criou.
- Reanexe o volume do disco permanente à instância de computação.
- Inicie a instância de computação.
Limpar
Depois de migrar os sistemas de arquivos SAP HANA para discos individuais, limpe os recursos relacionados ao volume de disco permanente que você estava usando. Isso inclui os snapshots de disco e o disco em si.
Para mais informações sobre como excluir snapshots de disco, consulte Gerenciar snapshots de disco.
Para excluir o volume de disco permanente que o sistema SAP HANA estava usando, execute o comando
gcloud compute disks delete
:gcloud compute disks delete SOURCE_DISK_NAME --ZONE=ZONE