perjantaina, joulukuuta 28, 2012

Uusi kytkin

Hommasin uuden kytkimen hajonneen tilalle. Se on HP ProCurve-sarjan 8-porttinen pikkukytkin. Malli on HP 1810-8G Switch (J9449A).
HP ProCurve J9449A

Paketin sisältö
Kytkin on rakennettu metalliseen runkoon. Sen varusohjelmisto on P.1.17. Ohjelmistolle on varattu 8 MB flash ja sen lisäksi laitteessa on 16 MB omaa muistia.

Kytkimen voi myös asentaa tuomalla sähkön Ethernetin yli ensimmäiseen Ethernet-porttiin (PoE). PoE lähtöjä siinä ei sentään ole. Verkkokaapelit pitää ostaa erikseen, niitä ei paketista löydy.
Hyvin toimii
Laitetta voi säätää selaimen kautta, mutta asetin sen lähinnä tyhmäksi kytkimeksi toistaiseksi. Laitoin sen hakemaan kellonajan ja käänsin siitä jumbo-framejen tuen päälle.

Kun nyt laitteet on taas toiminnassa, saatoin viedä ne takaisin laitekaappiin.

torstaina, joulukuuta 27, 2012

ZFS-levyjärjestelmän nopeuttaminen

ZFS-levyjärjestelmää voidaan nopeuttaa huomattavasti, jos sen kirjoittama loki talletetaan SSD-asemalle. Tätä ZIF-asemaa (ZFS Intent Log) voidaan käyttää välimuistina ja kun levyjärjestelmällä on myöhemmin aikaa, se kirjoittaa lokin raidz-pakalle.

ZIL-aseman toiminnasta on hyvä artikkeli täällä:
http://constantin.glez.de/blog/2010/07/solaris-zfs-synchronous-writes-and-zil-explained

Loin SSD-asemalle fdisk-ohjelmalla uuden osion (/dev/sde5) ja asetin sen tyypiksi bf eli Solaris. Kooksi määrittelin 8 gigatavua.

Otin ZIL-aseman käyttöön komennolla:
# zpool add tank log /dev/disk/by-id/scsi-SATA_INTEL_SSDSC2CT1CVMP219509C0180CGN-part5

# zpool status
  pool: tank
 state: ONLINE
 scan: resilvered 379G in 3h35m with 0 errors on Thu Dec 27 19:12:04 2012
config:

    NAME                                                 STATE     READ WRITE CKSUM
    tank                                                 ONLINE       0     0     0
      raidz2-0                                           ONLINE       0     0     0
        sda                                              ONLINE       0     0     0
        sdb                                              ONLINE       0     0     0
        sdc                                              ONLINE       0     0     0
        sdd                                              ONLINE       0     0     0
        sdf                                              ONLINE       0     0     0
        sdg                                              ONLINE       0     0     0
        sdh                                              ONLINE       0     0     0
        sdi                                              ONLINE       0     0     0
        sdj                                              ONLINE       0     0     0
    logs
      scsi-SATA_INTEL_SSDSC2CT1CVMP219509C0180CGN-part5  ONLINE       0     0     0

errors: No known data errors
#


Toinen tapa nopeuttaa ZFS-tiedostojärjestelmää on lisätä level 2 ARC cache (L2ARC) eli välimuistilevy. Tässä SSD on jälleen oikea valinta.

Loin lopusta SSD-levystä oman osion (/dev/sde6) ja annoin sille tyypiksi bf eli Solaris. Sen kooksi tuli noin 140 gigatavua.

L2ARC levy otetaan käyttöön komentamalla
# zpool add tank cache /dev/disk/by-id/scsi-SATA_INTEL_SSDSC2CT1CVMP219509C0180CGN-part6
 # zpool status
  pool: tank
 state: ONLINE
 scan: resilvered 379G in 3h35m with 0 errors on Thu Dec 27 19:12:04 2012
config:

    NAME                                                 STATE     READ WRITE CKSUM
    tank                                                 ONLINE       0     0     0
      raidz2-0                                           ONLINE       0     0     0
        sda                                              ONLINE       0     0     0
        sdb                                              ONLINE       0     0     0
        sdc                                              ONLINE       0     0     0
        sdd                                              ONLINE       0     0     0
        sdf                                              ONLINE       0     0     0
        sdg                                              ONLINE       0     0     0
        sdh                                              ONLINE       0     0     0
        sdi                                              ONLINE       0     0     0
        sdj                                              ONLINE       0     0     0
    logs
      scsi-SATA_INTEL_SSDSC2CT1CVMP219509C0180CGN-part5  ONLINE       0     0     0
    cache
      scsi-SATA_INTEL_SSDSC2CT1CVMP219509C0180CGN-part6  ONLINE       0     0     0

