NFS Disk Configuration for Quorum

Before starting make sure that:

1. NFS server is accessible from DB nodes
2. nfs-utils is installed on all client and DB nodes
3. ASM is running on all nodes

NFS disk configuration steps:

1. On NFS server node (e.g. nfsserver)

# systemctl disable firewalld
# systemctl stop firewalld
# mkdir /NFS_DISKS

--Create quorum disk in nfs share:
# dd if=/dev/zero of=/NFS_DISKS/nfsdisk1 bs=1M count=1024

# chmod -R 755 /NFS_DISKS
# chown -R grid:oinstall /NFS_DISKS

# vim /etc/exports
/NFS_DISKS *(rw,async)

# systemctl enable nfs-server
# systemctl start nfs-server

2. On all DB nodes (e.g. rac1 rac2)

# mkdir /NFS_DISKS 
# chown -R grid:oinstall /NFS_DISKS
# vim /etc/fstab

nfsserver:/NFS_DISKS /NFS_DISKS nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,noac,vers=3,timeo=600 0 0 0

# mount -a

--Update disk discovery string from grid user:
$ asmcmd dsset '/NFS_DISKS/*','/dev/flashgrid/*'

If this is Flashgrid-enabled cluster, then you can create diskgroup which contains NFS disk as quorum:

[grid@rac1 ~]$ flashgrid-dg create --name TEST --normal --asm-compat --db-compat --disks /dev/flashgrid/rac1.lun4 /dev/flashgrid/rac2.lun4 --quorum-disks /NFS_DISKS/nfsdisk1

Querying nodes: rac1, rac2, racq …
Creating group…
Completing this operation may take long time. Please wait…
FAILGROUP "rac1" DISK '/dev/flashgrid/rac1.lun4' NAME "rac1$LUN4" SIZE 20480M
FAILGROUP "rac2" DISK '/dev/flashgrid/rac2.lun4' NAME "rac2$LUN4" SIZE 20480M
ATTRIBUTE 'au_size' = '4M', 'compatible.asm' = '', 'compatible.rdbms' = '';
ALTER SYSTEM SET asm_preferred_read_failure_groups='DATA.rac1','FRA.rac1','GGDG.rac1','GRID.rac1','TEST.rac1' SID='+ASM1';
ALTER SYSTEM SET asm_preferred_read_failure_groups='DATA.rac2','FRA.rac2','GGDG.rac2','GRID.rac2','TEST.rac2' SID='+ASM2';

Configure Bastion host for Azure VM

What is Azure Bastion?

The Azure Bastion is PaaS service that you create inside your virtual network. It provides secure RDP and SSH connectivity to all of the VMs in the virtual network in which it is provisioned so that your target virtual machines do not need a public IP address.

Configuration Steps:

1. Connect to the Azure portal and choose the VM to connect to.

2. From the left panel, choose Bastion under the Operations section, or click Connect from the Overview section.

3. To associate a virtual network with a Bastion, it must contain a subnet with the name AzureBastionSubnet. On the following page, click Manage subnet configuration

4. Add subnet named AzureBastionSubnet

5. After configuring subnet, click link rac1-vm – Bastion in the upper left corner. And then click Create button.

6. Connect to the VM via Azure Bastion

If you have ssh key based authentication, enter correct username and choose the right private key file.

Please note, that the private key file should be in PEM format. If you get the following error message, it means your key file is not in the correct format:

 If so, convert it using ssh-keygen (for windows PuTTYgen) :

$ ssh-keygen -p -m PEM -f my_private_key

Choose the key file again and click Connect.