En zpool byggs upp av vdevs, dvs grupper av hårddiskar (eller partitioner, eller filer). Varje vdev kan vara konfad som raidz3, raidz2, raidz1 eller mirror.
Det finns huvudsakligen två sorters prestanda när vi pratar raid system. IOPS och bandbredd.
VIKTIGT: Slarvigt kan sägas att ZFS ger dig IOPS prestanda som motsvarar antalet vdevs i din zpool. Jag tror detta gäller alla raidsystem, inkl hårdvaruraidkort.
IOPS, är som du nog vet, hur många olika filer man kan besöka varje sekund. Om du bootar Windows, så måste du besöka många småfiler, och det tar fett med tid eftersom hårddiskhuvudet är långsamt. Men en SSD kan snabbt besöka många filer och bootar mycket snabbare än en HD. En HD kanske läser 1MB/sek när vi pratar slumpmässig 4K block, en SSD kanske läser 60MB/sek. Antag att du måste läsa in totalt 0.5GB för att boota windows, ja, då tar det lång tid med en HD. Detta är IOPS prestanda vi pratar om här.
Raidz2 är bra för höga sekviensella prestanda, dvs hög MB/sek. Med 7 diskar kommer du upp i kanske 4-500 MB/sek.
När du pratar om Virtuella maskiner så vill du ha höga IOPS, eftersom varje användare kommer att läsa många små Windowsfiler då och då. Därför bör du ha många vdevs i din zpool. Mirrors ger dig största antalet vdevs för ett givet antal diskar. Det är klart att du kan skapa många raidz2 vdevs också, men då måste du använda onödigt många diskar, om du bara vill få höga IOPS. Högst IOPS fås med SSD diskar. En vdev ger dig IOPS prestanda som en ensam disk. Om du har sex diskar i tre mirrors, så motsvarar det IOPS prestanda som tre diskar. Om du istället skapar en raidz1 utav alla sex diskar, så har du IOPS prestanda som en ensam disk.
Om du ska strömma en stor fil så snabbt som möjligt, så går det bra med låga IOPS. Då kan du ha en enda stor vdev i din zpool.
Generellt så byggs alla stora raid upp av flera raid-5 grupper eller raid-6 grupper om vi pratar om hårdvaruraid. ZFS är likadan, och använder sig av raidz1/2/3/mirror.
Klargjorde detta saken?