Written by

Technical Trainer and Course Developer at InterSystems
Discussion Joel Solon 路 Nov 11, 2024

Which is the "right" installation directory for IRIS on Linux?

The IRIS Installation Guide for Linux, Installation Directory section, says "Do not choose the /home directory, any of its subdirectories, or the /usr/local/etc/irissys directory." but there are no suggestions or any default.

What are your opinions on this? For example, I see that IRIS in a Docker container is installed in /usr/irissys. I'm wondering why that directory was chosen.

The official Linux filesystem docs say:

  • /usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere. Large software packages must not use a direct subdirectory under the /usr hierarchy.
  • The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.
  • /opt is reserved for the installation of add-on application software packages. A package to be installed in /opt must locate its static files in a separate /opt/<package> or /opt/<provider> directory tree, where <package> is a name that describes the software package and <provider> is the provider's LANANA registered name.

From that, it seems like /usr/local/InterSystems/<instance> or /opt/InterSystems/<instance> would be "right." To me that seems better than /usr/irissys, /usr/irissys1, /usr/irissys2, etc.

Comments

Joel Solon 路 Nov 11, 2024

Thanks for posting this Joel! I've been wondering about this for a while too! 馃ぃ

0
Alexander Pettitt 路 Nov 11, 2024

Some thoughts:
Install it outside the rootvg so not in /usr or /opt
Don't bury it deep in a path. Something like /[application]/[instance]/irissys for example
Data in a separate volume group to enable snapshots and the external freeze.
Journals in a separate volume group to enable snapshots and the external freeze.
Keep instance names unique unless it is a failover member or DR async

Look at Storage Planning
 

0
Timo Lindenschmid 路 Nov 15, 2024

Where you install IRIS depends on your use case. E.g. if you are "only" developing, no real user load the disc layout you would use is markedly different to a production system with 1000s concurrent connections.

so just a couple of thoughts on disk layout:

Install IRIS and every of its components in a dedicated folder e.g. /iris . Reasoning behind this is a single folder is easier to be excluded from any e.g. AntiMalware scanner that could wreak havoc on a database backend. 

In that subfolder separate data, file store, journals and executables.

Reasoning: For a high-performance system each of above has a different i/o workload and a different performance profile. e.g. while journals are nearly 100% sequential writes, database executable are a mix of read and writes.  Database files are also a mix of read and writes but usually much bigger block sizes. Also different filesystems have different performance profiles.

So taking above in account also following best practises for mounts and i/o workload separation:

root (/)
/{instancename}/iris -> instance installation folder
/{instancename}/journalPrimary
/{instancename}/journalSecondary
/{instancename}/database
/{instancename}/filestore
/{instancename}/webfiles

Based on above you can mount volumes depending on workload sitting on different physical disks/lvms also for high performance environment you might want to separate the disc on multiple scsi controllers. So each controller only served a specific i/o profile.

Also to note IRIS2021 changed the default disc i/o behaviour from use OS file cache to direct unbuffered i/o. Which again means separate IRIS workloads from any OS workload.

0
Joel Solon 路 Nov 15, 2024

Thanks for the thoughts! To clarify, I was primarily asking about where to install IRIS itself. Within the context of that question, it's always good to include information about directories for the other important stuff, such as Journals and databases, so thanks for that.

0