errors: No known data errors
#


Ohjeet L2ARC-välimuistiaseman ja ZIL-lokiaseman lisäämiseksi löysin täältä:
Tässä vielä yksinkerrtainen, suuntaa-antava nopeustesti ZFS-pakalle:
# dd if=/dev/zero of=file.tmp bs=1M count=10240
10240+0 tietuetta sisään
10240+0 tietuetta ulos
10737418240 tavua (11 GB) kopioitu16,4291 sekunnissa, 654 MB/s
#


Uusi levy hankittu

Kävin hakemassa verkkokaupasta uuden WD-kovalevyn. Irrotin vanhan vikaantuneen levyn (DW20EADS) ja laitoin uuden levyn (WD20EARX) sen tilalle. Levyt ovat CM Stackerin omassa kovalevykehikossa, joka vielä kolme massamuistipaikkaa. Kannattaa kytkeä levyjen kaapelit järjestyksessä, niin tietää helpommin, mikä levy vastaa mitäkin laitetta.
Uusi kovalevy

Uusi ja vikaantunut kovalevy

CM Stacker kovalevykehikko

Kone tulille. Aluksi zpool ilmotti, että yksi asema puuttuu raidz2-pakasta. Se myös kehoitti katsomaan ohjetta osoitteesta:
http://zfsonlinux.org/msg/ZFS-8000-4J/

Virheilmoituksen sai pois komentamalla
# zpool replace tank /dev/sdb
jossa /dev/sdb oli vikaantunut ja uudella korvattu kovalevy-tunnus. Kovalevyn olisi voinut laittaa myös toiseen SATA-porttiin ja antaa sen laitenimen komennon parametrina.

zpool valitti, että asemalla ei ole sopivaa partitiotaulua. Loin sen gparted-ohjelmalla komentamalla
# parted /dev/sdb mklabel gpt
# parted -a /dev/sdb optimal

Tämän jälkeen "zpool replace" -komento meni läpi ilman ongelmia.

Nyt pakan uudelleen rakentaminen eli "resilverointi" on menossa:
$ sudo zpool status
[sudo] password for user:
  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Thu Dec 27 15:36:16 2012
    704G scanned out of 3,34T at 275M/s, 2h48m to go
    78,2G resilvered, 20,61% done
config:

    NAME             STATE     READ WRITE CKSUM
    tank             DEGRADED     0     0     0
      raidz2-0       DEGRADED     0     0     0
        sda          ONLINE       0     0     0
        replacing-1  UNAVAIL      0     0     0
          old        UNAVAIL      0     0     0
          sdb        ONLINE       0     0     0  (resilvering)
        sdc          ONLINE       0     0     0
        sdd          ONLINE       0     0     0
        sdf          ONLINE       0     0     0
        sdg          ONLINE       0     0     0
        sdh          ONLINE       0     0     0
        sdi          ONLINE       0     0     0
        sdj          ONLINE       0     0     0

errors: No known data errors

$

Tämä oli paljon helpompaa, mitä pelkäsin!

Tsekkasin Western Digitalin sivulta, onko vanhassa kovalevyssä vielä takuuta jäljellä ja tietenkin se oli päättynyt lokakuussa:
Ei takuuta jäljellä

Rautaa hajosi

Niinhän siinä kävi, että yksi 2 TB kovalevyistä oli hajonnut. Se antoi järjestelmän logiin  virheilmoituksia ja välillä jumitteli konetta. Kun käynnistin koneen uudelleen, pysäytti BIOSin suorittama SMART-tarkistus koneen ja kertoi levyn hajonneen.

