Re: Questions LVM & co

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: ML Guilde
Subject: Re: Questions LVM & co
    Bonsoir Jérôme,

Jerome Kieffer a écrit :
> On Sat, 11 Oct 2008 20:32:32 +0200
> Olivier Allard-Jacquin <olivieraj@???> wrote:
>
>> Rappel: L'idée est "fusionner" deux partitions distinctes (venant ou non
>> de deux disques différents), en un unique point de montage. Et ce, afin
>> que l'utilisateur final puisse disposer en un répertoire unique de la
>> capacité de stockage des deux partitions.
>
> Bonsoir Olivier,
>
> As tu regardé la solution proposée par Acer sur son netbook le Aspire
> One qui permet de fusionner à la volée /home/user et /Media/SD1
> en /mnt/home. Toutes les partoches sont en Ext2 (Ext3 possible),
> Chaque nouveau fichier est créé sur un volume ou l'autre (Selon une
> politique définie). Chaque volume reste lisible séparément.


    Bien joué !


    L'information n'a pas été très facile à trouvé, mais c'est expliqué ici
:
http://macles.blogspot.com/2008/09/about-storage-expansion-of-acer-aspire.html


    En fait, l'Aspire One utilise "aufs" (le premier soft testé lors de mon
précédent mail), mais avec des options de montages particulières.
Notamment, en faisant utilisant les paramètres "create="


    Le "man aufs" donne ceci :
<extrait>
   Policies for Creating
       create=tdp | top-down-parent
              Selects the highest writable branch where the parent dir
exists. If the parent dir does not  exist  on  a writable branch, then
the internal copyup will happen. The policy for this copyup is always
‘bottom-up.’ This is the default policy.


       create=rr | round-robin
              Selects a writable branch in round robin. When you have
two writable branches and  cre‐ates  10 new files, 5 files will be
created for each branch.  mkdir(2) systemcall is an exception. When you
create 10 new directories, all are created on the same branch.


       create=mfs[:second] | most-free-space[:second]
              Selects a writable branch which has most free space. In
order to keep the  performance, you  can  specify  the  duration
(‘second’)  which  makes  aufs hold the index of last selected writable
branch until the specified seconds expires. The first time you create
 something  in  aufs after the specified seconds expired, aufs checks
the amount of free space of all writable branches by internal statfs
call and the held branch  index  will be updated.  The default value is
30 seconds.
</extrait>


    D'après mes tests, l'option qui marche le mieux dans mon besoin
(arriver à remplir les 2 partitions de stockage de manière transparente)
est le "create=mfs" (le "create=rr" a échoué pour cause de manque de
place lors d'un de mes tests). Ainsi, voici les commandes à taper :


    Montage des espaces physiques :
# mount /dev/sdb5 /tmp/test/REAL/05
# mount /dev/sdb6 /tmp/test/REAL/06


    Fusion des partitions :
# mount -t aufs -o
dirs=/tmp/test/REAL/05=rw:/tmp/test/REAL/06=rw,create=mfs none
/tmp/test/aufs/


(A noter le paramètre "create=mfs", et les deux "rw")

    Mon test a consisté à générer 300 fichiers de 10Mo sur le /tmp/test/aufs/ :


$ for I in `seq -w 1 300`; do cp test.bin
/tmp/test/aufs/olivier/test-$I.bin; done

Tout les fichiers ont été écrits sans problème

    La répartition des fichiers ne se fait pas exactement à 50% pour chaque
partition (elles sont pourtant de taille identiques) : 163 fichiers pour
l'une, 137 pour l'autre :
$ ls /tmp/test/REAL/05/olivier/| wc -l ; ls /tmp/test/REAL/06/olivier/|
wc -l
163
137


    Tout marche donc bien, mais le chiffre de l'espace libre sur le "auf"
reste faux (problème déjà soulevé précédemment) :


# df
/dev/sdb5  1923052   1630556    194808  90% /tmp/test/REAL/05
/dev/sdb6  1923068   1376104    449276  76% /tmp/test/REAL/06
none       1923052   1630556    194808  90% /tmp/test/aufs


Il n'est supposé resté que 194.808 ko sur le /tmp/test/aufs/, ce qui
est la taille restante sur le /tmp/test/REAL/05/. Alors qu'en fait, il
y a encore 449.276 ko de libre sur le /tmp/test/REAL/06/ . Et j'ai pu
sans problème écrire 500 Mo supplémentaire sur le /tmp/test/aufs/.

    Conclusion : "aufs" avec l'option "create=mfs" est donc la solution
pour fusionner 2 espaces de stockage ext* en un seul, tout en
bénéficiant de l'écriture sur les deux espaces de stockage.


    Cordialement,


                        Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!