Our connected world …

January 12th, 2010

Nostalgija

November 11th, 2009

Nešto sam u tom raspoloženju ovih dana. To me je i nateralo da napišem ovaj blog. Posmatram okolo kako se neke stvari rade i ne sviđa mi se. Mislim tu pre svega na činjenicu da se danas svako naziva sistem administratorom. Sad svako može da kaže da zna da instalira Linux operativni sistem, i on je odmah sistem admin. To me podseća na davno prošlo vreme kada je ista situacija bila sa Winblows-om i ljudima koji su za sebe govorili da su administratori samo zato što su znali da instaliraju Winblows NT. Tome je naravno mnogo doprinela popularizacija Linux-a, i drastično pojednostavljeni procesi instalacije, manipulacije paketima, daleko većim brojem developer-a koji prave raznorazne GUI-e itd. Lepo je sve to, što neko sada zna da uz nekoliko click-ova instalira Linux operativni sistem, ali to ne znači da je taj neko sada i admin.

Linux/UNIX оperativnim sistemima se bavim nekih 15-tak godina. Vrlo dobro se sećam kada se 1 (jedan) server pripremao po nekoliko dana. Izvlačio se maksimum iz svakog delića mašine i njenih resursa. Svojevremeno smo se utrkivali ko će bolje da optimizuje kernel, da static kernel bude ispod 220kb (da kilobajta), primenjivali su se različiti security patchevi, … Danas, više ni ne znaju koliko megabajta je kernel. Optimizovao se svaki servis koji pruža ta mašina, koristile su se specijalne biblioteke, različite vrste configure opcija, svaki servis bio je chroot-ovan ili jail-ovan, particije su kreirane po svakom servisu, pisani su vrlo kvalitetni firewall-ovi specifični za servise, sistem se bre znao u “prste”, znao sam kako “diše” server. Testirao se svaki servis da bi se izabrao odgovarajući daemon koji će isti vršiti, znalo se da se sendmail odmah menja sa qmail-om, postfix-om … Znalo se da na mašini ne sme biti suid-a, radio se checksum fajlova, primenjivali su se specijalni kontrolni moduli za bolju kontrolu sistema,… Pratile su se mailing liste za svaki servis koji se koristi na sistemu, od developer do user grupa. Drugim rečima iskorišćenje sistema bilo je maksimalno a security je bio na zavidnom nivou, naravno ne savršen ali prokleto dobar. Rezultat? Uptime na serverima po 2-3 godine, nikad haknuti (bar ne da smo znali :) ) ali šta su te 486-ice, prvi Pentium-i, SUN-ovi i SGi-evi gurali tada, kad bi neko pravio poređenje … ehhh, ta nostalgija.

A danas? Danas se jako slabo ceni takva optimizacija, a opet svi viču “virtuelizuj! konsoliduj! optimizuj!”. Po meni je to paradox. Zapošljavaju se tzv. administratori koji su radili par meseci sa linux-0m i koji misle da znaju šta znači postaviti, podesiti, optimizovati i obezbediti neki servis ili server. I onda se poredi ko je uradio više po tome koliki je broj servera ili servisa instaliran i podešen za XYZ vremena. Štancuju se virtuelne mašine, da ne kažem kloniraju, kao tobože se vrši konsolidacija i iskorišćenje resursa, a da ti ljudi ni ne znaju kako to funkcioniše jer svo vreme koriste GUI. Naravno današnji multi core procesori i nikad jeftinija memorija će gurati i žvakati takve by-default instalirane sisteme, ali gde je tu kvalitet? Kad se pomene exploit(i), ovi tzv. admin-i ne znaju ni šta je to, a kamoli kako isti funkcionišu, što se njih tiče, dovoljno je postaviti par linija u hosts.(deny|allow) ili eventualno podići default SLES/RH/CentOS firewall i to je to, što se bezbednosti tiče. Tužno, ali istinito. Moram naravno da se složim sa činjenicom da je sada mnogo jednostavnije koristiti Linux i generalno UNIX, ali to ne znači da svako može sebi da okači titulu linux/unix sistem administratora samo zato što je par puta instalirao isti.

Luka Gerzic Linux/BSD, Lično, Razno , , ,

