Je suis encore nouveau sur ZFS. J'utilise Nexenta mais je pense à passer à OpenIndiana ou Solaris 11 Express. En ce moment, je suis sur le point d'envisager de virtualiser le serveur ZFS en tant qu'invité dans ESXi, Hyper-V ou XenServer (je n'ai pas encore décidé lequel - je penche vers ESXi pour VMDirectPath et le support FreeBSD).
La principale raison étant qu'il semble que j'ai suffisamment de ressources pour faire le tour, que je pourrais facilement avoir 1 à 3 autres machines virtuelles exécutées simultanément. Surtout Windows Server. Peut-être aussi une machine virtuelle Linux / BSD. J'aimerais que le serveur ZFS virtualisé héberge toutes les données des autres machines virtuelles afin que leurs données puissent être conservées sur des disques physiquement séparés des disques ZFS (montés en iscsi ou nfs).
Le serveur dispose actuellement d'un AMD Phenom II avec 6 cœurs au total (2 déverrouillés), 16 Go de RAM (max) et un HBA LSI SAS 1068E avec (7) disques SATA II de 1 To connectés (planification sur RAIDZ2 avec disque de secours). J'ai également (4) SSD SATA II de 32 Go connectés à la carte mère. J'espère mettre en miroir deux des SSD sur un miroir de démarrage (pour l'hôte virtuel) et laisser les deux autres SSD pour ZIL et L2ARC (pour l'invité ZFS VM). Je suis prêt à ajouter deux disques supplémentaires pour stocker les invités VM et à allouer les sept disques actuels en tant que stockage ZFS. Remarque: la carte mère ne prend pas en charge IOMMU car le 880G ne le prend pas en charge, mais j'ai une carte 890FX qui a IOMMU si cela fait une énorme différence.
Mes questions sont:
1) Est-il sage de faire cela? Je ne vois aucun inconvénient évident (ce qui me fait me demander pourquoi personne d'autre ne l'a mentionné). J'ai l'impression que je pourrais faire un énorme oubli et je détesterais m'y engager, déplacer toutes mes données uniquement pour aller fubar à partir de quelques détails que j'ai manqués.
2) Performances de l'invité virtuel ZFS? Je suis prêt à prendre un petit coup sur les performances, mais je pense que si l'invité VM a un accès complet au disque sur les disques, les performances d'E / S du disque seront à tout le moins négligeables (par rapport à l'exécution de ZFS non virtualisé) . Quelqu'un peut-il en parler par expérience de l'hébergement d'un serveur ZFS en tant qu'invité de machine virtuelle?
Réponses:
J'ai construit un certain nombre de ces configurations de stockage ZFS «tout-en-un». Inspirée initialement par les excellents articles de Ubiquitous Talk , ma solution adopte une approche légèrement différente de la conception matérielle, mais donne le résultat d'un stockage ZFS virtualisé encapsulé.
Pour répondre à vos questions:
Déterminer s'il s'agit d'une approche sage dépend vraiment de vos objectifs. Qu'est-ce que vous essayez d'accomplir? Si vous avez une technologie (ZFS) et que vous recherchez une application, alors c'est une mauvaise idée. Il vaut mieux utiliser un contrôleur RAID matériel approprié et exécuter vos machines virtuelles sur une partition VMFS locale. C'est le chemin de la moindre résistance. Cependant, si vous avez une raison spécifique de vouloir utiliser ZFS (réplication, compression, sécurité des données, portabilité, etc.), cela est certainement possible si vous êtes prêt à faire l'effort.
Les performances dépendent fortement de votre conception, que vous exécutiez sur du métal nu ou virtuel. Il est essentiel d' utiliser le passthrough PCI (ou AMD IOMMU dans votre cas), car vous fourniriez à votre machine virtuelle ZFS un accès direct à un contrôleur de stockage SAS et à des disques. Tant que votre machine virtuelle dispose d'une quantité appropriée de ressources RAM et CPU, les performances sont presque natives. Bien sûr, la conception de votre piscine est importante. Veuillez considérer les miroirs par rapport à RAID Z2. ZFS évolue sur les vdev et non sur le nombre de disques .
Ma plate-forme est VMWare ESXi 5 et mon système d'exploitation compatible ZFS préféré est NexentaStor Community Edition .
Ceci est mon serveur
domestique. Il s'agit d'un HP ProLiant DL370 G6 exécutant ESXi sur une carte SD interne. Les deux disques en miroir de 72 Go au centre sont liés au contrôleur RAID Smart Array P410 interne et forment un volume VMFS. Ce volume contient une machine virtuelle NexentaStor. N'oubliez pas que la machine virtuelle ZFS doit vivre quelque part sur un stockage stable.Il y a un contrôleur LSI 9211-8i SAS relié au boîtier cage d'entraînement six disques SATA de 1 To à droite. Il est transmis à la machine virtuelle NexentaStor, permettant à Nexenta de voir les disques comme une configuration RAID 1 + 0. Les disques sont el-cheapo Western Digital Vert WD10EARS disques alignés correctement avec une version modifiée
zpool
binaire.Je n'utilise pas de périphérique ZIL ou de cache L2ARC dans cette installation.
La machine virtuelle a 6 Go de RAM et 2 processeurs virtuels alloués. Dans ESXi, si vous utilisez le passthrough PCI, une réservation de mémoire pour la quantité totale de RAM attribuée à la machine virtuelle sera créée.
Je donne à la NexentaStor VM deux interfaces réseau. L'un est pour la gestion du trafic. L'autre fait partie d'un vSwitch séparé et possède une interface vmkernel (sans liaison montante externe). Cela permet à la machine virtuelle de fournir un stockage NFS montable par ESXi via un réseau privé. Vous pouvez facilement ajouter une interface de liaison montante pour fournir un accès aux hôtes externes.
Installez vos nouvelles machines virtuelles sur la banque de données exportée par ZFS. Assurez-vous de définir les paramètres «Démarrage / arrêt de la machine virtuelle» dans ESXi. Vous souhaitez que la machine virtuelle de stockage démarre avant les systèmes invités et s'arrête en dernier.
Voici les résultats bonnie ++ et iozone d'une exécution directement sur la machine virtuelle NexentaStor. La compression ZFS est désactivée pour que le test affiche des nombres plus pertinents, mais en pratique, la compression par défaut ZFS (pas gzip) doit toujours être activée.
# bonnie++ -u root -n 64:100000:16:64
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Il s'agit d'un graphique NexentaStor DTrace montrant les IOPS et les taux de transfert de la VM de stockage pendant le test. 4000 IOPS et 400+ mégaoctets / seconde est assez raisonnable pour de tels disques bas de gamme. (grande taille de bloc, cependant)
Autres notes.
la source