Tuesday 8 September 2015

Lync Server Installation Error: Prerequisite installation failed: Wmf2008R2

Trying to Install Lync 2010 on Server 2008 R2 SP1, the installation failed with the following error while adding the first Lync Server Components:

Update: I Initially published this post in March, when I first encountered this issue.
My workaround was to rename the files names as you can see below if you read further.

The official workaround for this issue has been released in Microsoft KB2522454. To sum it up, you should run the following command before installing Lync and reboot:

%systemroot%\system32\dism.exe /online /add-package /packagepath:%windir%\servicing\Packages\Microsoft-Windows-Media-Format-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.mum /ignorecheck

You can read further on if you wish….

It appears as if that file:
“C:\Windows\servicing\Packages\Microsoft-Windows-Media-Format-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum”
Cannot be found.
I looked for that file. It’s no where to be found. But it looks like it has a different version:

I copied the file name mentioned in the error message, changed both file names (both .cat and .mum, didn’t know if they need each other during installation) and tried installing again.

That Solved the problem:

I changed back the file names to their original names and restated the server – everything works fine.

 

Friday 4 September 2015

Shell Scripting - echo statement printing

#!/bin/bash

##Purpose: Just printing the echo statements

##Author: Ankam Ravi Kumar

##4th,SEP 2015

 

echo "WEL COME TO $USER"

echo "Your present working directory is `pwd`"

echo "current logged in users are `who`"

echo "Today date is `date`"

 

a simple echo script, echo will print the content what we have mentioned in the “quotations”

Shell Script - Which value is greater than

#!/bin/bash

##Purpose: Comparing the values which one is greater than.

##AUTHOR: Ankam Ravi Kumar

##4th, SEP, 2015

 

echo "enter the a vlaue $a"

read a

echo "enter the b value $b"

read b

if test "$a" -gt "$b" ; then

        echo "$a is greater than $b"

else

echo "$b is greater than $a"

fi

 


Explanation: which value is grater than, in above collecting two values and comparing both the values using ‘–ge’ which value is greater then. –ge = Greater than

Shell Scripting - Addition given values

 

#!/bin/bash

echo "addition of X+Y"                 #it will print addition of X+Y line

echo "Enter X Value"                    #it will print Enter X value (you have to enter some value here

read X                                       #whatever the Value you enter above it will store as temp string

echo "Enter Y Value"                    #it will print Enter Y value (you have to enter some value here

read Y                                       #whatever the Value you enter for Y it will store as temp string

echo "X+Y = $X+$Y = $[ X+Y ]"    #Now we are auditioning X value and Y value you have provided

 

Explanation: echo will print whatever you write within the quotation marks. read means whatever the value you enter it will store that value, when you call that string it will print the stored value, in above script asking to enter some value as X and Y then we are addition both the values using '+'.

Grub.conf File Explanation

#vim /boot/grub/grub.conf


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,2)
#          kernel /vmlinuz-version ro root=/dev/sda5
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
      root (hd0,2)
      kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
      initrd /initrd-2.6.18-8.el5.img


root (hd0,2) :- in this line root means root file system is loaded in hd0. hd0 is a HDD name u have more HDDs if  you have another os also in that specify the hdd name and change the default booting os. 2 means second hard drive.

Default=0 :- means if you have multiple OS you can change the boot priority here.

Timeout=5 :- means if you not press any button within 5 seconds it will boot the default OS. If you want increase or decrease the time here.

Hiddenmenu :- means if you want display the how many OS i have  in hdd on booting time without pressing any key just put the ‘#’ before hiddenmenu.
Ex:- #hiddenmenu 

Tittle Red hat Enterprises Linux :- it will display the name of the server. On booting time if you want specify the name to this server change the name.

Kernel means the kernel 2.6.18.8.el5 is loaded under /boot/vmlinuz

In this 2.6.18.-8.el5 means :- if you have 2 other then intel we can install the operating syste. 6=even number (stable) if you have odd number (bita one) if you a stable operating system you will get the support from red hat people. 18=patches or added in to this. 8=bugs rectifications el5=enterprises version 5.

Linux Boot Process

POST :- Power on self-test.
BIOS :- Basic input output system
MBR & GRUB will load
 
In MBR
Boot loader program
446 bytes
Partition table
64 bytes
Active sign
2 bytes
 
In GRUB three stages are there
 
1). Stage 1 :- The duty of stage 1 is to identify where is the stage 2 is located.
 
2). Stage 1.5 :- The duty of  stage 1.5 is to synchronize with deferent file systems.
                        LBA= Logical Block Addressing
At the tome of booting the BIOS can't identify more then 1024 cylinders.
Means (1Cylinder=7.8MB). Old BIOS is not identify if boot partition is more then 1024 cylinders.
 
3). Stage 2 :- It will list out the available operating systems and it will boot with the default operating system.
 
Then the kernel will load the kernel will findout the devices and it will load the drivers for the device.

·  initialize devices
·  (optionally loads initrd, see below)
·  mounts root file system
  • specified by lilo or loadin with root= parameter
  • kernel prints: VFS: Mounted root (ext2 filesystem) readonly.
·  runs /sbin/init which is process number 1 (PID=1)
  • init prints: INIT: version 2.76 booting
  • can be changed with boot= parameter to lilo, eg boot=/bin/sh can be useful to rescue a system which is having trouble boot