ibm skraćenice – terminologija

October 22nd, 2009

IBM je poznat po tome da poseduje svoju terminologiju i skraćenice za iste stvari za koje drugi proizvođači koriste standardne nazive. Ovo je (delimični) spisak tih skraćenica koji ću vremenom proširivati kako mi koja skraćenica “padne pod ruku”. Deo skraćenica nije IBM-ov ali ih isti često koristi pa su i one navedene.

  • AIX – Advanced Interactive Executive (IBM’s implementation of the UNIX Operating System)
  • DASD – Direct Access Storage Device. (IBM’s term for a hard disk)
  • DDM – Disk Drive Module (IBM’s term for a hard disk)
  • RISC – Reduced Instruction Set Computer
  • HMC – Hardware Management Console
  • SPNC – System Power Control Network
  • MCM – Multi Chip Module
  • DCM – Dual Chip Module
  • CEC – Central Electronic Complex
  • CPC – Cluster Processor Complex
  • ASMI – Advanced System Management Interface
  • WebSM – Web based System Manager
  • PPAR – Physical Partition
  • LPAR – Logical Partition
  • LIC – Licensed Internal Code
  • LMB – Logical Memory Block
  • DLPAR – Dynamic Logical Partitioning
  • WPAR – Workload Partition
  • NIM – Network Installation Manager
  • BOS – Base Operating System
  • POST – Power on Self Test
  • SMIT – System Management Interface Tool
  • LPP – Licensed Program Products
  • ODM – Object Data Manager
  • RSPC – PowerPC Reference Platform
  • CHRP – Common Hardware Reference Platform
  • BLV – Boot Logical Volume
  • LVM – Logical Volume Manager
  • VGDA – Volume Group Descriptor Area
  • VGSA – Volume Group Status Area
  • LVCB – Logical Volume Control Block
  • HACMP – High Availability Cluster Multi-Processing
  • MWC – Mirror Write Consistency
  • SRC – System Resource Controller
  • NDAF – Network Data Facillity
  • LMT – Lightweight Memory Trace
  • RTEC – Real Time Error Checking
  • VMM – Virtual Memory Manager
  • IPC – Inter Process Communication
  • PSMD – Page Size Management Daemon
  • MPIO – Multi Path IO
  • PCM – Path Control Module
  • FFDC – First Failure Data Capture
  • HPM – Hardware Performance Monitor
  • PURR – Processor Utilization Resource Register
  • SPURR – Scaled Processor Utilization Resource Register
  • MLS – Multi Level Security (Trusted AIX)
  • APAR – Authorized Program Analysis Report
  • CKD – Count Key Data (zSeries)
  • DFSMS – Data Facility Storage Management System
  • ESCON – Enterprise System Connection
  • EPO – Emergency Power Off
  • FICON – Fibre Channel Connection
  • FC-AL – Fibre Channel Arbitrated Loop
  • FRU – Field Replaceable Unit
  • GDPS – Geographically Dispersed Parallel Sysplex
  • HCD – Hardware Configuration Data
  • IML – Initial Microcode Load
  • IPL – Initial Program Load
  • LSS – Logical Sub System
  • MAP – maintenance analysis procedure
  • MLC – Machine Level Control
  • MRPD – Machine Reported Product Data
  • MES – miscellaneous equipment specification
  • MTBF – mean time between failures
  • SDD – Subsystem Multipathing Device Driver
  • VPD – Vital Product Data
  • WWNP – worldwide port name
  • WWNN – worldwide node name

Luka Gerzic AIX, IBM P Serija, Storage , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

lquerypv disk info

October 21st, 2009

Standardna komanda pod AIX-om ili VIOS-om da bi videli PVID je lspv i ona daje sledeći output:

# lspv
hdisk0          00c4a37f807b71bf                    rootvg          active
hdisk1          00c4a37f068cab36                    dvg             active
hdisk2          00c4a38f49fe2904                    bvg             active
hdisk3          00c4a37f4d58c8d7                    bvg             active

