Tornar al Blog

Squid va guanyar 42 dies i Tentacle en va perdre 170: el fi de suport de Ceph el va moure un commit

Files de safates de disc SAS al frontal de diversos servidors d'emmagatzematge muntats en rack

El 5 d'agost, a les 14:48 UTC, un commit a la documentació de Ceph va moure les dues dates que ordenen el calendari de qualsevol que tingui emmagatzematge distribuït en producció. Squid va passar del 19 de setembre al 31 d'octubre: 42 dies més. Tentacle va passar del 18 de novembre de 2027 a l'1 de juny de 2027: 170 dies menys. La pròrroga de Squid es veu així que mires el gràfic de la documentació. La retallada a Tentacle no l'hem vista comentada enlloc. I és la que importa, perquè Tentacle és la versió cap a la qual estàs migrant.

Operem Proxmox VE amb emmagatzematge Ceph en producció, repartit en diversos centres de dades, així que aquestes dues dates no són trivia: són finestres de manteniment amb nom de persona i hora d'inici. Avui, 8 de setembre, queden 53 dies per al 31 d'octubre. Aquest article va d'on viu aquesta data, qui l'escriu i per què planificar contra ella és una mala idea encara que la data sigui correcta.

Les dues dates i el commit que les va moure

El diagrama de barres que surt a docs.ceph.com/en/latest/releases/ —el que tothom mira per saber fins quan està suportada la seva versió— no és una taula escrita a mà en una pàgina web. Es genera a partir d'un fitxer YAML del repositori de Ceph: doc/releases/releases.yml. Aquest fitxer té una entrada per sèrie estable, i a dins un camp que decideix el color de la teva tardor: target_eol.

El commit c1e13dbc, del 5 d'agost de 2026 a les 14:48 UTC, signat per Patrick Donnelly, va canviar quatre d'aquests camps. A Tentacle, target_eol va passar de 2027-11-18 a 2027-06-01. A Squid, de 2026-09-19 a 2026-10-31. I a Reef va corregir dues dates de març. Això és tot: un fitxer de text, quatre línies, cap anunci, cap nota de versió.

Val la pena aturar-se en el nom del camp abans de continuar. No es diu eol. Es diu target_eol: fi de vida objectiu. Al costat, a l'entrada de Reef, hi ha un altre camp diferent, actual_eol. El projecte distingeix explícitament entre la data que es pretén i la que acaba sent. La pàgina que renderitza el gràfic ho diu també, amb aquestes paraules: «End of life (estimated)». La data contra la qual planifica mitja indústria ve etiquetada com a estimació per qui la publica.

El missatge del commit diu més que el diff

El cos del missatge són quatre frases i expliquen el mecanisme sencer: «Based on my own estimates. Squid will have one more bug fix cycle after v19.2.6. Vampire will release in March. We will likely have 1 or 2 more bug fix cycles before tying it off.»

Llegeix-ho un altre cop, perquè no és una data: és un compte de publicacions pendents. El fi de suport del teu emmagatzematge no es calcula amb un calendari, es calcula comptant quantes versions de correcció li queden a la sèrie i quan s'espera la següent release gran. Si aquests dos números es mouen —i es mouen, perquè depenen de quanta feina entri i de quan estigui llest—, la data es mou al darrere. És honest i és raonable. El que no és raonable és tractar el resultat com una garantia contractual, que és exactament el que fa la majoria dels plans d'actualització que hem llegit.

Una nota sobre «Vampire will release in March»: Ceph anomena les seves sèries per ordre alfabètic, així que després de Tentacle (T) ve Umbrella (U) i després Vampire (V), que al procés de release del mateix projecte figura com la 22. Una sèrie estable mor poc després que surti la que va dues per davant, així que aquest «març» encaixaria amb l'1 de juny de 2027 de Tentacle. Diem «encaixaria» expressament: el commit no diu l'any, i perquè Vampire surti el març de 2027 hauria d'haver sortit abans Umbrella, de la qual avui no hi ha ni una versió 21.x al fitxer. La cadena quadra, però és lectura nostra, no una dada del projecte.

765 dies contra 560

La documentació de Ceph explica quant hauria de durar una sèrie estable: «The lifetime of a stable release series is calculated to be approximately 24 months (i.e., two 12 month release cycles) after the month of the first release». I afegeix, dues frases més avall, el matís que gairebé ningú no cita: «The lifetime of a release may vary because it depends on how quickly the stable releases are published».

