Olcsó TimeMachine NAS és DLNA szerver

Mivel a családtagok száma és a használt számítógépek darabszáma már jó ideje egy-az-egy arányt mutat, megoldást kellett találni az adatok biztonságos és lehetőleg automatikus mentésére is.

Az a file, ami csak egy helyen van tárolva egy rendszerben, valójában nincs is meg, éppen csak úgy tűnik mintha meglenne. Amint az az egy hely megsérül, lőttek az adatnak, legyen az a kedvenc filmünk, családi videó, vagy pótolhatatlan fotó. Mentés nélkül a gyűjtögetés egy igen kockázatos foglalkozás.

Több gép esetén a legegyszerűbb megoldás egy központi mentő-egység, más néven NAS (Network-attached storage – hálózati adattároló). Ilyen szerkezetek jelenleg huszonötezer forint környékétől lehet kapni és ehhez még hozzáadódik a HDD ára.

Nálunk a két Mac (10.5 és 10.7) mellett két Vaio-t is menteni kell, ráadásul az egyiken Windows, a másikon Linux van. Egy kis számolgatás után úgy döntöttem, hogy egyelőre elegendő lesz 500 GB tárhely a szerverben, erre elfér az összes gépen tárolt személyes információ, illetve marad hely néhány filmnek is. A szerverhez egy olcsó, lehetőleg halk és kis fogyasztású gépet kerestem, így jutottam el a HP Compaq D530 aprósághoz, melyet 500+80 GB SATA HDD-vel és 512 MB memóriával sikerült húszezer forintért beszerezni. Ez a vas lett a “szegény ember hómszervere”. A fogyasztása maximálisan 68.4 Watt, de file-szerverként nagyon ritka, hogy – jelezve a fogyasztás megugrását – bekapcsoljon a ventilátora.

Első körben a FreeNAS-sal próbálkoztam, de sajnos még a 8.0.2-es verzió sem képes megbirkózni az OSX Lion új, a TimeMachine-hez használt authentikációs protokolljával, így kiesett a versenyből – csak ez miatt pedig nem veszek Time Capsule-t. Második próbálkozás a jól bevált Ubuntu szerver lett, megkockáztatva a héten megjelent 11.10-es verziót. Meglepetésemre mindenféle – az ilyen esetekben sajnos megszokott – küzdelem és félre-működés elkerült, azaz a telepítés és a működés között kevesebb mint fél óra telt el.

Egy kis előjáték az APM-hez:

# apt-get install apmd libapm1 cpufreqd

Mindössze egy trükkre volt szükség, ez a “netatalk” csomag 2.2-es verziója és az ahhoz szükséges külön repository hozzáadását jelentette:

# apt-get install python-software-properties
# add-apt-repository ppa:stefanor/ppa
# apt-get update
# apt-get install netatalk

A friss “netatalk” csomag telepíése után következett a TimeMachine megosztáshoz szükséges paraméterek beállítása a “/etc/netatalk/afpd.conf” file-ban:

- -tcp -noddp -uamlist uams_guest.so,uams_dhx.so,uams_dhx2.so -nosavepassword

A Mac-es mentéshez létrehoztam egy “macbackup” felhasználót és a felhasználó home könyvtárában a “TimeMachine” alkönyvtárat:

# adduser macbackup
# mkdir /home/macbackup/TimeMachine
# chown macbackup:macbackup /home/macbackup/TimeMachine

Következő lépésként a létrehozott könyvtár AFP protokollon való publikálásához szükséges beállításokat tettem meg a “/etc/netatalk/AppleVolumes.default” file-ban:

~/ "Home Directory" options:usedots,upriv ea:ad
/home/macbackup/TimeMachine/ "TimeMachine" options:usedots,upriv,tm ea:ad allow:macbackup

Utolsó konfiguráció lépésként a létrehoztam a telepített “avahi” daemon-hoz egy “afpd” szervizt, a “/etc/avahi/services/afpd.service” file-ban:

< ?xml version="1.0" standalone='no'?>
< !DOCTYPE service-group SYSTEM "avahi-service.dtd">

%h

_afpovertcp._tcp
548


_device-info._tcp
0
model=Xserve


Mindezek után újraindítottam az “avahi” és a “netatalk” szervizeket:

# /etc/init.d/netatalk restart
# /etc/init.d/avahi-daemon restart

