1 votes

En utilisant le même volume LVM pour devicemapper et un volume monté en mode bind

Je lance une machine Amazon EC2 avec un lecteur EBS de 512 Go. Mon plan est de diviser l'EBS en deux parties - une à utiliser par Docker 1.11 pour ses images (via devicemapper) et une autre à monter en bind sur la VM Docker (pour stocker de grandes pièces de données de manière persistante)

admin@ip-172:~/docker-setup$ sudo lvs
  LV       VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data     direct-lvm twi-a-tz-- 230,39g             4,19   10,06                           
  homedata direct-lvm -wi-a----- 256,00g                                                    
  metadata direct-lvm -wi-a-----  12,00g   

admin@ip-172:~/docker-setup$ sudo pvs
  PV         VG         Fmt  Attr PSize   PFree 
  /dev/xvdg1 direct-lvm lvm2 a--  512,00g 13,38g

admin@ip-172:~/docker-setup$ sudo dmsetup ls --tree
docker-202:2-407552-76fd7e91f9d116412221e660108dbf577ecaa301796068e63bd3007e402d2ccf (254:6)
 direct--lvm-data-tpool (254:4)
    direct--lvm-data_tdata (254:3)
       (202:97)
    direct--lvm-data_tmeta (254:1)
        (202:97)
direct--lvm-metadata (254:2)
  (202:97)
direct--lvm-data (254:5)
 direct--lvm-data-tpool (254:4)
    direct--lvm-data_tdata (254:3)
       (202:97)
    direct--lvm-data_tmeta (254:1)
        (202:97)
direct--lvm-homedata (254:0)
  (202:97)

Je monte /dev/direct-lvm/homedata sur /bigdata sur la VM Docker. Un inspect docker montre ceci:

{
                "Source": "/dev/direct-lvm/homedata",
                "Destination": "/bigdata",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },

cependant, le répertoire /bigdata est affiché comme un montage udev de 10 Mo.

deployer@b11853af11c3$$ df   
Filesystem                                                                                       1K-blocks    Used Available Use% Mounted on
/dev/mapper/docker-202:2-407552-76fd7e91f9d116412221e660108dbf577ecaa301796068e63bd3007e402d2ccf  10475520 6065028   4410492  58% /
tmpfs                                                                                              7849700       0   7849700   0% /dev
tmpfs                                                                                              7849700       0   7849700   0% /sys/fs/cgroup
/dev/xvda2                                                                                         8124836 1231776   6457300  17% /run
udev                                                                                                 10240      56     10184   1% /bigdata
shm                                                                                                  65536       0     65536   0% /dev/shm

J'ai beaucoup d'autres montages qui sont simplement des répertoires locaux et ils fonctionnent très bien. Mais quand j'essaie de monter en bind le volume lvm.. cela ne fonctionne tout simplement pas. Qu'est-ce qui se passe ? devrais-je faire quelque chose avec le volume lvm pour le rendre montable ? s'il vous plaît aidez-moi.

0voto

Nick Breen Points 101

Pour toute autre personne découvrant ceci à l'avenir. De plus, désolé d'éviter la question.

Dans le cas spécifique d'AWS EC2 et des volumes EBS, il existe quelques modifications spécifiques au cloud que vous pouvez apporter à votre approche pour la rendre plus "cloud".

Itération 1 : Utilisez simplement des volumes EBS séparés

Il est beaucoup plus simple d'utiliser des volumes EBS séparés plutôt que LVM gérant des volumes logiques sur un seul volume EBS. Vous obtiendrez également de meilleures performances d'E/S en utilisant des volumes EBS séparés.

Itération 2 : Utilisez les volumes EBS 'nativement'

Vous pouvez également utiliser un plugin de volume (tel que Cloudstor qui vous permettra d'allouer des volumes EBS séparés par conteneur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X