Virheilmoitukset näyttävät tälle:
Dec 26 11:26:15 server kernel: [ 3690.698465] ata2.00: status: { DRDY }
Dec 26 11:26:15 server kernel: [ 3690.698574] ata2.00: failed command: WRITE FPDMA QUEUED
Dec 26 11:26:15 server kernel: [ 3690.698741] ata2.00: cmd 61/50:30:18:22:6a/00:00:20:00:00/40 tag 6 ncq 40960 out
Dec 26 11:26:15 server kernel: [ 3690.698743]          res 40/00:34:18:22:6a/00:00:20:00:00/40 Emask 0x1 (device error)
Dec 26 11:26:15 server kernel: [ 3690.699263] ata2.00: status: { DRDY }
Dec 26 11:26:15 server kernel: [ 3690.710791] ata2.00: both IDENTIFYs aborted, assuming NODEV
Dec 26 11:26:15 server kernel: [ 3690.710796] ata2.00: revalidation failed (errno=-2)
Dec 26 11:26:15 server kernel: [ 3690.722015] ata2: hard resetting link
Dec 26 11:26:16 server kernel: [ 3691.995018] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Dec 26 11:26:16 server kernel: [ 3692.000096] ata2.00: failed to read native max address (err_mask=0x1)
Dec 26 11:26:16 server kernel: [ 3692.000101] ata2.00: HPA support seems broken, skipping HPA handling
Dec 26 11:26:16 server kernel: [ 3692.000327] ata2.00: failed to enable AA (error_mask=0x1)
Dec 26 11:26:16 server kernel: [ 3692.017111] ata2.00: failed to enable AA (error_mask=0x1)
Dec 26 11:26:16 server kernel: [ 3692.028279] ata2.00: configured for UDMA/133 (device error ignored)
Dec 26 11:26:16 server kernel: [ 3692.028307] ata2: EH complete
Dec 26 11:26:16 server kernel: [ 3692.028469] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Dec 26 11:26:16 server kernel: [ 3692.160113] ata2: failed to read log page 10h (errno=-5)
Dec 26 11:26:16 server kernel: [ 3692.171391] ata2.00: exception Emask 0x1 SAct 0x7f SErr 0x0 action 0x0
Dec 26 11:26:16 server kernel: [ 3692.182601] ata2.00: irq_stat 0x40000008
Dec 26 11:26:16 server kernel: [ 3692.193682] ata2.00: failed command: WRITE FPDMA QUEUED
Dec 26 11:26:16 server kernel: [ 3692.204743] ata2.00: cmd 61/50:00:18:22:6a/00:00:20:00:00/40 tag 0 ncq 40960 out
Dec 26 11:26:16 server kernel: [ 3692.204748]          res 40/00:34:80:20:6a/00:00:20:00:00/40 Emask 0x1 (device error)


RAIDZ2-pakka nousee tästä huolimatta hienosti ylös ja näyttää /dev/sdb -aseman olevan resilvered-tilassa ja pakan DEGRADED-tilassa. Onneksi siitä saa hajota kaksi levyä, ennen kuin tiedot menetetään.

Lisäksi 5-porttinen 3Com-kytkimeni pimeni. Se joutui koville kun ajoin teratavuja ensin varmuuskopioksi ja palautin yli vuorokauden varmuuskopioita uudelle palvelimelle. Sen merkkivalot eivät vilku ja vaikuttaa sille, että laitteen virtalähde on päästänyt "toimintasavut". Kytkin on 5-porttinen 3Com OfficeConnect Gigabit Switch 5 ja toiminut ilman pienintäkään ongelmaa tähän asti. Ehkä linkkien niputtaminen oli sille kuitenkin liikaa. Ikää tällä taitaa olla liki  kymmenkunta vuotta.
3Com OfficeConnect 3C1670500A pimeni

Tänään olisi tarkoitus mennä tietokonekauppaan hakemaan korvaavia komponentteja. Nuo WD:n kahden teratavun asemat ovat kyllä edelleen järkyttävän hintaisia, kun halvimmillaan ne maksoivat 70 euroa ja nyt halvin hinta pyörii satasessa.

tiistaina, joulukuuta 25, 2012

Ohjelmien asentaminen

Kun rauta ja Ubuntu-palvelin oli asennettu, on aika asentaa ohjelmat.

Asensin sshd-palvelimen. Avaimella tapahtuva autentikointi on neuvottu kädestä pitäen täällä:
http://softwareinabottle.wordpress.com/2012/06/05/setting-up-password-less-ssh-and-scp/

Toisena  asensin Squid3-välimuistipalvelimen. Tämä sen vuoksi, että kaikki muut koneet on asetettu käyttämään välimuistia. Uuden koneen IP-osoite piti korjata samaksi kuin vanhalla palvelimella (192.168.255.100). Se tapahtuu puukottamalla /etc/network/interfaces -tiedostoa

$ sudo cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary and secondary network interfaces
#  eth0, driver r8169, Realtek 8111/8168B Gigabit Ethernet controller
#  eth1, driver skge, 3Com 3c940 10/100/1000Base-T (Marvell)
auto eth0
auto eth1

# iface eth1 inet dhcp
iface eth0 inet manual
iface eth1 inet manual

