Mount-Kilimanjaro

Revision as of 21:21, 20 October 2011 by Nsg (talk | contribs)

Server named after Mho, in the Mhount namespace, Kilimanjaro being one of Seven summits.

Mhount-Kilimanjaro är en AFS-filserver som vi ärvde från mho. Det är en AMD Athlon II X4 600e med 8Gb RAM, en 40Gb SSD som systemdisk och 8x2T snurr-diskar som har fungerat som lagringsserver, något som vi på Stacken kommer använda den som. Då vi har mer kompetens inom Linux än OpenSolaris/Indiana/... så valde vi att sätta upp en Debian-maskin med Linux mjukvaruraid.

OS installation

Grund-installationen gjordes med en Debian 6.0.3 AMD64 netinst CD. Vi har bra nät, så den räcker gott.

Vi valde engelska som språk, en_US.UTF-8 samt svenska som layout.

Vid Task Select valde vi att inkludera SSH server samt avmarkera Graphical desktop enviroment. Följande var valt:

  • SSH Server
  • Standad system utilities

Vi partitionerade upp systemdisken i två partitioner:

/dev/sda1               1         973     7811072   82  Linux swap / Solaris
/dev/sda2             973        4866    31269888   83  Linux

sda1 är swap, sda2 är /. Vi valde få partitioner för att hålla det enkelt.

Efter installationen har följande paket installerats

  • heimdal-clients
  • heimdal-clients-x
  • openafs-client
  • openafs-fileserver
  • openafs-modules-dkms
  • mdadm

RAID Setup

sda är systemdisken, sdb-sdi är diskarna som ska ingå i RAID:en.

Vi valde att skapa partitioner för att hålla RAID:en, mho brukar rekommenderade att inte fylla hela disken när man bygger en RAID för att slippa problem om en framtida utbytesdisk skulle vara lite mindre. Vi höftade och skapade en partition på diskarna som gick från cylinder 1 till 240000, det lämnade lagom mycket ledig på slutet.

Om du inte redan har mdadm installerat, installera det med:

apt-get install mdadm

Skapa md0 av sd{b,c,d,e,f,g,h,i}1

mdadm --create /dev/md0 --level=raid6 --raid-devices=8 --spare-devices=0 /dev/sd{b,c,d,e,f,g,h,i}1

Lägg in array:en i mdadm.conf

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

(eventuellt kan det inte behövas göras på vissa/nyare system, kolla så du inte har dubbletter i /etc/mdadm/mdadm.conf)

Då diskarna kom från mho och vi ville nolla hela disken och inte lämna eventuell data på slutet så skapade vi partitioner på det oanvända utrymmet på slutet av diskarna sd{b,c,d,e,f,g,h,i}2. De är helt oanvända och finns kvar om någon vill testa något.

LVM

Vi vill ha många partitioner, även om AFS kan hantera partitioner större än 2T så är inte all mjukvara helt ikapp på den punkten. För att inte ställa till det så vill vi ha partitioner på 2T som störst. Vi kommer få många partitioner så vi använder LVM.

Installera lvm

# apt-get install lvm2

Förbered/formatera RAID:en för LVM

# pvcreate /dev/md0

Skapa en volymgrupp över hela partitionen med physical extent size satt till 64M

# vgcreate -s 64M vicevg0 /dev/md0

Vi har 10.81T data, det ger oss 5 volymer på 2T. 800G lämnad opartiorenat och finna att användas vid behov.

# vgdisplay | grep "VG Size"
VG Size               10.81 TiB

Vi kör en loop för att skapa de fem volymerna

for n in a b c d e; do lvcreate -L 2T -n vicep$n vicevg0; done
# lvs
LV     VG      Attr   LSize Origin Snap%  Move Log Copy%  Convert
vicepa vicevg0 -wi-a- 2.00t                                      
vicepb vicevg0 -wi-a- 2.00t                                      
vicepc vicevg0 -wi-a- 2.00t                                      
vicepd vicevg0 -wi-a- 2.00t                                      
vicepe vicevg0 -wi-a- 2.00t

Bygg filsystem på partitionerna, vi använder xfs.

for n in a b c d e; do mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicep$n; done

Skapa mountpoints

for n in a b c d e; do mkdir -p /vicep$n; done

Lägg till i fstab

for n in a b c d e; do echo "/dev/vicevg0/vicep$n /vicep$n xfs noatime,nodiratime,logbufs=8 0 0" >> /etc/fstab; done

Montera allt

mount -a

Sätt lite magiska parametrar vid boot
Några saker att notera:

  • Jag har rc2.d för att debians vanliga runlevel är 2. Om du kör det här på ett redhat-system så vill du nog använda rc3.d.
  • Vi har 10000 satt som sync_speed_min då vi inte vill att det ska ta för lång tid att bygga om raid:en om en disk går sönder. Vi vill inte att den ska gå sönder innan nästa disk går sönder.
  • Att lägga filer i /etc/rc?.d/* är inte helt rätt, saker bör ligga i /etc/init.d/ men det här funkar och var lättare.
echo 'test -f /sys/block/md0/md/stripe_cache_size && echo 16384 > /sys/block/md0/md/stripe_cache_size' >> /etc/rc2.d/S99local
echo 'test -f /sys/block/md0/md/sync_speed_min && echo 10000 > /sys/block/md0/md/sync_speed_min' >> /etc/rc2.d/S99local

Kerberos Setup

Vi har installerat

apt-get install heimdal-clients heimdal-clients-x

AFS Setup

Vi har installerat följande

apt-get install openafs-client openafs-fileserver openafs-modules-dkms

Se även