2016-10-16
Guide

FreeNAS och Fibre Channel

I dagsläget finns det, i mitt tycke, två vettiga sätt att köra extern lagring (NAS, SAN, kalla det vad du vill) om man inte vill ruinera sig: det ena är via någon form av ethernetanslutning (koppar, fiber, 1- eller 10Gbit/s) och det andra är via fibre channel. Huruvida man kör NFS eller iSCSI över den första varianten är en fråga om smak och vilka behov/möjligheter man har. iSCSI drar exempelvis ordentligt med kraft i den maskin som ska servera filerna till klienterna och det är inte alltid så att man får bättre prestanda över iSCSI jämfört med NFS över samma nätverksanslutning och via samma lagringsenhet.

Väljer man ethernet som bärare så kan man exempelvis trunka, eller bond:a som det ibland kallas, flera ethernetlänkar med olika modeller för att på så sätt öka bandbredden mellan den eller de maskiner som vill åt lagringen och den maskinen som hanterar lagringen. Detta fungerar givetvis bara så länge man har en eller flera switchar som kan hantera det och så länge man har tillräckligt med nätverksportar i varje maskin man vill ansluta. I teorin borde man således kunna trunka exempelvis fyra gigabit ethernet-portar och således få 4Gbit/s i bandbredd men i praktiken blir det givetvis inte så mycket beroende på en rad faktorer som den switch du skickar trafiken genom, det faktum att du skickar datatrafiken över koppar, och så vidare. Man kommer långt, men inte hela vägen och om det är något man ganska snart ledsnar på är att dra fyra ethernetkablar (plus en för management via exempelvis iLo eller Drac) till en bunt servrar i ett rack – det blir helt enkelt en väldig massa kablar, väldigt snabbt.

Jag har bra switchar, och jag tycker trunkning av flera ethernetanslutningar har fungerat förhållandevis bra. Det är egentligen inte överföringshastigheten som är ett problem för mig utan snarare att åtkomsttiden kan bli en aning seg ibland.  När jag väl vill dundra på med ett antal gigabyte data samtidigt så vill jag gärna att det händer något, och helst djävligt snabbt, och om jag kan för relativt lite pengar få bort en ethernetswitch i mitt rack och samtidigt få använda fiberkablar istället så är jag ju inte den som är den, så att säga.

För några år sedan köpte jag en Fibre Channel-switch på eBay. Den kostade under tusenlappen men eftersom tullverket ville ha sitt ovanpå det blev det inte så billigt ändå. Det visade sig sedan att switchen, en McData 4500, endast stödde upp till 2Gbit/s och, trots att den har 24 portar, endast innehöll en licens för åtta portar. Det räckte dock för det jag höll på med då, nämligen att koppla in en massa xServe Raid-enheter. Nu har de gamla fina xServe Raid-burkarna blivit ordentligt till åren (även om jag varit frestad att köpa ett par igen) och det visar sig också att FreeNAS stödjer fibre channel alldeles utmärkt. Dock fanns det ett problem: de fibre channel-kort jag hade sedan jag höll på med detta senast är från Brocade och även om de är utmärkta kort så fungerar de bäst med VMware, Linux och Windows.  De fungerar således inte alls med FreeNAS.

Fibre channel-kort som däremot fungerar med FreeNAS är flera modeller från QLogic. En sådan modell är Qlogic QLE2460 som klarar upp 4Gbit/s. Det finns även nyare modeller som klarar både 8- och 16Gbit/s men åtminstone de sistnämnda kan det vara problem med i FreeNAS beroende på brist på drivrutiner, så man bör vara beredd att läsa på lite innan man öppnar börsen för att köpa såna kort. De är också inte helt gratis, vilket däremot QLE2460 närmast är.  Jag ropade nämligen in fem stycken, fyra singelport-kort och ett dubbelportskort, för en Euro styck, plus frakt.   Just det, under en tia per kort – allt detta köptes via eBay och då det finns massor att köpa från säljare inom EU slipper man också tullavgiften. Det är på många sätt lite löjligt att frakten kostar runt 200 kronor styck när man endast betalat under en tia per kort men många säljare skickar helst via DHL så man får leva med det helt enkelt.

