Tâche #18794
Scénario #18793: partitionnement "dynamique"
qualifier le partitionnement dynamique sur une installation d'eSBL
Historique
#1 Mis à jour par Thierry Bertrand il y a environ 7 ans
- Restant à faire (heures) changé de 3.0 à 6.0
- Temps estimé changé de 3.00 h à 6.00 h
#2 Mis à jour par christophe guerinot il y a environ 7 ans
- Assigné à mis à christophe guerinot
#3 Mis à jour par Benjamin Bohard il y a environ 7 ans
Pour valider l’image ISO
Avant instance, vérifier la disponibilité de PE, par exemple avec la commande
vgs -o vg_free_count
Pour que le partitionnement à l’instance soit disponible, il faut qu’il y ait plus de 100 PE libres (seuil en dur dans le code pour ne pas permettre de créer de partitions avec des résidus)
Configurer les partitions
La configuration des partitions est affichée en fin de l’onglet Système.¶
Elle est composé de deux parties :
- une partie pour la création de nouvelles partitions ;
- une partie pour dire quoi faire de l’espace éventuellement restant.
La partie pour la création des nouvelles partitions est une multi qui permet de renseigner le nom du volume (pas le chemin complet), la taille en pourcent de l’espace disponible (au moment de l’instance) et, éventuellement, le format du système de fichiers, le point de montage.
Les points à vérifier plus particulièrement sont :- le comportement en cas de renseignement d’un nom de volume déjà existant, doit agrandir le volume existant sans tenir compte des autres variables (pas de formatage, de modification de fstab, etc.) ;
- l’erreur levée si le total des pourcentages dépasse 100 pour l’ensemble des volumes déclarés dans la multi ;
- l’erreur levée si on demande un format de système de fichier non pris en charge pour les commandes mkfs.* ;
- le montage effectif d’un volume et le déplacement éventuel des données si le point de montage était un dossier existant non vide.
#4 Mis à jour par Thierry Bertrand il y a environ 7 ans
- Statut changé de Nouveau à En cours
#5 Mis à jour par Thierry Bertrand il y a environ 7 ans
- Assigné à changé de christophe guerinot à Thierry Bertrand
#6 Mis à jour par Thierry Bertrand il y a environ 7 ans
install esbl 2.6.1 + Maj-Auto -D sur le depot test-eole
Au lancement de gen_config, erreur 500
erreurs sous /var/log/syslog :
Feb 2 17:22:26 esbl systemd[1]: Started Session 13 of user root. Feb 2 17:28:10 esbl systemd[1]: Stopping EOLE Creole server... Feb 2 17:28:10 esbl creoled[1005]: ENGINE Caught signal SIGTERM. Feb 2 17:28:10 esbl creoled[1005]: ENGINE Bus STOPPING Feb 2 17:28:10 esbl creoled[1005]: ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8000)) shut down Feb 2 17:28:10 esbl creoled[1005]: ENGINE Stopped thread 'Autoreloader'. Feb 2 17:28:10 esbl creoled[1005]: ENGINE Stopped thread '_TimeoutMonitor'. Feb 2 17:28:10 esbl creoled[1005]: ENGINE Stop InotifyMonitor thread Feb 2 17:28:10 esbl creoled[1005]: ENGINE Bus STOPPED Feb 2 17:28:10 esbl creoled[1005]: ENGINE Bus EXITING Feb 2 17:28:10 esbl creoled[1005]: ENGINE PID file removed: '/run/creoled.pid'. Feb 2 17:28:10 esbl creoled[1005]: ENGINE Bus EXITED Feb 2 17:28:10 esbl creoled[1005]: ENGINE Waiting for child threads to terminate... Feb 2 17:28:10 esbl systemd[1]: Stopped EOLE Creole server. Feb 2 17:28:10 esbl systemd[1]: Started EOLE Creole server. Feb 2 17:28:11 esbl creoled[2320]: creoled - Impossible de charger la configuration Creole.cannot redefine attribut type Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_alias_interfaces Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_bonding_option Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_bridge_interface Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_mtu_option Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_physical_interface Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_pppoe_interface Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_unmanage_interface Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_vlan_interfaces Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : get_master_interfaces Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : _gen_crossed_hosts Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : _gen_hosts Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : get_etc_hosts Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : stderr Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : calc_free_PE Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : check_free_space Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : enable_lv_creation Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : is_fs_type Feb 2 17:28:11 esbl creoled[2320]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : is_lv_name Feb 2 17:28:11 esbl creoled[2320]: ENGINE Listening for SIGHUP. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Listening for SIGTERM. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Listening for SIGUSR1. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Listening for SIGINT. Feb 2 17:28:11 esbl creoled[2320]: creoled - Pas de configuration trouvée : ne pas tester le mode conteneur. Feb 2 17:28:11 esbl creoled[2320]: [2017-02-02 17:28:11,679 pyinotify ERROR] add_watch: cannot watch /etc/eole/extra WD=-1, Errno=No such file or directory (ENOENT) Feb 2 17:28:11 esbl creoled[2320]: pyinotify - add_watch: cannot watch /etc/eole/extra WD=-1, Errno=No such file or directory (ENOENT) Feb 2 17:28:11 esbl creoled[2320]: ENGINE Bus STARTING Feb 2 17:28:11 esbl creoled[2320]: ENGINE PID 2320 written to '/run/creoled.pid'. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Started monitor thread '_TimeoutMonitor'. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Start InotifyMonitor thread Feb 2 17:28:11 esbl creoled[2320]: ENGINE Started monitor thread 'Autoreloader'. Feb 2 17:28:11 esbl creoled[2320]: ENGINE Serving on http://127.0.0.1:8000 Feb 2 17:28:11 esbl creoled[2320]: ENGINE Bus STARTED
diagnostic avec gnunux :
<gnunux> from creole.loader import creole_loader <gnunux> creole_loader(load_extra=True) <teebee44> Traceback (most recent call last): <teebee44> File "<stdin>", line 1, in <module> <teebee44> File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 731, in creole_loader <teebee44> eolobj.create_or_populate_from_xml('creole', dirs) <teebee44> File "/usr/lib/python2.7/dist-packages/creole/objspace.py", line 430, in create_or_populate_from_xml <teebee44> raise err <teebee44> creole.error.CreoleDictConsistencyError: cannot redefine attribut type
=> suppression du type de la ligne <variable name='ssh_allow_groups' type='string' description="Autoriser les connexions ssh pour les groupes" redefine='True'>
Puis :
>>> from creole.loader import creole_loader <teebee44> >>> creole_loader(load_extra=True) <teebee44> Traceback (most recent call last): <teebee44> File "<stdin>", line 1, in <module> <teebee44> File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 731, in creole_loader <teebee44> eolobj.create_or_populate_from_xml('creole', dirs) <teebee44> File "/usr/lib/python2.7/dist-packages/creole/objspace.py", line 430, in create_or_populate_from_xml <teebee44> raise err <teebee44> creole.error.CreoleDictConsistencyError: Redefined object: /etc/rc.local does not exist yet
=> suppression du redefine de la ligne <file name='/etc/rc.local' source='rc.local.esbl' redefine='True' mode='0755'/>
Puis :
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 731, in creole_loader eolobj.create_or_populate_from_xml('creole', dirs) File "/usr/lib/python2.7/dist-packages/creole/objspace.py", line 430, in create_or_populate_from_xml raise err creole.error.CreoleDictConsistencyError: cannot redefine attribut type
=> suppression du type de la ligne <variable name='activer_sso' type='string' redefine='True' description='Utiliser un serveur SSO'>
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 731, in creole_loader eolobj.create_or_populate_from_xml('creole', dirs) File "/usr/lib/python2.7/dist-packages/creole/objspace.py", line 430, in create_or_populate_from_xml raise err creole.error.CreoleDictConsistencyError: Already present in another XML file, activer_sso cannot be re-created
=> on repasse sur toutes les balises d'aide et on rajoute le redefine='True' pour toutes les déja existantes.
Enfin :
from creole.loader import creole_loader
creole_loader(load_extra=True)
[creole]
[containers]
[schedule]
[actions]
#7 Mis à jour par Thierry Bertrand il y a environ 7 ans
Au final, gen_config se lance désormais
#8 Mis à jour par Thierry Bertrand il y a environ 7 ans
- % réalisé changé de 0 à 80
tests partitionnement effectués (eolebase):
1 - augmentation de / OK
2 - création d'un fs supplémentaire OK
3 - création d'un FS supplémentaire + reste à root : OK
4 - création d'un fs supplémentaire avec dossier cible existant et non vide OK
5 - création de 3 fs supplémentaire avec un monté sous un autre KO (2 comportements différents selon l'ordre cf https://dev-eole.ac-dijon.fr/issues/19206 )
6 - création d'un fs supplémentaire vers un dossier cible existant avec un verrou (vi) : BRUTAL mais se fait :
root@eolebase:~# vi /individuel/verrou Vim: Caught deadly signal TERM Vim: Finished. Complété
7 - création d'un fs supplémentaire avec option de montage exotique : KO pour le montage mais OK pour le LV
un-parts: executing /usr/share/eole/pretemplate/00-partitioning instance Traitement du volume logique indiv Creating LV /dev/eolebase-vg/indiv of 4636 PE Creating fs ext4 Creating fstab entry for /dev/eolebase-vg/indiv on /indiv mount: wrong fs type, bad option, bad superblock on /dev/mapper/eolebase--vg-indiv, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. Extending root with 100%FREE
8 - essayer de passer un nouveau type de fs : OK le masque des champs de saisie ne le permet pas
#9 Mis à jour par Thierry Bertrand il y a environ 7 ans
- Restant à faire (heures) changé de 6.0 à 1.0
#10 Mis à jour par Thierry Bertrand il y a environ 7 ans
9 - fs supplémentaire : root - 100 - / - exotique : KO/OK
run-parts: executing /usr/share/eole/pretemplate/00-partitioning instance Traitement du volume logique root Creating LV /dev/eolebase-vg/root of 9272 PE Creating fs ext4 Creating fstab entry for /dev/eolebase-vg/root on / Transfert des données /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: PID : les arguments doivent être des identifiants de tâche ou de processus /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: (23227) - Aucun processus de ce type /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: (23228) - Aucun processus de ce type /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: (23229) - Aucun processus de ce type /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: (23230) - Aucun processus de ce type /usr/share/eole/pretemplate/00-partitioning: ligne 69 : kill: (23231) - Aucun processus de ce type cp: '//bin' et '/tmp/temp_mount_point/bin' identifient le même fichier cp: '//etc' et '/tmp/temp_mount_point/etc' identifient le même fichier cp: '//home' et '/tmp/temp_mount_point/home' identifient le même fichier cp: '//initrd.img' et '/tmp/temp_mount_point/initrd.img' identifient le même fichier cp: '//initrd.img.old' et '/tmp/temp_mount_point/initrd.img.old' identifient le même fichier cp: '//lib' et '/tmp/temp_mount_point/lib' identifient le même fichier cp: '//lib64' et '/tmp/temp_mount_point/lib64' identifient le même fichier cp: '//lost+found' et '/tmp/temp_mount_point/lost+found' identifient le même fichier cp: '//media' et '/tmp/temp_mount_point/media' identifient le même fichier cp: '//mnt' et '/tmp/temp_mount_point/mnt' identifient le même fichier cp: '//opt' et '/tmp/temp_mount_point/opt' identifient le même fichier cp: erreur de lecture '//proc/1/task/1/attr/prev': Argument invalide cp: erreur de lecture '//proc/1/task/1/attr/exec': Argument invalide cp: erreur de lecture '//proc/1/task/1/attr/fscreate': Argument invalide cp: erreur de lecture '//proc/1/task/1/attr/keycreate': Argument invalide cp: erreur de lecture '//proc/1/task/1/attr/sockcreate': Argument invalide cp: erreur de lecture '//proc/1/task/1/mem': Erreur d'entrée/sortie cp: erreur de lecture '//proc/1/task/1/clear_refs': Argument invalide
C'est mal de faire ça sur root ...
L'entrée fstab est correcte mais a t'il eu le temps de la faire ?
Les PE sont encore disponibles, test non convaincant sur eolebase. A refaire sur eSBL et sur un LV != /
#11 Mis à jour par Thierry Bertrand il y a environ 7 ans
A tester, cible vers dossier existant contenant un gros fichier. Creuser le fonctionnement des déplacements
#12 Mis à jour par Thierry Bertrand il y a environ 7 ans
- Statut changé de En cours à Fermé
- Restant à faire (heures) changé de 1.0 à 0.0
#13 Mis à jour par Emmanuel IHRY il y a environ 7 ans
- Statut changé de Fermé à Résolu
#14 Mis à jour par Emmanuel IHRY il y a environ 7 ans
- Statut changé de Résolu à Fermé