wtorek, 24 sierpnia 2010

Instalacja i konfiguracja EMC Virtual Storage Integrator

EMC Virtual Storage Integrator służy do monitoringu/ zarządzania macierzą EMC z poziomu Vmware vSphere.

Procedura instalacji:

+ ściągamy z serwisu powerlink.emc.com źródła appliance „Solution Enabler”.

+ Importujemy appliance przez File> Deploy OFV template wskazując ściągniętą i

+ rozpakowaną paczkę z appliance Solution Enablera.

+ Konfigurujemy appliance : nadajemy hasło dla usera seconfig, adresację IP.

+ Logujemy się do appliance przez przeglądarkę: https://ip:5480

+ Podajemy klucz licencyjny – jest to tzw. Klucz freeware – do ściągnięcia w pdf z strony powerlinka.

+ Wybieramy opcję „Discover CLARiiON” i podajemy adresy IP SP oraz użytkownika i hasło.
- Konfigurujemy opcję „Nethost settings” podając w formacie
nodename: computername.domainname
Users: username

Na komputerze na którym mamy zainstalowanego klienta vSphere instalujemy „EMC Virtual Storage Integrator for vSphere Client”

Jeżeli jest załączony musimy wyłączyć i włączyć ponownie vSphere client.
W plug-ins > manage plug-ins wybieramy zainstalowany plugin EMC VSI.

Do zmiennych systemowych dopisujemy SYMCLI_CONNECT_TYPE=remote

W Home > EMC storage podajemy adres IP appliance z Solution Enablera i wybieramy opcję „Test connection” i jeżeli wszystko działa „Save Connection”

wtorek, 4 maja 2010

TSM - problemy z ORPHANS

Po przypadkowym usunięciu volumenu z discpooli występują problemy z tzw. osieroconymi bitami( brak odzwierciedlenia tego co jest w bazie z tym co jest na volumenach).

Historia:

Administrator ADMIN issued command: QUERY ACTLOG search=orphan

Administrator IBM_SERVICE issued command: REPAIR ORPHANS reset

Administrator IBM_SERVICE issued command: REPAIR ORPHANS repair

AUDIT VOLUME f:\TSM\DISKPOOL\DISK2.dsm fix=yes

AUDIT VOLUME f:\TSM\DISKPOOL\DISK3.dsm fix=yes

AUDIT VOLUME f:\TSM\DISKPOOL\DISK4.dsm fix=yes

....

QUERY CONTENT F:\TSM\DISKPOOL\DISK2.DSM





UPDATE SCRIPT MAINTENANCE_PLAN "/* EXP_INV_START */" LINE=800



...

DELETE OBJECT 25666578



....

REGISTER ADMIN IBM_SERVICE ?***?

GRANT AUTHORITY IBM_SERVICE classes=system





....

z usera IBM_SERVICE



REPAIR ORPHANS scan

REPAIR ORPHANS reset

REPAIR ORPHANS repair

QUERY ACTLOG search=orphan









....

sprawdzanie zajętrosci w db2



z

"C:\Program Files\Tivoli\TSM\db2\BIN\"

"C:\Program Files\Tivoli\TSM\db2\BIN\DB2CMD.exe" DB2SETCP.BAT DB2.EXE



db2 => connect to tsmdb1



db2 => select * from tsmdb1.bv_master_supernode



MSNID CAPACITY

----------- -----------

3311 268435455

52 262143999

53 262143999

3312 268435455

3313 268435455

3865 134217727



Wybrano 6 rekordów.







db2 => select count(*) from tsmdb1.ds_segments where volid=2



1

-----------

18908



Wybrano 1 rekordów.



db2 => select count(*) from tsmdb1.ds_overflow where volid=2



1

-----------

47805



Wybrano 1 rekordów.



=========================================================================================================





As per my discussion with the developer involved, we would like to take a look at the aggregates that have the error.



So for each of these aggregates, do the following. Since you got an error on 18984687, I'll use that as an example:

1) show aggr 0 18984687

2) show bfo 18984687

