...
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 siano sia su ssd
Code Block |
---|
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 |
...
Code Block |
---|
[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:
Code Block |
---|
[root@c-mon-1 almalinux]# ceph fs authorize cephfs client.allfs / rwp | tee /etc/ceph/ceph.client.allfs.keyring
[client.allfs]
key = AQCnHolnBCOgNBAA9Vn36INaHCF5u599JMjtuQ==
|
Code Block |
---|
[root@c-mon-1 almalinux]# ceph fs authorize cephfs client.terabithome /terabithome rwrwp | tee /etc/ceph/ceph.client.terabithome.keyring [client.terabithome] key = AQA9FIlnaJ5SFBAAdT8gzFgfOp9jq3meON0o+g== [root@c-mon-1 almalinux]# ceph fs authorize cephfs client.slurmctrl /slurmctrl rwrwp | tee /etc/ceph/ceph.client.slurmctrl.keyring [client.slurmctrl] key = AQB4FIlng39/JhAAloEnVIZDpfMz/Zijwjou5Q== |
Il file /etc/ceph/ceph.client.*.keyring serviranno poi nei nodi dove si monta il file system
Mount del filesystem su un client
...
Su un monitor:
ceph config generate-minimal-conf | sudo tee ~/ceph.conf.min
...
Copio nel client node anche il file /etc/ceph/ceph.client.cephfs.keyring prima generato (deve avere mode 0600 e appartenere a root.root)
Creo anche il file /etc/ceph/cephfs.secret che contiene la sola chiave (quella che compare in /etc/ceph/ceph.client.cephfs.keyring)
...
'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:
Code Block |
---|
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 |
Con il senno di poi: questo esempio non e' il massimo perche' ho usato cephfs sia come nome del file system, sia come il nome dello user ceph (quello per cui ho creato il client).
In bold faccio riferimento allo username, in italic al nome del file system ceph
L'entry corrispondente in fstab e' questa:
A questi punto creo le top level directory e poi posso fare l'umount:
Code Block |
---|
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 diversicephfs@.cephfs=/ /mnt/mycephfs ceph mon_addr=10.70.42.10:6789/10.70.42.9:6789/10.70.42.8:6789,secretfile=/etc/ceph/cephfs.secret,noatime,_netdev 0 0