Ara l'aritmètica, que la pinta la mateixa pàgina a les barres del gràfic. Squid va sortir el 26 de setembre de 2024 i mor el 31 d'octubre de 2026: 765 dies, vint-i-cinc mesos. Tentacle va sortir el 18 de novembre de 2025 i mor l'1 de juny de 2027: 560 dies, divuit mesos i mig. La versió nova viu un 27% menys que la que substitueix, i 170 dies menys del que el seu propi projecte descriu com a durada normal. I compte, que aquest 170 i el del titular són el mateix número, no dues troballes: la data antiga de Tentacle, 18 de novembre de 2027, eren exactament 730 dies des de la seva publicació. Vint-i-quatre mesos clavats, la política al mil·límetre. El que va fer el commit va ser deixar d'aplicar-la.

I d'aquí surt el número que de debò canvia un pla. Si esgotes Squid fins a l'últim dia i fas la finestra el 31 d'octubre, entres a Tentacle amb 213 dies de suport per davant. Set mesos. L'actualització que anaves a vendre internament com «això ens deixa tranquils dos anys» et deixa tranquil fins després de Setmana Santa, i la finestra següent ja l'has de començar a negociar mentre tanques aquesta. Això no invalida la migració —s'ha de fer igual—, però canvia del tot la conversa amb direcció sobre què s'està comprant.

El que Proxmox va dir als seus usuaris al gener

El 9 de gener de 2026, al fil del fòrum on es va anunciar Tentacle com a vista prèvia, un membre de l'equip de Proxmox ho va deixar escrit així: «The current default Ceph 19.2 Squid will stay supported until September 2026 for the time being». Aquest «for the time being» —«de moment»— estava fent molta més feina de la que semblava. El fil continua allà i continua dient setembre; la data bona és en un YAML que aquell fil no enllaça.

Nosaltres tampoc en sortim indemnes, i ho diem amb l'enllaç posat: el post que vam publicar el 31 de juliol porta el 19 de setembre al títol. Aquesta data ja no és la bona. A l'article del 2 de setembre sobre la finestra d'actualització ja vam escriure 31 d'octubre, però sense explicar per què havia canviat, perquè aleshores no ho sabíem. Ara sí: va canviar en un commit del 5 d'agost i aquí hi ha l'enllaç.

Reef ensenya què passa quan la llista i la realitat no coincideixen

Al mateix fitxer, l'entrada de Reef té avui un camp que les altres dues no tenen: actual_eol, amb data 2025-03-20. L'interessant no és la data, és quan va aparèixer. Aquest camp no existia: el va afegir el commit a3eea0c9 el 22 de juliol de 2026 —el mateix que va treure Reef de la llista de versions actives— amb un valor retroactiu de setze mesos enrere. Dues setmanes després, el commit del 5 d'agost li va corregir el dia.

Traduït: el projecte no va dir mai, mentre estava passant, que Reef fos morta. Ho va escriure després. I mentrestant, la llista que comença dient «The following Ceph releases are actively maintained and receive periodic backports and security fixes» va continuar incloent-hi Reef fins a aquell 22 de juliol. La data de defunció i el certificat es van signar el mateix dia, amb setze mesos de diferència entre l'una i l'altre.

Ara, quant de temps va dir de més depèn de quina data et creguis, i aquí toca ser honestos amb el que no sabem. La lectura llarga l'avala Proxmox, que al gener de 2026 escrivia que Reef «has been end of life (EOL) for a while, albeit there is an effort underway to get one last post-EOL update out». La curta l'avala el mateix fitxer, que registra quatre publicacions posteriors a aquella data de defunció —18.2.5, 18.2.6, 18.2.7 i 18.2.8—; i que els camps de Reef acabin quadrant amb el dia exacte de 18.2.8 amb un any rodó de diferència fa força versemblant que aquest 2025 sigui un lapsus i que la resposta bona siguin quatre mesos, no setze. Ens quedem amb la lectura curta, que és la que menys afavoreix el nostre propi argument. I l'argument aguanta igual: el camp que decideix si el teu emmagatzematge rep pedaços de seguretat s'escriu a mà, de vegades amb mesos de retard, i no avisa ningú quan canvia.

Què compra exactament ser a la llista

El 19 d'agost, Ceph va publicar alhora 20.2.4 i 19.2.6 per tancar quatre CVE: un bypass d'autenticació a CephX per mal ús d'AES-CBC (CVE-2025-30156), una fallada de verificació de signatura als tokens de sessió STS de RGW (CVE-2026-39944), una autorització indeguda al gestor de subscripcions del monitor (CVE-2026-50152) i una altra signatura SigV4 mal verificada a RGW (CVE-2026-54330). L'avís demanava pujar «to one of these releases as soon as possible». Una d'aquestes dues. Les dues que eren a la llista.

Això és el que cau el dia que la teva sèrie surt de la llista, i convé dir-ho sense adorns perquè no és el que la gent tem: no perds funcionalitat ni et deixa d'arrencar res. El que perds és el backport. El dia 1 després del fi de suport el teu clúster funciona exactament igual que el dia abans; la diferència apareix la primera vegada que surt un CVE de monitor o de RGW i tu no ets a la frase de l'avís. Ho desenvolupem amb més detall a l'anàlisi d'aquells quatre CVE, on a més n'hi ha un que el paquet no tanca tot sol.

