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