ISCSI Installatie
Uit MediaServe Wiki
Inhoud |
Let op! Deze pagina is nog niet klaar!
Het doel is om op minimaal twee servers een iSCSI target te installeren die we vervolgens op één server gaan verbinden. Op deze ene server zetten we de beide targets in een RAID array. Het resultaat is een RAID array op de server die we gewoon kunnen mounten, maar de data staat op twee SAN servers. We beginnen met de installatie van de iSCSI target op de servers.
Zorg dat je een niet gemounte Linux RAID partitie hebt. In ons voorbeeld willen we een SAN mount die we Titanium noemen.
Installatie iSCSI Targets
aptitude update aptitude install iscsitarget iscsitarget-source echo ISCSITARGET_ENABLE=true > /etc/default/iscsitarget
Vervolgens passen we /etc/iet/ietd.conf aan:
IncomingUser MediaRoot MyPassWord
OutgoingUser MediaRoot MyPassWord
Target iqn.2010-09.nl.mediaroot:storage.titanium
IncomingUser MediaRoot MyPassWord
OutgoingUser MediaRoot MyPassWord
Lun 0 Path=/dev/sda3,Type=fileio
Voordat we iscsitarget kunnen starten, moeten we eerst de kernel module compileren.
aptitude install module-assistant debhelper m-a a-i iscsitarget modprobe iscsi_trgt /etc/init.d/iscsitarget restart
We hebben nu een iSCSI target aangemaakt.
Installatie iSCSI Initiators
We installeren Open-iSCSI.
aptitude install open-iscsi /etc/init.d/open-iscsi start
We passen /etc/iscsi/iscsid.conf aan en voegen het volgende toe:
# Configuration by MediaServe discovery.sendtargets.auth.authmethod = CHAP discovery.sendtargets.auth.username = MediaRoot discovery.sendtargets.auth.password = MyPassWord node.session.auth.authmethod = CHAP node.session.auth.username = MediaRoot node.session.auth.password = MyPassWord
Zoek in de configuratie de parameter mode.startup en uncomment de automatic instelling. Comment de manual instelling.
#***************** # Startup settings #***************** # To request that the iscsi initd scripts startup a session set to "automatic". node.startup = automatic # # To manually startup the session set to "manual". The default is manual. # node.startup = manual
We zoeken de iSCSI targets op:
iscsiadm -m discovery -t sendtargets -p 10.0.0.219 iscsiadm -m discovery -t sendtargets -p 10.0.0.210
We loggen nu in op onze iSCSI targets:
iscsiadm --mode node --targetname iqn.2010-09.nl.mediaroot:storage.titanium_xenon_01 --portal 10.0.0.219:3260 --login iscsiadm --mode node --targetname iqn.2010-09.nl.mediaroot:storage.titanium_cobalt_01 --portal 10.0.0.210:3260 --login
Aangezien we node.startup op automatic hebben gezet kunnen we de iSCSI initiator restarten en worden de volumes opnieuw ingelogd.
/etc/init.d/open-iscsi restart
iRAID Configuratie
In de /var/log/messages kun je zien welke lokale devices zijn aangemaakt door de initiator.
tail -n 32 /var/log/messages # Sep 9 00:11:10 xenon kernel: [ 3409.072179] sd 21:0:0:0: [sdb] 1820710912 512-byte logical blocks: (932 GB/868 GiB) # Sep 9 00:11:10 xenon kernel: [ 3409.072480] sd 20:0:0:0: [sdc] 137396224 512-byte logical blocks: (70.3 GB/65.5 GiB)
We hebben nu dus een sdb en een sdc gekregen die we in een RAID-1 array willen zetten. We installeren mdadm en maken de RAID-1 array aan.
Let op We gaan op de eerste server een EXT4 bestandssysteem op de nieuwe array plaatsen. Op de volgende servers gaan we de RAID-1 array alleen activeren.
mkdir -p /data/disks/titanium_01 aptitude install mdadm # Op de eerste server: mdadm --create --auto=md /dev/md/titanium -n 2 -l 1 -b internal /dev/sdb /dev/sdc mke2fs -t ext4dev -j -L md127 /dev/md/titanium # Volg de resync status en wacht tot hij klaar is. watch cat /proc/mdstat # Op de volgende servers: mdadm --assemble --auto=md /dev/md/titanium /dev/sdb /dev/sdc watch cat /proc/mdstat
Om de voortgang c.q. status van de array te bekijken voeren we het volgende commando uit op de eerste server:
watch cat /proc/mdstat
Zodra de RESYNC klaar is kun je op alle volgende servers de array instellen als read/write:
mdadm --readwrite /dev/md127
We mounten de RAID-1 array op alle servers in de map /data/disks/titanium_01. We voegen de array toe aan /etc/fstab:
# Titanium 01 Mount /dev/md127 /data/disks/titanium_01 ext4 noatime,errors=remount-ro
Alleen het eerste systeem moet de schijf automatisch mounten, dus op alle volgende systemen voegen we de noauto parameter toe:
# Titanium 01 Mount /dev/md127 /data/disks/titanium_01 ext4 noatime,errors=remount-ro,noauto
En we mounten de array als volgt:
mount -a
Gefeliciteerd, je hebt nu succesvol een iRAID SAN opgezet!
Het is van belang dat je de RAID array alleen mount op het eerste systeem, oftewel het systeem waar ook daadwerkelijk de data gebruikt wordt. Op het failover systeem gaan we de RAID array unmounten.
umount /data/disks/titanium_01
Gebruik in de praktijk
Om te controleren wat de status is van alle RAID arrays gebruiken we het volgende commando:
find /dev/* -maxdepth 0 | grep md[0-9] | xargs -I {} /sbin/mdadm --detail {} | egrep "State :|Level :|/dev/md"