New header for novell.com

Novell released a preview for the new header for there website novell.com

Take a sneek preview at http://www.novell.com/headerpreview/

I think this header is more simple and easier to access than the previous one. Personally I have a  bookmark to the CoolSolutions site of Novell. I try to read this site ones a week.
When I’m on a public PC I don’t have my bookmark and I’m not the best in remember URL’s. So then I have to go to the novell.com website and look it up in the menu.
I always have to take a good look to find the link in the menu. This is now easier for me. So… Lucky me! 🙂

Script for rescanning new (virtual) disk in Linux

I ran into a problem that I wanted to add a new virtual disk to a Linux virtual machine without rebooting the virtual machine. I Googled around and found this scripted from Kurt Garloff.

I tested the scripted and I got the new SCSI disk without rebooting.

Just to make sure that I always have access to the scripted I post it in this blog.

#!/bin/bash
# Skript to rescan SCSI bus, using the
# scsi add-single-device mechanism
# (w) 1998-03-19 Kurt Garloff (c) GNU GPL
# (w) 2003-07-16 Kurt Garloff (c) GNU GPL
# $Id: rescan-scsi-bus.sh,v 1.15 2004/05/08 14:47:13 garloff Exp $

setcolor ()
{
red=”e[0;31m”
green=”e[0;32m”
yellow=”e[0;33m”
norm=”e[0;0m”
}

unsetcolor ()
{
red=””; green=””
yellow=””; norm=””
}

# Return hosts. sysfs must be mounted
findhosts_26 ()
{
hosts=
if ! ls /sys/class/scsi_host/host* >/dev/null 2>&1; then
echo “No SCSI host adapters found in sysfs”
exit 1;
#hosts=” 0″
#return
fi
for hostdir in /sys/class/scsi_host/host*; do
hostno=${hostdir#/sys/class/scsi_host/host}
hostname=`cat $hostdir/proc_name`
hosts=”$hosts $hostno”
echo “Host adapter $hostno ($hostname) found.”
done
}

# Return hosts. /proc/scsi/HOSTADAPTER/? must exist
findhosts ()
{
hosts=
for driverdir in /proc/scsi/*; do
driver=${driverdir#/proc/scsi/}
if test $driver = scsi -o $driver = sg -o $driver = dummy -o $driver = device_info; then continue; fi
for hostdir in $driverdir/*; do
name=${hostdir#/proc/scsi/*/}
if test $name = add_map -o $name = map -o $name = mod_parm; then continue; fi
num=$name
driverinfo=$driver
if test -r $hostdir/status; then
num=$(printf ‘%dn’ `sed -n ‘s/SCSI host number://p’ $hostdir/status`)
driverinfo=”$driver:$name”
fi
hosts=”$hosts $num”
echo “Host adapter $num ($driverinfo) found.”
done
done
}

# Test if SCSI device $host $channen $id $lun exists
# Outputs description from /proc/scsi/scsi, returns new
testexist ()
{
grepstr=”scsi$host Channel: 0*$channel Id: 0*$id Lun: 0*$lun”
new=`cat /proc/scsi/scsi | grep -e”$grepstr”`
if test ! -z “$new”; then
cat /proc/scsi/scsi | grep -e”$grepstr”
cat /proc/scsi/scsi | grep -A2 -e”$grepstr” | tail -n2 | pr -o4 -l1
fi
}

# Perform search (scan $host)
dosearch ()
{
for channel in $channelsearch; do
for id in $idsearch; do
for lun in $lunsearch; do
new=
devnr=”$host $channel $id $lun”
echo “Scanning for device $devnr …”
printf “${yellow}OLD: $norm”
testexist
if test ! -z “$remove” -a ! -z “$new”; then
# Device exists and we’re in remove mode, so remove and readd
echo “scsi remove-single-device $devnr” >/proc/scsi/scsi
echo “scsi add-single-device $devnr” >/proc/scsi/scsi
printf “rx1b[Ax1b[Ax1b[A${yellow}OLD: $norm”
testexist
if test -z “$new”; then
printf “r${red}DEL: $normrnnnn”; let rmvd+=1;
fi
fi
if test -z “$new”; then
# Device does not exist, try to add
printf “r${green}NEW: $norm”
echo “scsi add-single-device $devnr” >/proc/scsi/scsi
testexist
if test -z “$new”; then
# Device not present
printf “rx1b[A”;
# Optimization: if lun==0, stop here (only if in non-remove mode)
if test $lun = 0 -a -z “$remove” -a $optscan = 1; then
break;
fi
else
let found+=1;
fi
fi
done
done
done
}

# main
if test @$1 = @–help -o @$1 = @-h -o @$1 = @-?; then
echo “Usage: rescan-scsi-bus.sh [options] [host [host …]]”
echo “Options:”
echo ” -l activates scanning for LUNs 0-7 [default: 0]”
echo ” -w scan for target device IDs 0 .. 15 [default: 0-7]”
echo ” -c enables scanning of channels 0 1 [default: 0]”
echo ” -r enables removing of devices [default: disabled]”
echo “–remove: same as -r”
echo “–nooptscan: don’t stop looking for LUNs is 0 is not found”
echo “–color: use coloured prefixes OLD/NEW/DEL”
echo “–hosts=LIST: Scan only host(s) in LIST”
echo “–channels=LIST: Scan only channel(s) in LIST”
echo “–ids=LIST: Scan only target ID(s) in LIST”
echo “–luns=LIST: Scan only lun(s) in LIST”
echo ” Host numbers may thus be specified either directly on cmd line (deprecated) or”
echo ” or with the –hosts=LIST parameter (recommended).”
echo “LIST: A[-B][,C[-D]]… is a comma separated list of single values and ranges”
echo ” (No spaces allowed.)”
exit 0
fi

expandlist ()
{
list=$1
result=””
first=${list%%,*}
rest=${list#*,}
while test ! -z “$first”; do
beg=${first%%-*};
if test “$beg” = “$first”; then
result=”$result $beg”;
else
end=${first#*-}
result=”$result `seq $beg $end`”
fi
test “$rest” = “$first” && rest=””
first=${rest%%,*}
rest=${rest#*,}
done
echo $result
}

if test ! -d /proc/scsi/; then
echo “Error: SCSI subsystem not active”
exit 1
fi

# defaults
unsetcolor
lunsearch=”0″
idsearch=`seq 0 7`
channelsearch=”0″
remove=””
optscan=1
if test -d /sys/class/scsi_host; then
findhosts_26
else
findhosts
fi

# Scan options
opt=”$1″
while test ! -z “$opt” -a -z “${opt##-*}”; do
opt=${opt#-}
case “$opt” in
l) lunsearch=`seq 0 7` ;;
w) idsearch=`seq 0 15` ;;
c) channelsearch=”0 1″ ;;
r) remove=1 ;;
-remove) remove=1 ;;
-hosts=*) arg=${opt#-hosts=}; hosts=`expandlist $arg` ;;
-channels=*) arg=${opt#-channels=};channelsearch=`expandlist $arg` ;;
-ids=*) arg=${opt#-ids=}; idsearch=`expandlist $arg` ;;
-luns=*) arg=${opt#-luns=}; lunsearch=`expandlist $arg` ;;
-color) setcolor ;;
-nooptscan) optscan=0 ;;
*) echo “Unknown option -$opt !” ;;
esac
shift
opt=”$1″
done

# Hosts given ?
if test “@$1” != “@”; then
hosts=$*;
fi

echo “Scanning hosts $hosts channels $channelsearch for ”
echo ” SCSI target IDs ” $idsearch “, LUNs ” $lunsearch
test -z “$remove” || echo ” and remove devices that have disappeared”
declare -i found=0
declare -i rmvd=0
for host in $hosts; do
dosearch;
done
echo “$found new device(s) found. ”
echo “$rmvd device(s) removed. ”

Remove stuck snapshot through Storage VMotion

A customer of mine had a virtual machine with a stuck snapshot. When you looked in the snapshot manager you wouldn’t see a snapshot. But when you looked on the file system through the Service Console, you would see that there was a so called delta file witch indicates that there is a snapshot active.
Later on I discovered you could also see this when you look at the properties of the disk in the vSphere client.

So than the question was how to merge this snapshot without loosing data?

While thinking about this question, I saw a note of mine how Storage VMotion works.

  1. First all the files except the vmdk files are copied to the new location of the Virtual Machine
  2. The content of the vmdk (not the vmdk itself) is copied to the new location. All the changes during this copy is kept in a bitmap.
  3. When the first copy is finished vSphere looks at the size of the bitmap file. If this file is to large step 2 is repeated.
  4. If the bitmap file is small enough, vSphere does a quick suspsend-resume action. This means that the Virtual Machine is suspended, all the remaining files are copied to the new location and the machine is resumed again from the new location.
  5. The final step that the ‘old’ location is cleaned-up.

The trick is in step 2. Not the vmdk is copied to the new location but the content. So Storage VMotion merged the to original vmdk and delta file together for me.

Brainshare 2010 is comming to Amsterdam!

The rumor was around for a while but Novell official announced it through the newsletter of december.
Brainshare EMEA is in Amsterdam. The date is: 18 until 21 of May.

So you know where I will be!

NEW! Certified Novell ZENworks Administartor

Novell introduces the Certified Novell ZENworks Administrator (CZNA) available from november 2009. The CZNA will include the N3098 and N8004.

The are the test objectives:
1. Describe ZENworks Configuration Management System
2. Describe the ZENworks 10 Configuration Management Architecture
3. Describe ZENworks 10 Configuration Management Services
4. Review Novell ZENworks 10 Configuration Management Requirements
5. Perform a Standard Installation of ZENworks 10 Configuration Management
6. Access ZENworks 10 Configuration Management Tools
7. Configure User Sources
8. Describe the Registration Process
9. Modify the Device Naming Template Used During Registration
10. Discover Network Devices
11. Deploy the ZENworks Adaptive Agent
12. Describe ZENworks Remote Management
13. Set Up Remote Management
14. Manage Remote Sessions
15. Describe ZENworks Remote Management Security Issues
16. Describe and Use ZENworks Software Packaging
17. Describe the Basic Concepts of Bundling
18. Create Bundles
19. Configure Action Sets and Actions
20. Manage Bundles
21. Manage Bundles Using the ZENworks Adaptive Agent
22. Describe ZENworks Configuration Management Policies
23. Create Policies
24. Manage Policies
25. Manage Policy Groups
26. Manage Folders
27. Describe Preboot Services
28. Set Up Preboot Services and Imaging
29. Configure and Use Imaging
30. Describe Inventory Services
31. Scan Managed Devices
32. Scan Inventory-Only Devices
33. Scan Demographic Data
34. Manage and Run Asset Inventory Reports
35. Evaluate Your Knowledge of ZENworks 10 Configuration Management Terms and Concepts
36. Describe the Service Oriented Architecture
37. Implement System Update
38. Implement Services Oriented Architecture Best Practices
39. Perform Pre-Migration Tasks
40. Migrate Data from ZENworks Desktop Management to ZENworks 10 Configuration Management
41. Implement Migration Best Practices
42. Describe the Registration Process
43. Describe Registration Methods
44. Configure Zone Registration Settings
45. Manage Registration from the Command Line
46. Implement Registration Best Practices
47. Implement Device Discovery Using CSV Files
48. Evaluate Your Knowledge of Bundle Components and Terms
49. Describe How Bundles Work
50. Describe How Microsoft Installer Works
51. Evaluate Your Fundamental Policy Knowledge
52. Describe How Policies Work
53. Describe Administrative Template Files
54. Secure Your Workstations with Policies
55. Implement Policies Using the zman Command
56. Implement Policy Best Practices
57. Customize Inventory
58. Configure Local Products
59. Create Custom Reports
60. Modify Preboot Services
61. Configure Image Safe Data
62. Describe Patch Management
63. Configure Patch Management
64. Describe ZENworks Asset Management 10
65. Implement Software Usage Reports
66. Establish Mailbox Security

You can take a ‘normal’ test at Pearson VUE