ZFS is ook vanuit die filosofie ontwikkeld, er is ook vanuit de database wereld (SUN/Oracle) gekeken naar de huidige filesystems en hoe dit beter kan/moet.
Als je iets met ZFS gaat doen, zeker zakelijk zou ik je aanraden onderstaande twee video's van Linda Kately goed te bekijken dan wordt je een stuk duidelijk hoe ZFS in elkaar steekt en hoe je de maximale performance eruit krijgt. Op internet kom je zoveel misverstanden tegen m.b.t. ZIL, SLOG, Wel/niet hardware raid gebruiken etc.. allemaal vrij essentiële dingen die je echt moet weten.
Open-ZFS Bootcamp
YouTube: Open-ZFS Bootcamp
Why use zfs for virtual machines??
YouTube: Why use zfs for virtual machines??
Momenteel ben ik zelf bezig samen met een collega met het inrichten van een
Storage
Repository waar VMs op komen ste staan van het type RDS (XenApp). Dit alles draait op XenServer hypervisors.
De configuratie van deze machines bestaat uit:- 2x Formfactor: HP Proliant DL380p Gen8
- DriveBay: Hot Swap capable (Wel even disks offline zetten
) - 2x Intel® Xeon® Processor E5-2650 v2 (20M Cache, 2.60 GHz)
- 2x 64GB ECC mem per host, dit moet in de toekomst naar 2x 128GB ECC aangezien FreeNas daar behoorlijk wat voordelen aan kan hebben.
- 2x 12 Samsung SM863 - 480GB SSDs > voor de storage pool (volume01).
- 2x Samsung 850 Pro > voor het FreeNas OS (overkill, geen redundantie gewoon export van config naar share en hotstandby OS op interne USB stick).
- 4x LSI 9201-16e @ IT Firmware (JBOD), twee per host om de maximale bandbreedte te kunnen benutten en enige vorm van redundantie.
- 2x 10GB Fiber (1 per host, dit moeten er twee worden maar momteenl hebben we te weinig 10GB glas porten beschikbaar om LACP (IEEE 802.3ad) toe te passen
. - 4x 750w voeding, tweek per host
- 2x PCI-e kaart met 2x 1GB rj45 aansluiting voor management interface, willen geen management vlan over de glas verbinding, deze is voor voor het NFS storage netwerk.
ZIL op SLOG
In bovenstaande configuratie maken we geen gebruik van een SLOG voor de ZIL ondanks het feit dat NFS gebruik maakt van SYNC writes omdat de hele pool uit SSDs bestaat en een SLOG is alleen handig als je nog snellere media inzet zoals bijvoorbeeld Fusion I/O. Bovendien zijn twee SM863 SSDs in mirror een vertragende factor op de totale pool van 12 en in de toekomst 24 SSDs.
Pool Configuratie
De pool configuratie bestaat momenteel uit 6 mirrors (0~5) van twee SSDs elk op een andere controller zodat je optimale redundantie hebt op controller niveau. ZFS stiped de data vanuit nature over alle 6 de vDEVs (elke mirror is 1 vDEV) waardoor je er in onze optiek optimale performance uit krijgt en ook nog een redelijke mate van redundantie.
Redundantie
Uit veiligheids overwegingen hebben we er voor gekozen alleen ons RDS servers (Front-End) op deze storage te gaan plaatsen, deze servers zijn immers vervangbaar. Bovendien varen deze VMs extra goed op dit soort storage vanwege de vele random I/O die users genereren.
NFS vs. iSCSI (andddddd... fight!)
We hebben gekozen voor NFS in tegenstelling tot iSCSI.
Uit ervaring en uit tests is gebeleken dat iSCSI een verwaarloosbare snelheid winst opleverd, een stuk complexer is en het geheel beheerbaar moet zijn voor iedereen op de afdeling. Ook heb ik mn vraagtekens bij het plaatsen van meedere VMs op een share LUN (exclusive access), om dit te omzeilen zou je per VM een LUN kunnen toevoegen maar dat wordt erg rommelig in XenCenter.
Extra zekerheid
Als extra voorzorg maatregel plaatsen wij de even RDS servers op de ene host en de oneven hosts op de andere. In de toekomst willen we eigenlijk alle hosts op 1 SR plaatsen, hier vervolgens snapshots op activeren en deze synchroniseren naar de andere host. Ik weet dat in FreeBSD de Highly Available Storage (HAST) functionaliteit zit, maar deze is nog vrij experimenteel en bovendien niet ondersteund in FreeNas 9.3.1-Stable.
DEDUP& Compression
We hebben er voor gekozen geen DEDUP toe te passen omdat dit een behoorlijk deel van het geheugen kaapt, het de prestaties daarnaast niet te goede komt en dat was nou net onze goal. De ingabakken LZJB compressie leverd overigens gewoon een compressie ratio van 1.55x op wat best goed is en geen impact heeft op de prestaties (CPU > Storage).
* Al zou in ons geval DEDUB wel een hoop ruimte opleveren als je 30 dezelfde VMs hebt
Resultaat:
Momenteel zijn we nog aan het testen in acceptatie, maar ik moet zeggen het blaast vooruit, de RDS servers reageren veel beter, bijna geen latency het is bijna native storage voor mn gevoel (ondanks dat het een NAS i.p.v. SAN topology is). Als ik vervolgens kijk naar de GSTAT, IOSTAT, zpool iostat -v1 lijken de individuele "disks" het met twee vingers in de neus aan te kunnen... nou is het niet helemaal eerlijk omdat een groot deel gewoon in het geheugen wordt gecached maar toch ziet er prima uit! Zelfs wanneer ik met DD, FIO of een simpele mount + CP de disks extreem belast merk ik daar niets van in mn user sessie op de RDS servers, en sommige SSDs staan dan echt op hun max te stampen (zn 14K IOPs).
Ik ben
FAN!
* Owhja de ingebouwde checksums ofwel het "Self Healing File System" is helemaal een prettige bijkomstigheid! Geen bitflip of bitrot meer WhoeeeI! Tenzij je natuurlijk wel iSCSI (SAN) gaat doen en file systems uit de oertijd los laat op je blocks.
[
Voor 4% gewijzigd door
Fr0zenFlame op 10-12-2015 16:53
]
i7-6700K | Z170A XPOWER GAMING TITANIUM EDITION | InWin904 | 32GB Corsair Dominator Platinum | nVidia GeForce RTX2080 TI | Iiyama G-Master UWQH 34" | 2x 1TB Samsung SSD 980PRO | 1x 4TB Samsung 860EVO | Arctis 7 | SteelSeries Apex Pro | Logitech G502 Hero