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
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
saint 12G 156 98 206597 26 135609 24 410 97 367498 21 1478 17
Latency 280ms 3177ms 1019ms 163ms 180ms 225ms
Version 1.96 ------Sequential Create------ --------Random Create--------
saint -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
64:100000:16/64 6585 60 58754 100 32272 79 9827 58 38709 100 27189 80
Latency 1032ms 469us 1080us 101ms 375us 16108us
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Iozone: Performance Test of File I/O
Run began: Wed Jun 13 22:36:14 2012
Record Size 1024 KB
File size set to 12582912 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Throughput test with 1 process
Each process writes a 12582912 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 234459.41 KB/sec
Children see throughput for 1 rewriters = 235029.34 KB/sec
Children see throughput for 1 readers = 359297.38 KB/sec
Children see throughput for 1 re-readers = 359821.19 KB/sec
Children see throughput for 1 random readers = 57756.71 KB/sec
Children see throughput for 1 random writers = 232716.19 KB/sec
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.
- Vous voudrez tester vos SSD pour voir s'ils peuvent être présentés directement à une machine virtuelle ou si DirectPath choisit le contrôleur de carte mère entier.
- Vous n'avez pas beaucoup de puissance CPU, alors limitez l'unité de stockage à 2 vCPU.
- N'utilisez pas RAIDZ1 / Z2 / Z3 sauf si vous avez vraiment besoin de l'espace disque.
- N'utilisez pas de déduplication. La compression est gratuite et très utile pour les VM. La déduplication nécessiterait beaucoup plus de RAM + L2ARC pour être efficace.
- Commencez sans les SSD et ajoutez-les si nécessaire. Certaines charges de travail n'atteignent pas le ZIL ou le L2ARC .
- NexentaStor est un package complet. Il y a un avantage à avoir une interface graphique de gestion solide, cependant, j'ai également entendu parler de succès avec Napp-It .