Skip to content
Snippets Groups Projects
Commit 8df96f2d authored by Michael Davis's avatar Michael Davis
Browse files

Documents how to build and install CTA RPMs

parent 604fcca1
Branches
Tags
No related merge requests found
......@@ -7,9 +7,6 @@ The steps described below are automated by Steve's \texttt{reinstalleos\_eosctat
script\footnote{\texttt{reinstalleos\_eosctatape} calls \texttt{create\_eos\_and\_taped\_keytabs} to create the Simple
Shared Secret (SSS) keys for the EOS instance and the tape server.}.
To install EOS in a Docker pod, see the \href{https://gitlab.cern.ch/eos/eos-docker}{eos-docker} project in GitLab,
prepared by the IT-ST-AD section.
\section{Install XRoot and EOS RPMs}
The yum repos, priorities and version lock list should be configured as described in
......@@ -42,8 +39,8 @@ xrootd-server-libs-4.4.1-1.el7.x86_64
\begin{alertbox}
The instructions below are for machines on structured cabling which have a fixed IP address. Machines without a fixed IP
address---including virtual machines or Docker pods---are not recognised by the CERN Kerberos servers. To install a local
EOS instance in this case, we need to run our own KDC server. See the
\href{https://gitlab.cern.ch/eos/eos-docker}{eos-docker} project mentioned above for an example of how to do this.
EOS instance in this case, we need to run our own KDC server. See Section~\ref{eos-docker} for more information on how to
do this.
\end{alertbox}
The EOS \texttt{mgm} in the XRoot daemon authenticates users using a key from the Kerberos \texttt{keytab}.
......@@ -225,21 +222,6 @@ Start the XRoot daemons that will run the EOS \texttt{mgm}, \texttt{mq} and \tex
# systemctl start eos
\end{lstlisting}
The logs for the XRoot daemons will be created under \texttt{/var/log/eos/fst}, \texttt{/var/log/eos/mgm} and \texttt{/var/log/eos/mq}.
\begin{alertbox}
The EOS \texttt{mgm} startup script checks if we are running under \texttt{systemd}, but the test it performs does not work inside a
Docker container, as (a) pidof is part of \texttt{sysvtools-init}, which is not installed and (b) the \texttt{systemd} process is
started as \texttt{init} (a symbolic link to \texttt{systemd}):
\begin{lstlisting}
/usr/sbin/pidof systemd
\end{lstlisting}
This has been reported to the EOS team to fix. In the meantime, here is a hack to work around the problem:
\begin{lstlisting}
# yum install -y sysvinit-tools
# ln -s /usr/bin/sleep /tmp/systemd
# /tmp/systemd 1000 &
# systemctl start eos
\end{lstlisting}
\end{alertbox}
\section{Enable EOS authentication mechanisms}
Enable the Kerberos and Simple Shared Secret authentication mechanisms within EOS (as opposed to XRoot):
......@@ -291,7 +273,7 @@ replicas to 1:
# eos attr -r set sys.forced.nstripes=1 /eos
\end{lstlisting}
\section{Test the EOS installation}
\section{Test the EOS Installation}
Perform a simple write and read test of the new EOS installation:
......@@ -303,3 +285,34 @@ Perform a simple write and read test of the new EOS installation:
# diff /tmp/eostest /etc/motd
\end{lstlisting}
\section{Installing EOS in Docker}
\label{eos-docker}
The instructions above are for installing EOS on real hardware. To install EOS in a Docker pod, note that you must:
\begin{enumerate}
\item Create a Docker network to allow DNS/reverse DNS queries to work.
\item Use a privileged Docker container and mount the \texttt{cgroup} to allow \texttt{systemd} to run.
\end{enumerate}
To run \texttt{systemd} on Docker host \texttt{bandersnatch} on network \texttt{wonderland}, the command would be:
\begin{lstlisting}
$ sudo docker network create wonderland
$ sudo docker run --net=wonderland --name bandersnatch --hostname bandersnatch.wonderland --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -d ctatest /usr/sbin/init
\end{lstlisting}
See also the \href{https://gitlab.cern.ch/eos/eos-docker}{eos-docker} GitLab project, prepared by the IT-ST-AD section.
\begin{alertbox}
The EOS \texttt{mgm} startup script checks if we are running under \texttt{systemd}, but the test it performs does not work inside a
Docker container, as (a) pidof is part of \texttt{sysvtools-init}, which is not installed and (b) the \texttt{systemd} process is
started as \texttt{init} (a symbolic link to \texttt{systemd}):
\begin{lstlisting}
/usr/sbin/pidof systemd
\end{lstlisting}
This has been reported to the EOS team to fix. In the meantime, here is a hack to work around the problem:
\begin{lstlisting}
# yum install -y sysvinit-tools
# ln -s /usr/bin/sleep /tmp/systemd
# /tmp/systemd 1000 &
# systemctl start eos
\end{lstlisting}
\end{alertbox}
This diff is collapsed.
......@@ -25,7 +25,8 @@ storage, such as the International Linear Collider (ILC)}]{vo}{VO}{Virtual Organ
{
name={EOS},
description={A disk-based, low-latency storage service with a highly-scalable hierarchical namespace, using the XRoot
protocol for data access possible}
protocol for data access possible. (The name \textbf{EOS} is not an acronym, it was inspired by the Greek goddess of
the dawn, $E\omega\sigma$)}
}
\newglossaryentry{logicallibrary}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment