Tornar al Blog

El salt a Ceph Tentacle a Proxmox et cobra el que vas muntar el 2020

El salt a Ceph Tentacle a Proxmox et cobra el que vas muntar el 2020

El salt de Ceph Squid a Tentacle és la finestra que toca obrir a qui no vulgui creuar el 31 d'octubre sense pedaços nous. El procediment està escrit i és clar. El que no és a cap nota de versió és la factura: el salt et cobra el clúster que ja tenies. Als OSD creats el 2020 l'espai de metadades es dispara, i el que arriba al tauler de Proxmox és menys capacitat total. Dos mòduls del manager feia sis anys que estaven marcats com a obsolets i encara corrien al teu clúster; ara desapareixen de debò. I el pas del sistema de fitxers et demana, per escrit, que et quedis una estona sense standby. Res d'això no és una errada: està tot documentat. El problema és que no acostuma a estar apuntat a la finestra de manteniment.

La data, en dues línies

El calendari oficial de Ceph marca el 31 d'octubre del 2026 com a fi de vida estimat de la branca Squid (19). La paraula entre parèntesis és seva: la taula posa «End of life (estimated)» per a Squid i per a Tentacle, i «End of life» a seques per a Reef, que ja va tancar el 20 de març. La diferència no és cosmètica i la lletra petita d'aquestes dates ja la vam desgranar al setembre. La 19.2.7, del 12 d'octubre, és l'última Squid publicada; Tentacle (20) està disponible des del 18 de novembre del 2025 i la seva data estimada és l'1 de juny del 2027.

Fa dues setmanes explicàvem que l'últim pedaç de Squid trigava a arribar al repositori de Proxmox. Avui, a les 17:05, hem tornat a mirar els índexs públics de download.proxmox.com i la foto ha canviat a mitges: ceph-squid per a trixie ja serveix 19.2.7-pve1… però només al component test. A no-subscription el més alt continua sent 19.2.6-pve4. Si el teu clúster va amb el repositori gratuït i no penses saltar, creues el 31 amb el penúltim pedaç d'una branca que deixa de tenir-ne. És un risc petit i acotat, però convé escriure'l en algun lloc en comptes de suposar-lo.

La parella de versions que no ha existit mai

Aquesta és la part que més ens agrada de la nota de Tentacle, perquè canvia com s'ha de llegir qualsevol matriu de compatibilitat. Diu, literalment, que actualitzar a l'última versió menor de la sèrie de destí és l'únic camí suportat i provat des d'una versió anterior, i en dona la raó: una versió no es pot provar contra versions que no existien quan es va publicar.

«Upgrades from Squid v19.2.6 to Tentacle releases earlier than v20.2.4 may fail: v20.2.4 introduced the key type changes, so Tentacle daemons older than v20.2.4 fail to start. The Managers upgrade, the rest may not, and the only way out is to redeploy the Managers with the previous image and start over.» — les actualitzacions des de Squid 19.2.6 a versions de Tentacle anteriors a la 20.2.4 poden fallar; els managers s'actualitzen, la resta potser no, i l'única sortida és tornar a desplegar els managers amb la imatge anterior i començar de nou.

La direcció del problema sorprèn la primera vegada: la 19.2.6 és posterior a diverses versions de Tentacle —va sortir el 19 d'agost del 2026 i la 20.2.3 el dia 5—, de manera que aquesta parella concreta no es va poder provar mai. El «canvi de tipus de clau» té nom i cognoms al wiki de Proxmox: Squid 19.2.6 i Tentacle 20.2.4 van afegir comprovacions de salut per a les claus amb xifratge aes afectades per CVE-2025-30156. Si això et sona, és perquè ja vam parlar de la migració de claus cephx quan van aparèixer aquests avisos.

Aquí és on convé mirar el repositori en comptes de suposar-lo, així que el vam mesurar. El de ceph-tentacle de Proxmox serveix fins a 20.2.4-pve5, de manera que qui segueixi el wiki i deixi que apt agafi la més alta aterra bé. Curiosament, la 20.2.3 de l'exemple upstream no va arribar mai a aquest repositori: hi ha la 20.2.0, la 20.2.1, la 20.2.2 i després directament la 20.2.4. I les tres primeres hi continuen, publicades al costat de la bona, esperant qui tingui un pin, un paquet en hold, una rèplica interna congelada fa mesos o una memòria cau d'apt-cacher que recordi massa.

Hi ha un detall que uneix dos paràgrafs de més amunt i que convé no passar per alt: el sostre del repositori gratuït per a trixie és 19.2.6-pve4, que és exactament la versió d'origen sobre la qual avisa la nota de Tentacle. Qui va amb no-subscription i no ha tocat res està, per definició, en el cas de l'avís.

Els OSD que vas crear el 2020

El wiki de Proxmox té una secció de problemes coneguts amb una sola entrada, i és la que et tocarà si el teu clúster té anys: els OSD creats a Ceph Octopus (v15, principis del 2020) i anteriors poden veure un augment de l'ús de META després de l'actualització a Tentacle, fins a la versió 20.2.4. El tiquet de seguiment és el 76256 i es titula, sense eufemismes, bluefs: META space usage explodes on osds without sharding after upgrade to tentacle.

Compte amb aquest «fins a la versió 20.2.4», perquè es llegeix a l'inrevés del que diu: la 20.2.4 és, a dia d'avui, l'última Tentacle publicada, i el repositori de Proxmox no serveix res per sobre. Traduït: encara no existeix cap Tentacle on això estigui resolt. L'arreglament està fusionat a la branca de desenvolupament (v21) i el backport a Tentacle continua a la cua, que és el que significa l'estat «Backporting» del tiquet.

La causa està escrita a la mateixa pàgina: la RocksDB d'aquests OSD no fa servir sharding, que va passar a ser el comportament per defecte a partir de Ceph Pacific (v16). Un OSD creat el 2020 ha creuat Octopus, Pacific, Quincy, Reef i Squid sense que ningú no el refés. Les actualitzacions hereten el format intern del disc que ja hi havia.

I ara la part que acaba al comitè de direcció: el símptoma arriba disfressat de capacitat. Textualment, «pot presentar-se com una disminució del Total Space a la interfície web de Proxmox, perquè Ceph calcula l'espai disponible a partir de l'OSD més ple». Ja vam escriure sobre aquest mecanisme quan tocava explicar-lo en fred: a Ceph la capacitat la marca el disc més ple. Aquí el tens aplicat. El teu clúster no ha perdut discos, no ha perdut dades i està en verd; simplement, l'OSD més vell s'ha menjat uns quants gigues de metadades i el càlcul de capacitat el pren a ell com a referència. La verificació és una sola ordre, ceph osd df, mirant la columna META.

El millor del tiquet és que porta la sortida real. Tres OSD idèntics d'un clúster desplegat originalment a 15.2.13, tres amfitrions, un disc per OSD. La columna META marca 15 GiB al primer, 14 GiB al segon i 346 GiB al tercer, que es queda al 95,29 % d'ús i 33 GiB lliures mentre els altres dos van pel 48 i el 51 %. I el remat: en aquest mateix OSD, la suma dels fitxers que RocksDB té realment a BlueFS són 8 GB. Tres-cents i escaig gigues ocupats per a vuit de contingut.

L'adob temporal està documentat: compactar la RocksDB a mà amb ceph daemon osd.# compact, amb l'avís que és intensiu en entrada/sortida i que s'ha de fer d'un en un i fora d'hora punta. Però és un pedaç que torna: qui va obrir el tiquet explica que va estar jugant a matar talps amb el compact i que el problema va reaparèixer a tots els OSD del seu clúster unes quantes vegades. El que aguanta són les altres dues sortides, que també són al wiki i gairebé ningú no llegeix: aplicar sharding a l'OSD —només es pot amb l'OSD aturat— o destruir i recrear els OSD afectats d'un en un, que ja neixen amb l'estructura nova. Cap de les dues és «allargar la finestra»: és un projecte amb el seu propi calendari.

Dos mòduls que ja no hi són

Tentacle retira dos mòduls del manager: mgr/restful i mgr/zabbix. La nota de versió és explícita sobre el perquè: eren obsolets des del 2020, no s'han mantingut de manera activa els últims anys i van començar a arrossegar vulnerabilitats a la seva cadena de dependències (citen CVE-2023-46136). Com a alternativa proposen el mòdul dashboard per al que feia el restful, i prometheus —«el més adoptat a la comunitat de Ceph»— per al que feia el de Zabbix.