Az OSX Leopard és a Lion is szépen megtalálta a TimeMachine megosztást, authentikáció (macbackup user) után tökéletesen elindultak és le is futottak a mentések.

...
Oct 15 13:31:10 server afpd[5361]: AFP logout by macbackup
Oct 15 13:31:11 server afpd[5361]: AFP statistics: 83802565.77 KB read, 20573459.70 KB written
Oct 15 13:31:11 server afpd[5361]: done

A Linux-os mentéshez NFS exportot, míg a Windows-oshoz Samba megosztást hoztam létre, mindkettőhöz saját felhasználót adva.

Extraként el lehet szórakozni a CPU frekvencia állítgatásával, alap üzemben a 3 GHz fölöslegesnek tűnik, visszavehető 750 MHz-re:

root@server:~# cpufreq-info 
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: p4-clockmod
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.00 ms.
  hardware limits: 375 MHz - 3.00 GHz
  available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 375 MHz and 3.00 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.00 GHz (asserted by call to hardware).
  cpufreq stats: 375 MHz:0.00%, 750 MHz:0.00%, 1.13 GHz:0.00%, 1.50 GHz:81.79%, 1.88 GHz:0.00%, 2.25 GHz:0.00%, 2.63 GHz:0.00%, 3.00 GHz:18.21%  (4)
# sudo cpufreq-set -c 0 -u "750MHz"

vagy automatikusan “powersave” módba küldve:

# sudo cpufreq-set -g powersave
root@server:~# cpufreq-info 
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: p4-clockmod
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.00 ms.
  hardware limits: 375 MHz - 3.00 GHz
  available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 750 MHz and 1.50 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 750 MHz (asserted by call to hardware).
  cpufreq stats: 375 MHz:41.57%, 750 MHz:48.26%, 1.13 GHz:0.00%, 1.50 GHz:0.00%, 1.88 GHz:0.00%, 2.25 GHz:0.00%, 2.63 GHz:0.00%, 3.00 GHz:10.18%  (4)

** a “/etc/rc2.d” könyvtárból érdemes eltávolítani az “S99ondemand” symlink-et

A HDD zümmögése is csökkenthető a “hdparm” konfigurációjával, mikor is a használaton kívüli állapotban “spindown” következik:

# hdparm -S 36 /dev/sda

/dev/sda:
 setting standby to 36 (3 minutes)

Az iTunes/Airtunes zene megosztáshoz a DAAP daemon-t konfiguráltam, a következő módon:

# apt-get install forked-daapd ogmtools ffmpegthumbnailer

Ezen a szerveren a “media” nevű user home könyvtárába kerülnek a zenék és filmek, ezért a “/etc/forked-daapd.conf” konfigurációs file-ban a következő beállításokat tettem:

# Library configuration
library {
        name = "Shared media on %h"

        # Directories to index
        directories = { "/home/media/media" }
        # Directories containing compilations
        # Matches anywhere in the path (not a regexp, though)
        compilations = { "/home/media/media" }
}

További apróságok is kerültek a gépre, úgymint egy fejlesztéshez elengedhetetlen SVN és TRAC szerver, melyek adatbázisait egy külső USB-s HDD-re menti egy jól irányzott rsync-es megoldás.

A gép előlapján lévő power-gombot is sikerült úgy konfigurálni, hogy megnyomásra shutdown következik, így monitor és billentyűzet nélkül is megoldható a kikapcs-bekapcs procedúra.

Frissítés (2012. május 27): Gondatlanságból és kíváncsiságból elkövettem egy 12.04 LTS upgrade-et, aminek az lett a következménye, hogy nem működik az APM és ezáltal a cpu frekvencia szabályozás és az előlapi power gomb se.

Enable LDAP server in OSX

A quick step-by-step tutorial (and reminder for me) to enable and configure built-in OpenLDAP server in Mac OS X Tiger, Leopard and Snow Leopard clients:

1. Generate a new LDAP password:

$ slappasswd        
New password: 
Re-enter new password: 
{SSHA}rqmauEi1zu+1YgMEUwihtiYzZtPr0+KO

2. Create a new LDAP configuration by default:

$ cd /etc/openldap
$ sudo cp slapd.conf.default slapd.conf

3. Edit LDAP configuration:

$ sudo mcedit slapd.conf

