Introdução
Neste post, mostramos como obter o máximo throughput e IOPS de disco em instâncias Windows rodando no OCI, com o uso de Block Volumes em modo Paravirtualizado, Multipath e VPUs (Volume Performance Units) acima de 30, designados Ultra High Performace. Elencaremos os pré-requisitos necessários para poder ativar estas opções, bem como sua configuração.
Pré-requisitos e Limitações
1. Antes de qualquer alteração no ambiente, faça um backup de seus dados.
2. O shape da instância deve ser compatível com Ultra High Performance e Multipath, exemplo: uma imagem Oracle provisionada pelo portal OCI. Referência: https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/blockvolumeperformance.htm#shapes_vm_iscsi
3. A instância precisa ter pelo menos 16 OCPUs. Pode ser aumentado caso tenha menos, todavia, deve ter sido originalmente criada com pelo menos 8 OCPUs. Caso não seja este o caso, será necessário criar uma instância nova com 16 OCPUs e anexar o Block Volume a ela. Referência: https://docs.oracle.com/en-us/iaas/Content/Block/known-issues.htm#no-multipath-resized-instance

4. Em instâncias Windows, Multipath e UHP são suportados apenas em attachments do tipo Paravirtualized. Não são suportados em attachments iSCSI. Referência: https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/configuringmultipathattachments.htm#multipath_images_iSCSI
5. Instâncias Windows em cluster não suportam Multipath/UHP, pois o correto funcionamento do cluster requer o modo de attachment iSCSI com a opção Persistent Reservation habilitada. Portanto, Multipath e UHP só funcionarão em instâncias Windows Standalone. Ref.: https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/persistent-reservations.htm.
6. Verificar a versão do serviço Oracle Cloud Agent no SO (precisa ser 1.24.0 ou superior). Em “C:\Program Files\Oracle Cloud Agent”:
O agente vem instalado por padrão em imagens Oracle, ou Custom Images nelas baseadas. Caso não esteja instalado (como em uma Custom Image de origem externa por exemplo), segue a documentação para instalação: https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/manage-plugins.htm#install-agent
7. Com o agente instalado, precisaremos habilitar o plugin Block Volume Management. Validar os pré-requisitos para funcionamento deste plug-in, especialmente a conectividade da instância à Oracle Services Network através de um Service Gateway, ou se a instância possui um IP público atribuído. Referência: https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/enablingblockvolumemanagementplugin.htm#blockplugin-prereq
8. Verificar no portal OCI se o plug-in Block Volume Management está habilitado (selecionar a instância > Management > Block Volume Management). Se o plugin estiver desabilitado, habilitá-lo (clicando em “…” no final da linha > Enable). Pode demorar até 10 minutos para replicar no SO.
Após o status do plug-in mudar para Enabled/Running no portal OCI, verificar se o serviço Oracle Cloud Block Storage Management Service está rodando no Windows.
Habilitando UHP e Multipath na Instância
1. Alterar a quantidade de OCPUs para 16, se for o caso. Um reboot é feito na instância para aplicar.
2. Em Storage > Attached Block Volumes, clicar no Block Volume desejado > Edit > Alterar o valor de VPUs para no mínimo 30 (Ultra High Performance) > Desmarcar a opção Detached volume auto-tune > Clicar em Update.
3. Fazer o Detach/Attach do Block Volume, seguindo estas instruções: https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/disconnectingfromavolume.htm#Disconnecting_from_a_Volume_on_a_Windows_Instance e https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/attach-compute-volume-attachment.htm
3.1. Anotar o IP/IQN do volume que será desanexado no portal OCI, para confirmar qual Target remover no Windows (caso seja iSCSI).
3.2. Quando anexar o Block Volume novamente à instância, selecionar o Attachment Type Paravirtualized:
3.3. Caso todos os pré-requisitos estejam atendidos, o Multipath será habilitado:
3.4. Como anexamos o disco à instância em modo Paravirtualized, não é necessário configurar o iSCSI Target no SO. Validar que o disco apareceu no Disk Manager e está acessível.
3.5. Este cenário foi testado com uma imagem Oracle do Windows Server 2016, e nenhuma alteração foi necessária no SO após a mudança de iSCSI para Paravirtualized.
3.6. Não é necessária nenhuma alteração no SO. Como estamos trabalhando com um block volume do tipo Paravirtualized, o multipath é gerenciado automaticamente e de forma transparente pelo plugin Block Volume Management e seu respectivo serviço no Windows.
Obs.: Caso a opção Multipath não mude de No para Yes (mesmo com os pré-requisitos atendidos), estes artigos fornecem caminhos de troubleshooting:
https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/troubleshootingmultipathattachments.htm
https://docs.oracle.com/en-us/iaas/Content/Block/known-issues.htm
