Ciao gtirmont,
gtirmont ha scritto: ↑5 dicembre 2018 - 17:24
Buongiorno,
La dimensione del file
/var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb Il nostro dominio ads.univ-lille.fr ha già superato il limite 4G
Codice: Seleziona tutto
-rw------- 1 root root 4294967295 déc. 5 17:14 /var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb
Abbiamo 85.000 utenti, ma possiamo limitare l'accesso consentendo l'accesso a questo dominio solo agli utenti realmente attivi.
Ricevo questo errore solo quando provo a eliminare un utente:
Codice: Seleziona tutto
ltdb: tdb(/var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb): tdb_expand overflow detected current map_size[4294967295] size[9108]!
../source4/dsdb/samdb/ldb_modules/repl_meta_data.c:4447: Failed to rename object from 'CN=test01,OU=IPTA,OU=Autres,OU=ULilleRessources,DC=ads,DC=univ-lille,DC=fr' to 'CN=test01\0ADEL:9ff44ef0-221e-4287-b591-dc330eb76d80,CN=Deleted Objects,DC=ads,DC=univ-lille,DC=fr' - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
ERROR(ldb): Failed to remove user "test01" - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 455, in run
samdb.delete(user_dn)
Non possiamo più aggiungere oggetti (utente, computer...)
Esiste una soluzione per ridurre le dimensioni del database? Anche se ciò significa eliminare oggetti (ad esempio utenti)?
Grazie mille per il tuo aiuto
Abbiamo ottenuto i finanziamenti per lo sviluppo del backend LMDB per Samba 4.9, che elimina il limite di 4 GiB a cui siamo abituati.
Pertanto, sarebbe necessario passare a Samba 4.9 LMDB. Per farlo, però, sarebbe necessario prima integrare un nuovo controller di dominio LMDB 4.9, cosa impossibile poiché non è più possibile creare oggetti...
Per vostra informazione, l'eliminazione di un utente non elimina effettivamente la voce, ma la sposta in CN=Deleted Objects. Pertanto, non viene liberato spazio finché non è trascorsa la scadenza della rimozione definitiva e Active Directory non ha svuotato l'oggetto. Inoltre, quando l'oggetto viene svuotato, TDB deve anche recuperare lo spazio liberato.
Infine, un'altra cosa che puoi provare è eseguire un `tdbbackup` e ripristinare da quel database (questo recupera lo spazio liberato, un po' come `VACUUM` in PostgreSQL). Ma se il database è pieno, potrebbe non funzionare. Potresti provare `ldbdel`, ma penso che sia ancora un po' troppo di alto livello. Dovresti esaminare i record TDB corrispondenti al livello di astrazione LDB per gli oggetti che puoi eliminare.
Date le dimensioni della tua università, ti consiglio di contattare il team di vendita per ricevere supporto! Nel brevissimo termine, la pulizia di TDB è probabilmente l'opzione migliore, ma dovresti passare alla versione 4.9 di LMDB abbastanza rapidamente. Abbiamo effettuato test piuttosto approfonditi sulla versione 4.9 di LDMB e i risultati attesi sono stati soddisfacenti. Tuttavia, essendo piuttosto conservativi con un'applicazione critica come Active Directory, siamo ancora alla versione 4.8 per la stragrande maggioranza dei nostri clienti.
Sinceramente,
Denis