Mount-Everest
Server named after Mho, in the Mhount namespace, Everest being one of Seven summits.
Mhount-Everest är en AFS-filserver som vi ärvde från mho. Det är en AMD Athlon(tm) II X2 250 med 8Gb RAM. Då vi har mer kompetens inom Linux än OpenSolaris/Indiana/... så valde vi att sätta upp en Debian-maskin med Linux mjukvaruraid. Maskinen är fylld med 12 st 2T diskar och uppsatta med RAID.
Contents
Installation
Föreberedelse
Det är enklare att partitionera diskarna i förväg från en liveskiva, det sparar tid och är mycket trevligare att t.ex. boota en liveskiva och köra följande kommando.
for n in a b c d e f g h i j k l ; do parted -s /dev/sd$n mklabel msdos; parted -s /dev/sd$n mkpart primary ext2 0% 10GB; parted -s /dev/sd$n mkpart primary ext2 10GB 100%; done
OBS Notera att troligtvis har din USB-sticka/skiva hamnat med i listan på diskar, se till att du har med rätt diskar.
Vi valde sedan att plocka bort de diskarna som vi inte skulle ha med i vår system-RAID, det var för att göra det simpelt för oss. Vi valde att använda partition ett på de sex diskarna som sitter i 5,2 tums plattserna för systemet.
OS installation
Grund-installationen gjordes med en Debian 6.0.3 AMD64 netinst CD. 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 satte upp en mirror (RAID 1) över första partitionen på fyra diskar, samt två spares. På den RAID:en har vi sedan lagt LVM med två volymer, root för systemet samt swap för swap.
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sda1[0] sde1[4](S) sdf1[5](S) sdd1[3] sdc1[2] sdb1[1] 9763768 blocks super 1.2 [4/4] [UUUU]
# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root vgmirror -wi-ao 8.38g swap vgmirror -wi-ao 952.00m
Några problem som upptäcktes var att något blev knas när vi körde med gpt partitioner, gissningvis är det kanske ett problem om inte existerar vid nästa installation av filserver. Då diskarna inte var större än 2T så valde vi att välja den enkla vägen och köra klassisk partitionstabell á msdos.
När installationsprogrammet skulle skriva ner grub så blev något fel, vi valde att hoppa över det steget i installationen och gå vidare. Efter att installationen var klar så bootade vi en live-skiva igen och körde följande (exempel från Ubuntu-skriva):
# Installera paket, sätt ihop arrayen (RAID:en) apt-get install mdadm lvm2 mdadm -A --scan partprobe
# Chroota in i installationen mkdir /target mount /dev/vgmirror/root /target mount -o bind /proc /target/proc mount -o bind /dev /target/dev mount -o bind /sys /target/sys chroot /target /bin/bash
# Kör grub-install på alla system-diskar for n in a b c d e f; do grub-install /dev/sd$n; done update-grub
'OBS! Notera att din usb-sticka/skiva förmodligen ligger någon bland diskarna, akta så att du inte av misstag kör grub-install på din usb-sticka, eller att du grömmer en disk.
Vi stängde sedan av datorn och satte i de resterande sex diskarna igen och bootade datorn.
Konfiguration
Uppdatera systemet
apt-get update apt-get upgrade apt-get dist-upgrade
MD
Installera user land verktyget mdadm för att administrera arrayen. Du kommer få en fråga om vilka arrayer att starta vid boot, lämna det på default (all).
apt-get install mdadm
Nu vill vi skapa en RAID6 över partition två på alla diskar med två hot spares.
mdadm --create /dev/md1 --level=raid6 --raid-devices=10 /dev/sd{a,b,c,d,e,f,g,h,i,j}2 \ --spare-devices=2 /dev/sd{k,l}2
Klart, nu ser det ut så här på vår nya array
# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Thu Oct 4 21:49:24 2012 Raid Level : raid6 Array Size : 15549976576 (14829.61 GiB 15923.18 GB) Used Dev Size : 1943747072 (1853.70 GiB 1990.40 GB) Raid Devices : 10 Total Devices : 12 Persistence : Superblock is persistent Update Time : Thu Oct 4 21:49:24 2012 State : clean Active Devices : 10 Working Devices : 12 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K Name : mount-everest:1 (local to host mount-everest) UUID : 66880268:b4971097:4c767927:280fd9a6 Events : 0 Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 1 8 18 1 active sync /dev/sdb2 2 8 34 2 active sync /dev/sdc2 3 8 50 3 active sync /dev/sdd2 4 8 66 4 active sync /dev/sde2 5 8 82 5 active sync /dev/sdf2 6 8 98 6 active sync /dev/sdg2 7 8 114 7 active sync /dev/sdh2 8 8 130 8 active sync /dev/sdi2 9 8 146 9 active sync /dev/sdj2 10 8 162 - spare /dev/sdk2 11 8 178 - spare /dev/sdl2
Vi sätter sync_speed_min till 10000 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 hinner går sönder.
Fyll i nedan i /etc/rc.local
test -f /sys/block/md0/md/stripe_cache_size && echo 16384 > /sys/block/md0/md/stripe_cache_size test -f /sys/block/md0/md/sync_speed_min && echo 10000 > /sys/block/md0/md/sync_speed_min test -f /sys/block/md1/md/stripe_cache_size && echo 16384 > /sys/block/md1/md/stripe_cache_size test -f /sys/block/md1/md/sync_speed_min && echo 10000 > /sys/block/md1/md/sync_speed_min
Slutligen vill vi att vår nya array ska finnas med i /etc/mdadm/mdadm.conf så att den startas vid boot. Uppdatera filen med utdata från följande kommando.
mdadm --examine --scan
LVM
Formatera våran nya array till lvm med pvcreate
pvcreate /dev/md1
Skapa en volymgrupp över hela partitionen med physical extent size satt till 64M
vgcreate -s 64M vicevg0 /dev/md1
Vi börjar med att skapa tre volymer för afs, vid ramtida behov så är det enkelt att skapa flera.
lvcreate -L 2T -n vicepa vicevg0 lvcreate -L 2T -n vicepb vicevg0 lvcreate -L 2T -n vicepc vicevg0
XFS
apt-get install xfsprogs
Skapa filsystem på våra nya volymer
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepa mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepb mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepc
Lägg till följande i /etc/fstab
/dev/vicevg0/vicepa /vicepa xfs noatime,nodiratime,logbufs=8 0 0 /dev/vicevg0/vicepb /vicepb xfs noatime,nodiratime,logbufs=8 0 0 /dev/vicevg0/vicepc /vicepc xfs noatime,nodiratime,logbufs=8 0 0
Skapa kataloger och montera
mkdir /vicepa mkdir /vicepb mkdir /vicepc mount -a
Heimdal
apt-get install heimdal-clients
AFS
apt-get install openafs-client openafs-fileserver
cellen är stacken.kth.se, cache kan du lämna på default.
Installera en BosConfig i /etc/openafs/ Den skall inte installeras där dokumentationen säger. Den skall innehålla:
restarttime 16 0 0 0 0 checkbintime 16 0 0 0 0 bnode fs fs 1 parm /usr/lib/openafs/fileserver -udpsize 131071 -sendsize 131071 -nojumbo -p 128 -busyat 1200 -rxpck 800 -s 2400 -l 2400 -cb 1000000 -b 480 -vc 2400 parm /usr/lib/openafs/volserver parm /usr/lib/openafs/salvager -datelogs -parallel all8 -orphans attach end
/etc/openafs/server/CellServDB
samt /etc/openafs/server/ThisCell
bör vara automatiskt configurerade, men kolla gärna i dem så att de är korrekta.
server/CellServDB
skall innehålla hemmacellsentryt (endast).
Skapa /etc/openafs/server/UserList
som innehåller administratörer, kopiera filen från en redan existerande server. Notationen ska vara i formatet nsg.admin
/etc/openafs/server/UserList/KeyFile
hämtar man från en annan AFS server. KeyFile är HEMLIGT och måste hämtas på ett säkert, crypterad sätt. KeyFile ska ha rättigheterna 600 satta.
Sedan klart för att starta fileservern (startskript drar igån bosserver som gör resten).