Nostalgija
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.
ibm skraćenice – terminologija
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
lquerypv disk info
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.
IBM DS8700
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:
AIX bash
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.
Preuzimanje audio kanala iz flash player-a
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.
AIX saveti – zamena za lsof
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 # #
sms zavrzlame
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.
Red Hat 5.4
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.