# lspv hdisk0
PHYSICAL VOLUME:    hdisk0                   VOLUME GROUP:     rootvg
PV IDENTIFIER:      00c4a37f807b71bf VG IDENTIFIER     00c4a37f00004c000000012385c79fec
PV STATE:           active                                     
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            64 megabyte(s)           LOGICAL VOLUMES:  10
TOTAL PPs:          799 (51136 megabytes)    VG DESCRIPTORS:   2
FREE PPs:           174 (11136 megabytes)    HOT SPARE:        no
USED PPs:           625 (40000 megabytes)    MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  14..00..00..00..160                        
USED DISTRIBUTION:  146..160..159..160..00

Istu informaciju možemo dobiti i preko ODM-a:

# odmget -q "name=hdisk0" CuAt
CuAt:
 name = "hdisk0"
 attribute = "unique_id"
 value = "3520200B75M0861101407210790003IBMfcp05VDASD03AIXvscsi"
 type = "R"
 generic = ""
 rep = "n"
 nls_index = 0

CuAt:
 name = "hdisk0"
 attribute = "pvid"
 value = "00c4a37f807b71bf0000000000000000"
 type = "R"
 generic = "D"
 rep = "s"
 nls_index = 11

Ili preko lsattr-a:

# lsattr -El hdisk0
PCM             PCM/friend/vscsi                 Path Control Module        False
algorithm       fail_over                        Algorithm                  True
hcheck_cmd      test_unit_rdy                    Health Check Command       True
hcheck_interval 0                                Health Check Interval      True
hcheck_mode     nonactive                        Health Check Mode          True
max_transfer    0x40000                          Maximum TRANSFER Size      True
pvid            00c4a37f807b71bf0000000000000000 Physical volume identifier False
queue_depth     3                                Queue DEPTH                True
reserve_policy  no_reserve                       Reserve Policy             True

Ali postoji i jedna nedokumentovana komanda koja će isčitati informaciju direktno sa fizičkog diska:

