Problém
Servery Oracle Real Application Clusters (RAC) běží na CentOS/RHEL 7 a využívají vícecestné disky iSCSI spravované ASMLib. Po restartování serveru nejsou disky Oracle ASMLib automaticky rozpoznány při spouštění, což způsobí selhání spuštění služby Oracle Cluster Ready Services (CRS). Disky ASM jsou však správně rozpoznány při ručním spuštění příkazu oracleasm scandisks brzy po restartu serveru.
Následuje konfigurace oracleasmu
# cat /etc/sysconfig/oracleasm ... ORACLEASM_ENABLED=true ORACLEASM_UID=oracle ORACLEASM_GID=dba ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="" ORACLEASM_SCANEXCLUDE="" ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false ...
# cat -n /usr/lib/systemd/system/oracleasm.service 1 [Unit] 2 Description=Load oracleasm Modules 3 Requires=multipathd.service 4 After=multipathd.service ...
Řešení
Při kontrole zpráv o spuštění systému v systémovém protokolu (/var/log/messages) je zřejmé, že:
– služba oracleasm.service se spustí dříve, než iscsid.service dokončí plné zpřístupnění/provoznění všech cílů iSCSI a než se přidá multipathd.service alespoň jedna cesta k cílům iSCSI.
– služba ohasd.service se spustí po službě oracleasm.service, ale nejsou objeveny žádné disky ASM.
Upravte soubor /usr/lib/systemd/system/oracleasm.service a připojte obě položky „Vyžaduje “ a „Po “ řádky s iscsid.service multi-user.target zajistit spuštění služby oracleasm.service po dokončení iscsid.service a multipathd.service a po dosažení multi-user.target, tj.:
# cat -n /usr/lib/systemd/system/oracleasm.service 1 [Unit] 2 Description=Load oracleasm Modules 3 Requires=multipathd.service iscsid.service multi-user.target 4 After=multipathd.service iscsid.service multi-user.target ...
Upravte soubor /etc/systemd/system/oracle-ohasd.service – připojte „Po řádek s oracleasm.service zajistit, aby se služba CRS ohasd.service spustila poté, co služba oracleasm.service úspěšně objevila všechny disky ASM s více cestami iSCSI, tj.:
# cat -n /etc/systemd/system/oracle-ohasd.service ... 5 [Unit] 6 Description=Oracle High Availability Services 7 After=syslog.target network-online.target remote-fs.target oracleasm.service ...Poznámka :pokud /etc/systemd/system/oracle-ohasd.service není k dispozici, podívejte se prosím na /etc/systemd/system/ohasd.service, který poskytuje podobnou funkcionalitu.