O tym, że protokół snmp do monitoringu sieci jest fajny i przydatny każdy administrator wie, obserwując wykresy utylizacji łącza, wykorzystania przestrzeni na storage’u itp.
Można także podejść do snmp bardziej od strony finansowo-księgowej czy Business Intelligence.
Od jakiegoś czas monitoruję jak szybko drukarki zużywają toner co pozwoliło na takie poprzerzucanie użytkowników, żeby zużycie toneru rozkładało się mniej więcej równomiernie na 3 drukarki:
Czyli toner średnio około 7 tygodni, screen z dziurą ma około 8 tygodni, ale dziura oznacz offline z powodu awarii więc nie bierzemy pod uwagę całego przedziału czasowego.
Drugą rzeczą którą można monitorować i wysuwać jakieś wnioski (choćby statystyczne) to np ilość użytkowników zalogowanych do AS400, czyli pracujących w JDEdwards. Na przełomie roku można zaobserwować fajne rzeczy:
W tygodniu 51 zaczął się exodus pracowników, w tygodniu 52 mamy minimum i ostatnie dwa dni pracujące nie ma prawie nikogo (święta), następnie tydzień 53 to powolne powroty, przerwa i od razu wracamy po sylwestrze w prawie pełnym składzie, aby od drugie dnia pracującego nowego roku wejść na pełne obroty :)
Widać, też, że praca zaczyna nam się o 6 rano i trwa do 22 lub dłużej, godzina około północna to czas backupu gdzie loguje się systemowy user odpowiedzialny za niego.
Jeśli ktoś jest zainteresowany to soft użyty do tego monitoringu to: net-snmpd, rrdtool, cacti, apache+php i standardowe agenty systemowe + kilka gotowych skryptów od społeczności cacti (monitoring poziomu tonerów). Wszystko pod kontrolą (a jakże!) NetBSD! :)
Przyszły paczki (tak paczki!) aby wykonać upgrade AS400 do wersji 6.1. Może wydawać się to dość dziwne, ale upgrade odebrany od kuriera wygląda tak:
Po rozpakowaniu okazuje się, że w większosći są to licencji i trochę płytek. Po rozpakowaniu obydwu paczek stos kartek i książeczek (wyjaśnienie do licencjonowania – książka ~100 stron :) przewyższała wysokość paczek w których przyszły :)
Po odesparowaniu okazało się, że jeden upgrade to 16 płytek!
Warto także wspomnieć o modelu biznesowym IBM’a (chyba tak to się poprawnie nazywa). Dwa upgrade’y dostaliśmy za symboliczne 120$, które to są kosztami logistycznymi (pakowanie, przechowywanie, wysyłka z USA). Właściwie mamy je za darmo w ramach maintenance. Dostaliśmy je także dlatego, że kończy się support na wersję 5.3 i minimum trzeba mieć wersję 5.4. Skok między 5.x a 6.x jest tak duży, że w przypadku upgrade’u trzeba przejść całą ścieżkę stąd dwa upgrade’y. Jeśli natomiast ktoś jest tak zaawansowanym adminem AS’a (lub iSeries, lub i5 – OS name madness ;), że poradzi sobie bez maintenance i po kilku latach zdecyduje się na upgrade i chciałby go kupić (tak jak się kupuje inne systemy w pudełku) to nie ma takiej mozliwości. Nie ma maintenance – nie ma upgrade’u. Ok, można wykupić sobie maintenance zatem, ale trzeba zapłacić wszystkie lata wstecz także! I dlatego IBM to największa i najbogatsza firma produkująca hardware/software na świecie :) Nie wspominam już o cenach mainenance i sprzętu do AS’a….
Z drugiej strony instalacja od zera AS’a to święto Administratora, nie często się to zdarza :)
Dzisiaj zajmiemy się fajną funkcją kernela NetBSD jaką jest CCD czyli Concatenated Disk Device (Powiązane Urządzenie Dyskowe). Służy ona do łączenia kilku fizycznych dysków (wd,sd) w jeden logiczny wolumen (ccd). Całość opiszę na przykładzie własnym wykonanym na serwerze IBM x346 z kontrolerem SCSI AIC-7902. Serwer ten jest dość mocno wykorzystywany ponieważ działa na nim IDS SNORT i niestety bardzo szybko kończy mu się miejsce na /var gdzie przechowywane są alerty. Co nam będzie potrzebne. Oprócz serwera i dysków, CCD w kernelu. Jeśli używasz GENERIC to CCD jest już tam domyślnie. Przed modyfikacją posiadał on dwa dyski SCSI po 70 GB:
sd0 at scsibus1 target 0 lun 0: disk fixed
sd0: 70006 MB, 65494 cyl, 3 head, 729 sec, 512 bytes/sect x 143374000 sectors
sd0: sync (6.25ns offset 80), 16-bit (320.000MB/s) transfers, tagged queueing
sd1 at scsibus1 target 1 lun 0: disk fixed
sd1: 70006 MB, 65494 cyl, 3 head, 729 sec, 512 bytes/sect x 143374000 sectors
sd1: sync (6.25ns offset 80), 16-bit (320.000MB/s) transfers, tagged queueing
i wyglądał tak:
Dołożyłem 4 dyski (po uprzednim dokupieniu ramek co nie jest takie proste w przypadku dwuletniego serwera) 17 GB, które od jakiegoś czasu leżakowały po wyjęciu z AS400 (lub eserver iseries, a nawet ostatnio i5, IBM i te jego zmiany nazw…). Tutaj drobny offtopic. Akurat to, że dyski uprzednio były w ASie jest dość istotne ponieważ przysparza to trochę kłopotów. Po przygotowaniu i włożeniu dysków:
kernel zaraportował tylko:
Po restarcie dyski niby zostały wykryte, ale przy normalnych komunikatach kernela pojawiło się coś jeszcze:
I tak x4 dyski. Oczywiście o disklabelowaniu i stworzeniu działającego CCD nie było mowy. Kilka osób sugerowało:
20:10 lama_: mhm, albo jakos specjalnei je trzeba przygotowac, albo netbsd ich nie lubi/tego kontroloera/ cos jeszcze trzeba tam ustawic itp.
15:08 lama_: kontrolera moze? ale watpie, to raczej kwestia firmware lub pogrzebania z nimi w AS ?
13:20 lama_: to jest cos na lini sprzet/kernel z urzadzeniami wedlug mnie, a nie z disklabel
13:17 lama_: to popatrz jeszcze po tasmach itp
13:12 lama_: jest to zdecydowanie problem na innym poziomie niz disklabel
20:08 < @emet> po wnikliwej analizie stwierdzam że coś jest spierdolone.
20:13 < @gavroche> cancer^, MAsz napisane.
20:13 < @gavroche> sd2(ahd1:0:2:0): generic HBA error
20:13 < @gavroche> :)
20:13 < @gavroche> Pewnie kontroler masz spierdolony.
20:14 < @lama_> to by dyski 1-2 nie dzialaly ok
20:14 < @gavroche> Może być jeden kanał spierdolony.
20:14 < @gavroche> Na przykład.
20:15 < @gavroche> Wtedy by działały.
20:18 < @lama_> host bus adapter
20:19 < @lama_> poszukaj jeszcze jakis firmware/bios updatow
20:20 < @lama_> i kable badaj/polaczenia/zworki/ustawienia itp. pierwsze co musisz wlasnie wyeliminowac to na 100% ze to nie jest jakis sprzetowy problem
20:28 < @gavroche> No, chyba, że masz za nowy sprzęt żeby na nim NetBSD uruchomić.
20:28 < @gavroche> To wtedy gorzej. :< 20:33 <@majkel> re
20:44 < @cancer^> gavroche: x346 ibm
20:44 < @cancer^> 2 latek
20:47 < @gavroche> No niestety. Przyjdzie Ci zaczekać na NetBSD 7.0. ;/
20:47 < @gavroche> Nie rozumiem Was, że używacie NetBSD do celów innych niż edukacyjne.
Na szczęście mimo czarnowidztwa kolegów, nic nie okazało się spierdolone, nie musiałem szukać biosów ani firmware do dysków i kontrolera, oszczędzone zostało mi także oczekiwanie na NetBSD 7.0 zwłaszcza, że mój zakład o NetBSD 5.0 vs Windows 7 nadal trwa :) NetBSD oprócz swoich walorów edukacyjnych będzie pełnił także dotychczasową rolę jako IDS oraz kilka innych zadań :)
A wszystko dlatego, że po wywiadzie na grupach dotyczących AS’a400 okazało się, ze IFS (system plików ASowy) modyfikuje dysk na tyle, że NetBSD nie umie sobie z nim poradzić – z tąd też komunikat: sd2(ahd1:0:2:0): preposterous sector size: 0x20a. preposterous = absurdalny :)
Lekarstwem na tą „absurdalną” wielkość sektora był lowlevel format wykonany z poziomu BIOS’a kontrolera. Po kilkunastu minutach i milionie potwierdzeń, dyski odzyskały nie tak absurdalną wielkość sektora jaką jest 512 bajtów zamiast 522 :)
Wracając do sedna postu. Mamy działające dyski i kernel już sobie z nimi radzi. Wszystko pozapinane (literalnie ;) na ostatni zatrzask więc do dzieła :)
Szybka kontrola, wszystko tym razem według oczekiwań, żadnych HBA error, żadnych absurdalnych sektorów (to naprawdę mi się podoba :), oraz żadnych I/O errorów w dosowych partycjach (a to już było wogóle od czapy :).
Tak wygląda standardowy disklabel czystego dysku, modyfikujemy go do użycia przez CCD. Potrzebujemy jeden cały slice c (d w nomenklautrze NetBSD to cały dysk, a c to wszystkie slice NetBSD) minus 1x sectors/cylinder oraz typ systemu ccd. Czyli po szybkim przeliczeniu
bc
35843670-1212
35842458
disklabel dla pierwszego dysku użytego w ccd będzie wyglądał tak:
Do edycji disklabela używamy komendy disklabel z opcją -e. Całą operację powtarzamy tyle razy ile mamy dysków odpowiednio przeliczając offset (no chyba, że macie wszystkie dyski takie same).
Wygląda na ok. Inicjujemy ccd jeszcze raz. Po poprawnym zainicjowaniu nie dostajemy żadnego komunikatu, ale za to w /dev pojawiaja nam się urządzenia ccd :)
ccdconfig -C -f /etc/ccd.conf
ls -la /dev/ccd*
brw-r----- 1 root operator 16, 0 Feb 22 2008 /dev/ccd0a
brw-r----- 1 root operator 16, 1 Feb 22 2008 /dev/ccd0b
brw-r----- 1 root operator 16, 2 Feb 22 2008 /dev/ccd0c
brw-r----- 1 root operator 16, 3 Feb 22 2008 /dev/ccd0d
brw-r----- 1 root operator 16, 4 Feb 22 2008 /dev/ccd0e
brw-r----- 1 root operator 16, 5 Feb 22 2008 /dev/ccd0f
brw-r----- 1 root operator 16, 6 Feb 22 2008 /dev/ccd0g
brw-r----- 1 root operator 16, 7 Feb 22 2008 /dev/ccd0h
brw-r----- 1 root operator 16, 524288 Feb 22 2008 /dev/ccd0i
brw-r----- 1 root operator 16, 524289 Feb 22 2008 /dev/ccd0j
brw-r----- 1 root operator 16, 524290 Feb 22 2008 /dev/ccd0k
brw-r----- 1 root operator 16, 524291 Feb 22 2008 /dev/ccd0l
brw-r----- 1 root operator 16, 524292 Feb 22 2008 /dev/ccd0m
brw-r----- 1 root operator 16, 524293 Feb 22 2008 /dev/ccd0n
brw-r----- 1 root operator 16, 524294 Feb 22 2008 /dev/ccd0o
brw-r----- 1 root operator 16, 524295 Feb 22 2008 /dev/ccd0p
Skoro już mamy ccd jako urządzenie, sprawdzamy jego disklabel:
Że tak powiem, automagicznie idealnie. Size jest sumą czterech dysków z ccd.conf. Po przeliczeniu mamy 67 GB do wykorzystania. Pozostało jeszcze tylko założyć system plików:
Wygląda na to, że wszystko w jak najlepszym porządku, możemy przetestować wydajność naszego nowego ccd:
dd if=/dev/zero of=file_1GB bs=1m count=1k
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 19.476 secs (55131537 bytes/sec)
Imponujące :)
Jeśli jesteś zadowolony ze swojego setupu, ostatnią rzeczą jest dopisanie ccd=YES do rc.conf oraz do fstaba punktu montowania:
Ostatni restart, aby zobaczyć czy wszystko gra i jeśli po restarcie masz podmontowany ccd tam gdzie powinien być to gratulacje – ccd skonfigurowany i działa :)
Jeszcze uwaga na koniec – FFS w NetBSD obsługuję partycję do wielkości 2 TB. Zatem jeśli chcesz połączyć dyski w więcej niż 2 TB, niestety trzeba zrobić kilka ccd, np, mój serwer backupowy dla userów posiada 4 TB w dwóch ccd:
Dzisiaj próbowałem zainstalować iSeries Access for Linux. Jak narazie skutek jest marny, a dokumentacja i opis błędów obszerna, czasu na czytanie jednak brak :)
Moje wysiłki okazały się jednak daremne ponieważ istnieje otwarta alternatywa w postaci emulatora 5250. Co najważniejsze, emulacja następuje na terminalu z którego go uruchamiamy, nie pojawia się dodatkowe okienko do wpisania serwera, usera i hasła. Co to oznacza i dlaczego jest to fajne nie muszę chyba mówić użytkownikom konsol tekstowych. Po zainstalowaniu z net/tn5250 i zalogowaniu się do NetBSD przez komórkę przy pomocy midpssh, nie było żadnych problemów aby mieć kompletne środowisko AS’a w komórce!
Najważniejsze jednak, że można tego używać całkiem sprawnie w sytuacjach awaryjnych bez dostępu do komputera, a komórkę ma się w zasadzie wszędzie. Na urlopie niestety też ;)
P.S. Jak tam koledzy Administratorzy Windowsowi, klikniecie w coś z komórki? ;)
A teraz coś kompletnie z innej systemowej beczki. Od razu mówię, że nie jestem żadnym ekspertem jeśli chodzi o AS/400. Dla osoby, która używała i używa kilku systemów operacyjnych każdy nowy (i nie mówie o etnej dystrybucji linuksa) jest napewno ciekawy. AS/400 jest interesujący poprzez swoją inność.
Przedewszystkim należy zacząć od tego że w ASie wszystko jest obiektem, i mam na myśli wszystko. Komenda jest obiektem, biblioteka jest obiektem, wygenerowany raport jest obiektem, wszystko co da się wymyślić jest obiektem :) Dlatego też, przynajmniej mi na początku dość trudno było myśleć o systemie jako zbiorze bibliotek z programami i plikami. Wiadomo, mamy Windows czy tam Unix jakiś, mamy dyski, partycje, litery dysków lub / jako root i pod nim kolejne katalogi. W ASie tego nie ma, jest główna biblioteka QSYS i pod nią kolejne podbiblioteki i wnich odpowiednie pliki i programy i koniec. Za to wyszukiwanie jakiegos pliku, lub zawartości w pliku trwa nie zmiernie szybko, właściwie wygląda to tak jakby wszystko było gdzieś zindeksowane. Poruszanie po systemie też wydaje się na początku dziwne, ponieważ wszystko opiera się na różnych menusach. Tak jest, nie mamy jakiegos menadżera czy lini komend w rozumieniu Unixowym. Wydaje się to może toporne, ale po chwili używania jest dość wygodne.
Do zarządzania uzytkownikami mamy taki za to menus:
Lista procesów ze znajomym oprogramowaniem – serwer WWW Apache.
Status systemu:
Z ciekawostek warto wymienić, że natywnym kalendarzem w JDE jest kalendarz Juliański w którym dzisiejsza data (18.07.2008) wygląda tak: 108200 – czyli 1 08 200, gdzie pierwsza cyfra oznacza stulecie (0 – XX wiek, 1 – XXI wiek), kolejne dwie rok (08 – 2008 wiadomo), a ostatnie trzy cyfry kolejny dzień roku. Jutro więc będzie juliańska data 108201. Może wydawać się to dość dziwne/ekscentryczne ale przy olbrzmiej ilości danych i dat format juliański idealnie rozróżnia co było wcześniej a co później. Łatwo jest też poprzez zwykłe dodawanie i odejmowanie szybko policzyć co było starsze/młodsze i o ile dni. AS/400 oczywiście dostarcza kalkulator dat :)
To co czyni ASa i JDEdwards wyjątkowym jako system ERP to jego szybkość. Baza 40 GB z 20 milionami rekordów i kilkudziesięcioma użytkownikami zalogowanymi naraz i mieliona 8 godzin dziennie w te i wewte praktycznie nonstop obsługuje jeden RISCowy procesor 1.5 Ghz :) Dane przechowywane sa w bazie DB2 400.
Dla porównania mój Snort z Base gdzie jest 3 mln rekordów na 4x Xeon 3Ghz i 2 GB RAM, potrzebuje około 50 sekund dla jednego usera żeby wydobyć dane z MySQL :)
Oprócz wspomnianego APACHE na ASie może jeszcze działać JAVA i baza ORACLE. System można także samemu rozbudowywać o nowe możliwości lub programy w języku RPG.
Co jeszcze czyni AS/400 wyjatkowym? Niestety cena i to nie tylko oprogramowania. Zmiana dysków na większe (np 500GB) to wydatek rzędu kilkunastu tysięcy dolarów. Tak samo procesor czy pamięć. Ale fakt, że tych zmian nie dokonuje się zbyt często. Powszechnie wiadomo, że AS/400 to najbardziej niezawodny system. Nie znalazłem żadnej komendy podobnej do uptime, a szukałem dość długo. Ale nie ma chyba takiej potrzeby bo raz uruchomiony AS jak go szlag nie trafi z powodu hardware’u lub awarii prądu działa sobie kilka(naście?) lat :)