The volume or volumes displayed at the end of this output is the most interesting part.



3) From a DB2 CLP session, connect to the database, and set the schema, then run the following SQL queries

a) db2 select bfid, poolid, numsegs, deleted from df_bitfiles

b) db2 select bfid, poolid, numsegs, deleted from af_bitfiles

c) db2 select bfid, superbfid from bf_aggregated_bitfiles where superbfid=18984687

d) db2 select superbfid from bf_aggregate_attributes where superbfid=18984687





The above step is an example, you will have to run these steps for the following aggregates values which I extracted for the last actlog you provided on 22nd April.

aggregate 20839005

aggregate 17882363

aggregate 17883214

aggregate 18984687

aggregate 24711315

aggregate 25018525

aggregate 25684545

aggregate 25686837

aggregate 15214541

aggregate 19026749

aggregate 19809140

aggregate 27393788

aggregate 18452031

aggregate 18452822

aggregate 19359395

aggregate 19366237

aggregate 19358395

aggregate 19359395

aggregate 18747979

aggregate 18748235

aggregate 19510353



After we have the above outputs, we'll figure out the next step.





=================================================================


Do wykonania sql'i DB2 wykonałem polecenia:

C:\Program Files\Tivoli\TSM\db2\BIN>db2 -r c:\sel1.txt -tf c:\options.log



W pliku c:\options.log
----------------
!db2start;
connect to tsmdb1;
select bfid, poolid, numsegs, deleted from tsmdb1.df_bitfiles;
terminate;
----------------


Na potrzeby analizy środowiska powstało kilka skryptów:

=============
Wyświetla informacje o bitach DF
begining: tsmDFbitfile.cmd
=============


REM #

rem #######CONFIGURATION##################################################

rem #

rem #

rem #ustawiam zmienna nazwy pliku

for /f "Tokens=1-4 Delims=- " %%i in ('date /t') do (

set dt=%%i-%%j-%%k

)





rem #"C:\Program Files\Tivoli\TSM\baclient\dsmadmc.exe" -se=10.101.110.150 -id=admin

rem # Application path

set APPPATH="%ProgramFiles%\Tivoli\TSM\baclient\dsmadmc.exe"

rem # Application path dir

set APPPATHDIR="%ProgramFiles%\Tivoli\TSM\baclient\"

rem

rem Application options

set APPOPT=-se=10.10.10.150 -id=admin -password=*****

rem #0

rem # Filename for show aggr

set S=K:\%dt%S.txt

rem #

rem #1

rem # Filename for show bfo

set bfo=K:\%dt%bfo.txt

rem #

rem #5 Filename with printable report

set REPORTPRINT=K:\%dt%REPORTPRINT.txt

rem #





rem #End of configuration. Do not edit lines below.

rem ######################################################################







for %%z in (18984687 17882363 17883214 24711315 25018525 25684545 25686837 15214541 19026749 19809140 27393788 18452031 18452822 19359395 19366237 19358395 19359395 18747979 18748235 19510353) do (

rem #0 Do show aggr for specified id's

cd %APPPATHDIR%

%APPPATH% %APPOPT% -outfile=%S% show aggr 0 %%z

type %S% >> %REPORTPRINT%



rem #1 Do show bfo for specified id's

cd %APPPATHDIR%

%APPPATH% %APPOPT% -outfile=%bfo% show bfo %%z

type %bfo% >> %REPORTPRINT%





)



rem join files to output print file

rem type %SCHEDULE% >> %REPORTPRINT%

rem print /D:\\spoler01\c099 %REPORTPRINT%

notepad.exe %REPORTPRINT%



rem delete all tmp files

del %S% %REPORTPRINT% %SCHEDULE% %tmp%\%dt%yesterday.txt


=============
end: tsmDFbitfile.cmd
=============


=============
begining: DB2DFbitfile.cmd
=============


REM script to report some important administrative

rem #######CONFIGURATION##################################################

rem #

rem #

rem #ustawiam zmienna nazwy pliku

