Il est quand même important de bien faire le distinguo entre une techno
d'exposition de block device (SAN donc, ou pourrait citer FC, FCoe,
iscsi, atoe, etc...) et une techno de FS réseau sans block device
partagé (NFS, Smb ?).
Vraiment ? Avec un FS distribué construit sur le dev block exporté par
iSCSI, tu peux faire tout ce que fait NFS, non ?
C'est franchement différent. Tu penses j'image à OCFS2, GFS2 ?
Le problème de ces FS c'est la gestion du lock (NFS s'en sort mieux à ce
niveau même si ça reste un gros soucis). Je ne les conseillerais
vraiment pas.
iSCSI t’expose un blockdevice, donc il faut ajouter un FS dessus pour
l’utiliser. Depuis une VM où le but c’est juste de pousser un backup
ailleurs, ça peut être bien d’écrire directement sur un NFS.
Sur une VM où c’est le /, j’aurais plutôt tendance à partir sur de
l’iSCSI par contre, mais ça reste du feeling :p
Pour le stockage de VMs cela parait intuitivement plus logique
d'utiliser du block. Le problème c'est que par définition tu vas avoir
beaucoup de vm(s) et donc potentiellement autant de target que de vm(s).
Ça se fait c'est du SAN à l'ancienne on va dire.
On utilise en général une approche différente, on utilise un ou
plusieurs gros block device avec un FS distribué ou chaque vm(s) est
stocké dans des fichiers (qui sont des images disques). Par exemple VMFS
over FC, over iscsi ; ou directement NFS pour vmware.
Sous XEN je connais des gens qui ont la même approche, export d'un gros
share NFS ou on stocke des images disques des vm(s).
Ça se passe globalement bien, car en général une vm n’accède qu'une
seule ou fois à son fichier d'image disque, du coup pas de problème
d'accès concurrent au fichiers, lock unique au démarage de la vm.
Et après il faut bien regarder l'implémentation coté server aussi.
Exemple assez connu, Netapp a avant tout été construit pour faire du
NFS/Smb avec un FS interne (WAFL) prévu pour. L'implémentation d'isci au
début était moche (un fichier image over WAFL). Du coup NFS était
beaucoup plus performant sur Netapp qu'iscsi.
En tout cas malgré tout le mal que je pense de NFS c'est certainement
plus simple et adapté pour du stockage de VMs.
L'immense problème de NFS (mais iscsi aussi) c'est la redondance et le
scaling (vertical only).
Alors on peut être tenté d'utiliser un vrai block device partagé (Ceph
avec RDB). On règle les deux problèmes au prix d'une certaine complexité.
Pour du container alors la par contre je dirais ni l'un ni l'autre ; un
container ne devrait pas avoir besoin de stockage persistent, ou alors
du stockage objet (S3 like).
--
Raphael Mazelier
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/