Category Archives: Linux

Raspberry Pi Stratum 1 NTP server

ntpi-2-1024x760I forbindelse med vær stasjon prosjektet jeg er igang med, så trenger jeg presis tid i forhold til logging av data. Siden 3g forbindelsen på fjellet er forventet å være høyst ustabil ønsker jeg og ha en Stratum 1 NTP server kjørende lokalt.

Den billigste, og beste løsningen har vist seg å være basert på Raspberry Pi, pluss en GPS modul laget for GPIO pinnene, med egen PPS(Pulse Per Second).

Gikk utifra endel “guider” på nettet, men har endret noe på “imaget” jeg bruker på min rPi for å forbedre ytelsen. I det store og det hele brukte “imaget” jeg lastet ned, gpsd daemonen. Forsåvidt helt kurant og gå gjennom shared memory, men hvorfor ikke la ntpd snakke direkte med GPS modulen, når den har muligheten til det.

Endringene som er gjort i forhold til http://ntpi.openchaos.org/downloads/ sitt image.

[code]
## /etc/udev/rules.d/99-pps.rules ##
KERNEL=="ttyAMA0",SYMLINK+="gps0"
KERNEL=="pps0",SYMLINK+="gpspps0"
[/code]
[code]
## /etc/ntp.conf ##
server 127.127.20.0 mode 18 minpoll 4 prefer
fudge 127.127.20.0 flag1 1 flag3 1 refid GPS
[/code]
[code]
pi@ntpi ~ $ sudo update-rc.d gpsd disable
[/code]

Så over til det viktigste…Hvor bra er den egentlig? Kort sagt, meeeeget bra. Har ett par bilder for sammenlikning.

[code]
pi@ntpi ~ $ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
oGPS_NMEA(0) .GPS. 0 l 12 16 377 0.000 0.003 0.002
[/code]

rPi:
rpi_ntp

vs

Windows:
windows_ntp

Kilder:
http://ava.upuaut.net/store/index.php?route=product/product&path=59_60&product_id=95
http://ava.upuaut.net/?p=600
http://ntpi.openchaos.org/downloads/

Ny server.

Har begynnt å se på ny server, har allerede blinket ut endel komponenter.

På software siden ser jeg for meg å innstallere CentOS 7, med RAID1 for /boot, RAID10 for / og /var og ZFS for /export (raidz).

Komplett liste fra prisjakt.

Silverstone DS380 (Sort) (Kabinett)
Silverstone SFX ST45SF 450W (Strømforsyning)
ASRock E3C226D2I (Hovedkort)
Intel Xeon E3-1240v3 3,4GHz Socket 1150 Box (Prosessor)
Kingston ValueRAM TS DDR3 PC12800/1600MHz ECC CL11 8GB (DDR3-minne) 2x
Hitachi Deskstar H3IK40003272SE 64MB 4TB (Intern harddisk) 4x
Samsung 840 EVO Series 2.5″ SSD 250GB (Solid State Disk (SSD)) 2x
LSI SAS 9207-8i

Modelines til Xorg

cvt er kjekk å ha når man skal lage modelines i Linux. Spesielt i forbindelse med konfigurering av sære prosjektorer.

[code]
# cvt 2560 1045
# 2560×1024 59.89 Hz (CVT) hsync: 63.67 kHz; pclk: 218.00 MHz
Modeline "2560x1024_60.00" 218.00 2560 2720 2992 3424 1024 1027 1037 1063 -hsync +vsync
[/code]

3 skjerms oppsett for linux

[code]
# nvidia-xconfig: X configuration file generated by nvidia-xconfig

# nvidia-xconfig: version 290.10 (buildmeister@swio-display-x86-rhel47-07.nvidia.com) Wed Nov 16 18:47:40 PST 2011

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 260.19.06 (buildd@yellow) Mon Oct 4 15:59:51 UTC 2010

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 1440 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" LeftOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection

Section "Files"
EndSection

Section "InputDevice"

# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Acer V223W"
HorizSync 30.0 – 83.0
VertRefresh 56.0 – 76.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor2"
VendorName "Unknown"
ModelName "CTL 195UW"
HorizSync 30.0 – 80.0
VertRefresh 50.0 – 75.0
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 – 81.0
VertRefresh 56.0 – 75.0
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9800 GT"
BusID "PCI:2:0:0"
Screen 0
EndSection

Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9800 GT"
BusID "PCI:2:0:0"
Screen 1
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9800 GT"
BusID "PCI:3:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-0: nvidia-auto-select +0+0; DFP-0: 1680x1050_60_0 +0+0; DFP-0: 1600×1024 +0+0; DFP-0: 1440×900 +0+0; DFP-0: 1440x900_60 +0+0; DFP-0: 1400×1050 +0+0; DFP-0: 1400x1050_70 +0+0; DFP-0: 1400x1050_60 +0+0; DFP-0: 1360×768 +0+0; DFP-0: 1360x768_60_0 +0+0; DFP-0: 1280×1024 +0+0; DFP-0: 1280x1024_75 +0+0; DFP-0: 1280x1024_60 +0+0; DFP-0: 1280×960 +0+0; DFP-0: 1280x960_60 +0+0; DFP-0: 1280×800 +0+0; DFP-0: 1152×864 +0+0; DFP-0: 1152x864_85 +0+0; DFP-0: 1152x864_85_0 +0+0; DFP-0: 1152x864_75 +0+0; DFP-0: 1152x864_75_0 +0+0; DFP-0: 1152x864_70 +0+0; DFP-0: 1152x864_60 +0+0; DFP-0: 1024×768 +0+0; DFP-0: 1024x768i +0+0; DFP-0: 1024x768_75 +0+0; DFP-0: 1024x768_70 +0+0; DFP-0: 1024x768_60 +0+0; DFP-0: 1024x768d60 +0+0; DFP-0: 960×720 +0+0; DFP-0: 960x720d60 +0+0; DFP-0: 960×600 +0+0; DFP-0: 960×540 +0+0; DFP-0: 928×696 +0+0; DFP-0: 928x696d60 +0+0; DFP-0: 896×672 +0+0; DFP-0: 896x672d60 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen2"
Device "Device2"
Monitor "Monitor2"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-1: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
[/code]

Nyttige verktøy i Linux (cli)

HTOP gir en noe bedre oversikt enn top, men gir stort sett ut samme informasjon. F-knapper for å velge for eksempel “tree-view”, samt enkel metod for å sortere på minne, cpu, swap osv.

Stort sett tilgjengelig i de fleste standard repositories.

NMON gir deg en enkel “curses” basert visning av cpu, disk, kernel, nettverks statistikk. Kjempe nyttig verktøy for å finne hvilken disk f.eks som henger etter i ett raidsett.

På bilde til venstre har jeg startet lesing av en fil til /dev/null, og man ser at det er jevn fordeling av IO.  Hele viewet kan endres med de statistikkene man er ute etter, slik at man slipper å se på masse urelevant informasjon.

ATOP ligner endel på topas, som man finner på AIX. Kjempe nyttig verktøy, som til og med peker ut hvilke prosesser, som er busy og som også kan liste prosesser basert på minne, disk, nettverk. I bilde til høyre kan man se at den korrekt har identifisert at jeg kjører en “dd” operasjon, som tar en stor prosentandel av all diskaktivitet.

Kan også også identifisere hvilken prosess som står for prosentvis andel av nettverkstrafikk. Men for nettverks “detaljer”, må det en kernel patch til(vet ikke hva det skulle være for noe).

DSTAT er enda ett kjekt verktøy, men kan være litt vanskeligere å skille tallene ifra hverandre. Men er også veldig nyttig i situasjoner hvor man ønsker å finne en eventuell flaskehals i systemet. Har også støtte for plugins, har foreksempel mulighet til å korrelere trafikk på nettkortet mot diskbruk. Programmet retter seg mer inn mot hardware / system, og egner seg kanskje ikke like godt til å finne eventuelle programmer, som påfører stor last osv.

Pluss alle de andre jeg ikke har nevnt.

  • ethstatus
  • iptraf
  • iperf
  • netstat
  • ps
  • mtr
  • bonnie++

Leap second og CentOS 6

Traff på leap second bug på den ene serveren hjemme, utifra hva jeg har klart å lese meg til senere, så treffer denne bugen helst flertrådete applikasjoner. Ellers så kunne dette også vises med at serveren hadde 3.7 millioner kontekstsvitsjinger mot 8-10 tusen normalt. Mozilla har også lagt ut litt informasjon om hvordan de løste problemet uten reboot.

[code]
# /etc/init.d/ntp stop; date -s “`date`”
[/code]

BackupPC – enkel backup satt i praksis.

BackupPC er en løsning for å ta backup av windows/linux/os x maskiner over nett. Den har mulighet for å ta backup via rsync eller samba. Samtidig støtter den å eksportere arkiv til andre maskiner. For eksempel hvis du har en maskin på en annen lokasjon. Fordelen med BackupPC er at den trenger veldig lite vedlikehold, samtidig som den sender rapport hvis noe skulle feile.

Siden backup går over ssh for linux / os x maskiner, fungerer det fint over internett også. Noe jeg bruker i forbindelse med mailserveren. Den utnytter også hardlinking noe som fører til at det kun er forandringer i filer som tar plass, samtidig som den beholder eldre versjoner. Alt kan konfigureres ned til minste detalj.

For CentOS er selve innstallasjonen ganske så rett frem.

[bash]
yum install BackupPC
[/bash]

 

[bash title=”/etc/BackupPC/apache.users”]
httpasswd -c osv
[/bash]