for /f "Tokens=1-4 Delims=- " %%i in ('date /t') do (

set dt=%%i-%%j-%%k

)





rem #" db2cmd -c -w -i db2 -td@ -fInputFile

rem # Application path

set APPPATH="%ProgramFiles%\Tivoli\TSM\db2\BIN\DB2cmd.exe" -c -w -i DB2SETCP.BAT db2.exe

rem # Application path dir

set APPPATHDIR="%ProgramFiles%\Tivoli\TSM\db2\BIN\"

rem

rem #0

rem # Filename for select statement1

set S=F:\DVD\%dt%S.txt

rem #

rem #1

rem # Filename for select statement2

set ss=F:\DVD\%dt%ss.txt

rem #

rem #5 Filename with printable report1

set REPORTPRINT1=F:\DVD\%dt%REPORTPRINT1.txt

rem #5 Filename with printable report2

set REPORTPRINT2=F:\DVD\%dt%REPORTPRINT2.txt

rem #





rem #End of configuration. Do not edit lines below.

rem ######################################################################







for %%z in (18984687 17882363 17883214 24711315 25018525 25684545 25686837 15214541 19026749 19809140 27393788 18452031 18452822 19359395 19366237 19358395 19359395 18747979 18748235 19510353) do (

rem #0 Do select1 for specified id's

cd %APPPATHDIR%

echo !db2start;> f:\dvd\options.txt

echo connect to tsmdb1;>> f:\dvd\options.txt

echo select bfid, superbfid from tsmdb1.bf_aggregated_bitfiles where superbfid=%%z;
>> f:\dvd\options.txt


echo terminate;>> f:\dvd\options.txt

%APPPATH% -r %s% -tf f:\dvd\options.txt

type %s% >> %REPORTPRINT1%

rm %s%

rem #1 Do select2 for specified id's

cd %APPPATHDIR%

echo !db2start;> f:\dvd\options2.txt

echo connect to tsmdb1;>> f:\dvd\options2.txt

echo select superbfid from tsmdb1.bf_aggregate_attributes where superbfid=%%z;
>> f:\dvd\options2.txt


echo terminate;>> f:\dvd\options2.txt

%APPPATH% -r %ss% -tf f:\dvd\options2.txt

type %ss% >> %REPORTPRINT2%

rm %ss%

)



rem join files to output print file

rem type %SCHEDULE% >> %REPORTPRINT%

rem print /D:\\spoler01\c099 %REPORTPRINT%

notepad.exe %REPORTPRINT1%

notepad.exe %REPORTPRINT2%

rem delete all tmp files

del %S% %ss% %REPORTPRINT1% %REPORTPRINT2% %SCHEDULE% %tmp%\%dt%yesterday.txt
=============
end: DB2DFbitfile.cmd
=============

poniedziałek, 5 kwietnia 2010

install JRE as MSI package

To find the install for tweaking:

1. Run the exe, that is it, do not click accept!

2. look in %APPDATA%\Sun\Java\jre1.6.0_11

3. Copy the files to where ever.

4. Cancel the install

5. run the newly discovered msi.

6. Test Java

7. Enjoy!

How to Manually Remove VMware Tools

Even an uninstall doesn’t always work so unfortunately you’ll have to revert to to manually removing the items from the registry and file system that are stopping a new install from taking place.

The process to resolve this is simple and the following has been taken from VMware’s Knowledge Base article here. I found that performing these steps helped resolve this problem for me.

Open the Windows Registry editor. Click Start > Run.
Type regedit press Enter.
Browse to HKLM \Software\Microsoft\Windows\CurrentVersion\uninstall. Search for the branch with a key named DisplayName and has a value of VMware Tools . Delete the branch associated with that entry. Do not delete the entire uninstall branch.
Browse to HKLM\Software\Classes\Installer\Products . Search for the branch with the key named ProductName and has a value of VMware Tools . Delete the branch associated with that entry.
Browse to HKEY_CLASSES_ROOT\Installer\Products . Search for the branch with the key named ProductName and has a value of VMware Tools . Delete the branch associated with that entry.
Browse to HKLM \Software\VMware. Delete the branch called VMware Tools .
Ensure the folder located in %ProgramFiles%\VMware\VMware Tools is deleted.
Attempt to install the new version of VMware Tools, if applicable

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1001354

