====== RBD ====== ===== Inizializzazione pool ===== Per supportare la memorizzazione degli oggetti relativi a delle immagini block device è necessario creare un pool, e inizializzarlo come un pool rbd: rbd pool init L’associazione pool-applicazione avviene automaticamente. ===== Creazione utente ===== Per operare su pool rbd (creazione, cancellazione, accesso immagini) è opportuno definire un utente meno privilegiato di ''%%admin%%'', con un livello minimo di capabilities necessarie all gestione del pool. Ad esempio: ceph auth get-or-create client. mon 'profile rbd' osd 'profile rbd pool=' mgr 'profile rbd pool=' Abilita il nuovo utente ad accedere (rw) al pool rbd. Posso essere anche attribuiti permessi in sola lettura a specifici pool. Al momento della creazione viene restituito il contenuto di un keyring corrispondente. ===== Accesso al pool da macchina client ===== Per accedere al pool, la macchina client necessita di:
  1. informazioni di accesso al cluster (configurazione minimale del cluster) in ''%%cat /etc/ceph/ceph.conf%%'', ottenibile da una macchina con profilo ''%%_admin%%'' con:

    ceph config generate-minimal-conf
  2. keyring dell’utente in ''%%/etc/ceph/ceph.client..keyring%%'', ottenibile da una macchina con profilo ''%%_admin%%'' durante la creazione dell’utente o con:

    ceph auth get client. -o ceph.client..keyring

    Il keyring ottenuto conterrà anche l’elenco delle capabilities, anche se non sono necessarie ai fini dell’operatività.

Tutte le operazioni sul pool dalla macchina client avverranno attraverso le informazioni in questi file, salvo diversa specifica durante l’esecuzione dei tool. ===== Creazione immagini ===== Per utilizzare un block device usufruendo dello spazio in un pool rbd, è necessario creare un’immagine. Dalla macchina client (o da un nodo generico accedendo con opportune capabilities ): rbd --id create --size / Se omesso, ''%%%%'' è assunto essere ''%%rbd%%''. ===== Image mapping ===== Per utilizzzare l’immagine creata come block device, è necessario effettuare il mapping su un device locale. Dalla macchina client: rbd --id map / Se omesso, ''%%%%'' è assunto essere ''%%rbd%%''. Il comando restituisce il path al device locale, ad esempio ''%%/dev/rdb0%%''. Prima del mount creare come di consueto un filesystem sul device, ad esempio con: mkfs.xfs /dev/rbd0 ===== Block device (auto)mount ===== Il mount avviene come per un generico device a blocchi, ma per avere il mapping dell’immagine e il mount automatico al boot, è necessario utilizzare ''%%rbdmap%%'':
  1. Inserire nel file ''%%/etc/ceph/rbdmap%%'':

    / id=
  2. Inserire in ''%%/etc/fstab%%'':

    /dev/rbd// noauto 0 0
  3. Abilitare ed avviare il servizio ''%%rbdmap.service%%'':

    systemctl enable rbdmap.service systemctl start rbdmap.service

    Mapping e mount del device avverranno automaticamente.