ISCSI Installatie

Uit MediaServe Wiki

Ga naar: navigatie, zoeken

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"

Persoonlijke instellingen
Naamruimten
Varianten
Handelingen
Navigatie
MediaServe
Algemeen