srvctl start filesystem hangs
August 6, 2020 1 Comment
The title of this post is general, there can be a lot of reasons why srvctl start filesystem
hangs. The aim of this blog post is to share one of the reasons only.
Problem:
I’ve created ACFS volume and added it to srvctl:
$ asmcmd volcreate -G OGG -s 10G ACFSGG
# srvctl add filesystem -device /dev/asm/acfsgg-11 -path /GG_HOME -volume acfsgg -diskgroup OGG -user oracle -fstype ACFS
then tried to start the filesystem using:
# srvctl start filesystem -device /dev/asm/acfsgg-11
Which hanged.
Troubleshooting:
I’ve checked logs under trace folder under GI base, but could not find any clue. Even worse, stopping filesystem was also hanging.
But let’s stop here, the file that should have been checked was really there, but I missed it and checked wrong files. The file name that shows the necessary error is mount_<process id>.trc
and is definitely located under trace folder. So instead of manually mounting filesystem to see the error, you can just open that mount_<process id>.trc
and you will see the reason there.
Then I tried manual mounting of the filesystem, without srvctl
:
[root@stbyrac1 trace]# /bin/mount -t acfs /dev/asm/acfsgg-11 /GG_HOME
mount.acfs: ACFS-03037: not an ACFS file system
saw the error, which explained what was happening. My volume was not formatted with acfs filesystem. Somehow I missed that step on the standby cluster, so just a human error, but srvctl
at least should have said that instead of hanging and placing info in trace file.
Solution:
Format ACFS volume:
[root@stbyrac1 trace]# mkfs -t acfs /dev/asm/acfsgg-11
mkfs.acfs: version = 19.0.0.0.0
mkfs.acfs: on-disk version = 46.0
mkfs.acfs: volume = /dev/asm/acfsgg-11
mkfs.acfs: volume size = 10737418240 ( 10.00 GB )
mkfs.acfs: Format complete.
Because the start and stop operations are hanged, you need to mount filesystem on all database nodes manually:
[root@stbyrac1 ~]# /bin/mount -t acfs /dev/asm/acfsgg-11 /GG_HOME
[root@stbyrac1 ~]# /bin/mount -t acfs /dev/asm/acfsgg-11 /GG_HOME
Now try to stop and start filesystem, to make sure srvctl
is able to do it’s job without any manual interaction:
[root@stbyrac1 ~]# srvctl stop filesystem -device /dev/asm/acfsgg-11
[root@stbyrac1 ~]# srvctl start filesystem -device /dev/asm/acfsgg-11
In the future I can see everyone moving to just use GUI interfacse with no information and autonomous-everything, but in exchange, all our regular commands (srvctl/crsctl/asmcd….) will be verbose and with debug enabled by default!!! š