Els 42 dies de pròrroga són la pitjor notícia del commit

La reacció natural en llegir el diff és quedar-se amb el que és bo: sis setmanes més de Squid, la finestra d'octubre respira. A nosaltres ens sembla just al revés, i aquesta és l'opinió, no la dada. Un marge que apareix per sorpresa pot desaparèixer per sorpresa, i el mateix commit ho demostra dues línies més amunt, traient-li 170 dies a Tentacle sense que a ningú se li acudeixi que això també podia passar.

Dit de la manera més curta que se'ns acut: si el teu pla d'actualització cabia dins d'aquests 42 dies, el teu pla no era un pla. Era una data amb sort.

Planificar contra cicles, no contra dates

La pregunta útil no és «quan caduca?». És «quantes publicacions de correcció li queden?», i el commit la contesta millor que cap calendari: una més per a Squid després de 19.2.6. Amb aquesta resposta damunt la taula, la finestra la fixes contra una data teva —signada per algú i posada al calendari d'aquest mes, no al d'octubre— i el target_eol torna a ser el que és: l'estimació d'un tercer sobre la seva pròpia feina.

I si vols assabentar-te'n el dia que torni a moure's, vigila el fitxer, no la pàgina. GitHub publica un feed Atom per ruta, i aquest fitxer té el seu: https://github.com/ceph/ceph/commits/main/doc/releases/releases.yml.atom. És el lloc més pràctic per veure-ho el mateix dia que passa, perquè no hi ha cap anunci a esperar: l'anunci és el commit. Costa dos minuts posar-lo al lector que ja fas servir o al canal de guàrdia, i és el més a prop que estaràs que aquestes dates t'avisin a tu en comptes del contrari.

Dins del clúster, la comprovació que més vegades hem trobat pendent és la de quina versió has declarat, que no és la mateixa pregunta que quina versió tens instal·lada: un clúster pot portar mesos amb tots els binaris a 20.2 i la declaració encara a Squid. Es llegeix amb ceph osd dump | grep require_osd_release i ho desenvolupem a l'article sobre la finestra d'actualització. Queda després la decisió de fons: amb 560 dies de vida útil, per a alguns clústers la resposta honesta és que Tentacle és una parada i no una casa, i això es planifica diferent, amb la finestra següent ja dibuixada. Córrer una versió fora de suport, a més, és de les coses que un auditor troba de seguida: entra directe a l'expedient de compliment i continuïtat.

Res d'això costa diners ni porta més d'una tarda. L'únic que requereix és que algú tingui assignat mirar-ho, que és la part que a la majoria d'empreses no està assignada a ningú: no perquè no se sàpiga fer, sinó perquè no apareix en cap tiquet fins que ja és tard. Això també és manteniment planificat, encara que no ho sembli.

Qui mira les dates del teu emmagatzematge?

Dissenyem i operem emmagatzematge distribuït amb Ceph en producció, i portem el calendari de versions com a part del servei: quina sèrie corre cada clúster, quants cicles de correcció li queden i quan toca la finestra. No venem llicències de ningú, així que la recomanació de quan actualitzar —o d'esperar— no ens beneficia d'una manera o d'una altra.

Parlar amb everyWAN

Nota de fonts

El commit que mou les dates és c1e13dbc a github.com/ceph/ceph, del 5 d'agost de 2026, sobre doc/releases/releases.yml; el diff i el missatge estan citats literalment. La sortida de Reef de la llista de versions actives i l'aparició retroactiva del camp actual_eol són el commit a3eea0c9, del 22 de juliol de 2026; les quatre publicacions posteriors a aquella data (18.2.5, 18.2.6, 18.2.7 i 18.2.8) són al mateix YAML. La política de durada de les sèries i les frases sobre manteniment actiu surten de doc/releases/general.rst i doc/releases/index.rst, publicades a docs.ceph.com/en/latest/releases/, d'on també surten les barres de 765 i 560 dies i l'etiqueta «End of life (estimated)». Les dates de publicació de 19.2.0, 20.2.0, 19.2.6, 20.2.4 i 18.2.8 són les del mateix fitxer. Els quatre CVE i la frase de recomanació són de l'avís combinat de Ceph del 19 d'agost de 2026. Les citacions de Proxmox són del fil del fòrum del 9 de gener de 2026 en què es va anunciar Tentacle com a vista prèvia. Els càlculs de 42, 170, 765, 560, 213 i 53 dies són aritmètica nostra sobre aquestes dates. La lectura que «March» es refereix a març de 2027 és interpretació nostra i està marcada com a tal al text.

Ceph Proxmox Emmagatzematge Infraestructura
Compartir LinkedIn X

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