# lquerypv -h /dev/hdisk0
00000000   C9C2D4C1 00000000 00000000 00000000  |................|
00000010   00000000 00000000 00000000 00000000  |................|
00000020   00000000 00000000 00000000 00000000  |................|
00000030   00000000 00000000 00000000 00000000  |................|
00000040   00000000 00000000 00000000 00000000  |................|
00000050   00000000 00000000 00000000 00000000  |................|
00000060   00000000 00000000 00000000 00000000  |................|
00000070   00000000 00000000 00000000 00000000  |................|
00000080   00C4A37F 807B71BF 00000000 00000000  |.....{q.........|
00000090   00000000 00000000 00000000 00000000  |................|
000000A0   00000000 00000000 00000000 00000000  |................|
000000B0   00000000 00000000 00000000 00000000  |................|
000000C0   00000000 00000000 00000000 00000000  |................|
000000D0   00000000 00000000 00000000 00000000  |................|
000000E0   00000000 00000000 00000000 00000000  |................|
000000F0   00000000 00000000 00000000 00000000  |................|

Sa parametrima 80 10 možemo dobiti samo deo sa PVID-em:

# lquerypv -h /dev/hdisk0 80 10
00000080   00C4A37F 807B71BF 00000000 00000000  |.....{q.........|
#

Komanda lquerypv može biti zgodna ako želite da uporedite da li vam se slažu PVID-evi na VIOS-u i na samom host-u kome ste dodelili diskove preko VIOS-a. To bi UVEK trebalo da budu isti PVID-evi, međutim može da se desi da isti budu različiti (što nije dobro), a još gore je ako vam ova komanda ne vraća ništa, jer ako lquerypv ne može da pročita informaciju sa diska nijedan drugi program neće moći. Ova komanda nije dokumentovana od strane IBM-a i nepostoji manual za nju, ali ona standardno dolazi uz AIX.

Luka Gerzic AIX , , , ,

IBM DS8700

October 19th, 2009

IBM forum 2009 koji se održao danas u hotelu Hyatt Regency (Beograd) prezentovan (mislim da mogu reći premijerno) novi enterprajz storage IBM DS8700. Zanimljivo je da su predviđanja iz marta 2009-te godine o kojima sam govorio u svom blog-u na temu  “DS8000 novosti za 1Q 2009” sada inkorporirane u novi DS8700 enterprajz storage. O ovome je špekulisao i The Register u julu ove godine.

Novi DS8700 dolaziće sa novim kontrolerima koji su bazirani na novim P6 procesorima (za keširanje), bržim I/O-om, disk enkripcijom ugrađenom direktno u diskove, podrškom sa SSD diskove (o čemu sam takođe govorio već). Uostalom slike uvek govore više od 100 reči. Evo slajdova sa prezentacije:

Luka Gerzic Storage , , , ,

AIX bash

October 15th, 2009

Default shell pod AIX-om ume ponekad da bude kontra produktivan, pogotovu ako ste navikli na neke prečice koje ste do sad koristili. Evo kratkog uputstva kako da namestite bash pod AIX-om.

Najbolje bi bilo da instalirate AIX Linux Toolkit koji ste dobili uz AIX, ali ako isti nemate nije problem. Pakete možete skinuti sa sledeće lokacije: ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/. Zvanični info o IBM AIX Linux Toolkit-u možete pronaći na zvaničnom IBM sajtu. Ono što nama treba su 2 paketa iz sledećih direktorijuma:

ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/bash/

ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/coreutils/

Posle instalacije RPM paketa, potrebno je izmeniti sledeće:

u direktorijumu /etc/security izmenite fajl login.cfg tako da sadrži sledeće:

default:
        sak_enabled = false
        logintimes =
        logindisable = 0
        logininterval = 0
        loginreenable = 0
        logindelay = 0

usw:
        shells = /bin/sh,/usr/bin/bash,<itd ...>
        maxlogins = 32767
        logintimeout = 60
        auth_type = STD_AUTH

Zatim izmeni shell za korisnika root (ili već ko želi bash shell):

# lsuser -a shell root
 root shell=/usr/bin/ksh
# chuser shell=/usr/bin/bash root 
# lsuser -a shell root
 root shell=/usr/bin/bash
# echo "alias ls='/usr/linux/bin/ls --color'" >> ~/.profile

I to je to, nameštanje prompt-a i ostalih bash zezalica prepuštam vama. Sa ovim ste dobili radni bash shell, i “obojene” direktorijume kao na linux konzoli.

Luka Gerzic AIX , , , , , ,

Preuzimanje audio kanala iz flash player-a

October 6th, 2009

Recimo da želite da “skinete” neko predavanje koje ste slušali preko web browser-a iz flash player-a (koga ja to lažem?), tj hteli ste da skinete neku pesmu koje nema na torentu a vrti se na nekom sajtu iz flash player-a (youtube/myspace/facebook?), evo kako to možete da uradite:

Ako koristite pulseaudio, onda je ovo vrlo jednostavno. Potrebno vam je nekoliko alata, prvo treba vam pactl (Control a running PulseAudio sound server), zatim pacat (Play back or record raw audio streams on a PulseAudio sound server). Prvo potrebno je da otkrijete gde je stream koji ćete maznuti:

$ pactl list | grep -A2 ‘Source #’ | grep ‘Name: .*\.monitor$’ | cut -d” ” -f2
alsa_output.pci_8086_284b_sound_card_0_alsa_playback_0.monitor

Sve što onda treba da uradite jeste da pripremite sledeću “kobaju”:

$ parec –device=alsa_output.pci_8086_284b_sound_card_0_alsa_playback_0.monitor –format=s16le –rate=44100 –channels=2 | sox –type raw -s2L –rate 44100 –channels 2 – –type wav “Ime Izvođača – Neka pesma.wav”

Pustite audio/video zapis u vašem browser-u i okinite komandu iznad. Kad se audio/video zapis završi prekinite gornju komandu sa CTRL+C. Dobićete u radnom direktorijumu nekompresovani raw wav fajl koji možete kompresovati u mp3 na sledeći način:

$ lame -b 256 “Ime Izvođača – Neka pesma.wav” “Ime Izvođača – Neka pesma.mp3″
LAME 3.98 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 19383 Hz – 19916 Hz
Encoding Ime Izvođača – Neka pesma.wav to Ime Izvođača – Neka pesma.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (5.5x) 256 kbps qval=3
Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
10633/10633 (100%)|    0:14/    0:14|    0:15/    0:15|   18.921x|    0:00
———————————————————————————————————————————————————————————–
kbps        LR    MS  %     long switch short %
256.0       53.0  47.0        95.7   2.7   1.7
Writing LAME Tag…done
ReplayGain: -2.5dB

I to je to. Dobili ste mp3 fajl u istom radnom direktorijumu. Uživajte.

Luka Gerzic Linux/BSD, Razno , , , , , , , ,

AIX saveti – zamena za lsof

October 1st, 2009

Kako pronaći koji proces na AIX OS-u vam koristi koji mrežni port. Odgovor na ovo pitanje može biti krajnje jednostavno ako imate lsof, međutim ako nemate, onda postoje dva načina kako to možete saznati:

1. Lakši način – netstat + rmsock

# netstat -Aan | grep 33028
f100060000fa4398 tcp        0      0  *.33028    *.*      LISTEN
#
# rmsock f100060000fa4398 tcpcb
The socket 0xfa4008 is being held by proccess 274506 (java).
#
# ps -ef | grep 274506
 root 274506 159876   0   Sep 21      - 26:29 /usr/java14/.private142/jre/bin/java -Xquickstart -Xmx512m -Xms16m -Xmine4m -DMessageLang=C -Ddisplay=SRV-TEST:0.0 -DWINDOWID= -DWEBSM_ALL_PERMISSIONS_FOR_SECURE=true com.ibm.websm.refresh.WSMRefreshServer
#
#

2. Teži način – netstat + kdb

# netstat -Aan | grep 33028
f100060000fa4398 tcp        0      0  *.33028    *.*     LISTEN
# kdb
The specified kernel file is a 64-bit kernel.
Preserving 1414199 bytes of symbol table
First symbol __mulh
 START              END <name>
0000000000001000 0000000003E0C050 start+000FD8
F00000002FF47600 F00000002FFDC940 __ublock+000000
000000002FF22FF4 000000002FF22FF8 environ+000000
000000002FF22FF8 000000002FF22FFC errno+000000
F100070F00000000 F100070F10000000 pvproc+000000
F100070F10000000 F100070F18000000 pvthread+000000
PFT:
PVT:
id....................0002
raddr.....000000000071D000 eaddr.....F200800023000000
size..............00080000 align.............00001000
valid..1 ros....0 fixlmb.1 seg....0 wimg...2
(0)>
(0)> sockinfo f100060000fa4398 tcpcb
---- TCPCB ----(@ F100060000FA4398)----
 seg_next......@F100060000FA4398  seg_prev......@F100060000FA4398  
 t_softerror... 00000000 t_state....... 00000001 (LISTEN)
 t_timer....... 00000000 (TCPT_REXMT)
 t_timer....... 00000000 (TCPT_PERSIST)
 t_timer....... 00000000 (TCPT_KEEP)
 t_timer....... 00000000 (TCPT_2MSL)
 t_rxtshift.... 00000000 t_rxtcur...... 00000006 t_dupacks..... 00000000
 t_maxseg...... 000005A8 t_force....... 00000000
 t_flags....... 00000020 (RFC1323|COPYFLAGS)
 t_oobflags.... 00000000 ()
 t_template....@0000000000000000  t_inpcb.......@F100060000FA4290  
 t_iobc........ 00000000 t_timestamp... B1E72C01 snd_una....... 00000000
 snd_nxt....... 00000000 snd_up........ 00000000 snd_wl1....... 00000000
 snd_wl2....... 00000000 iss........... 00000000
 snd_wnd....... 0000000000000000 rcv_wnd....... 0000000000000000
 rcv_nxt....... 00000000 rcv_up........ 00000000 irs........... 00000000
 snd_wnd_scale. 00000000 rcv_wnd_scale. 00000000 req_scale_sent 00000000
 req_scale_rcvd 00000000 last_ack_sent. 00000000 timestamp_rec. 00000000
 timestamp_age. 00000046 rcv_adv....... 00000000 snd_max....... 00000000
 snd_cwnd...... 000000003FFFC000        snd_ssthresh.. 000000003FFFC000
 t_idle........ 00000046 t_rtt......... 00000000 t_rtseq....... 00000000
 t_srtt........ 00000000 t_rttvar...... 00000006 t_rttmin...... 00000002
 max_rcvd...... 0000000000000000        max_sndwnd.... 0000000000000000
 t_peermaxseg.. 000005A8 snd_in_pipe... 00000000
 sack_data.....@0000000000000000         snd_recover... 00000000
 snd_high...... 00000000 snd_ecn_max... 00000000 snd_ecn_clear. 00000000
 t_splice_with.@0000000000000000         t_splice_flags 00000000 

-------- TCB --------- INPCB  INFO ----(@ F100060000FA4290)----
 next........@0000000000000000  prev........@0000000000000000  
 head........@00000000041DCE00  faddr_6.....@F100060000FA42B0  
 iflowinfo... 00000000 fport....... 00000000 fatype...... 00000000
 oflowinfo... 00000000 lport....... 00008104 latype...... 00000000
 laddr_6.....@F100060000FA42C8  socket......@F100060000FA4008  
 ppcb........@F100060000FA4398  route_6.....@F100060000FA42E8  
 ifa.........@0000000000000000  flags....... 00000C00
 proto....... 00000000 tos......... 00000000 ttl......... 0000003C
 rcvttl...... 00000000 rcvif.......@0000000000000000  
 options.....@0000000000000000  refcnt...... 00000000
 lock........ 0000000000000000  rc_lock..... 0000000000000000
 moptions....@0000000000000000  hash.next...@F10001001669FF98  
 hash.prev...@F10001001669FF98  timewait.nxt@0000000000000000  
 timewait.prv@0000000000000000  inp_v6opts  @0000000000000000  
 inp_pmtu....@0000000000000000  

---- SOCKET INFO ----(@ F100060000FA4008)----
 type........ 0001 (STREAM)
 opts........ FFFF8006 (ACCEPTCONN|REUSEADDR|AUDIT)
 linger...... 0000 state....... 0080 (PRIV)
 pcb.....@F100060000FA4290  proto...@00000000041D1678  
 lock....@F1000600004176C0  head....@0000000000000000  
 q0......@0000000000000000  q.......@0000000000000000  
 q0len....... 0000 qlen........ 0000 qlimit...... 0032
 timeo....... 0000 error....... 0000 special..... 0E08
 pgid.... 0000000000000000  oobmark. 0000000000000000 

snd:cc...... 0000000000000000  hiwat... 0000000000040000
 mbcnt... 0000000000000000  mbmax... 0000000000100000
 lowat... 0000000000001000  mb......@0000000000000000  
 sel.....@0000000000000000  events...... 0000
 iodone.. 00000000          ioargs..@0000000000000000  
 lastpkt.@0000000000000000  wakeone. FFFFFFFFFFFFFFFF
 timer...@0000000000000000  timeo... 00000000
 flags....... 0000 ()
 wakeup.. 00000000          wakearg.@0000000000000000  
 lockwtg. FFFFFFFFFFFFFFFF 

MBUF LIST

rcv:cc...... 0000000000000000  hiwat... 0000000000040000
 mbcnt... 0000000000000000  mbmax... 0000000000100000
 lowat... 0000000000000001  mb......@0000000000000000  
 sel.....@0000000000000000  events...... 0000
 iodone.. 00000000          ioargs..@0000000000000000  
 lastpkt.@0000000000000000  wakeone. FFFFFFFFFFFFFFFF
 timer...@0000000000000000  timeo... 00000000
 flags....... 0000 ()
 wakeup.. 00000000          wakearg.@0000000000000000  
 lockwtg. FFFFFFFFFFFFFFFF 

MBUF LIST

 tpcb....@0000000000000000  fdev_ch.@0000000000000000  
 sec_info@0000000000000000  qos.....@0000000000000000  
 gidlist.@0000000000000000  private.@0000000000000000  
 uid..... 00000000 bufsize. 00000000 threadcnt00000000
 nextfree@0000000000000000  
 siguid.. 00000000 sigeuid. 00000000 sigpriv. 00000000
 sndtime. 0000000000000000  sec  0000000000000000  usec
 rcvtime. 0000000000000000  sec  0000000000000000  usec
 saioq...@0000000000000000  saioqhd.@0000000000000000  
 accept.. 00000000000E90F5  frcatime 00000000
 isnoflgs 00000000 ()       
 rcvlen.. 0000000000000000  frcaback@0000000000000000  
 frcassoc@0000000000000000  frcabckt 0000000000000000
 iodone.. 00000000          iodonefl 00000000 ()
 ioarg...@0000000000000000  refcnt.. 0000000000000001
 trclev........... 0001 

proc/fd:  67/44
proc/fd: fd: 44
 SLOT NAME     STATE      PID    PPID          ADSPACE  CL #THS

pvproc+010C00   67*java     ACTIVE 004304A 0027084 00000000304D0400   0 0011

(0)> hcal 004304A
Value hexa: 0004304A          Value decimal: 274506
(0)>
(0)> quit
#
# ps -ef | grep 274506
 root 274506 159876   1   Sep 21      - 26:27 /usr/java14/.private142/jre/bin/java -Xquickstart -Xmx512m -Xms16m -Xmine4m -DMessageLang=C -Ddisplay=SRV-TEST:0.0 -DWINDOWID= -DWEBSM_ALL_PERMISSIONS_FOR_SECURE=true com.ibm.websm.refresh.WSMRefreshServer
#
#

Luka Gerzic AIX , , ,

sms zavrzlame

September 29th, 2009

Naslov ovog teksta apsolutno nema veze sa SMS (Short Message Service) vašeg vam omiljenog GSM operatera, ako ste to pomislili, već sa M$ Winbows Systems Management Server klijent software-om.

Pre nekog vremena primetio sam da mi u regularnim intervalima ceo notebook “štucne” na par sekundi i onda se vrati u normalu kao da se ništa nije dogodilo. S obzirom da koristim linux kao main os, počeo sam da kopam po mašini ne bi li našao šta me to smara. Prvo naravno provera top-a, procesori slobodni, memorije nije da ima u izobilju ali je ima dovoljno, swap skoro da ga i ne koristim. Hmmm da vidimo šta radi disk. vmstat je odmah pokazao da se tu dešava nešto čudno:

Neobični upisi na disk od stane neke aplikacije u regularnim intervalima, gde se dešavalo da upis bude i po nekoliko desetina megabajta, prilično me je zaintrigiralo. S obzirom da sam našao šta kuca mašinu (prvo što sam bio pomislio bio je da neka aplikacija “kuca” procesor a ne disk), krenuo sam da čeprkam. Trebalo je naći koji proces od svih procesa na mašini ima potrebu da se igra sa diskom na ovako surov način. Idealan alat za to bio je iotop koji vam može prikazati koji proces radi šta sa diskom. I odmah se pokazalo:

Eh sad, vbox kod mene vrti Winblows XP korporativni (AD+Exchange stuff) na kome nema apsolutno ništa od software-a osim Outlook-a. Na samom WinXP-u, prva pomisao je da je virtuelna mašina iz nekog razloga ostala bez (1Gb) slobodne memorije pa ciklično swap-uje po disku. Međutim to nije bio slučaj. Da bih video koji proces pod Winblows-om kida disk, upotrebio sam jedan od besplatnih i veoma korisnih alata za uvid rad Winblows sistema. Sysinternals Process Explorer je odličan program i odmah je prikazao gde je problem:

Pošto ja nisam neki stručnjak za Winblows niti isti koristim za bilo šta osim za igranje i poneki email, raspitao sam se kod mojih kolega koji znaju dosta na tu temu. Procesi msiexec.exe startovan od stane  Winblows SMS je software-a gura zakrpe i programe mašinama koje su pod AD-om, po potrebi kada to administratori AD-a žele. Par trikova na AD-u, gpupdate /force i nekoliko restart-a kasnije problem je bio idalje tu. Međutim po savetu kolege posle brisanja \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CcmExec segmenta iz registry-a i opet restart-a, problem je prestao. Ako ne možete da se igrate sa registryem postoji i ručna privremena varijanta:

X:\WINXP\system32>sc stop ccmexec

SERVICE_NAME: ccmexec
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0×0)
SERVICE_EXIT_CODE : 0 (0×0)
CHECKPOINT : 0×0
WAIT_HINT : 0×0

Odmah da se ogradim. Ovakva akcija brisanja i zaustavljanja ovog servisa možda neće biti dobrodošla u vašem okruženju i pod polisama koje vi imate. Međutim ako imate ok admin-e koji imaju poverenja u to šta radite sa vašom radnom stanicom onda možete da primenite ovo što sam gore pomenuo kako vam mašina ne bi štucala s vremena na vreme. Naravno ovako nešto nećete ni primetiti ako niste pod AD-om.

Luka Gerzic Linux/BSD, Razno , , , , , , , , ,

Red Hat 5.4

September 5th, 2009

Izašla je nova verzija popularnog Red Hat Enterprise Linux 5.4 . Glavna novina u novoj verziji je svakako implementirana podrška Kernel-based Virtual Machine (KVM) hipervizora na x86_64 platformi. KVM je čedo Izraelske kompanije Qumranet koju je kasnije kupio Red Hat. Popularnost KVM-a drastično je porasla od momenta kad je isti postao integralni deo Linux Kernel-a, što se dogodilo od verzije Linux Kernel-a 2.6.20. KVM podržava kako Intel VT tehnologiju tako i AMD-V i trenutno su podržane Linux i FreeBSD host platforme. U ovom momentu KVM dolazi kao kernel modul, međutim najavljeno je da će isti uskoro dobiti svoju sopstvenu syscall funkciju direktno unutar samog Linux kernel-a. Iako je KVM prevashodno fokusiran na x86 platformu, trenutno se rade portovi za S390, PowerPC i IA64 platforme. Sam po sebi KVM ne vrši emulaciju, već user-space program koristi /dev/kvm interfejs kako bi podesio adresni prostor za guest operativni sistem što je jedan od razloga njegove uske povezanosti sa QEMU-om. KVM je integralni deo Linux Kernel-a i nije ga moguće koristiti u paru sa XEN virtuelizacijom, i za jedan i za drugi morate koristiti poseban kernel. KVM virtuelizacija omogućava i 32 i 64 bitne verzije guest operativnog sistema bez ikakvih modifikacija nad istim u isto vreme. Od novina tu je i USB passtrough, međutim RH to smatra Technology Preview (TP) opcijom.

U novoj verziji izmene su usledile na etherboot paketu koji je dodat uz ovaj update, a omogućiće vam podizanje guest virtuelnih mašina preko Preboot eXecution Environment (PXE) protokola. Sam proces se odvija pre nego što je sam operativni sistem učitan tako da u određenim situacijama sam operativni sistem nema saznanja da je podignut preko PXE-a. Etherboot je limitiran na upotrebu uz KVM. Od novina tu je podrška za fencing (fencing je diskonektovanje nod-a sa klasterovanig zajedničkog storage-a, prilikom rada u klaster režimu) za IBM Power seriju koja je dodata, ali kao TP opcija za sve LPAR-e koji se kontrolišu preko HMC-a. Dodata je i podrška za Generic Receive Offload (GRO) i u samom kernelu i u userspace-u tj u alatu ethtool. GRO bi trebao da smanji opterećenje CPU-a prilikom dolazećih mrežnih konekcija i time poboljša performanse prilikom heavy duty saobraćaja. GRO koristi identičan princip rada kao i Large Receive Offload (LRO) sistem ali može biti primenjen na širi opseg transport protokola. Pored toga GRO podrška je pridodata i drajverima nekih popularnih mrežnih adaptera (npr. Intel Gigabit Ethernet Adapter). Još od 2007-e pominju se drastična poboljšanja prilikom korišćenja ove tehnike.

RH 5.4 u segmentu podrške fajl sistemima donosi nekoliko značajnih novina. RH sada sadrži i FUSE (Filesystem in Userspace) kernel module i korisničke alate, što omogućuje korisnicima da instaliraju sopstveni FUSE fajl sistem na RH kernelu. Pored toga dodata je podrška za XFS fajl sistem ali u TP modu. Ažuriran je CIFS (čitaj ispravljeni bug-ovi) a novina je i ext4 koji je takođe u TP modu.

Sve u svemu dosta novina, naravno i novih grešaka koje su se “provukle”. Kao što se vidi iz novina i izmena koje je RH uveo, očigledno je da se sve okreće ka i oko virtuelizacije, grid i cloud computeing-u, a na nama je da to sve probamo, testiramo i implementiramo.

Luka Gerzic Linux/BSD , , , , , , , ,