This has been covered here already: Is the file table in the filesystem or in memory?
That seems to be pretty thorough. But it is still a good question. As you can see, the question is actually more granular than your question suggests.
http://140.120.7.21/LinuxKernel/LinuxKernel/node17.html that's a more technical explanation that seems to cover the same question, with the same answer, there are inode tables in memory and on disk, different types, if I read it right. That's from 2008 but I suspect that at least for ext file systems, not much has changed, though I don't know that for certain.
The old kernel explanation is actually quite good:
An ordinary file is just a sequence of data bytes stored in some
physical device without any name attached to it. The administrative
information of this file, such as owner, permissions, size, times,
etc., is stored in the inode structure of the file. All of the file
system's inodes are collected together to form an inode table. Each
file system occupies a logical disk. Starting from the $2^{nd}$ block
of a logical disk, the kernel stores the inode table of the file
system in a consecutive disk blocks. Each inode, an entry in the inode
table, is a data structure which the system uses to store the
following information about a file:
....
Finally, there is one more
inode structure defined in the Linux source tree (include/linux/fs.h).
This is the In-Core inode, i.e. the inode structure loaded in the
memory. When loading this In-Core inode, the relative disk inode
information is filled in its relative fields.
Thank you again.
– RG_Simpleton Sep 18 '17 at 04:16