Pool
Il cluster di memoria Ceph memorizza oggetti dati in partizioni logiche denominate pool. Gli amministratori Ceph possono creare pool per particolari tipi di dati, ad esempio per Ceph Block Devices, Ceph Object Gateways o semplicemente per separare un gruppo di utenti da un altro. I pool hanno un ruolo importante nella durata dei dati, nelle prestazioni e nell'alta disponibilità per IBM Storage Ceph.
Dal punto di vista di un client Ceph, il cluster di memoria è semplice. Quando un client Ceph legge o scrive i dati utilizzando un contesto I/O, sempre si connette a un lotto di memoria nel cluster di memoria Ceph. Il client specifica il nome del lotto, un utente e una chiave segreta, in modo che il lotto sembri agire come una partizione logica con controlli di accesso ai relativi oggetti dati.
Un pool Ceph è non solo una partizione logica per memorizzare i dati oggetto. Un pool svolge un ruolo fondamentale nel modo in cui il cluster di archiviazione Ceph distribuisce e memorizza i dati. Tuttavia, queste operazioni complesse sono trasparenti per il client Ceph.
- Tipo di pool
- Nelle prime versioni di Ceph, un pool manteneva semplicemente più copie profonde di un oggetto. Oggi, Ceph può mantenere più copie di un oggetto, o può utilizzare la codifica di cancellazione per garantire la durata. Il metodo di durabilità dei dati è a livello di pool e non cambia dopo la creazione del pool. Il tipo di pool definisce il metodo di durata dei dati durante la creazione del pool. I tipi di pool sono completamente trasparenti per i client.
- Gruppi di posizionamento
- In un cluster di archiviazione in scala exabyte, un pool Ceph potrebbe archiviare milioni di oggetti di dati o più. Ceph deve gestire molti tipi di operazioni, tra cui la durata dei dati tramite repliche o porzioni di codice di cancellazione, l'integrità dei dati tramite ripulitura o controlli CRC, replica, ribilanciamento e ripristino. Di conseguenza, la gestione dei dati per oggetto presenta una scalabilità e un collo di bottiglia delle prestazioni. Ceph affronta questo collo di bottiglia suddividendo un pool in gruppi di posizionamento. L'algoritmo CRUSH calcola il gruppo di posizionamento per la memorizzazione di un oggetto e calcola la serie di OSD effettivi per il gruppo di posizionamento. CRUSH inserisce ogni oggetto in un gruppo di posizionamento. Quindi, CRUSH memorizza ogni gruppo di posizionamento in una serie di OSD. Gli amministratori di sistema impostano il numero di gruppi di posizionamento durante la creazione o la modifica di un pool.
- Serie di regole CRUSH
- CRUSH è in grado di rilevare domini di errore e domini di prestazioni. CRUSH può identificare gli OSD in base al tipo di supporto di archiviazione e organizzare gli OSD gerarchicamente in nodi, rack e righe. CRUSH consente agli OSD Ceph di memorizzare copie di oggetti tra domini di errore. Ad esempio, le copie di un oggetto possono essere memorizzate in diverse sale server, corridoi, rack e nodi. Se si verifica un malfunzionamento di gran parte di un cluster, come ad esempio un rack, il cluster può ancora operare in uno stato danneggiato fino a quando il cluster non viene ripristinato.Inoltre, CRUSH consente ai clienti di scrivere dati su particolari tipi di hardware, come SSD, dischi rigidi con journal SSD o dischi rigidi con journal sulla stessa unità dei dati. La serie di regole CRUSH determina i domini di errore e i domini delle prestazioni per il lotto. Gli amministratori impostano la serie di regole CRUSH quando creano un pool.Nota: un amministratore NON può modificare una serie di regole del pool dopo la creazione del pool.
- Durabilità
- Nei cluster di archiviazione in scala exabyte, l'errore hardware è un'aspettativa e non un'eccezione. Quando si utilizzano gli oggetti di dati per rappresentare interfacce di memoria più grandi, come ad esempio un dispositivo a blocchi, la perdita di uno o più oggetti di dati per tale interfaccia più grande, può compromettere l'integrità dell'entità di memoria più grande, rendendola potenzialmente inutile. Quindi la perdita di dati è intollerabile. Ceph offre un'elevata durata dei dati in due modi:
- I pool di repliche memorizzano più copie profonde di un oggetto utilizzando il dominio di errore CRUSH per separare fisicamente una copia di oggetto dati da un altro. Cioè, le copie vengono distribuite su hardware fisico separato. Ciò aumenta la durata durante i malfunzionamenti hardware.
- I pool con codifica di cancellazione memorizzano ogni oggetto come blocchi
K+M, doveKrappresenta i blocchi di dati eMrappresenta i blocchi di codifica. La somma rappresenta il numero di OSD utilizzati per archiviare l'oggetto e il valoreMrappresenta il numero di OSD che possono avere esito negativo e ancora ripristinare i dati nel caso in cui il numeroMdi OSD abbia esito negativo.