UPS Powerware 5125 na linuxie - problem z instalacją.

podczas instalacji klienta UPSa powerware netwatch
instalator zgłaszał błąd wersji libc - „Your Libc version is not supported.”

Rozwiązanie
w skrypcie install.sh zmieniłem

case $7 in
2.3.)
case $7 in
2.3.0)
system=linux_i386
os_type=Linux (x86), Libc 2.3.x
;;
2.3.1)
system=linux_i386
os_type=Linux (x86), Libc 2.3.x
;;
2.3.2)
system=linux_i386
os_type=Linux (x86), Libc 2.3.x
;;
2.3.3)
system=linux_i386
os_type=Linux (x86), Libc 2.3.x
;;
)
os_type=Linux (x86), Libc 2.3.4 or higher
system=linux_el4
;;
esac
;;
2.4.)
os_type=Linux (x86), Libc 2.3.4 or higher
system=linux_el4
;;
2.4)
os_type=Linux (x86), Libc 2.3.4 or higher
system=linux_el4
;;
2.5)
os_type=Linux (x86), Libc 2.3.4 or higher
system=linux_el4
;;
2.9)
os_type=Linux (x86), Libc 2.3.4 or higher
system=linux_el4
;;
)
INSTALL_ERR_MSG=
INSTALL_ERR_MSG= Your Libc version is not supported.
;;
esac
Po dodaniu weryfikacji biblioteki w wersji 2.9* - instalator poprawnie przechodzi dalej.

Jak wyświetlić ukryte/usunięte urządzenia systemowe w windows

W cmd wpisujemy zmienną DEVMGR_SHOW_NONPRESENT_DEVICES=1
Następnie w menarzerze urządzeń usuwamy wyszarzone nieistniejące już urządzenia.

vSphere 4.0 skrypty administracyjne

Wiele ciekawych skryptów pomagających w administracji środowiskiem vmware można zlaleźć tu:
http://engineering.ucsb.edu/~duonglt/vmware/

niedziela, 31 stycznia 2010

Debian - Konfiguracja UPSa ORVALDI

Poniżej przedstawiono procedurę instalacji i konfiguracji oprogramowania do obsługi UPSa ORVALDI.
Procedura będzie wyglądać identycznie dla innych UPSów, jednak należało będzie wybrać odpowiedni sterownik podczas konfiguracji.
Producent (www.orvaldi.com) zaleca użycie swojego oprogramowania, jednak nie działa ono prawidłowo. Możemy jednak wykorzystać oprogramowanie NUT - Network UPS Tools - dostępne na stronie http://www.networkupstools.org/.
W dystrybucji debiana zadbano jednak o przygotowania odpowiednich pakietów deb, dlatego instalacja sprowadza się do zaznaczenia pakietu do instalacji i konfiguracji.
A więc po koleji:
sudo apt-get install nut

Następnie sprawdzamy czy podczas instalacji został utworzony użytkownik i grupa nut.
Jeżeli tak to przechodzimy do kolejnego kroku, tworzymy plik konfiguracyjny /etc/nut/ups.conf
#/etc/nut/ups.conf
[ORVALDI]
driver = megatec
port = /dev/ttyS0


Jeżeli UPS podpięty jest pod port COM2 należy wybrać /dev/ttyS1.
Pełna lista wspieranych urządzeń znajdziemy tu:
NUT hardware compatibility list

Następnie tworzymy plik /etc/udev/rules.d/99_nut-serialups.rules

# /etc/udev/rules.d/99_nut-serialups.rules
KERNEL=="ttyS0", GROUP="nut"


i wykonujemy zlecenia aby zastosować zmiany :

sudo udevadm control --reload_rules
sudo udevadm trigger


