Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FileVault et logiciels de sauvegarde

9 réponses
Avatar
Gerald
D'après le support technique de Tri-Edre (Tri-Backup) il semble que
FileVault présente un problème pour la sauvegarde différent du
comportement face à d'autres "gros" fichiers qui sont, eux, pris en
l'état "au dernier pomme-S". Comme le système effectue ses écritures un
peu quand il veut (ou en tout cas de manière non maîtrisée) quand
filevault est activé, il serait impossible de garantir l'intégrité du
fichier de sauvegarde. Et ce problème serait commun à tous les logiciels
de sauvegarde.

Si c'est le cas, c'est un détail utile à connaître (pour le moins !) qui
inciterait à bannir FileVault (déjà que c'est crypté, si en plus on ne
peut pas avoir une sauvegarde fiable :-( et à le remplacer par une
image disque cryptée et ouverte en lecture (dont on sait quand on la
ferme et qui peut être limitée à quelques fichiers ou dossiers
sensibles).

La seule solution fiable serait (selon ce ST) de fermer la session (qui
fermerait définitivement le fichier sparseimage) et d'effectuer la
sauvegarde depuis un autre compte. Pas bien convivial.

des avis contradictoires ? Qui utilise FileVault ?

--
Gérald

9 réponses

Avatar
Eric Levenez
Le 12/10/06 15:18, dans <1hn3o4b.76oq9z1ldvrd3N%,
« Gerald » a écrit :

D'après le support technique de Tri-Edre (Tri-Backup) il semble que
FileVault présente un problème pour la sauvegarde différent du
comportement face à d'autres "gros" fichiers qui sont, eux, pris en
l'état "au dernier pomme-S". Comme le système effectue ses écritures un
peu quand il veut (ou en tout cas de manière non maîtrisée)


Non maîtrisé par Tri-Edre.

quand
filevault est activé, il serait impossible de garantir l'intégrité du
fichier de sauvegarde. Et ce problème serait commun à tous les logiciels
de sauvegarde.


Le problème générique est la sauvegarde d'un fichier en cours d'utilisation
(comme les bases de données par exemple).

La seule solution fiable serait (selon ce ST) de fermer la session (qui
fermerait définitivement le fichier sparseimage) et d'effectuer la
sauvegarde depuis un autre compte. Pas bien convivial.


Oui, c'est la solution, comme pour toute autre fichier en cours
d'utilisation.

Certains systèmes de fichiers possèdent une extension qui permet de
sauvegarder un état stable d'une partition tout en continuant à l'utiliser.
C'est par exemple la notion de snapshot. Des bruits ont couru qu'Apple
pourrait utiliser zfs de SUN qui justement fait cela. Mais ce ne sont que
des rumeurs. Pour l'instant HFS+ ne sait pas faire cela.

des avis contradictoires ? Qui utilise FileVault ?


J'utilise FileVault sur mon portable car c'est la seule solution sécurisée
simple à mettre en ouvre. Mais je ne fais pas de sauvegardes de cette façon
car je sauvegarde les données unitairement et en clair. La protection de
FileVault ne me sert que dans l'éventualité d'un vol, donc pas de sauvegarde
cryptée de mon portable.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
bouillabaisse
Gerald wrote:


des avis contradictoires ? Qui utilise FileVault ?


Surtout pas moi.
--
Rene Chamayou
(ROT13)

Avatar
Gerald
Eric Levenez wrote:

Le problème générique est la sauvegarde d'un fichier en cours d'utilisation
(comme les bases de données par exemple).


Je comprends bien, mais j'imaginais que quelqu'un y avait pensé ! Il
suffirait (yaka !) de bloquer toute modif du fichier au moment où il est
écrit. La sauvegarde ne correspondrait qu'à l'état en début de
sauvegarde, mais de toutes façons une sauvegarde est obsolète dès
l'instant qui suit la poursuite de l'utilisation.

J'utilise FileVault sur mon portable car c'est la seule solution sécurisée
simple à mettre en ouvre.


Une image disque cryptée et ouverte en écriture me semble une solution
sécurisé et simple pour les fichiers sensibles. Et elle peut être
refermée de manière fiable aussi bien avant sauvegarde qu'avant
transport (y compris, je pense, de manière automatique par script ? ou
automator ?). Qu'as-tu contre ?

--
Gérald

Avatar
Eric Levenez
Le 13/10/06 2:41, dans <1hn4jrd.16sbgye1z0zv9vN%,
« Gerald » a écrit :

Eric Levenez wrote:

Le problème générique est la sauvegarde d'un fichier en cours d'utilisation
(comme les bases de données par exemple).


Je comprends bien, mais j'imaginais que quelqu'un y avait pensé !


Tout le monde y a pensé.

Il
suffirait (yaka !) de bloquer toute modif du fichier au moment où il est
écrit.


C'est le principe des snapshots dans les systèmes de fichier, c'est aussi le
principe utilisé par certaines bases de données qui écrivent les nouvelles
modifications (après le début de la sauvegarde), dans un fichier séparé (qui
est ensuite remis dans la base générale après la sauvegarde).

La sauvegarde ne correspondrait qu'à l'état en début de
sauvegarde, mais de toutes façons une sauvegarde est obsolète dès
l'instant qui suit la poursuite de l'utilisation.

J'utilise FileVault sur mon portable car c'est la seule solution sécurisée
simple à mettre en ouvre.


Une image disque cryptée et ouverte en écriture me semble une solution
sécurisé et simple pour les fichiers sensibles. Et elle peut être
refermée de manière fiable aussi bien avant sauvegarde qu'avant
transport (y compris, je pense, de manière automatique par script ? ou
automator ?). Qu'as-tu contre ?


Je n'ai rien contre, mais ce n'est pas la même chose. FileVault sauvegarde
toutes les données de l'utilisateurs (carnet d'adresse, préférences qui
peuvent contenir des données sensibles...). FileVault est de plus beaucoup
plus simple à utiliser. Une image disque ne sauvegarde que ce que l'on a
pensé à sauvegarder et beaucoup de fichiers non sauvegardés peuvent contenir
des données sensibles.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Eric Levenez
Le 13/10/06 10:31, dans
<1hn55d7.kuoqbqq4d4lcN%, « Benoit
Leraillez » a écrit :

Eric Levenez wrote:

Certains systèmes de fichiers possèdent une extension qui permet de
sauvegarder un état stable d'une partition tout en continuant à l'utiliser.
C'est par exemple la notion de snapshot. Des bruits ont couru qu'Apple
pourrait utiliser zfs de SUN qui justement fait cela. Mais ce ne sont que
des rumeurs. Pour l'instant HFS+ ne sait pas faire cela.


Mais le système pourrait partager son principe de mise en veille en
autorisant d'autres à bénéficier du principe utilisé. Une sauvegarde qui
prend une image du disque et de la ram à l'instant T permettrait de le
faire.


La mise en veille c'est tout autre chose : arrêt de tout ce qui tourne et
sauvegarde de la RAM. Alors que pour une sauvegarde il ne faut pas arrêter
le CPU.

Si cette technique est utilisée il faut, lors du backup, donner
accès à la ram sauvegardée comme le fait la mémoire virtuelle pour le
système normalement.


Ce que tu veux c'est journaliser les accès mémoire et les accès disque...

Journaliser les accès mémoire c'est peut-être possible (pas sûr du tout),
mais ce serait lent et entraînerait des disfonctionnement de certains
périphériques.

En fait seule la journalisation des accès disque est nécessaire, et c'est ce
que fait le principe de snapshot sur un système de fichier. Aucun besoin de
faire la même chose pour la RAM.

Exemple : je sauvegarde une bdd en cours de traitement, j'ai le
contenu du disque et de la ram à ce moment-là et si je veux récupérer un
élément je rouvre la bdd et l'appli récupère sa ram.


Les grandes bases de données savent gérer par elle-même des snapshots et
donc des sauvegardes cohérentes pendant que la base continue à être
modifiée.

Je relance le système dans une partition de mémoire en quelque
sorte. L'autre solution serait d'attendre que la base ne soit plus en
écriture pour la sauvegarder. Tous les fichiers en écriture sont mis de
côté et sauvegarder dès qu'ils ne sont plus qu'en lecture.


Il ne peut y avoir de notion d'écriture en cours ou non. Si un fichier est
ouvert en écriture, c'est à la fermeture par l'application que les derniers
buffers en cache dans l'application seront flusher dans le fichier. En aucun
cas on ne peut considérer que si après x secondes d'inactivité en écriture
un fichier est cohérent.

Si en C par exemple on fait un printf("toto"), les octets "toto" ne seront
pas envoyés sur disque. Ils le seront quand le programme fera un fflush, ou
quand le buffer stdout sera plein ou quand il y aura un n ou quand le
programme appellera exit. Alors vu du programme le "toto" est envoyé, mais
pas vu du disque. Si quelqu'un lit le fichier en parallèle, il ne verra pas
le "toto".

Je dis peut-être une honnerie et j'aimerai connaître les cas où un
fichier qui ne serait pas en cours de lecture seule perdrait sa capacité
à être réouvert depuis cet état.


Si j'ai compris ta question, voir mon exemple C.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Eric Levenez
Le 13/10/06 13:38, dans
<1hn5edt.6x2utln8vylfN%, « Benoit
Leraillez » a écrit :

Eric Levenez wrote:

Mais le système pourrait partager son principe de mise en veille en
autorisant d'autres à bénéficier du principe utilisé. Une sauvegarde qui
prend une image du disque et de la ram à l'instant T permettrait de le
faire.


La mise en veille c'est tout autre chose : arrêt de tout ce qui tourne et
sauvegarde de la RAM. Alors que pour une sauvegarde il ne faut pas arrêter
le CPU.


Oui, mais pourquoi ne pourrait-on pas faire de même sans la mise en
veille via un appel système ?


La sauvegarde de la RAM lors de la mise en veille ne marche que parce que
tous les programmes ont été arrêtés. Si un seul programme tourne encore,
cela ne peut marcher.

Les grandes bases de données savent gérer par elle-même des snapshots et
donc des sauvegardes cohérentes pendant que la base continue à être
modifiée.


Mais toutes les bases de données ne savent pas le faire, sur
certaines, Windows entre autre avec son serveur de mail... (sans
commentaire), il faut lancer un script (tordu et écrit par des sociétés
qui vendent ça un certain prix) qui arrête la base génère un export et
relance le tout.


Oui, c'est souvent la méthode utilisée.

Avec un Snapshot fichier + ram on évite ce genre de
problème.


Oui, mais comme techniquement parlant, je ne pense pas que cela soit
faisable, ce n'est qu'une hypothèse.

Le plus simple, dans le cas présent, est de quitter toutes les
applis qui ont un fichier ouvert en écriture en demandant l'accord de
l'utilisateur. Il ne faut pas oublier qu'on parle d'un logiciel de
backup grand public et pas d'un outil destiné à un environnement pro.


Au départ on parle de FileVault qui ne marche pas du tout de cette façon.

Une question : j'utilise Carbon Copy Cloner pour faire des
sauvegardes et j'aimerai savoir ce que lui il fait en cas de fichier
ouvert ;-)


