In queste istruzioni si crea un file system (in questo esempio con 2 "top level directory" : /terabit-home e /slurm-controller) che si appoggia su 3 MDS: 2 attivi e uno in stand-by
Quindi il prerequisto e' avere prima creato 3 MDS. Vedi: How to install a MDS node (Alma9, Quincy)
Creo i pool per dati e metadati.
Opportuno crearli in replica 3 e opportuno che quello di metadati sia su ssd
ceph osd pool create cephfs_data 32 32 ceph osd pool set cephfs_data crush_rule replicated_hdd ceph osd pool create cephfs_metadata 32 32 ceph osd pool set cephfs_metadata crush_rule replicated_ssd
Creo il filesystem:
ceph fs new cephfs cephfs_metadata cephfs_data
Dovrei ora vedere un MDS active e 2 in standby:
root@c-mds-03 ceph]# ceph mds stat cephfs:1 {0=c-mds-01=up:active} 2 up:standby
Configuro questo file system in modo che usi 2 MDS attivi:
[root@c-mds-03 ceph]# ceph fs set cephfs max_mds 2
Verifico:
[root@c-mds-03 ceph]# ceph mds stat cephfs:2 {0=c-mds-01=up:active,1=c-mds-03=up:active} 1 up:standby
Creo un client che abbia accesso a tutto il file system (sostanzialmente mi servira' solo per creare le top level directory)
Creo un client per ogni "top level directory" per questo filesystem:
[root@c-mon-1 almalinux]# ceph fs authorize cephfs client.allfs / rwp | tee /etc/ceph/ceph.client.allfs.keyring [client.allfs] key = AQCnHolnBCOgNBAA9Vn36INaHCF5u599JMjtuQ==
[root@c-mon-1 almalinux]# ceph fs authorize cephfs client.terabithome /terabithome rwp | tee /etc/ceph/ceph.client.terabithome.keyring [client.terabithome] key = AQA9FIlnaJ5SFBAAdT8gzFgfOp9jq3meON0o+g== [root@c-mon-1 almalinux]# ceph fs authorize cephfs client.slurmctrl /slurmctrl rwp | tee /etc/ceph/ceph.client.slurmctrl.keyring [client.slurmctrl] key = AQB4FIlng39/JhAAloEnVIZDpfMz/Zijwjou5Q==
Il 'p' serve per poter settare le quote
A questo punto devo creare le top level directory. Configuro una macchina di servizio come client (vedi How to mount a ceph file system) e li' monto l'intero filesystem usando il client allfs. Quindi il comando di mount sara' qualcosa tipo:
mkdir /cephfs mount -t ceph allfs@.cephfs=/ /cephfs -o mon_addr=10.70.42.10:6789/10.70.42.9:6789/10.70.42.8:6789,secretfile=/etc/ceph/cephfs.allfs.secret
A questi punto creo le top level directory e poi posso fare l'umount:
mkdir /cephfs/terabithome mkdir /cephfs/slurmct umount /cephfs
Il file /etc/ceph/ceph.client.xyz.keyring serviranno poi nei nodi dove si monta la top level directory xyz
Volendo si puo' fare in modo che tree diversi del file system usino pool diversi