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


Abilitazione di un path in ceph-fs che usa un pool SSD


Vogliamo fare in modo che quello che per tutto quello che viene scritto sotto /ssd venga usato un pool SSD

E' tutto spiegato nel ticket:


PDCL-2399 - Getting issue details... STATUS


In sostanza:

  • si crea un pool dati SSD
  • si aggancia questo nuovo pool al filesystem (ceph fs add_data_pool cephfs cephfs_data_ssd)
  • si specifica che per tutto quello che si scrive sotto /ssd si deve usare questo pool ([root@cld-ter-01# setfattr -n ceph.dir.layout.pool -v cephfs_data_ssd /cephfs/ssd)






  • No labels