Project

General

Profile

Tâche #18794

Scénario #18793: partitionnement "dynamique"

qualifier le partitionnement dynamique sur une installation d'eSBL

Added by Thierry Bertrand over 4 years ago. Updated over 4 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
01/23/2017
Due date:
% Done:

80%

Estimated time:
6.00 h
Spent time:
Remaining (hours):
0.0

History

#1 Updated by Thierry Bertrand over 4 years ago

  • Remaining (hours) changed from 3.0 to 6.0
  • Estimated time changed from 3.00 h to 6.00 h

#2 Updated by christophe guerinot over 4 years ago

  • Assigned To set to christophe guerinot

#3 Updated by Benjamin Bohard over 4 years ago

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 Updated by Thierry Bertrand over 4 years ago

  • Status changed from Nouveau to En cours

#5 Updated by Thierry Bertrand over 4 years ago

  • Assigned To changed from christophe guerinot to Thierry Bertrand

#6 Updated by Thierry Bertrand over 4 years ago

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 Updated by Thierry Bertrand over 4 years ago

Au final, gen_config se lance désormais

#8 Updated by Thierry Bertrand over 4 years ago

  • % Done changed from 0 to 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 Updated by Thierry Bertrand over 4 years ago

  • Remaining (hours) changed from 6.0 to 1.0

#10 Updated by Thierry Bertrand over 4 years ago

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 Updated by Thierry Bertrand over 4 years ago

A tester, cible vers dossier existant contenant un gros fichier. Creuser le fonctionnement des déplacements

#12 Updated by Thierry Bertrand over 4 years ago

  • Status changed from En cours to Fermé
  • Remaining (hours) changed from 1.0 to 0.0

#13 Updated by Emmanuel IHRY over 4 years ago

  • Status changed from Fermé to Résolu

#14 Updated by Emmanuel IHRY over 4 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF