2010. december 13.

Linux: Redundáns tárolórendszer tervezése - 1. Kritériumok

Miért?

Már hosszú ideje kutatok egy olyan nyílt forrású NAS megoldás után, melyet a szabadon elérhető VMware ESXi hypervisor-hoz lehetne illeszteni. Az ESXi és a tárolórendszer segítségével magas rendelkezésreállású virtualizációs infrastruktúrát lehetne építeni, szabad szoftveres komponensekből. Az így kapott rendszer tesztelési célokat szolgálna, ám ha bebizonyosodik, hogy megbízthatóan működik, éles telepítésekben is használnám.

Mivel nem sikerült a követelményeknek megfelelő NAS szoftvert találnom elhatároztam, hogy tervezek egy saját rendszert. Melyek ezek a követelmények? Az alábbiakban részletezem.

A tárolórendszerrel szemben támasztott elvárások

VMware ESXi kompatibilitás

A VMware ESXi alapesetben két külső adattárolási protokollt támogat:
  • iSCSI: az Internet Small Computer System Interface protokoll IP hálózaton keresztül történő, blokk szintű adattárolásra szolgál,
  • NFS: a Network File System az egyik legősibb fájlmegosztási protokoll.
A korszerű, nyílt forráskódú NAS szoftverek (Openfiler, FreeNAS, NexentaStor, stb.) mindegyike ismeri a két protokollt, így bármelyiket fel lehetne használni a tárolórendszer alapjául.

Redundancia, hibatűrés

A NAS tervezése során a legfontosabb szempont a redundancia, ami a készülő rendszer valamennyi összetevőjénél megjelenik: redundancia a háttértáraknál (RAID), redundancia a hálózati kapcsolatoknál (EtherChannel) és redundancia a NAS eszközök terén is (Failover Cluster). A redundancia teszi lehetővé, hogy a rendszer hibatűrő legyen, azaz fel tudjon állni a bekövetkező hibákból. Komoly hiba lehet például a rendszer egy hardver vagy szoftver komponensének kiesése, melyet a rendszernek automatikusan korrigálnia kell.

Az fentebbi szoftverek közül az Openfiler az, amelyik HA modult (Heartbeat) tartalmaz. A modult konzolról kell konfigurálni, nem az elsődlegesen használt webes felületről. További probléma az is, hogy a stabil Openfiler (2.3-as verzió a bejegyzés írásakor) a Heartbeat egy régebbi, már elavultnak tekinthető verzióját tartalmazza. A régebbi verzió nem képes például a klaszter erőforrásainak monitorozására, csak a klaszterkomponensek kiesését veszi észre. Ezen felül a felépített rendszer menedzsmentje nehézkes és nem is működik stabilan...

Blokk szintű replikáció

A kialakítandó rendszert több (egész pontosan kettő) NAS eszközből álló klaszterként képzelem el, melyek között blokk szintű adatreplikáció történik. Ez azért fontos szempont, mert így a rendszer egyik node-jának kiesése esetén a másikon gyorsabban lehet helyreállítani az adattárolási szolgáltatást, mintha mentésekből probálnánk megtenni azt.


Az említett NAS szoftverek közül egyedül az Openfiler tartalmaz alapkiépítésben blokk szintű replikációs modult (DRBD). A modul konfigurálását konzolról kell végezni, nem a NAS szoftverek esetén elsődleges menedzsment interfésznek számító webes felületről. Ez a vegyes menedzselési módszer kissé nehézkessé teszi a felépített rendszer használatát.

Egyszerű menedzsment

A tárolórendszerrel szemben nem várom el, hogy bonyolult webes felülettel rendelkezzen, elég ha soros konzolról és SSH kapcsolaton keresztül menedzselhető. A kevesebb néha több (KISS elv).

Modularitás

Ha a kész rendszer moduláris, a felmerülő igényeket (pl.: hiba esetén üzenet küldése a hálózatfelyügyeleti rendszer számára) könnyebben implementálhatjuk rá. A modularitás segít abban is, hogyha valamely szoftverkomponens nem működik megbízhatóan, jó eséllyel ki tudjuk cserélni egy másikra.

Konklúzió

Mivel a fent megfogalmazott kritériumok mindegyikének egyaránt megfelelő NAS szoftvert nem találtam, magam készítem el a szám ízének megfelelő tárolórendszert. A következő bejegyzésben bemutatom, hogy milyen szoftverekből építem fel azt.

2010. december 7.

Android: Parking SMS Magyarország

Újabb remek program Androidos kütyünkre...

Az SMS parkolás megkönnyítésére született-e remek alkalmazás. Előnye, hogy a városokban található parkolási zónákat előre megkapjuk, és az EME mellett a többi szolgáltató telefonszáma is megtalálható benne.

2010. november 23.

CDP szolgáltatás RHEL/Centos Linuxra

Cisco eszközök fontos szolgáltatása a Cisco Discovery Protocol (CDP), melynek segítségével egy eszköz hasznos információkat oszthat meg a hozzá kapcsolt (Layer2 kapcsolat) további eszközökkel. Ilyen hasznos információk például az eszköz neve, menedzsment IP címe, a Layer2 kapcsolat két végén található portok azonosítója. Cisco hálózatokban akár a teljes topológiát fel lehet deríteni CDP parancsok segítségével.

Mit tehetünk, ha egy RHEL/Centos Linuxra épülő hálózati eszközt (pl. tűzfalat) szeretnénk Cisco infrastruktúrába integrálni úgy, hogy CDP információkat is megosszon szomszédaival? Ilyenkor segít nekünk a CDP-Tools szoftvercsomag, mely többek között CDP üzenetek küldésére alkalmas parancsot is tartalmaz.