auto bond0
iface bond0 inet static
bond_miimon 100
bond_mode balance-rr
primary eth1
address  192.168.255.100
netmask  255.255.255.0
hwaddress ether zz:zz:zz:zz:zz:zz
gateway  192.168.255.1
dns-nameservers 192.168.255.1 8.8.8.8 8.8.4.4
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1 


Seuraavaksi asensin itse squid-palvelinohjelmiston noudattaen tätä ohjetta:
http://ubuntuserverguide.com/2012/05/how-to-install-and-configure-proxy-server-with-squid3-on-ubuntu-server-12-04-lts.html

Huom. Kun squid.conf -tiedostoa on editoitu, pitää muistaa käynnistäää squid-palvelin uudelleen, jotta asetukset tulevat voimaan. Se tapahtuu komennolla "service squid3 restart".

Asensin seuraavaksi LAMP-palvelimen. Noudatin tätä ohjetta:
http://tuxtweaks.com/2012/04/installing-lamp-on-ubuntu-12-04-precise-pangolin/

Ja sen perään mysql-admin ohjelmiston:
http://tuxtweaks.com/2012/04/installing-lamp-on-ubuntu-12-04-precise-pangolin/2/

Niiden jälkeen asensin myös phpsysinfo-ohjelman, jolla palvelinta voi monitoroida web-selaimen kautta:
http://ubuntuserverguide.com/2012/06/monitoring-system-resources-on-ubuntu-server-with-phpsysinfo.html

Seuraavaksi asensin Mediatomb-palvelimen. Käänsin sen itse, jotta sain mukaan JavaSript-tuen. Noudatin tätä ohjetta:
http://richardappleby.wordpress.com/2012/05/31/mediatomb-on-ubuntu-12-04/
ja lisäksi tätä ohjetta:
http://tobias-zimmer.blogspot.fi/2011/12/howto-compile-mediatomb-with-javascript.html

Lopuksi palautin varmuuskopiolta mediatombin asetukset (/etc/mediatomb/config.xml).


Mediatombin käyttämän MySQL-skeman luonti on neuvottu täällä:
http://socrateos.blogspot.fi/2011/01/using-mysql-for-mediatomb.html

Huomaa, että esimerkissä mediatomb-käyttäjän salasanaksi asetetaan "secret". Korvaa se käyttämälläsi salasanalla. Sama salasana ja tietokannan nimi ("mediatomb") tulee lisätä mediatombin config.xml -tiedostoon.

Jos konfiguroinnissa on jotain vikaa, löytää mahdolliset virheilmoitukset mediatombin logista, joka sijaitsee hakemistossa /var/log/mediatomb.log

Jos kaikki meni hyvin, palvelin löytyy osoitteesta palvelimen-ip:49153:


maanantaina, joulukuuta 24, 2012

Palvelimen päivitys

Päivitin palvelimeni (HP Proliant Microserver) uudemmaksi käyttäen työasemani komponentteja ja vanhaa Cooler Master CM Stacker full-ATX tornikoteloa, joka on jäänyt käyttämättömäksi.
Cooler Master CM STACKER

Miksi? Sen vuoksi, että halusin käyttää ZFS-levyjärjestelmää ja saada koneeseen enemmän muistia. Olen myös käytännössä lakannut käyttämästä työasemaani ja käytän työskentelyyn lähes äänetöntä läppriäni.

Asensin ensin palvelimeen emolevyn ja muistit. Siirsin toiset 8 GB muistia proliantista ja nyt kokonaismuistiksi tuli 16 GB. Samalla vaihdoin DVD-aseman tilalle Delockin valmistaman mustan kovalevytelineen, jossa on slim-DVD asema TOSHIBA DVD-ROM SD-R6012 (CD-ROM), ja SSD-asema yhdessä massamuistipaikassa.

Seuraavaksi siirsin kaikki nykyiset 2 TB levyt tähän koneeseen. Niitä on 9 kappaletta. Sitä varten hankin uuden levyohjaimen (LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS), jossa on 8 SATA2-porttia. Emolevyllä on sen lisäksi 6 SATA2-porttia (Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller) ja 2 SATA3-porttia (Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller). Näin ollen koneeseen voi maksimissaan laittaa 16 massamuistiasemaa!

Tilasin näitä WD Green 2 TB levyjä vielä kolme lisää Amazonco.uk:sta, mutta levylähetys on kadonnut jonnekin matkalle suomeen. Sen piti olla perillä jo 13.12.