Example values:
suffix “dc=localhost,dc=com”
rootdn “cn=Manager,dc=localhost,dc=com”
rootpw {SSHA}rqmauEi1zu+1YgMEUwihtiYzZtPr0+KO

4. Start OpenLDAP server:

$ sudo /usr/libexec/slapd -d 255
@(#) $OpenLDAP: slapd 2.4.11 (Feb 11 2010 02:23:14) $
daemon_init: 
daemon: SLAP_SOCK_INIT: dtblsize=256
daemon_init: listen on ldap:///
daemon_init: 1 listeners to open...
...

5. Check LDAP port (389) to listen:

$ nmap localhost

Starting Nmap 4.53 ( http://insecure.org ) at 2010-07-05 11:47 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 1706 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
88/tcp    open  kerberos-sec
389/tcp   open  ldap
...

Just use Eclipse based multiplatform Apache Directory Studio or native Cocoa application LDAP Manager to manage your LDAP server…

Alfresco upgrade

Előbb utóbb mindenhol eljön a verzió-váltás ideje, érdemes előre felkészülni, – akár egy erre kialakított demó rendszeren gyakorlatozva – hogy ne érjen túl nagy meglepetés ha élesben kell elvégezni…

Alfresco LogoEzt a frissítést az Alfresco esetében több módon is elvégezhetjük, de minden esetben fokozottan ügyeljünk arra, hogy mindig legyen lehetőségünk visszaállítani az eredeti állapotot.

Ha az első installáció óta megfogadtuk a dokumentációban leírtakat és a “tomcat/shared” alatt végeztük el a személyre szabást, azaz ott hoztuk létre a “custom” konfigurációs file-okat, akkor egyszerűbb a dolgunk. Ha ezt nem tettük meg eddig, legyen ez a frissítés előtti első feladatunk…

Klasszikus upgrade folyamat:

  • 1. A frissítendő Alfresco rendszer leállítása (pl. “/opt/alfresco-3.0b”)
  • 2. A “custom-repository.properties” konfigurációs file-ban az aktív “db.url” változóval definiált adatbázis backup-ja (file dump)
  • 3. A “repository.properties” konfigurációs file-ban definiált “dir.root” változó szerinti könyvtár mentése (alkönyvtárakkal együtt) (pl.: “alf_data/*”)
  • 4. A “tomcat/shared/classes/alfresco/extension” könyvtárban található, saját konfigurációs file-ok mentése (csak azokat kell és szabad menteni és visszaállítani, amit saját magunk hoztunk létre!)
  • 5. A “tomcat/conf” könyvtárban található, saját Tomcat paraméter file-ok mentése
  • 6. A “tomcat/webapps” könyvtárban található, saját programok mentése
  • 7. A “tomcat/webapps/alfresco/WEB-INF/lib” könyvtárban található, saját class-ok mentése
  • 8. A “tomcat/webapps/alfresco/WEB-INF/classes” könyvtárban található, saját beállítások mentése
  • 9. Az új Alfresco installációja egy új könyvtárba (“/opt/alfresco-3.1”)
  • 10. Az új Alfresco installáció ellenőrzése (start, log ellenőrzés, stop)
  • 11. A 2,3,5,6 pontokban elkészített mentés visszaállítása az új Alfresco installációba (adatbázis, repository)
  • 12. Az “extension” könyvtárban található, saját konfigurációs file-ok visszaállítása
  • 13. Az Alfresco bővítmények (AMP-ok, stb.) telepítése
  • 14. Az új Alfresco installáció elindítása és a log ellenőrzése (“tomcat/logs/catalina.out”)
  • 15. Sikeres indulás után a rendszer funkcióinak ellenőrzése, illetve az adatbázis tartalmának (dokumentumok, leírók, stb.) ellenőrzése

Egyszerű upgrade folyamat:

  • 1. Leállítjuk az Alfresco-t és mentést készítünk az adatbázisról
  • 2. A régi rendszerből kimásoljuk a “tomcat/webapps/alfresco” könyvtár tartalmát egy másik könyvtárba (hátha módosítottunk valamit benne, amit majd vissza kell állítani)
  • 3. Eltöröljük a “tomcat/webapps” könytárból az alfresco.war-t és a share.war-t
  • 4. Az új csomagból kiszedjük az alfresco.war-t és a share.war-t, majd bemásoljuk a “tomcat/webapps” könyvtárba
  • 5. Újraindítjuk az Alfresco-t és ellenőrizzük a log bejegyzéseket (“tomcat/logs/catalina.out”) és az adatbázis tartalmát

Az upgrade folyamat egy hosszadalmas schema frissítéssel is szokott járni, melynek eredményéről a log-ban az “Alfresco started” üzenet utáni “Current version” értéke árulkodik. Ennél a rendszernél sajnos teljes mértékben megszokott, hogy a 3.1-es verziót 3.0.0-val jelölik…

    17:02:07,817 User:System INFO [service.descriptor.DescriptorService] Alfresco started (Labs): Current version 3.0.0 (Stable 1526) schema 1002 – Installed version 3.0.0 (b 1164) schema 131

Mindkét – vagy akár vegyes – megoldás is alkalmazható, de az adatbázis konzisztenciája, a rendszerben tárolt adatok értéke legyen mindig az irányadó a folyamat minden egyes lépésénél.

Szerver megint

Hát jó régen építettem már szervert… Csináltam régen AmigaOS-ből, MorphOS-ből, Linux-ból, meg talán egyszer FreeBSD-ből is. Mentek amíg mentek.

Most ismét szükségessé vált, elüldöztetve a régi dobozból, nekiálltam egy Apple Mac Mini-re feltenni az Apple saját szerverét. Majdnem 1000 Euró az ára, hát tudjon valamit. Tud. Tetszik, nem volt vele eddig gondom – kivéve a beépített levlista software tákolását, hogy multi mail domain esetén is működjön rendesen – minden mint a karika-csapás.

Bulldogh használói vagyunk, van rajta egy rakás domain (dns, web és e-mail), VPN, TRAC, SVN, IRC, blog, MySQL, mifene. Legyen így.

indextopimage20060807.jpg

louise.amiga.hu – üzemben

Aki még nem hallott volna róla, kb 10 napja folyamatos üzemben van az egyik kedvenc 1200-es gépem a neten, méghozzá nem is akármilyen feature-ökkel! Egy Blizzard 1230/IV-es zsuga, desktop ház (no hack!) belső 2.5″-es 4 GB HDD, Argosy ethernet zsuga, ScanJuggler, és semmi más! Software oldalon AmigaOS 3.1, Kickstart 39.106, AmiTCP 3.0b2 (free!), GeekGadgets POSIX környezet, Apache WEB szerver PHP4-el, QMail levelező szerver (SMTP/POP3), és persze még bónuszként egy ftp szerver is, ami tud anonymous-t, illetve regged user-eknek full access-t.

Böngészővel a http://louise.amiga.hu címen tudod elérni, az e-mail címem a gépen louise@louise.amiga.hu – amit elég nehéz lehetett kitalálni :)

Jah, és a WEB oldal felső csíkján az UpTime-ot érdemes megnézni, egy kb 9 bogomips-es gépen (egy PIII/500 kb 1000 bigomips!) amin olyan OS fut, amiben még memóriavédelem sincs…

Köszönet a CJ-nek az amiga.hu domain regisztrációjáért, Ratinak a DNS bejegyzésért…

louise.amiga.hu

Egy jó öreg A4000-esen kezdte meg több éves működését a louise.amiga.hu. Volt rajta apróhirdetés, software archívum, képtár, meg minden… A rajta futó PHP és WEB szerver saját port, az engine-nel együtt. A grafikát Tomcat készítette.

Nemrégiben fogant az az ötlet, hogy próbáljunk meg szerver funciókat ráerőltetni egy Amigára, amely ráadásul 24 órában fog az Interneten lógni, kitéve a számtalan támadásnak, amelyeknek minden hálózatot használó ki van téve percről percre. A terv megvalósult, az amiga.hu domain alá bejegyzett louise.amiga.hu néven elérhető egy 68030/50-es processzorral felvértezett Amiga 1200-es, amelyen gyári AmigaOS 3.1 van. Szerver funkcióit tekintve WEB (Apache, PHP4), MAIL (QMail), FTP (mlftpd) illetve egy telnet démon szolgálja ki a felhasználókat. A gép teljesítménye körülbelül 9 bogomips, amit szerencsére a hozzá csatlakozók nem fognak észrevenni…

louiseamigahu.jpg