Rien de particulier. Sous unix, en utilisation "normale", les verrouillages
des fichiers sont ce que l'on appelle coopératifs (contrairement à Windows
par exemple), ce qui fait que tout le monde (sous réserve des bonnes
autorisations), peut venir lire tout fichier. Un programme comme CCC peut
ainsi (en tournant en tant que root) accéder à tous les fichiers du système
en lecture et il peut ainsi les sauvegarder, que les fichiers soient ouvert
en lecture ou écriture.

Si par exemple on a une base de données composées de 2 fichiers (typiquement
un de données et un d'indexe), alors une sauvegarde en cours d'utilisation
va faire que les 2 fichiers seront sauvegardé à des moments différents et
cela peut entraîner des dysfonctionnements lors de la restauration.

Bref, il vaut mieux arrêter tous les programmes applicatifs avant de lancer
une sauvegarde par CCC. Si on ne le fait pas, la sauvegarde s'effectuera
sans problème, mais pas forcément la restauration.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



Avatar
Eric Levenez
Le 14/10/06 8:20, dans
<1hn6usu.ff03hl82znopN%, « Benoit
Leraillez » a écrit :

Eric Levenez wrote:

Oui, mais pourquoi ne pourrait-on pas faire de même sans la mise en
veille via un appel système ?


La sauvegarde de la RAM lors de la mise en veille ne marche que parce que
tous les programmes ont été arrêtés. Si un seul programme tourne encore,
cela ne peut marcher.


Ça je le savais, mais si on fait une mise en veille le système
prévient et comme nous ne sommes pas dans le cas d'un serveur mais dans
celui d'une machine avec un humain devant sa requête, le backup peut
afficher une alerte à propos de certaines applications.


Je ne vois pas comment cela pourrait être techniquement faisable.

Le plus simple, dans le cas présent, est de quitter toutes les
applis qui ont un fichier ouvert en écriture en demandant l'accord de
l'utilisateur. Il ne faut pas oublier qu'on parle d'un logiciel de
backup grand public et pas d'un outil destiné à un environnement pro.


Au départ on parle de FileVault qui ne marche pas du tout de cette façon.


Le problème est que FileVault n'écrit pas tout, tout de suite, sur
le disque, si j'ai bien compris.


Non, je n'ai pas dit cela. J'ai juste dit que sauvegarder un fichier en
cours d'utilisation est risqué. Je n'ai pas parlé de FileVault en
particulier. Mais jamais il me viendrait à l'idée de faire une sauvegarde du
fichier utilisé par FileVault car il y a un risque, même si cela peut
marcher.

Si on demande à toutes les applis de
« quitter » on doit pouvoir pousser FileVault à finir ses
enregistrements (je suis sûr qu'il y a un moyen de le faire, genre :
Shutdown, reboot, mais là... franchement ;-)


Justement, le moyen existe : il suffit de se délogguer du compte et de se
relogguer sur un autre compte pour lance la sauvegarde. Si on n'arr^rte pas
complètement l'utilisation du fichier de FileVault, il y aura toujours un
risque.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



Avatar
Gerald
Eric Levenez wrote:

Justement, le moyen existe : il suffit de se délogguer du compte et de se
relogguer sur un autre compte pour lance la sauvegarde. Si on n'arr^rte pas
complètement l'utilisation du fichier de FileVault, il y aura toujours un
risque.


C'est d'ailleurs exactement ce que disait le support technique de
Tri-Edre (dont la compétence ne s'est d'ailleurs jamais démentie). Reste
un double problème : que le logiciel ne prévienne pas de ce risque de
corruption possible des fichiers en cours d'utilisation et du risque
accru concernant FileVault du fait de sa nature, ET surtout que ne pas
être sûr de la validité de la sauvegarde d'un fichier crypté et
contenant par définition toutes les données sensibles. C'est vraiment
comme sauter de l'avion avec un parachute d'occasion récupéré aux
surplus et jamais testé :-(

Ce que je ne comprends pas, c'est la désinvolture supposée d'Apple par
rapport à ce truc. C'est pourquoi je me demandais (et je continue malgré
vos affirmations) s'il n'y avait pas *dans* le fonctionnement de
FileVault quelque chose qui protégeait contre la corruption. Une sorte
"d'état" local de chaque dossier/fichier à l'intérieur du compte
utilisateur qui garderait trace de différentes modifications (et je
pense d'avance à la Time Machine de Leopard) et permettrait de toutes
façons d'en revenir à un moment donné à un état stable des fichiers à
partir du sparseimage sauvegardé.

PARCE QUE, concrètement, j'ai travaillé et modifié plein de fichiers
différents avec FileVault activé et effectué des sauvegardes (donc : non
sécurisées) en tâche de fond et TROIS fois j'ai eu à effectuer un
restore depuis ces sauvegardes qui s'est passé sans problème. UNE fois
avec Tri-Backup pour cause d'échange de disque dur kaput sur mon
PowerBook, et DEUX fois pour cause de copie du compte par Assistant
Migration sur des MacMINI nouvellement achetés.

Si le fichier ".sparseimage" se comportait comme une image disque
cryptée standard, je n'aurais pas dû pouvoir obtenir un restore valide :
plusieurs gros fichiers étaient certainement "ouverts" voire "en cours
d'écriture" pour mon boulot au moment de la sauvegarde et le fichier
dans son ensemble aurait été corrompu (j'ai bon ou faux ?).

C'est pourquoi j'amène cette question ici à des spécialistes du système.
Apple joue-t-il vraiment aux apprentis sorciers où ont-ils une botte
secrète qui permettrait de dire que je n'ai pas "eu de la chance" mais
obtenu un fonctionnement normal de la chose ?

--
Gérald

Avatar
Eric Levenez
Le 14/10/06 11:59, dans <1hn745y.7ioclg1jb70gwN%,
« Gerald » a écrit :

C'est d'ailleurs exactement ce que disait le support technique de
Tri-Edre (dont la compétence ne s'est d'ailleurs jamais démentie). Reste
un double problème : que le logiciel ne prévienne pas de ce risque de
corruption possible des fichiers en cours d'utilisation et du risque


Le logiciel ne peut pas savoir si un fichier donné est en cours
d'utilisation.

accru concernant FileVault du fait de sa nature, ET surtout que ne pas
être sûr de la validité de la sauvegarde d'un fichier crypté et
contenant par définition toutes les données sensibles.


Alors un exemple.

Sous unix, le programme de base pour un archivage est "tar". Ce programme,
lors d'une sauvegarde de fichiers, prend les caractéristiques de chaque
fichier (taille, date...) avant de commencer à le sauvegarder, puis juste
après. S'il voit un changement c'est que le fichier a été modifié pendant la
sauvegarde. Un warning est alors affiché. Ce qu'il faut bien comprendre
c'est que même si tar vérifiait avant de commencer à sauvegarder un fichier
s'il est en cours d'utilisation (mais comment?) et juste après, il ne
verrait rien : un programme peut très bien ouvrir en écriture le fichier,
faire une modif, et fermer le fichier, et cela _pendant_ la sauvegarde.

La seule solution viable (sans modification du système de fichiers) est de
ne pas utiliser un fichier pendant une sauvegarde.

La seule solution parfaite est d'utiliser un système de fichiers qui sache
faire des snapshots. Il n'y a pas encore un tel système de fichiers sur Mac
OS X. Beaucoup de personnes aimeraient qu'Apple adopte le système ZFS de sun
qui serait parfait sur Mac OS X.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.