Wywołanie tych zleceń spowoduje ustawienie odpowiednich uprawnień do urządzenia dla usera nut.
W następnym kroku sprawdzamy czy nut poprawnie komunikuje się z UPSem. Powinniśmy otrzymać komunikat podobny do tego:

sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools 2.2.2 - Megatec protocol driver 1.5.14 [megatec]
Carlos Rodrigues (c) 2003-2008

Megatec protocol UPS detected.


W dalszej części wykonujemy konfigurację upsd oraz upsmon.
Tworzymy pliki konfiguracyjne:

# /etc/nut/upsd.conf
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all


# /etc/nut/upsd.users
[local_mon]
password = PASSWORD_HERE
allowfrom = localhost
upsmon master


# /etc/nut/upsmon.conf
MONITOR ORVALDI@localhost 1 local_mon PASSWORD_HERE master
MINSUPPLIES 1
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYCMD /sbin/upssched


gdzie ORVALDI to wcześniej wybrana nazna UPSa a local_mon to nazwa użytkownika. Pamiętaj o użycju silnego hasła w przypadku wykorzystania komputera z podłączonym UPSem jako shutdown servera.
Ze względów bezpieczeństwa tylko root i user nut powinni mieć możliwość czytania plików konfiguracyjnych ponieważ jest w nich zapisane hasło!.
Ustawiamy zatem odpowiednie uprawnienia do plików w katalogu /etc/nut

sudo chown root:nut /etc/nut/*
sudo chmod 640 /etc/nut/*


Na sam koniec modyfikujemy ustawienia domyślne tak aby upsd oraz upsmon uruchamiały się podczas startu systemu.

# /etc/default/nut
START_UPSD=yes
START_UPSMON=yes


I startujemy serwis

sudo /etc/init.d/nut start

Możemy sprawdzić statystyki naszego UPSa wydając zlecenie:

upsc ORVALDI
battery.charge: 92.5
battery.voltage: 13.40
battery.voltage.nominal: 12.0
driver.name: megatec
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.5.14
input.frequency: 50.1
input.frequency.nominal: 50.0
input.voltage: 221.6
input.voltage.fault: 221.6
input.voltage.maximum: 224.0
input.voltage.minimum: 215.0
input.voltage.nominal: 230.0
output.voltage: 227.8
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 50.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0
ups.type: standby


W domyślnej konfiguracji upsmon będzie zatrzymywał system w sytuacji gdy UPS wyśle sygnał Low batery. Jeżeli jednak chcemy aby pozostałe monitorowane stacje wyłączyły się np po 5 minutach od zaniku zasilania należy dodatkowo zainteresować się upssched.conf

/ etc/nut/upssched.conf
CMDSCRIPT /usr/local/bin/upssched-cmd
PIPEFN /var/run/upssched/upssched.pipe
LOCKFN /var/run/upssched/upssched.lock

AT ONBATT * START-TIMER early-shutdown 30
AT LOWBATT * START-TIMER early-shutdown 30
AT ONLINE * CANCEL-TIMER resume
AT ONLINE * EXECUTE resume
AT FSD * EXECUTE forced-shutdown


Po skonfigurowaniu upssched.conf musimy stworzyć skrypt upssched-cmd który zajmie się zamknięciem systemu po określonym czasie lub przerwie zamykanie gdy powróci zasilanie.
skrypt upssched-cmd wygląda następująco:


# /usr/local/bin/upssched-cmd
#!/bin/bash
# time in minutes
time=5
case "${1}" in
early-shutdown)
logger -t upssched-cmd "Early Shutdown"
shutdown -h +$time powerevent
;;
resume)
logger -t upssched-cmd "Resume"
[ -f /var/run/shutdown.pid ] && shutdown -c || exit 0
;;
forced-shutdown)
logger -t upssched-cmd "Forced Shutdown"
shutdown -h +$time powerevent-forced
;;
*)
logger -t upssched-cmd "Unknown command: ${1}"
;;
esac


Aby wszystko działało poprawnie należy jeszcze w BIOSie komputera ustawić aby startował po awarii zasilania, wtedy po powrocie zasilania system zacznie startować.