Project layout/fr: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
<div class="mw-translate-fuzzy"> | |||
Les espaces projet des systèmes de fichiers sur [https://docs.computecanada.ca/wiki/Cedar/fr Cedar] et [https://docs.computecanada.ca/wiki/Graham/fr Graham] sont organisés selon des '''groupes''' à l'aide d'une interface utilisateur simple. | Les espaces projet des systèmes de fichiers sur [https://docs.computecanada.ca/wiki/Cedar/fr Cedar] et [https://docs.computecanada.ca/wiki/Graham/fr Graham] sont organisés selon des '''groupes''' à l'aide d'une interface utilisateur simple. | ||
L'accès à un espace projet se fait habituellement par des liens symboliques à partir de votre répertoire ''home''. | L'accès à un espace projet se fait habituellement par des liens symboliques à partir de votre répertoire ''home''. | ||
Les liens symboliques se présentent sous le format <tt>$HOME/projects/group_name</tt>. Le lien symbolique <tt>$HOME/project</tt> pointe sur le répertoire projet de votre groupe; pour les utilisateurs qui ont associés à plus d’un groupe, le lien pointe sur le groupe désigné comme étant leur groupe par défaut. | Les liens symboliques se présentent sous le format <tt>$HOME/projects/group_name</tt>. Le lien symbolique <tt>$HOME/project</tt> pointe sur le répertoire projet de votre groupe; pour les utilisateurs qui ont associés à plus d’un groupe, le lien pointe sur le groupe désigné comme étant leur groupe par défaut. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
Dans l’espace réservé à un groupe, le chercheur principal est propriétaire du répertoire et les membres du groupe ont des permissions de lecture et écriture pour ce répertoire. Cependant, pour tout nouveau fichier enregistré dans le répertoire, les membres du groupe ont par défaut un droit de lecture seulement; pour que les membres puissent avoir un droit en écriture, la meilleure approche est de créer un répertoire particulier, ainsi | Dans l’espace réservé à un groupe, le chercheur principal est propriétaire du répertoire et les membres du groupe ont des permissions de lecture et écriture pour ce répertoire. Cependant, pour tout nouveau fichier enregistré dans le répertoire, les membres du groupe ont par défaut un droit de lecture seulement; pour que les membres puissent avoir un droit en écriture, la meilleure approche est de créer un répertoire particulier, ainsi | ||
{{Commande|mkdir $HOME/project/group_writable}} | {{Commande|mkdir $HOME/project/group_writable}} | ||
suivi de | suivi de | ||
{{Commande|setfacl -d -m g::rwx $HOME/project/group_writable}} | {{Commande|setfacl -d -m g::rwx $HOME/project/group_writable}} | ||
</div> | |||
Sur le partage de données, la propriété de fichiers et les listes de contrôle d’accès (ACLs), voyez [https://docs.computecanada.ca/wiki/Sharing_data/fr Partage de données]. | Sur le partage de données, la propriété de fichiers et les listes de contrôle d’accès (ACLs), voyez [https://docs.computecanada.ca/wiki/Sharing_data/fr Partage de données]. | ||
Line 16: | Line 20: | ||
{{Commande|diskusage_report}} | {{Commande|diskusage_report}} | ||
In order to ensure that files which are copied or moved to a given project space acquire the appropriate group membership - and thus are counted against the expected quota - it can be useful to set the <tt>setgid</tt> bit on the directory in question. This will have the effect of ensuring that every new file and subdirectory created below the directory will inherit the same group as the ambient directory; equally so, new subdirectories will also possess this same <tt>setgid</tt> bit. However, existing files and subdirectories will not have their group membership changed - this should be done with the <tt>chgrp</tt> command - and any files moved to the directory will also continue to retain their existing group membership. You can set the <tt>setgid</tt> bit on a directory with the command | |||
{{Command|chmod g+s <directory name>}} | |||
If you want to apply this command to the existing subdirectories of a directory, you can use the command | |||
{{Command|find <directory name> -type d -exec chmod g+s '{}' \;}} | |||
More information on the <tt>setgid</tt> is available from this [https://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories page]. | |||
You can also use the command <tt>newgrp</tt> to modify your default group during an interaction session, for example | |||
{{Command|newgrp rrg-profname-ab}} | |||
and then to copy any data to the appropriate project directory. This will only change your default group for this particular session however - at your next login you will need to reuse the <tt>newgrp</tt> command if you wish to change the default group again. | |||
=== Exemple === | === Exemple === | ||
Line 21: | Line 34: | ||
Dans notre exemple, Sue est chercheur principal et Bob est membre de son groupe. Au départ, les répertoires de Sue et Bob semblent structurés de manière identique. | Dans notre exemple, Sue est chercheur principal et Bob est membre de son groupe. Au départ, les répertoires de Sue et Bob semblent structurés de manière identique. | ||
<div class="mw-translate-fuzzy"> | |||
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | <div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | ||
* <code>/home/sue/scratch</code> (lien symbolique) | * <code>/home/sue/scratch</code> (lien symbolique) | ||
Line 28: | Line 42: | ||
* <code>/home/bob/projects</code> (répertoire) | * <code>/home/bob/projects</code> (répertoire) | ||
* <code>/home/bob/project</code> (lien symbolique) | * <code>/home/bob/project</code> (lien symbolique) | ||
</div> | |||
</div> | </div> | ||
Cependant, le lien symbolique ''scratch'' pointe sur des répertoires différents : <code>/scratch/sue</code> pour Sue et<code>/scratch/bob</code> pour Bob. | Cependant, le lien symbolique ''scratch'' pointe sur des répertoires différents : <code>/scratch/sue</code> pour Sue et<code>/scratch/bob</code> pour Bob. | ||
<div class="mw-translate-fuzzy"> | |||
En supposant que Bob n'a qu'un seul rôle défini dans la base de données CCDB, <code>project</code> pour Bob serait identique à <code>project</code> pour Sue, et <code>projects</code> pour Bob serait identique à <code>projects</code> pour Sue. Aussi, si Sue et Bob n'ont aucun autre rôle et ne sont associés à aucun autre projet, chacun de leur répertoire <code>projects</code> ne comprendrait qu'un sous-répertoire <code>def-sue</code> pointant au même endroit que chacun de leur <code>project</code>. | En supposant que Bob n'a qu'un seul rôle défini dans la base de données CCDB, <code>project</code> pour Bob serait identique à <code>project</code> pour Sue, et <code>projects</code> pour Bob serait identique à <code>projects</code> pour Sue. Aussi, si Sue et Bob n'ont aucun autre rôle et ne sont associés à aucun autre projet, chacun de leur répertoire <code>projects</code> ne comprendrait qu'un sous-répertoire <code>def-sue</code> pointant au même endroit que chacun de leur <code>project</code>. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
Chacun de <code>/home/sue/project</code>, <code>/home/bob/project</code>, <code>/home/sue/projects/def-sue</code> et <code>/home/bob/projects/def-sue</code> pointeraient au même répertoire, soit <code>/project/<numéro quelconque></code>. Ce répertoire est le meilleur endroit où partager les données de Sue et Bob; ils peuvent y créer des répertoires et ont un accès en lecture et en écriture. Ainsi, Sue peut créer un répertoire <code>foo</code> | Chacun de <code>/home/sue/project</code>, <code>/home/bob/project</code>, <code>/home/sue/projects/def-sue</code> et <code>/home/bob/projects/def-sue</code> pointeraient au même répertoire, soit <code>/project/<numéro quelconque></code>. Ce répertoire est le meilleur endroit où partager les données de Sue et Bob; ils peuvent y créer des répertoires et ont un accès en lecture et en écriture. Ainsi, Sue peut créer un répertoire <code>foo</code> | ||
$ cd ~/project | $ cd ~/project | ||
$ mkdir foo | $ mkdir foo | ||
et Bob peut copier des fichiers dans <code>~/project/foo</code>, pour que les deux puissent y avoir accès. | et Bob peut copier des fichiers dans <code>~/project/foo</code>, pour que les deux puissent y avoir accès. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
En supposant maintenant que Sue a obtenu des ressources avec espace de stockage suite au concours d'allocation de ressources (comme c'est souvent le cas), il y aurait une autre entrée dans leurs répertoires <code>projects</code> respectifs, semblable à | En supposant maintenant que Sue a obtenu des ressources avec espace de stockage suite au concours d'allocation de ressources (comme c'est souvent le cas), il y aurait une autre entrée dans leurs répertoires <code>projects</code> respectifs, semblable à | ||
~/projects/rrg-sue-ab | ~/projects/rrg-sue-ab | ||
Line 45: | Line 65: | ||
Pour partager un fichier avec un utilisateur qui n’est pas parrainé par le chercheur principal, par exemple Heather, le plus simple est de configurer les permissions pour que cet utilisateur puisse lire le répertoire ou le fichier, habituellement par une liste de contrôle des accès (ACL); pour les détails, consultez la page [https://docs.computecanada.ca/wiki/Sharing_data/fr Partage de fichiers]. Notez que les permissions pour les systèmes de fichiers peuvent être modifiées pour tous les répertoires ou fichiers, et non seulement pour ceux de l’espace projet. Vous pouvez partager un répertoire de votre espace ''scratch'' ou encore un sous-répertoire de votre espace projet. | Pour partager un fichier avec un utilisateur qui n’est pas parrainé par le chercheur principal, par exemple Heather, le plus simple est de configurer les permissions pour que cet utilisateur puisse lire le répertoire ou le fichier, habituellement par une liste de contrôle des accès (ACL); pour les détails, consultez la page [https://docs.computecanada.ca/wiki/Sharing_data/fr Partage de fichiers]. Notez que les permissions pour les systèmes de fichiers peuvent être modifiées pour tous les répertoires ou fichiers, et non seulement pour ceux de l’espace projet. Vous pouvez partager un répertoire de votre espace ''scratch'' ou encore un sous-répertoire de votre espace projet. | ||
Par contre, l’utilisation d’ACLs n’est pas possible pour ''home'' sur Graham. Il est de bonne pratique de limiter le partage des fichiers aux espaces projet et ''scratch''. | Par contre, l’utilisation d’ACLs n’est pas possible pour ''home'' sur Graham. Il est de bonne pratique de limiter le partage des fichiers aux espaces projet et ''scratch''. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
N’oubliez pas que Heather devra probablement avoir accès à plus d’un niveau de la structure du système de fichiers; il faut lui accorder les permissions de lecture et d’écriture pour chacun des répertoires entre <code>/project</code> et le répertoire où sont situés les fichiers à partager. Nous avons supposé que Heather détient un compte sur la grappe en question, mais il est aussi possible de partager des données avec des chercheurs qui n’ont pas de compte avec Calcul Canada, en créant un [[Globus/fr#Partage_de_fichiers_avec_Globus | point de chute commun]] dans Globus. | N’oubliez pas que Heather devra probablement avoir accès à plus d’un niveau de la structure du système de fichiers; il faut lui accorder les permissions de lecture et d’écriture pour chacun des répertoires entre <code>/project</code> et le répertoire où sont situés les fichiers à partager. Nous avons supposé que Heather détient un compte sur la grappe en question, mais il est aussi possible de partager des données avec des chercheurs qui n’ont pas de compte avec Calcul Canada, en créant un [[Globus/fr#Partage_de_fichiers_avec_Globus | point de chute commun]] dans Globus. | ||
</div> | |||
Bien sûr, si Heather devient une collaboratrice régulière de Sue, cette dernière pourrait la parrainer et lui accorder les mêmes accès que ceux accordés à Bob. | Bien sûr, si Heather devient une collaboratrice régulière de Sue, cette dernière pourrait la parrainer et lui accorder les mêmes accès que ceux accordés à Bob. |
Revision as of 13:53, 8 November 2017
Les espaces projet des systèmes de fichiers sur Cedar et Graham sont organisés selon des groupes à l'aide d'une interface utilisateur simple. L'accès à un espace projet se fait habituellement par des liens symboliques à partir de votre répertoire home. Les liens symboliques se présentent sous le format $HOME/projects/group_name. Le lien symbolique $HOME/project pointe sur le répertoire projet de votre groupe; pour les utilisateurs qui ont associés à plus d’un groupe, le lien pointe sur le groupe désigné comme étant leur groupe par défaut.
Dans l’espace réservé à un groupe, le chercheur principal est propriétaire du répertoire et les membres du groupe ont des permissions de lecture et écriture pour ce répertoire. Cependant, pour tout nouveau fichier enregistré dans le répertoire, les membres du groupe ont par défaut un droit de lecture seulement; pour que les membres puissent avoir un droit en écriture, la meilleure approche est de créer un répertoire particulier, ainsi
[nom@serveur ~]$ mkdir $HOME/project/group_writable
suivi de
[nom@serveur ~]$ setfacl -d -m g::rwx $HOME/project/group_writable
Sur le partage de données, la propriété de fichiers et les listes de contrôle d’accès (ACLs), voyez Partage de données.
Par défaut, un espace projet a un quota de 1To et cinq millions de fichiers; l’espace peut être augmenté jusqu’à 10To sur demande auprès du soutien technique. Si votre groupe dispose de quotas plus élevés par suite du concours d’allocation de ressources, vous avez été informé du quota qui vous est alloué pour l’année. Notez que l'espace de stockage alloué dépend de la grappe et ne peut en principe être utilisé sur une autre grappe.
Pour connaitre les espaces utilisés et disponibles pour scratch et projet sur Cedar et Graham, ou l'espace home sur Cedar, utilisez
[nom@serveur ~]$ diskusage_report
In order to ensure that files which are copied or moved to a given project space acquire the appropriate group membership - and thus are counted against the expected quota - it can be useful to set the setgid bit on the directory in question. This will have the effect of ensuring that every new file and subdirectory created below the directory will inherit the same group as the ambient directory; equally so, new subdirectories will also possess this same setgid bit. However, existing files and subdirectories will not have their group membership changed - this should be done with the chgrp command - and any files moved to the directory will also continue to retain their existing group membership. You can set the setgid bit on a directory with the command
[name@server ~]$ chmod g+s <directory name>
If you want to apply this command to the existing subdirectories of a directory, you can use the command
[name@server ~]$ find <directory name> -type d -exec chmod g+s '{}' \;
More information on the setgid is available from this page.
You can also use the command newgrp to modify your default group during an interaction session, for example
[name@server ~]$ newgrp rrg-profname-ab
and then to copy any data to the appropriate project directory. This will only change your default group for this particular session however - at your next login you will need to reuse the newgrp command if you wish to change the default group again.
Exemple
Dans notre exemple, Sue est chercheur principal et Bob est membre de son groupe. Au départ, les répertoires de Sue et Bob semblent structurés de manière identique.
/home/sue/scratch
(lien symbolique)/home/sue/projects
(répertoire)/home/sue/project
(lien symbolique)/home/bob/scratch
(lien symbolique)/home/bob/projects
(répertoire)/home/bob/project
(lien symbolique)
Cependant, le lien symbolique scratch pointe sur des répertoires différents : /scratch/sue
pour Sue et/scratch/bob
pour Bob.
En supposant que Bob n'a qu'un seul rôle défini dans la base de données CCDB, project
pour Bob serait identique à project
pour Sue, et projects
pour Bob serait identique à projects
pour Sue. Aussi, si Sue et Bob n'ont aucun autre rôle et ne sont associés à aucun autre projet, chacun de leur répertoire projects
ne comprendrait qu'un sous-répertoire def-sue
pointant au même endroit que chacun de leur project
.
Chacun de /home/sue/project
, /home/bob/project
, /home/sue/projects/def-sue
et /home/bob/projects/def-sue
pointeraient au même répertoire, soit /project/<numéro quelconque>
. Ce répertoire est le meilleur endroit où partager les données de Sue et Bob; ils peuvent y créer des répertoires et ont un accès en lecture et en écriture. Ainsi, Sue peut créer un répertoire foo
$ cd ~/project $ mkdir foo
et Bob peut copier des fichiers dans ~/project/foo
, pour que les deux puissent y avoir accès.
En supposant maintenant que Sue a obtenu des ressources avec espace de stockage suite au concours d'allocation de ressources (comme c'est souvent le cas), il y aurait une autre entrée dans leurs répertoires projects
respectifs, semblable à
~/projects/rrg-sue-ab
Ce répertoire servirait à stocker et partager les données pour un projet dans le cadre du concours.
Pour partager un fichier avec un utilisateur qui n’est pas parrainé par le chercheur principal, par exemple Heather, le plus simple est de configurer les permissions pour que cet utilisateur puisse lire le répertoire ou le fichier, habituellement par une liste de contrôle des accès (ACL); pour les détails, consultez la page Partage de fichiers. Notez que les permissions pour les systèmes de fichiers peuvent être modifiées pour tous les répertoires ou fichiers, et non seulement pour ceux de l’espace projet. Vous pouvez partager un répertoire de votre espace scratch ou encore un sous-répertoire de votre espace projet. Par contre, l’utilisation d’ACLs n’est pas possible pour home sur Graham. Il est de bonne pratique de limiter le partage des fichiers aux espaces projet et scratch.
N’oubliez pas que Heather devra probablement avoir accès à plus d’un niveau de la structure du système de fichiers; il faut lui accorder les permissions de lecture et d’écriture pour chacun des répertoires entre /project
et le répertoire où sont situés les fichiers à partager. Nous avons supposé que Heather détient un compte sur la grappe en question, mais il est aussi possible de partager des données avec des chercheurs qui n’ont pas de compte avec Calcul Canada, en créant un point de chute commun dans Globus.
Bien sûr, si Heather devient une collaboratrice régulière de Sue, cette dernière pourrait la parrainer et lui accorder les mêmes accès que ceux accordés à Bob.
En résumé :
- l'espace
scratch
est utilisé pour les fichiers privés et temporaires - l'espace
home
est habituellement utilisé pour un petit nombre de fichiers relativement privés (par exemple des scripts de tâches) - l'espace
project
du groupe est habituellement utilisé pour les données partagées puisque cet espace est persistant, sauvegardé et plutôt de grande taille (jusqu'à 10To et plus si alloué dans le cadre du concours d'allocation de ressources)