$  lspci | grep SATA
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 05)
02:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller (rev 10)
04:00.0 SATA controller: JMicron Technology Corp. JMB363 SATA/IDE Controller (rev 03)
04:00.1 IDE interface: JMicron Technology Corp. JMB363 SATA/IDE Controller (rev 03)



Ostin myös kaksi Lian-Li kovalevykehikkoa. Näihin saa 4 kovalevyä 3 massamuistipaikan tilaan. Kotelon etureunassa on 120 mm tuuletin jäähdyttämässä kovalevyjä. Niiden lisäksi piti tilata pari SATA-kaapelia ja SATA-virtajohtoa, jotta sotkusekamelskalta vältytään.
Lian Li EX-34N

NZXT molex to 4 SATA kaapeli

Virta otetaan normaalista MOLEX-liittimestä

Käyttöjärjestelmää varten ostin Intel SSDSC2CT18180 GB kokoisen SATA3 SSD-aseman. Käyttöjärjestelmälle varasin 18 GB osion ja loput on tarkoitus käyttää ZFS-välimuistina.
Uusi Intel 330 SSD

Lisäksi otin käyttöön emolevyllä olevan verkkokortin lisäksi vanhan PCI-väyläisen 3Com -verkkokortin. Ne on bondattu yhdeksi verkkoadapteriksi.
Verkkokortit tunnistettu Ubuntun asennusohjelmassa
Jotta sain pci-express lisäkorttipaikat käyttööni, vaihdoin näytönohjaimeksi vanhan PCI-väyläisen kortin, joka löytyi romukopastani. Se on vanha Matrox (VGA compatible controller: Matrox Graphics, Inc. MGA 2164W [Millennium II]).

Jotta pystyin luomaan raidz2-pakan, piti vanha RAID-pakka purkaa ja tavarat siirtää talteen. Sitä varten ostin kaksi 3 TB kovalevyä, jotka laitoin työasemaani. Koska en ollut varma, tunnistaako sen Intel ICH6-ohjain 3 TB kokoiset levyt, tilasin halpis PCI-E 1x SATA3-ohjaimen Dealextremestä. Ubuntu tunnistaa sen seuraavasti: SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01). Ohjain tukee isoja kovalevyjä ja Ubuntu tunnisti sen ilman mitään erityistoimenpiteitä.

Varmuuskopiointiin uudet 3TB asemat

STA3-ohjain, ASMedia ASM1061

SATA#-ohjaimen paketti
Tein varmuuskopiot vanhasta HP-palvelimesta rsyncillä. Sitten virrat pois ja siirsin siitä levyt uuteen koneeseen.

Uusi mylly käynnistyi ongelmitta. Olin ainoastaan unohtanut kytkeä kotelotuulettimien virtajohdon kiinni.  BIOS näytti myös kaikki 10 kovalevyä, 1 DVD-aseman ja muistitikun, jolta asensin Ubuntu 12.04 serverin.

Loin zraid2-pakan noudattaen tätä ohjetta:
https://mocko.org.uk/b/2012/06/17/how-i-store-my-1s-and-0s-zfs-bargain-hp-microserver-joy/

Pakka käyttää kaikki 2TB levyt ja on 13 TB kokoinen:

root@server:~# zpool status
  pool: tank
 state: ONLINE
 scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    tank        ONLINE       0     0     0
      raidz2-0  ONLINE       0     0     0
        sda     ONLINE       0     0     0
        sdb     ONLINE       0     0     0
        sdc     ONLINE       0     0     0
        sdd     ONLINE       0     0     0
        sdf     ONLINE       0     0     0
        sdg     ONLINE       0     0     0
        sdh     ONLINE       0     0     0
        sdi     ONLINE       0     0     0
        sdj     ONLINE       0     0     0

errors: No known data errors
 

root@server:~# df -hPT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sde1      ext4       17G  2.0G   14G  13% /
udev           devtmpfs  7.9G  4.0K  7.9G   1% /dev
tmpfs          tmpfs     3.2G  452K  3.2G   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     7.9G     0  7.9G   0% /run/shm
tank           zfs        12T  384K   12T   1% /tank
tank/HOME      zfs        13T  566G   12T   5% /home


Nyt on menossa palautukset uudelle isommalle raidz2-levypakalle. Itse /-levy on ext4-levyjärjestelmällä.

Kuten listauksesta näkyy, näkee kernel ensin Intelin ohjaimessa olevat neljä kovalevyä, sen jälkeen Marvellin ohjaimessa olevan SSD-aseman (sde) ja LSI-ohjaimessa olevat viisi levyä viimeisenä.