Om korten då klarar 4Gbit/s och min gamla switch endast klarar 2Gbit/s, är det då inte bortkastade pengar? Både ja och nej – jag tog tillfället i akt och köpte korten då jag såg att priserna var låga, och switchen hade jag sedan gammalt. Jag siktar på att köpa en snabbare fibre channel-switch vad tiden lider, men det är också värt att notera att man inte behöver en fibre channel-switch för att bygga en lagringslösning baserad på fibre channel – man kan helt sonika peta in flera fibre channel-kort i en lagringsmaskin och sedan ansluta flera klienter direkt till den maskinen, eller så kan man koppla ihop en lagringsmaskin och en klient rakt av, för att ta två exempel.

Det finns ett par saker med fibre channel och FreeNAS som är värt att ta i beaktande. För att få det hela att fungera så tar man genvägen via iSCSI-modulen. Det innebär helt sonika att man utesluter alla andra anslutningsprotokoll, vilket är naturligt då man i själva verket skickar SCSI-kommandon via en fiberanslutning mellan klient och lagringsmaskin. Det går inte heller att kombinera så man kör NFS till samma volym som man kör iSCSI på eftersom NFS låter FreeNAS egna filsystem (ZFS) hantera åtkomst för läsningar och skrivningar medan iSCSI-volymen lagrar alla filer i en enda stor container, en fil som lagras ovanpå ZFS-filsystemet. Denna container blir din fibre channel-volym och formatteras och hanteras sedan av den eller de klientmaskiner som ska läsa och skriva till den, i mitt fall VMware-maskiner och deras filsystem VMFS.

Utöver detta finns en stor begränsning i att köra fibre channel med FreeNAS och det är att man endast kan presentera ett LUN, alltså en volym, till omvärlden via fibre channel.  Vill man leka fibre channel och ha flera olika volymer att ansluta till (exempelvis om enskilda servrar ska ha sin egna lagring) så kommer man således tvingas sätta upp flera FreeNAS-maskiner för ändamålet. Hade jag suttit med en xServe Raid nu så hade jag via en av de raidkontrollers som sitter i de maskinerna kunnat skapa flera LUN och sedan presentera dem var och en för sig via fibre channel. Man blir ju som sagt lite frestad

Värt att notera är också att om man ska ansluta flera klientdatorer till samma fibre channel-volym så måste det filsystem som används fungera i en klusterkonfiguration. VMFS gör detta medan exempelvis NTFS inte gör det såvida man inte först sätter upp ett kluster där alla maskiner som ska läsa och skriva till samma fibre channel-volum. Filsystem under Linux som exempelvis EXT3 eller EXT4 gör det inte heller. Ska man nyttja den här typen av lagringslösningar med Linux gör man rätt i att titta på exempelvis XFS men det är en annan historia…

Det låter ganska enkelt detta, va?  Det är det också. Installera FreeNAS i sedvanlig ordning (eller uppgradera din befintliga installation så den kör 9.10 eller senare) och följ sedan dessa instruktioner. Det är en god ide att konfigurera varje fibre channel-kort så det inte försöker starta datorns operativsystem via fiberlänken (en i övrigt läcker funktion men inte riktigt vad vi vill att den ska göra just här) men i övrigt är det förhållandevis lite man behöver göra. Planerar man att ha flera fibre channel-volymer via flera olika FreeNAS-maskiner kan man också skapa olika zoner (vilket enklast kan liknas vid VLAN i nätverkssammanhang) där man i praktiken spikar upp ett staket runt vissa portar och där dessa portar enbart får prata med varandra för att på så sätt begränsa åtkomsten för de andra anslutna maskinerna till vissa fibre channel-volymer.

Om du har flera fibre channel-kort från olika leverantörer så kan du blanda dessa. Du kan även blanda kort med olika hastighet men om du ansluter korten direkt till varandra utan en switch emellan så kommer givetvis det långsammare kortet bestämma hastigheten på länken. I mitt fall har jag fortfarande kvar mina Brocade-kort vilka fungerar finfint med VMware varför jag ska använda de korten i mina VMware-maskiner.

När detta skrivs har jag ännu inte sjösatt detta i hela min driftmiljö men sakta men säkert flyttas virtuell maskin för virtuell maskin till en annan lagringsenhet som är ansluten via fibre channel. Så småningom är hela driftmiljön med alla sina virtuella servrar och åtskilliga terabyte data överflyttat och kanske kommer ni märka en liten skillnad i prestanda när ni laddar Macpro i er webbläsare nästa gång.



Macpro är annonsfri för att göra din läsupplevelse bättre.
Läs mer här om hur du hjälper Macpro förbli annonsfri


© 2004 - 2017 Joacim Melin