Que mgr/zabbix desapareixeria ja ho vam marcar com a punt cec quan encara era un avís de futur: ho vam explicar al juliol, quan això era un pla a cinquanta dies. El que ha canviat des de llavors és el temps verbal. Un mòdul de monitoratge que se'n va deixa la gràfica plana, i una gràfica plana es llegeix com a «no hi ha novetats», que és just el contrari del que està passant. Si el teu Zabbix llegeix l'estat de Ceph per aquí, la feina de monitoratge va abans del salt. I com que Zabbix 8.0 LTS arriba al novembre, quadrar les dues coses a la mateixa planificació surt més barat que fer-les dues vegades.

El pas en què et demanen treure la teva pròpia redundància

Si fas servir CephFS, llegeix el procediment sencer abans d'obrir la finestra. Per actualitzar els MDS et demana desactivar allow_standby_replay, baixar max_mds a 1 —això últim només cal si tens més d'un MDS per sistema de fitxers—, aturar tots els MDS en standby amb systemctl stop ceph-mds.target, confirmar que només en queda un d'actiu, reiniciar-lo i tornar a aixecar els altres. Durant aquesta estona el teu sistema de fitxers té un únic MDS i zero suplents.

Aquesta és la manera correcta de fer-ho, i tot i així vol dir que durant uns minuts la redundància que pagues no hi és. A això s'hi suma el noout que el mateix procediment recomana posar al principi, i convé recordar què fa exactament: noout apaga la reposició de còpies mentre està posat. Si un disc es mor enmig del salt, Ceph no fabricarà la còpia que falta fins que el treguis. Les dues decisions són correctes i totes dues estrenyen el marge alhora. Per això l'hora a què obres la finestra no és un detall d'agenda.

Si ets a Proxmox VE 8, això no va amb tu

Ho hem comprovat avui, perquè és el fet que canvia la conversa amb la direcció. L'arbre de distribucions del repositori ceph-tentacle de Proxmox conté una sola suite: trixie. Per a bookworm —la base de Proxmox VE 8— la URL retorna 404: no hi ha ruta per demanar. I l'arbre de ceph-squid per a bookworm no es toca des del 5 de setembre: serveix 19.2.5 a no-subscription i 19.2.6 a test.

Conclusió incòmoda: un clúster a Proxmox VE 8 és a una actualització major de Proxmox de distància de poder tornar a tenir un Ceph amb suport, no a quatre dies d'una decisió. L'ordre tampoc no el tries tu, i això ho vam explicar al juliol, quan això era un pla a cinquanta dies: la guia oficial del 8 al 9 ho posa en negreta, cal portar el clúster a Ceph 19.2 Squid abans de començar l'actualització de Proxmox. La parada obligatòria del camí és, precisament, la branca que es queda sense suport dissabte. El que no sabíem al juliol és que per a bookworm el destí ni tan sols existiria.

On ets i què et toca

Situació Què pots fer aquesta setmana Finestres
PVE 9.1+ amb Ceph 19.2.3-pve3 o superior Pots saltar. Segueix el wiki i assegura't d'aterrar a 20.2.4 o superior. Una, més un projecte a part si hi ha OSD vells per reshardar o recrear.
PVE 9.0 Primer Proxmox a 9.1 o superior (pve-manager 9.1.4). El salt de Ceph, després. Dues, separades.
PVE 8 (bookworm) amb Squid Tentacle no existeix per a bookworm. Toca el salt 8 → 9 primer; això ja no és un projecte d'aquesta setmana. Diverses, i pla escrit.
PVE 8 amb Reef (18.2.8) Reef ha quedat fora de suport des del 20 de març. Reef → Squid, després Proxmox 8 → 9, després Tentacle. Tres parades. Comença per reconèixer-ho en veu alta.

Quan NO saltar aquesta setmana

Una data de fi de suport no és una alarma d'incendi. El 31 d'octubre no s'apaga res: el que deixa d'haver-hi són pedaços nous. Això és un risc que creix a poc a poc i que es pot escriure, acotar i revisar d'aquí a dues setmanes. Començar un salt de branca amb el clúster tocat, en divendres i sense haver apuntat la columna META prèvia és un risc que t'esclata la mateixa nit. No són comparables.

