Migration IRODS (Nov 2024)¶
Version 4.3.3: https://docs.irods.org/4.3.3/getting_started/installation/
Mise à jour de iRODS en version 4.3.2 (Ressources et Catalogue)¶
# dnf update 'irods*' # service irods restart # rpm -q irods-server
Tests¶
imkdir test-migration-nov2024 icd test-migration-nov2024 date > DATE truncate -s 1G BIG md5sum DATE BIG iput -K -R <RESSOURCE> DATE iput -K -R <RESSOURCE> BIG cd /tmp iget DATE iget BIG md5sum DATE BIG irm DATE irm BIG
Sauvegardes pour chaque ressource¶
/etc/pki/tls/ /etc/irods /var/lib/irods
Maintenance sur le catalogue¶
Mettre les ressources offline:
# admin modresc ... status down
Ré-installation de l'OS en Alma Linux 8¶
https://docs.irods.org/4.3.3/release_notes/
The latest binary packages for AlmaLinux8 , RockyLinux9, Ubuntu20, Ubuntu22, Ubuntu24, Debian11, and Debian12 are available at https://packages.irods.org/.
ISO¶
https://mirror.in2p3.fr/pub/linux/almalinux/8/isos/x86_64/AlmaLinux-8-latest-x86_64-minimal.iso
Installation¶
Il faut installer dhclient.
Le fichier /etc/hostname
doit contenir le nom complet de la machine.
La commande hostname
doit retourner le nom complet de la machine.
Le fichier /etc/hosts
doit contenir une ligne:<IP> <nom complet> <nom>
Configurer chrony¶
# dnf install chrony # systemctl enable chronyd
Fichier /etc/chrony.conf
¶
server <NTP> iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony
Vérification¶
# systemctl restart chronyd # timedatectl set-timezone Europe/Paris # timedatectl set-ntp on # chronyc sources
SELinux¶
Fichier /etc/selinux/config
¶
SELINUX=permissive SELINUXTYPE=targeted
Commandes¶
# systemctl stop --now dnf-makecache.timer # systemctl disable dnf-makecache.timer
# dnf update
Firewall¶
# firewall-cmd --zone=public --add-port=22/tcp # firewall-cmd --zone=public --add-port=5555/tcp # firewall-cmd --zone=public --add-port=5666/tcp # firewall-cmd --zone=public --add-port=24000-25000/tcp # firewall-cmd --runtime-to-permanent # firewall-cmd --get-default-zone Vérification: # firewall-cmd --zone=public --list-ports 22/tcp 5555/tcp 5666/tcp 24000-25000/tcp
Installation d'une Ressource iRODS en version 4.3.3¶
Note: Il faut installer les ressources seulement une fois que le catalogue sera réinstallé.
EPEL¶
# dnf install epel-release # dnf update
Repository et paquets iRODS¶
# rpm --import https://packages.irods.org/irods-signing-key.asc # wget https://packages.irods.org/renci-irods.yum.repo # mv renci-irods.yum.repo /etc/yum.repos.d/ # dnf install irods-server irods-icommands
Certificats¶
Récupérer les certificats dans la sauvegarde:
/etc/pki/tls/private/sbgirods1.in2p3.fr.key /etc/pki/tls/certs/sbgirods1.in2p3.fr.pem
# cp -p sbgirods1.in2p3.fr.key /etc/pki/tls/private # chown irods:root /etc/pki/tls/private/sbgirods1.in2p3.fr.key # chmod 0400 /etc/pki/tls/private/sbgirods1.in2p3.fr.key # cp -p sbgirods1.in2p3.fr.pem /etc/pki/tls/certs/ # chown irods:root /etc/pki/tls/certs/sbgirods1.in2p3.fr.pem # chmod 0444 /etc/pki/tls/certs/sbgirods1.in2p3.fr.pem De même avec: /etc/irods/dhparams.pem /etc/pki/tls/irods.chain /etc/pki/tls/certs/geant_ov_rsa_ca_4.pem Note: Création du fichier irods.chain: https://docs.irods.org/4.3.3/plugins/pluggable_authentication/#create-the-certificate-chain-file # chown irods:irods /etc/irods/dhparams.pem Droits des fichiers: -r--r--r--. 1 irods root 2626 Jun 6 16:30 /etc/pki/tls/certs/sbgirods1.in2p3.fr.pem -r--------. 1 irods root 1.7K Jun 6 16:30 /etc/pki/tls/private/sbgirods1.in2p3.fr.key -rw-r--r--. 1 root root 2.6K Jun 6 16:52 /etc/pki/tls/irods.chain -rw-r--r--. 1 irods irods 424 Sep 25 18:49 /etc/irods/dhparams.pem -rw-r--r--. 1 root root 2.4K Jun 23 2020 /etc/pki/tls/certs/geant_ov_rsa_ca_4.pem
Fichier /etc/rsyslog.d/00-irods.conf
¶
$FileCreateMode 0644 $DirCreateMode 0755 $Umask 0000 $template irods_format,"%msg%\n" :programname,startswith,"irodsServer" /var/log/irods/irods.log;irods_format & stop :programname,startswith,"irodsDelayServer" /var/log/irods/irods.log;irods_format & stop
# mkdir /var/log/irods
Configuration de iRODS (Ressource)¶
# python3 /var/lib/irods/scripts/setup_irods.py Choisir consumer [2] iRODS server's zone name [tempZone]: FranceGrillesZone iRODS catalog (ICAT) host: sbgirodsfg.in2p3.fr iRODS server's port [1247]: 5555 iRODS port range (begin) [20000]: 24000 iRODS port range (end) [20199]: 25000 # Les valeurs suivantes sont dans le fichier /etc/irods/server_config.json dans la sauvegarde iRODS server's zone key: iRODS server's negotiation key (32 characters): Control Plane key (32 characters): iRODS server's administrator password:
Fichier /etc/irods/core.re
¶
Remplacer la ligne avec ceci:
acPreConnect(*OUT) { *OUT="CS_NEG_REQUIRE"; }
Et remplacer demoResc avec votre ressource par défaut:
https://docs.irods.org/4.3.3/system_overview/best_practices/#do-not-use-demoresc-in-production
acSetRescSchemeForCreate {msiSetDefaultResc("...","null"); } acSetRescSchemeForRepl {msiSetDefaultResc("...","null"); } acSetNumThreads {msiSetNumThreads("default","default","..."); }
Fichier /var/lib/irods/.irods/irods_environment.json
à restaurer de la sauvegarde¶
Il doit contenir (à adapter selon vos certificats et CAs, voir documentation de irods pour la création du irods.chain):
"irods_client_server_policy": "CS_NEG_REQUIRE", ... "irods_ssl_ca_certificate_file": "/etc/pki/tls/certs/geant_ov_rsa_ca_4.pem", "irods_ssl_certificate_chain_file": "/etc/pki/tls/irods.chain", "irods_ssl_certificate_key_file": "/etc/pki/tls/private/sbgirodsfg.in2p3.fr.key", ...
Démarrage du service¶
Pour démarrer le service surtout ne pas utiliser
# systemctl start irods # systemctl status irods # systemctl enable irods
Il faut que ce soit l'utilisateur irods avec:
$ ./irodsctl start $ ./irodsctl status
Note: Si jamais la configuration se passe mal il faut nous avertir car une ressource fantôme est rajoutée dans le catalogue et il faut la supprimer avec:
# iadmin rmresc ...
Tests¶
imkdir test-migration icd test-migration date > DATE truncate -s 1G BIG md5sum DATE BIG iput -K -R <RESSOURCE> DATE iput -K -R <RESSOURCE> BIG cd /tmp iget DATE iget BIG md5sum DATE BIG
Bloquer les mises à jour de irods¶
Pour éviter que des update ne mettent à jour irods.
Dans /etc/dnf/dnf.conf
exclude=irods-*
Bien sûr commenter lors des mises à jour de irods