260830 - Basculement des videos de SASNEXTE vers kDrive
260830 - Basculement des vidéos de SASNEXTE vers kDrive
Objectif : libérer 694 Go sur le NAS sasnexte en déplaçant /volume1/video vers kDrive, en répliquant l'arborescence à l'identique. Jellyfin lira ensuite depuis kDrive — procédure 2, documentée sur la page 165 (14_Jellyfin).
Statut au 2026-08-30 : étapes 1 à 5 terminées. Les 694 Go sont sur kDrive, vérifiés, et Jellyfin les lit déjà. Seule l'étape 6 reste — la suppression sur le NAS — volontairement en attente.
Mesures du 2026-08-30
Le dossier video
df est trompeur : ses 4,0 To sont le volume /volume1 entier, pas le partage vidéo.
| Dossier | Taille |
|---|---|
| movies | 163,1 Go |
| cinema_italie | 111,0 Go |
| fantastique_et_SF | 84,4 Go |
| series | 83,6 Go |
| documentaires | 60,6 Go |
| cinema_realisateurs | 47,1 Go |
| culture_cuisine | 31,7 Go |
| animes | 27,7 Go |
| cinema_europe | 24,2 Go |
| historiques | 21,7 Go |
| cinema_asie | 12,0 Go |
| spectacles | 11,6 Go |
| palettes | 8,9 Go |
| cinema_UK | 7,3 Go |
| alladomanda | 2,0 Go |
#recycle (corbeille DSM, non transférée) |
10,5 Go |
| Total transféré | 694,55 Go — 4 044 fichiers |
Seulement ~423 vidéos réelles (266 mkv, 94 mp4, 54 avi, 7 vob). Le reste est de l'habillage Jellyfin : 2 989 jpg (vignettes trickplay), 408 nfo, 170 png, 40 srt.
Autres partages du volume, pour situer
video 707 Go · Komga 552 Go · audiobooks 374 Go · music 133 Go · photo 84 Go · homes 36 Go. Le solde des 4,0 To est constitué d'@ActiveBackup, @docker et des snapshots.
Débits mesurés
| Trajet | Débit |
|---|---|
| NAS vers kDrive (rclone WebDAV, 1 flux) | 44 Mo/s |
| NAS vers kDrive (3 transferts parallèles) | 62 à 78 Mio/s |
| kDrive vers VPS | 97,6 Mo/s |
| kDrive vers NAS | 89,5 Mo/s |
| NAS vers VPS aujourd'hui (CIFS via WireGuard) | 5,0 Mo/s |
| Disque local NAS (lecture) | 49 à 58 Mo/s |
Conséquence contre-intuitive : la bascule améliore la lecture au lieu de la dégrader. Jellyfin plafonne aujourd'hui à 5,0 Mo/s (40 Mbit/s) : suffisant pour un 1080p courant, juste pour un remux, et incompatible avec deux flux simultanés. Via kDrive, le VPS descend à 780 Mbit/s. Le goulot était le tunnel WireGuard depuis Toulon, pas kDrive.
Espace kDrive
Capacité 6,60 To · utilisé 4,21 To · libre 2,39 To. Après bascule : environ 1,69 To restants. Renouvellement de l'abonnement le 2026-09-20.
Le dossier video n'avait AUCUNE sauvegarde
Vérifié le 2026-08-30 : aucune des 4 tâches Hyper Backup (2509NEXTE, Toojux_Home, Alteris, Bckup_Vero_photos) ne mentionne video, pas de snapshot (#snapshot absent), et il ne fait pas partie des 4 dossiers de sync_kdrive_complete.sh.
Le déplacement ne fait donc pas passer de deux copies à une. Il déplace l'unique copie d'un DS220+ à deux baies sans sauvegarde vers une infrastructure redondée avec corbeille. C'est une amélioration, pas une prise de risque.
Les deux risques réellement nouveaux :
- un
rclone syncmal dirigé côté kDrive effacerait tout — le renommage du 2026-08-28 avait déjà fait voir 308 suppressions à rclone ; - l'abonnement kDrive se renouvelle le 20/09.
Procédure
| # | Étape | Durée | Réversible |
|---|---|---|---|
| 0 | Analyse de doublons NAS contre Videos_NAS |
10 min | oui |
| 1 | rclone copy — fait, 08:35 → 11:03 (2 h 28) |
2 h 28 | oui |
| 2 | rclone check --download — fait, 11:05 → 13:21, 0 différence sur 4 056 fichiers |
2 h 16 | oui |
| 3 à 5 | Bascule Jellyfin — faite, voir page 165 | 30 min | oui |
| 6 | Suppression sur le NAS : 694 Go libérés, volume de 75 % à ~62 % — EN ATTENTE | 5 min | non |
Script : /volume1/homes/SAS_NEXTE/scripts/basculement_video.sh (source de vérité dans Jux-scripts/).
Journal : /volume1/homes/SAS_NEXTE/logs/basculement_video_260830.log.
Verrou : /volume1/homes/SAS_NEXTE/logs/basculement_video.pid.
rclone --config /volume1/homes/SAS_NEXTE/.config/rclone/rclone.conf copy \
/volume1/video kdrive_music:Videos_NAS/video \
--exclude '/#recycle/**' --exclude '**/@eaDir/**' \
--exclude '**/.DS_Store' --exclude '**/Thumbs.db' \
--create-empty-src-dirs \
--transfers 3 --checkers 8 --retries 3 --low-level-retries 10 \
--stats 5m --stats-one-line -v
copy, jamais sync : la source n'est jamais modifiée par le script. La suppression est un geste manuel séparé, en étape 6.
Étape 2 — pourquoi la vérification par téléchargement est obligatoire
Le WebDAV kDrive n'expose aucun hash (rclone backend features kdrive: donne Hashes: []). Après transfert, rclone ne peut comparer que les tailles. Pour un déplacement qui se termine par une suppression de la source, c'est insuffisant : il faut rclone check --download, qui retélécharge tout et compare les empreintes calculées à la volée. 694 Go à 89,5 Mo/s = environ 2 h 10. Non négociable avant l'étape 6.
Étape 0 — résultat de l'analyse de doublons
Videos_NAS (racine kDrive) pèse 246,7 Go : Video Culture Arts et Peinture 130,80 · Video Cuisine 83,10 · Video Architecture et Urbanisme 29,38 · Video concerts 3,46.
culture_cuisine et Video Cuisine ne se recoupent pas du tout. Le NAS porte Chef's Table et Man vs Food, kDrive porte Rick Stein, Jamie Oliver, Entre les Bras. Zéro collision de nom.
Seuls 2 vrais doublons, 1,60 Go, tous deux contre Videos_NAS et non à l'intérieur du périmètre transféré :
palettes/De Cimabue a Giotto, les premiers maitres italiens.mp4(0,87 Go) contreVideo Culture Arts et Peinture/documentaires/Justice - a Cross Universe/....avi(0,73 Go) contreVideo concerts/
Décision : ils ont été transférés quand même. Ces deux fichiers appartiennent à des bibliothèques Jellyfin distinctes ; 1,6 Go ne justifiait pas de casser la réplication.
Emplacement final : Private/Videos_NAS/video/
La destination initiale SYNC-pour_VPS/Sync-SASNEXTE/video était une erreur de conception, corrigée le jour même sur remarque de Julien.
Cet espace est celui des copies miroir du NAS : quatre dossiers que sync_kdrive_complete.sh synchronise chaque jour en rclone sync --delete-during. Or video n'est pas une copie — après l'étape 6, c'est l'original, lu directement par Jellyfin. Le nom promettait une synchronisation qui n'existe pas, et surtout il tendait un piège : le jour où quelqu'un ajoute video à ce script — geste naturel vu l'emplacement — un sync depuis une source NAS vidée effacerait les 694 Go.
Le déplacement a pris 2 secondes : rclone moveto, Server side directory move succeeded, aucun octet retransféré. Le remote kDrive annonce DirMove: True — toute réorganisation de l'arborescence kDrive est donc gratuite, quelle que soit la volumétrie.
Deux fusions décidées dans la foulée
| Source | Destination | Volume |
|---|---|---|
video/series |
Videos_NAS/Séries (qui était vide) |
399 objets, 77,8 Gio |
video/culture_cuisine |
Videos_NAS/Video Cuisine (77,4 Gio existants) |
286 objets, 29,6 Gio |
Vérification de non-collision faite avant : Séries était vide, et les deux ensembles cuisine n'avaient aucun nom commun au premier niveau (Chef's table, Man VS Food d'un côté ; France, India, Globe cooker, Cuisines des Terroirs de l'autre). 126 s en tout, côté serveur.
Les comptes tombent juste : 4 056 − 399 − 286 = 3 371 objets restants dans video/, et 77,393 + 29,566 = 106,959 Gio dans Video Cuisine.
Arborescence finale
Private/Videos_NAS/ 878,7 Gio, 4 781 objets <- monté sur /mnt/nas_videos
├── Séries/ 77,8 Gio -> /data/series
├── Video Cuisine/ 107,0 Gio -> /data/culture_cuisine
├── Video Culture Arts et Peinture/ 130,8 Gio (aucune bibliothèque)
├── Video Architecture et Urbanisme/ 29,4 Gio (aucune bibliothèque)
├── Video concerts/ 3,5 Gio (aucune bibliothèque)
└── video/ 541,6 Gio, 3 371 objets
├── movies, cinema_italie, fantastique_et_SF, documentaires,
├── cinema_realisateurs, animes, cinema_europe, historiques,
└── cinema_asie, spectacles, palettes, cinema_UK, alladomanda
⚠ video/@eaDir subsiste (11 objets) : l'exclusion **/@eaDir/** écarte le contenu du dossier, pas le dossier lui-même, et --create-empty-src-dirs l'a recréé. Sans conséquence, mais à ne pas confondre avec un oubli.
Pièges rencontrés — à ne pas re-découvrir
ps wtronque sa sortie sur DSM. Un test de vivacitéps w | grep -ca renvoyé 0 alors que le processus tournait — ce qui a conduit à lancer une seconde copie sur la même destination. Les deux ont été arrêtées par SIGTERM, sans corruption (rclone compare les tailles et réécrit tout fichier tronqué). Toujours utiliserps -eo pid,sid,args.nohupne suffit pas à détacher sur DSM. Utilisersetsid script.sh < /dev/null > /dev/null 2>&1 &. Un verrou par PID a été ajouté au script pour rendre le double-lancement impossible.- Faux doublons
.VOBde 1,07 Go. Les segments DVD-Video sont tous plafonnés à 1 073 739 776 octets : la taille identique ne prouve rien. Cinq faux positifs relevés entre un Scola du NAS et un DVD Architectures de kDrive. Même leçon que le dédoublonnage photo du 2026-08-28 — une signature faible ne fait pas un doublon. - Le
quota-used-bytesWebDAV de kDrive est peu fiable : il renvoie 0 pour certains dossiers pourtant pleins (il donnait 102,6 Go pourVideos_NAS, dont la taille réelle est 246,7 Go). Passer parrclone size, ou par l'API du drive pour l'espace global. dfsur un partage Synology rapporte le volume entier, pas le partage. Toujours confirmer pardu -sb.find -iname '*.jpg'sans exclure@eaDirfausse tout recensement (rappel de la page 285).
Pièges d'accès SSH au NAS (rappel page 285)
- Le compte Unix est
SAS_NEXTEen majuscules (uid 1026), la connexion se fait ensas_nexte. - Le caractère
§du mot de passe ne survit pas à Git Bash puis plink. Le construire sur le VPS avecprintfet les octets\xc2\xa7, puissshpass -f /tmp/pw ssh -o NumberOfPasswordPrompts=1 sas_nexte@10.0.0.2. SansNumberOfPasswordPrompts=1, un échec compte pour 3 auprès du blocage automatique DSM. scpéchoue (pas de sous-système SFTP) — transférer parssh nas 'cat > cible' < source, ou passer parbase64 -d./tmpest monténoexec: les exécutables vont sur/volume1.
No comments to display
No comments to display