Mount-Kilimanjaro

Revision as of 22:11, 23 July 2015 by Nsg (talk | contribs) (Sätt upp ZFS)

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

Mount-Kilimanjaro är en filserver som vi ärvde från mho. Den har kört OpenAFS under ett par år, för information om det se rev 442 av den här sidan.

Maskinen är en AMD Athlon II X4 600e med 8Gb RAM, vilket med dagens mått gör den en trött maskin. Det är dock en av de snabbare filservrarna som vi har i dag. nsg har 2015-07-23 tagit över servern för att hosta OS disk för KVM-servrarna.

OS Install

Installera med PXE boot. Välj "Debian 8 preseed - Type: Fileserver" under "Automatic installs". Servern bör installera upp en tom Debian 8 med MD RADI1 på de minsta två diskarna. Om det kommer upp någon fråga så är det i princip alltid "enter" som är rätt knapp att trycka på, undantaget är när du väljer eth1.

Rootlösen är changeme, sshd släpper inte in root med lösenord så det är säkert. Logga in fysiskt och sätt ett lämpligt root-lösen.

Eventuellt kanske du behöver städa bort lite gamla MD/LVM/andra partitioner m.m. nu, enklast att att göra det bekvämt över ssh så:

Kopiera in min nyckel

Än så länge har vi inte Kerberos på maskinen så svårt att logga in, jag brukar sätta upp en ssh-nyckel så länge.

   mount-kilimanjaro# mkdir -p /root/.ssh
   mount-kilimanjaro# nc -l -p 4711 >> /root/.ssh/authorized_keys
   mylaptop$ cat ~/.ssh/id_rsa.pub | nc mount-kilimanjaro.stacken.kth.se 4711
   mount-kilimanjaro# chmod 700 /root/.ssh && chown 600 /root/.ssh/authorized_keys

Döda gamla saker på disken

Har vi tid så skadar det inte att läsa igenom alla block, se att diskar mår bra m.m. samt vi blir av med alla gamla partitioner på köpet.

Identifiera våra stora diskar:

 root@mount-kilimanjaro:~# BIG_DISKS="$(fdisk -l | awk '/TiB/{print $2}' | tr -d ':')"
 root@mount-kilimanjaro:~# echo $BIG_DISKS
 /dev/sdb /dev/sda /dev/sdd /dev/sde /dev/sdf /dev/sdh /dev/sdi /dev/sdk /dev/sdj

dd:a bort dem:

 root@mount-kilimanjaro:~# for disk in $BIG_DISKS; do (dd if=/dev/zero of=$disk bs=64k&); done

Sätt upp mjukvara

Jag installerar och konfigurerar allt med Ansible. För det behöver vi python (vilket min minimala installation inte kommer med):

 # apt-get install python

Hämta ut repo, anpassa provisioneringen vid behov och kör ut det:

 mylaptop$ git clone git@github.com:stacken/ansible.git && cd ansible
 mylaptop$ make deps
 mylaptop$ ansible-playbook -i mount-kilimanjaro.stacken.kth.se, -u root site.yml

Sätt upp ZFS

Våra OS diskar heter nått med ST3500320AS (Seagate), och DATA diskarna heter SAMSUNG, så vi kan enkelt hitta våra diskar med:

 # ls -l /dev/disk/by-id/ata-SAMSUNG*
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411632 -> ../../sdf
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411633 -> ../../sdb
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411634 -> ../../sdd
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411642 -> ../../sda
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411643 -> ../../sdk
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411644 -> ../../sde
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02894 -> ../../sdj
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02895 -> ../../sdi
 lrwxrwxrwx 1 root root 9 Jul 23 22:24 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02896 -> ../../sdh

Låt oss bygga ZFS på dem, vi lämnar första disken som spare.

# SPARE="$(ls /dev/disk/by-id/ata-SAMSUNG* | head -1)"
# RAID="$(ls /dev/disk/by-id/ata-SAMSUNG* | head -n+2)"
# echo $SPARE
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411632
# echo $RAID
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411633
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411634
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411642
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411643
/dev/disk/by-id/ata-SAMSUNG_HD203WI_S1UYJ1BZ411644
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02894
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02895
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9EZB02896

Sätt upp en pool som heter pool

 zpool create pool raidz2 $RAID spare $SPARE