Le serveur SMB3 intégré au noyau Linux 7.3 gagne la prise en charge optionnelle des extensions de protocole AAPL d'Apple, l'élément qui permet à Time Machine sous macOS de considérer un partage ksmbd comme une destination de sauvegarde valable. Proposé par Gael Blivet, ce travail couvre la compatibilité avec le Finder, la gestion des flux, COPYCHUNK, les fichiers creux, CHANGE_NOTIFY et un ensemble de bits de compatibilité RPC. Aucune de ces extensions n'est documentée publiquement : elles ont dû être obtenues par rétroingénierie du comportement observé entre clients et serveurs. La même fenêtre apporte le chiffrement SMB3 par partage et la relecture de requêtes SMB3.
The short answer
Linux 7.3 ajoute à ksmbd, le serveur SMB3 intégré au noyau, la prise en charge optionnelle des extensions SMB2 AAPL d'Apple, ce qui permet à Time Machine sous macOS d'utiliser un partage ksmbd comme destination de sauvegarde via backupd. Gael Blivet a implémenté assez du jeu d'extensions pour satisfaire Time Machine : compatibilité Finder, gestion des flux, COPYCHUNK, fichiers creux, CHANGE_NOTIFY et bits de compatibilité RPC. Ces extensions ne sont pas documentées publiquement et ont été obtenues par rétroingénierie. La même version apporte le chiffrement SMB3 par partage, le chiffrement SMB Direct, les fenêtres de séquence SMB2 et la relecture de requêtes SMB3.
Pointer Time Machine vers une machine Linux est une petite contrariété tenace depuis des années. Le partage se monte, les fichiers se copient, puis backupd refuse d'y voir une destination de sauvegarde. Linux 7.3 comble cet écart pour ksmbd, et la façon dont il le fait est plus intéressante que la fonctionnalité elle même.
Pourquoi un partage SMB fonctionnel ne suffisait pas
Time Machine n'écrit pas simplement des fichiers. Il dépend d'un ensemble de comportements propres à macOS que le SMB3 nu n'a aucun moyen d'exprimer.
Les branches de ressources et les attributs étendus doivent se projeter sur des flux de données alternatifs. Ses images disque en paquet creux réclament une vraie sémantique de fichiers creux, sans quoi chaque sauvegarde alloue sa taille nominale complète. La copie côté serveur via COPYCHUNK évite aux données un aller retour inutile par le client. CHANGE_NOTIFY permet au Finder et à backupd de voir les mises à jour sans interrogation répétée. Et une poignée de bits de compatibilité RPC doivent répondre correctement, sinon le client n'arrive même pas jusque là.
Apple regroupe tout cela dans des extensions SMB2 négociées via un contexte de création AAPL. Un serveur qui ne les implémente pas n'est pas défectueux, il n'est simplement pas quelque chose que Time Machine acceptera. C'est le mur précis contre lequel les gens butaient.
La partie qui mérite l'attention
Aucune de ces extensions n'est documentée publiquement. L'implémentation de Gael Blivet a été déduite en observant le comportement réel des clients et serveurs Apple sur le fil, puis en implémentant assez de surface pour satisfaire Time Machine.
C'est une manière tout à fait ordinaire de construire de l'interopérabilité, et une grande part du monde SMB s'est bâtie ainsi bien avant que Microsoft ne publie sa documentation de protocole. Mais cela emporte une conséquence qu'il faut énoncer clairement. Un comportement non documenté n'a aucun contrat derrière lui. Une version intermédiaire de macOS peut modifier quelque chose sans annonce ni spécification à consulter, et la seule façon de l'apprendre est que les sauvegardes cessent de fonctionner.
Livrer cela en option plutôt que par défaut est la bonne réponse à ce risque, et c'est un signal sur la confiance plutôt que sur la qualité.
Le reste de la version compte davantage pour la plupart des gens
Le travail Apple retiendra l'attention, mais ce n'est pas le changement le plus lourd de conséquences pour qui exploite ksmbd comme serveur de fichiers.
Le chiffrement SMB3 par partage est le point pratique. Pouvoir appliquer une politique à un seul export plutôt qu'à tout le serveur, c'est la différence entre un réglage réellement déployable et un réglage qu'on active partout ou nulle part. La prise en charge du chiffrement pour SMB Direct étend la même chose au transport RDMA, là où réside précisément l'argument de performance de ksmbd.
La fenêtre de séquence de commandes SMB2 et la relecture de requêtes SMB3 traitent toutes deux ce qui se passe quand une connexion est interrompue. Un client qui se reconnecte doit reprendre sans réexécuter des opérations que le serveur a déjà effectuées, et se tromper là dessus sur un serveur de fichiers produit exactement le genre de corruption discrète que personne ne remarque avant des semaines. À côté figure un vaste ensemble de correctifs dans tout le code, indicateur plus honnête de la position d'un serveur noyau relativement jeune sur sa courbe de maturité.
Linux 7.3 est une version particulièrement fournie côté stockage. Btrfs a doublé le débit en entrées sorties directes et accéléré fsync cinq fois, le chemin DAX a été dégagé pour la mémoire attachée par tissu, et deux systèmes de fichiers des années 1990 ont été retirés pendant que FailFS était fusionné.
ksmbd ou Samba
Cela ne change pas la répartition des rôles, et il faut le redire car le titre sur Time Machine invite à la mauvaise conclusion.
ksmbd existe pour servir des fichiers vite avec moins de surcoût, en gardant le travail en espace noyau au lieu de basculer vers un démon en espace utilisateur à chaque opération. Cet avantage est réel et il est maximal sur les liens à haut débit et en RDMA. Samba reste nettement plus complet : appartenance à un domaine, impression et longue traîne de l'intégration Windows ne sont pas comparables.
La prise en charge de Time Machine réduit un écart précis, sur une charge précise. Si vous utilisez Samba aujourd'hui pour d'autres raisons que le débit brut de service de fichiers, ce n'est pas un motif de migration.
Que faire
Si vous voulez l'utiliser, attendez une version ou deux, ou au minimum n'en faites pas votre seule copie.
Ce n'est pas de la méfiance envers l'implémentation. C'est qu'une destination de sauvegarde est le pire endroit où découvrir un défaut d'interopérabilité, parce que la panne est silencieuse et qu'on la découvre au moment exact où l'on a besoin des données. Faites tourner en parallèle d'une cible à laquelle vous faites déjà confiance, et testez une vraie restauration au lieu de tenir une sauvegarde réussie pour une preuve. Ce conseil vaut pour toute nouvelle cible de sauvegarde, et un peu plus fortement pour une cible bâtie sur des extensions dont personne n'a publié de spécification.
Sources et pour aller plus loin
- Linux 7.3 KSMBD Adds Interoperability For Apple Time Machine Backups, Phoronix, 26 août 2026
- Documentation ksmbd, The Linux Kernel
- Documentation du protocole MS-SMB2, Microsoft Learn
Questions fréquentes
Qu'est ce que ksmbd et en quoi diffère t il de Samba ?
ksmbd est un serveur SMB3 qui s'exécute à l'intérieur du noyau Linux, là où Samba tourne comme démon en espace utilisateur. L'objectif de conception est la performance et une consommation de ressources plus faible : le service de fichiers reste en espace noyau au lieu de franchir la frontière de l'espace utilisateur à chaque opération, ce qui compte surtout sur les liens à haut débit et en RDMA. Ce n'est pas un remplaçant direct de Samba, qui reste bien plus complet sur l'appartenance à un domaine, l'impression et la longue traîne de l'intégration Windows. En pratique, on choisit ksmbd pour servir des fichiers sur des systèmes contraints ou sensibles à la performance, et Samba dès qu'il faut toute la surface fonctionnelle.
Pourquoi Time Machine a t il besoin d'extensions de protocole particulières ?
Parce que Time Machine ne se contente pas de copier des fichiers. Il s'appuie sur des comportements propres à macOS que le SMB3 nu n'exprime pas : attributs étendus et branches de ressources projetés sur des flux de données alternatifs, sémantique de fichiers creux pour ses images disque, copie côté serveur pour éviter un aller retour inutile par le client, et notification de changement pour que le Finder et backupd voient rapidement les mises à jour. Apple regroupe ces comportements dans un jeu d'extensions SMB2 négociées via le contexte de création AAPL. Sans elles, le partage se monte et les fichiers se copient, mais backupd refuse la destination, ce qui est précisément l'échec rencontré de longue date avec des cibles SMB génériques.
Que veut dire rétroingénierie ici, et est ce un problème ?
Cela signifie que les extensions AAPL n'ont aucune spécification publique : leur comportement a été déduit en observant comment les clients et serveurs Apple dialoguent réellement. C'est une manière normale et légitime de construire de l'interopérabilité, et c'est ainsi qu'une grande partie de la prise en charge de SMB a été bâtie bien avant que Microsoft ne publie sa documentation de protocole. La conséquence pratique relève de la maintenance plutôt que du droit : un comportement non documenté peut changer sans préavis dans une version de macOS, et aucun document de référence ne permet de valider une implémentation. Une arrivée en option plutôt que par défaut traduit exactement cette prudence.
Est ce fiable pour mon unique copie de quoi que ce soit ?
Non, et considérez le ainsi pendant au moins deux ou trois versions. Il s'agit d'une première implémentation d'extensions non documentées dans un serveur noyau relativement jeune, et elle est optionnelle parce qu'elle est nouvelle. Une destination de sauvegarde est en outre le pire endroit où découvrir un défaut d'interopérabilité, puisque la panne est silencieuse et se révèle au moment de la restauration. Si vous voulez l'essayer, faites le en parallèle d'une cible de sauvegarde à laquelle vous faites déjà confiance, et testez une véritable restauration au lieu de supposer qu'une sauvegarde réussie en implique une qui fonctionne. Ce conseil vaudrait pour n'importe quelle nouvelle cible.
Qu'y a t il d'autre dans ksmbd pour Linux 7.3 ?
Plusieurs choses qui méritent attention indépendamment du travail Apple. Il y a le chiffrement SMB3 par partage, qui permet d'appliquer une politique à un seul export plutôt qu'à tout le serveur, et la prise en charge du chiffrement pour SMB Direct, le transport RDMA. Il y a la gestion de la fenêtre de séquence de commandes SMB2 et la relecture de requêtes SMB3, qui améliorent ensemble le comportement quand une connexion est interrompue et qu'un client doit reprendre sans dupliquer des opérations. À cela s'ajoute un ensemble substantiel de correctifs dans tout le code, signal plus parlant pour qui veut évaluer la maturation du serveur.