A szoftvercsomagot a Razor's Edge repository-ból tudjuk a legegyszerűbben telepíteni, melynek beállítása után az alábbi parancsot kell lefuttatnunk:

# yum install cdp-tools

(Ha függőségi problémákba ütközünk, az EPEL repo segítségével tudjuk feloldani azokat.)

CDP üzeneteket a cdp-send parancs segítségével tudunk küldeni. A CDP szolgáltatás kialakításához már csak egy LSB kompatibilis init-szkriptre van szükségünk (amit a csomag nem tartalmaz):


/etc/init.d/cdpd:

#!/bin/bash
#
# chkconfig: 35 90 12
# description: CDP service
#

#Source function library.
. /etc/init.d/functions

# Enable CDP on this interface
INTERFACE="eth0"

start() {
echo -n "Starting CDP service: "
/usr/sbin/cdp-send $INTERFACE &
touch /var/lock/subsys/cdpd
success $"CDP service startup"
echo
}

stop() {
echo -n "Stopping CDP service: "
killproc cdp-send
rm -f /var/lock/subsys/cdpd
echo
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status cdp-send
;;
restartreloadcondrestart)
stop
start
;;
*)
echo $"Usage: $0 {startstoprestartreloadcondrestartstatus}"
exit 1
esac

exit 0


Ha nem az eth0 interfészen szeretnénk a CDP-t használni, értelemszerűen módosítsuk az INTERFACE változót. Az init-szkript létrehozása után indíthatjuk a szolgáltatást:

# chkconfig cdpd on
# service cdpd start


Ha mindent jól csináltunk, a gépünkre kapcsolt Cisco hálózati eszközön az alábbihoz hasonló kimenetet kapunk a CDP szomszédok lekérdezése után:

sw-1#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone

Device ID Local Intrfce Holdtme Capability Platform Port ID
test-linux-pc Fas 0/17 122 H x86_64 eth0
core-rtr Fas 0/24 153 R S I WS-C3560-8 Fas 0/8
sw-3 Fas 0/16 131 S I WS-C3550-2 Fas 0/24

2010. szeptember 8.

Android: Gesture Search

Még csak most telepítettem, de érdekesnek tűnik ez a program. Google labs alkalmazás Androidra, melynek segítségével lehet keresni a kontaktok, alkalmazások, könyvejelzők stb. között.

Bővebben: http://www.pcworld.com/appguide/app.html?id=432099&expand=false

2010. szeptember 7.

Hasznos programok Linuxra - 4. - dmidecode

DMI (Desktop Management Interface - hardver adatok, BIOS, széria számok stb.) adatokat írja ki ember által is emészthető formában. Először akkor használtam amikor meg kellet mondani, hogy mennyi memória slot van a gépben és ebből mennyiben van memória és mekkora. Természetesen  elég távol voltam a géptől, hogy fizikailag odamenjek és megnézzem.

Telepítés:

2010. szeptember 3.

Android: Air Control Lite

Mostanában ez a kedvenc játékom, repülésirányítót kell játszani. Egyszerű és rövid idő alatt függőséget okoz :)

2010. szeptember 2.

Hasznos programok Linuxra - 3.

A Cisco-szerű parancssor kiegészítés már régóta hiányzik nekem a Linuxokból. Pár hete ráakadtam egy bash kiegészítésre, amely tudja ezt a funkciót.

Telepítés:

2010. augusztus 31.

Hasznos Cisco parancsok - 1.

Kezdek egy ilyen bejegyzés áradadot is. Az egyik "nagy" felfedezésem, a Cisco ASA-kban történt. A 8.0(2) verziótól lehetőség van arra, hogy a failover páron futtassunk parancsot:

failover exec {active | standby | mate} cmd_string

Részletes leírás a Cisco honlapján található.

2010. augusztus 30.

Hasznos programok Linuxra - 2.

A Cisco volt oly kedves és egy ideig Linuxra is fejlesztette VPN kliensét. Viszont egy kicsivel hamarabb (mondjuk 1 évvel) megszüntette a fejlesztését, mint a Windowsos verzióét. A Linux kernel meg olyan, hogy állandóan változik/fejlődik.  Ettől egyre nehezebb volt lefordítani a Cisco VPN klienst. Ha lefordult, akkor sem volt valami világbajnok a sebesség.

Sok-sok keresgélés után találtam egy VPN klienst, ami jól együtt tud működni a Cisco VPN szerverekkel. Ez a Shrew nevezetű kliens.

Nekem két esetben nem volt hajlandó működni:
  1. Amikor UDP helyett TCP-n működik a VPN kapcsolat (érthető, hosz saját Cisco fejlesztés). Ilyenkor meg lehet próbálni sima UDP-vel használni.
  2. Amikor nem volt xAuth
Plussz érdekesség, hogy a Windowsos verziójában be lehet importálni a Cisco pcf fájlt, a Linuxban nem.

Telepítés:

Hasznos programok Linuxra - 1.

A sorozat első hasznos programja az UNetbootin. Mindenféle iso fájlt képes USB-re konvertálni.


Telepítés:

  • Ubuntu 10.04: sudo apt-get install unetbootin
  • Fedora 13: yum install unetbootin
  • Egyéb disztribúció és OS: UNetbootin

2010. augusztus 26.

Android: Wifi Analyzer

Kezdjük ezzel, mert egyszerűen a legjobb alkalmazás.

A Twitter oldala is nagyon hasznos:
http://twitter.com/farproc