Then init (parent) /etc/inittab file it will check for which run level it want load.
INIT (initialize the RAM Disk) :-
Allows setup to be performed before root FS is mounted
  • lilo or loadlin loads ram disk image
  • kernel runs /linuxrc
    • load modules
    • initialise devices
    • /linuxrc exits
  • "real" root is mounted
  • kernel runs /sbin/init
Run LEVEL
·  0 halt
·  1 single user
·  2 multiple user without network in CLI
  • 3 multiple users with network in CLI. (The Consoles are run on "mingetty" programe).
  • 4  undefined runlevel.
·  5 X11 only (0 or 1 text console)
·  6 Reboot
The Linux server is started.
 
 

Thursday 3 September 2015

Switchover Snapmirror - Change Source as Destination and Destination as Source - Netapp Notes NCDA

 

Switch-over your snapmirror procedure, changing your snapmirror source as destination and destination as source, without re-initializing the snapmirror.

PRE SWITCHOVER

Before switching over the snapmirror you have ensure that both filers are doing good.

>sysstat -x 1    
Monitor filer CPU utilization for ten minutes no more processes are hiking the CPU

>snapmirror status
 snapmirror status to check all the snapmirror relationships are in idle state

Take all the required information before switching over the snapmirror
>lun show
>lun show -m
>vol status
>vol status -s
>vol status -f
>igroup show
>sysconfig -a
>fcadmin config

by capturing all the above information, later an if anything goes wrong you can verify the before and after configuration status.

SWITCHOVER ACTIVITY

Take the confirmation from all the application and database teams to be stop, all the database activities and applications.

After stopping all the traffic to the Netapp Filer in source. Replicate the last update using below command. Run the below command in destination.

>snapmirror update -S Source:SrcVolume1 DstVolume1

After completion of last update then break the snapmirror

>snapmirror quiesce Volume1


snapmirror will be quiesced ...

>snapmirror break Volume1

This above command will break the snapmirror relationship between source and destination. After completion of break destination volumes will come to write mode.

Repeat above steps for all the Volumes....

completion of snapmirror break, collect all the snapshot list from source and destination.

>snap list

Verify the Zoning in Destination location, because we have to map all the LUN's to bring back the Databases and application in Destination.

now map all the LUN's to servers in Destination using below commands.

>lun map <LUN PATH> <iGroup Name>

map all the LUN's to appropriate igroups

Then comment all the snapmirror schedules in source using # mark in front of the line.

>wrfile /etc/snapmirror.conf
#filer:volume filer1:volume - 40 * * * *

CTRL+C


 Now write the snapmirror schedule in Destination filer.

>wrfile /etc/snapmirror.conf
filer:volume filer1:volume 40 * * * *

CTRL+C

resync from the source to change source and destination

>snapmirror resync -S Destination:DstVolume1 Source:SrcVolume1

after completion of resync update the snapmirror relationship again and again few times, then clean up the old snapshots from source.

Note: Do not delete the snapshots which are in existing relationship

>snap delete -V SrcVolume1 snapshotname

then release the snapmirror from previous destination filer
>snapmirror release DstVolume Source:SrcVolume

now verify the snapmirror status

>snapmirror status

Please provide your valuable comments............

 
 
 

monitor system performance"CPU","MEMORY",FILESYSTEM"

Monitor Your CPU, MEMORY and File System

#!/bin/bash
#This script will be used  to monitor system performance"CPU","MEMORY",FILESYSTEM"
#> $LOG
LOG="/tmp/monitor_txt.log"
if [ $# -eq 0 ]
then
MONITOR_MEM ()
{
DATE=`date +%c`
FREE=`free -m  | awk -F' ' '/Mem/{printf "Mem used: %.0f% \nMem free: %.0f%\n", $3/$2*100, $4/$2*100}'`
echo "------------------------------------------------------------------------------------------------------" |tee -a $LOG
echo "Memory,CPU,Filesystem usage at : $DATE" |tee -a $LOG
echo $FREE  |tee -a $LOG
}

MONITOR_CPU ()
{
TOTAL_CPU=100
DATE=`date +%c`
FREE=`top -b -n1 | grep ^Cpu | awk -F ',' '{print $4}' | cut -d'%' -f1|cut -d'.' -f1`
USED=`expr $TOTAL_CPU - $FREE`
echo -e "CPU Used:\t $USED%" |tee -a $LOG
}

MONITOR_FILESYTM ()
{
ALERT=85
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom|boot' | awk '{ print $5 " " $6 " " $1 }' | while read output;
do
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge $ALERT ]; then
echo -e "Team,Following Partition Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |tee -a $LOG
else
echo " Filesystem Status is normal " |tee -a $LOG
fi
done
}

MAIN ()
{
VAR=0
LIMIT=1440
while [ "$VAR" -le "$LIMIT" ]
do
MONITOR_MEM
if [ $? -eq 0 ]
then
MONITOR_CPU
if [ $? -eq 0 ]
then
MONITOR_FILESYTM
VAR=`expr $VAR + 1`
sleep 6
fi
fi
done
}

if [ `whoami` == `users|awk '{print $1}'` ]
then
MAIN
fi
fi