Hi ha un matís que no és al wiki de Ceph sinó al de Proxmox, i canvia el criteri de «clúster sa»: les comprovacions de salut que van afegir 19.2.6 i 20.2.4 per a les claus insegures posen el clúster en HEALTH_ERR i, tanmateix, tots els serveis continuen operatius. És a dir: pots estar en vermell per un motiu conegut, documentat i no urgent. El requisit del manual —«el clúster ha d'estar sa»— no vol dir «en verd passi el que passi»; vol dir que sàpigues exactament per què estàs en el color en què estàs. Si no ho saps, aquesta és la feina d'avui, no el salt.

Les sis comprovacions abans de tocar el repositori

Cap d'aquestes ordres no modifica res. Són deu minuts i es poden fer ara mateix, amb el salt encara sense data.

  • pveversion --verbose a cada node. El requisit és pve-manager 9.1.4 o posterior i paquets de Ceph 19.2.3-pve3 o posteriors. El node que es va quedar enrere a l'última ronda d'actualitzacions és el que t'aturarà el projecte.
  • ceph -s i ceph versions. Sense PG en down, incomplete, undersized ni backfilling, i sense cap dimoni endarrerit en una versió que no toca.
  • ceph osd df i desa la sortida. Aquesta foto de la columna META és l'única manera de saber després si va créixer o si sempre va ser així. Sense la foto prèvia, el debat de dilluns no té dades.
  • ceph mgr module ls. Si zabbix o restful apareixen actius, tens feina de monitoratge pendent i va abans del salt.
  • ceph fs ls i, per a cada sistema de fitxers, apunta max_mds i si té allow_standby_replay. Són els dos valors que hauràs de restaurar al final, i ningú no els recorda a les dues de la matinada.
  • Després de canviar el repositori i abans d'instal·lar res: apt update && apt-cache policy ceph. Si el candidat no és 20.2.4 o superior, atura't. Aquí és on es cacen els pins, els holds i les rèpliques internes amb teranyines.

On encaixa això en el que fem

Operem emmagatzematge distribuït amb Ceph sobre Proxmox en producció, amb el ferro i les finestres d'algú que ha de donar la cara l'endemà. No venem llicències de Ceph —no n'hi ha— ni subscripcions de ningú: el que fem és dissenyar el clúster, mantenir-lo i ser a l'altra banda del telèfon quan la finestra es torça, que per això hi ha el suport 24/7. Si tens un clúster del qual no saps amb quina versió de Ceph es van crear els seus OSD més vells, escriu-nos i ho mirem; aquesta resposta es dona en una tarda i no obliga a res.

I si et quedes amb una sola frase, que sigui la lliçó del tiquet 76256: el format que portes dins dels discos el va decidir la versió amb què els vas crear, i el continua decidint avui.

Fonts. Dates de versió i fi de vida (i la distinció entre «End of life» i «End of life (estimated)») de Tentacle, Squid i Reef, cita sobre l'última versió menor del destí i l'avís de la 19.2.6, retirada de mgr/restful i mgr/zabbix amb CVE-2023-46136 i procediment d'actualització: docs.ceph.com/en/latest/releases/ i la nota de versió de Tentacle. Requisits (PVE 9.1, pve-manager 9.1.4, Ceph 19.2.3-pve3), passos d'MDS i problema conegut de META en OSD d'Octopus o anteriors: pve.proxmox.com/wiki/Ceph_Squid_to_Tentacle. Requisit d'arribar a Squid abans del salt 8 → 9 i avisos de claus insegures amb HEALTH_ERR: pve.proxmox.com/wiki/Upgrade_from_8_to_9. Títol, estat de l'error, la sortida de ceph osd df amb els 346 GiB de META i el relat del «whack-a-mole» amb compact, tot del mateix tiquet: tracker.ceph.com/issues/76256. Mesura pròpia del 27 d'octubre del 2026 a les 17:05 sobre els índexs públics de download.proxmox.com (components no-subscription i test de ceph-squid i ceph-tentacle, suites bookworm i trixie): versions servides, absència de la suite bookworm a ceph-tentacle (404) i dates dels índexs. Foto de portada: «Backblaze 2.0 w/ 45 disks installed», de ChrisDag (Flickr, CC BY 2.0), retallada per nosaltres.

Etiquetes: Ceph Proxmox Emmagatzematge Pedaços Infraestructura

Subscriu-te al nostre butlletí

Per rebre històries del món IT, novetats d'everyWAN i ofertes exclusives per a subscriptors, dona't d'alta a la nostra llista de correu

everyWAN
everyWAN