SAN multipathing in OS X 10.5 Leopard

Hello,
Would anyone be so kind as to clarify for me the multipathing support for FC SAN connections in OS X Leopard both server and workstation? Is there support natively or do I need to purchase an extra tool like Xsan?
I would like to connect a number of MacPros to a FC SAN and would like them all to be multipathed. Each MacPro has 10.5.6 and an Apple dual port FC HBA fitted. They are connected to a NetApp FAS3040 SAN via a set of Brocade switches. If I connect them up multipathed "as-is", each LUN appears in the Disk Utility multiple times just as if there was no multipathing software configured. What do I need in order to set up the multipaths so that each LUN only appears once?
Many thanks,
Richard.

You are quite right, it does "just work", but it appears to work in a different way from most other implementations.
I have found through experimentation that when multiple paths are presented to the same disk array controller port, then OS X does indeed multipath the LUNs. But when multiple paths are presented that go through different controller ports, then the LUN appears once for each controller port. So if you have connected in 2 controller ports, the LUN appears twice, 3 controller ports, you get 3 LUNS etc. Therefore, it looks like OS X virtualises the target and not the LUN.
This is very irritating, to multipath correctly in OS X, this means that the disk array you buy has to support controller virtualisation. The NetApp ones do through the "Single Image" mode where all controllers appear as 1 device (a single WWN). It would be good if OS X virtualised the LUN like most other multipathing solutions.

Similar Messages

  • SAN design : core edge and dual-homing access switch

    Hello all.
    It may sound as a dumb question (from a LAN guy) but when designing a core/edge or edge/ecore/edge design, why do we connect access switches to both core switches ? Doesn't it break the isolation of a dual fabric backbone ?
    If an access switch fails the fault (bug or anything else) will propagate to both core switches ? Am I wrong ?
    Example :
    http://www.cisco.com/en/US/prod/collateral/modules/ps5991/prod_white_paper0900aecd8044c807_ps5990_Products_White_Paper.html
    or from netrworkers sessions in 2006

    Answer also from LAN guy,
    Most likely this design diagram is due to assumption that there is no use of VSANs and SAN Multipathing drivers in host.
    Following is excerpt from same like yo posted.
    "SAN designs should always use two isolated fabrics  for high availability, with both hosts and storage connecting to both  fabrics. Multipathing software should be deployed on the hosts to manage  connectivity between the host and storage so that I/O uses both paths,  and there is non-disruptive failover between fabrics in the event of a  problem in one fabric. Fabric isolation can be achieved using either  VSANs, or dual physical switches. Both provide separation of fabric  services, although it could be argued that multiple physical fabrics  provide increased physical protection (e.g. protection against a  sprinkler head failing above a switch) and protection against equipment  failure. "

  • How to configure or remove LUN's?

    a set of three OVM servers as 1 manager and two servers using SAN multipathing
    SAN team assigned 3 new LUN's to my Oracle VM servers release 2.2.2
    I went through the bellow in the first server and every thing went fine and I got to view the new added disks in # ls -l /dev/disk/by-id and # ls -l /dev/mpath/
    # rescan-scsi-bus.sh _##the contents of this script is in the end of this page_
    # mkfs.ocfs2 -N 8 -T datafiles /dev/mapper/mpath## (to creating cluster file system)
    # /opt/ovs-agent-latest/utils/repos.py –n /dev/mapper/mpath## ( to add new multipath disk to storage pool)
    # /opt/ovs-agent-latest/utils/repos.py –l (confirmed adding the disk)
    then,, while doing the same to the other server and after running rescan-scsi-bus.sh script! I couldn't view the LUN's under# ls -l /dev/mpath/ but they were there in # ls -l /dev/disk/by-id as following
    lrwxrwxrwx 1 root root 10 Mar 24 13:41 scsi-360060e80054834000000483400009609 -> ../../sdgj
    lrwxrwxrwx 1 root root 10 Mar 24 13:41 scsi-360060e8005483400000048340000960a -> ../../sdgk
    lrwxrwxrwx 1 root root 10 Mar 24 13:41 scsi-360060e8005483400000048340000960b -> ../../sdgl
    Now am stuck in the middle as I couldn't go forward to do the same i did to the first server and also couldn't delete those newly added LUN's from the second server
    ===================================================================================================
    #cat rescan-scsi-bus.sh
    #!/bin/bash
    # Skript to rescan SCSI bus, using the
    # scsi add-single-device mechanism
    # (c) 1998--2008 Kurt Garloff <[email protected]>, GNU GPL v2 or later
    # (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later
    # $Id: rescan-scsi-bus.sh-1.29,v 1.1 2009/03/12 11:03:19 dhorak Exp $
    setcolor ()
    red="\e[0;31m"
    green="\e[0;32m"
    yellow="\e[0;33m"
    bold="\e[0;1m"
    norm="\e[0;0m"
    unsetcolor ()
    red=""; green=""
    yellow=""; norm=""
    # Return hosts. sysfs must be mounted
    findhosts_26 ()
    hosts=
    for hostdir in /sys/class/scsi_host/host*; do
    hostno=${hostdir#/sys/class/scsi_host/host}
    if [ -f $hostdir/isp_name ] ; then
    hostname="qla2xxx"
    elif [ -f $hostdir/lpfc_drvr_version ] ; then
    hostname="lpfc"
    else
    hostname=`cat $hostdir/proc_name`
    fi
    hosts="$hosts $hostno"
    echo "Host adapter $hostno ($hostname) found."
    done
    if [ -z "$hosts" ] ; then
    echo "No SCSI host adapters found in sysfs"
    exit 1;
    fi
    # 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 '%d\n' `sed -n 's/SCSI host number://p' $hostdir/status`)
    driverinfo="$driver:$name"
    fi
    hosts="$hosts $num"
    echo "Host adapter $num ($driverinfo) found."
    done
    done
    printtype ()
    local type=$1
    case "$type" in
    0) echo "Direct-Access " ;;
    1) echo "Sequential-Access" ;;
    2) echo "Printer " ;;
    3) echo "Processor " ;;
    4) echo "WORM " ;;
    5) echo "CD-ROM " ;;
    6) echo "Scanner " ;;
    7) echo "Optical Device " ;;
    8) echo "Medium Changer " ;;
    9) echo "Communications " ;;
    10) echo "Unknown " ;;
    11) echo "Unknown " ;;
    12) echo "RAID " ;;
    13) echo "Enclosure " ;;
    14) echo "Direct-Access-RBC" ;;
    *) echo "Unknown " ;;
    esac
    # Get /proc/scsi/scsi info for device $host:$channel:$id:$lun
    # Optional parameter: Number of lines after first (default = 2),
    # result in SCSISTR, return code 1 means empty.
    procscsiscsi ()
    if test -z "$1"; then LN=2; else LN=$1; fi
    CHANNEL=`printf "%02i" $channel`
    ID=`printf "%02i" $id`
    LUN=`printf "%02i" $lun`
    if [ -d /sys/class/scsi_device ]; then
    SCSIPATH="/sys/class/scsi_device/${host}:${channel}:${id}:${lun}"
    if [ -d  "$SCSIPATH" ] ; then
    SCSISTR="Host: scsi${host} Channel: $CHANNEL Id: $ID Lun: $LUN"
    if [ "$LN" -gt 0 ] ; then
    IVEND=$(cat ${SCSIPATH}/device/vendor)
    IPROD=$(cat ${SCSIPATH}/device/model)
    IPREV=$(cat ${SCSIPATH}/device/rev)
    SCSIDEV=$(printf ' Vendor: %-08s Model: %-16s Rev: %-4s' "$IVEND" "$IPROD" "$IPREV")
    SCSISTR="$SCSISTR
    $SCSIDEV"
    fi
    if [ "$LN" -gt 1 ] ; then
    ILVL=$(cat ${SCSIPATH}/device/scsi_level)
    type=$(cat ${SCSIPATH}/device/type)
    ITYPE=$(printtype $type)
    SCSITMP=$(printf ' Type: %-16s ANSI SCSI revision: %02d' "$ITYPE" "$((ILVL - 1))")
    SCSISTR="$SCSISTR
    $SCSITMP"
    fi
    else
    return 1
    fi
    else
    grepstr="scsi$host Channel: $CHANNEL Id: $ID Lun: $LUN"
    SCSISTR=`cat /proc/scsi/scsi | grep -A$LN -e"$grepstr"`
    fi
    if test -z "$SCSISTR"; then return 1; else return 0; fi
    # Find sg device with 2.6 sysfs support
    sgdevice26 ()
    if test -e /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic; then
    SGDEV=`readlink /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic`
    SGDEV=`basename $SGDEV`
    else
    for SGDEV in /sys/class/scsi_generic/sg*; do
    DEV=`readlink $SGDEV/device`
    if test "${DEV##*/}" = "$host:$channel:$id:$lun"; then
    SGDEV=`basename $SGDEV`; return
    fi
    done
    SGDEV=""
    fi
    # Find sg device with 2.4 report-devs extensions
    sgdevice24 ()
    if procscsiscsi 3; then
    SGDEV=`echo "$SCSISTR" | grep 'Attached drivers:' | sed 's/^ Attached drivers: \(sg[0-9]\).*/\1/'`
    fi
    # Find sg device that belongs to SCSI device $host $channel $id $lun
    sgdevice ()
    SGDEV=
    if test -d /sys/class/scsi_device; then
    sgdevice26
    else
    DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
    repdevstat=$((1-$?))
    if [ $repdevstat = 0 ]; then
    echo "scsi report-devs 1" >/proc/scsi/scsi
    DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
    if [ $? = 1 ]; then return; fi
    fi
    if ! `echo $DRV | grep 'drivers: sg' >/dev/null`; then
    modprobe sg
    fi
    sgdevice24
    if [ $repdevstat = 0 ]; then
    echo "scsi report-devs 0" >/proc/scsi/scsi
    fi
    fi
    # Test if SCSI device is still responding to commands
    testonline ()
    : testonline
    if test ! -x /usr/bin/sg_turs; then return 0; fi
    sgdevice
    if test -z "$SGDEV"; then return 0; fi
    sg_turs /dev/$SGDEV >/dev/null 2>&1
    RC=$?
    # echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n"
    if test $RC = 1; then return $RC; fi
    # OK, device online, compare INQUIRY string
    INQ=`sg_inq $sg_len_arg /dev/$SGDEV`
    IVEND=`echo "$INQ" | grep 'Vendor identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
    IPROD=`echo "$INQ" | grep 'Product identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
    IPREV=`echo "$INQ" | grep 'Product revision level:' | sed 's/^[^:]*: \(.*\)$/\1/'`
    STR=`printf " Vendor: %-08s Model: %-16s Rev: %-4s" "$IVEND" "$IPROD" "$IPREV"`
    IPTYPE=`echo "$INQ" | sed -n 's/.* Device_type=\([0-9]*\) .*/\1/p'`
    IPQUAL=`echo "$INQ" | sed -n 's/ PQual=\([0-9]\) Device.*/\1/p'`
    if [ "$IPQUAL" != 0 ] ; then
    echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nLU not available (PQual $IPQUAL)${norm}\n\n\n"
    return 2
    fi
    TYPE=$(printtype $IPTYPE)
    procscsiscsi
    TMPSTR=`echo "$SCSISTR" | grep 'Vendor:'`
    if [ "$TMPSTR" != "$STR" ]; then
    echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${SCSISTR#* } \nto: $STR ${norm}\n\n\n"
    return 1
    fi
    TMPSTR=`echo "$SCSISTR" | sed -n 's/.*Type: *\(.*\) ANSI./\1/p'`
    if [ $TMPSTR != $TYPE ] ; then
    echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR} \nto: $TYPE ${norm}\n\n\n"
    return 1
    fi
    return $RC
    # Test if SCSI device $host $channen $id $lun exists
    # Outputs description from /proc/scsi/scsi, returns SCSISTR
    testexist ()
    : testexist
    SCSISTR=
    if procscsiscsi; then
    echo "$SCSISTR" | head -n1
    echo "$SCSISTR" | tail -n2 | pr -o4 -l1
    fi
    # Returns the list of existing channels per host
    chanlist ()
    local hcil
    local cil
    local chan
    local tmpchan
    for dev in /sys/class/scsi_device/${host}:* ; do
    [ -d $dev ] || continue;
    hcil=${dev##*/}
    cil=${hcil#*:}
    chan=${cil%%:*}
    for tmpchan in $channelsearch ; do
    if test "$chan" -eq $tmpchan ; then
    chan=
    fi
    done
    if test -n "$chan" ; then
    channelsearch="$channelsearch $chan"
    fi
    done
    # Returns the list of existing targets per host
    idlist ()
    local hcil
    local cil
    local il
    local target
    local tmpid
    for dev in /sys/class/scsi_device/${host}:${channel}:* ; do
    [ -d $dev ] || continue;
    hcil=${dev##*/}
    cil=${hcil#*:}
    il=${cil#*:}
    target=${il%%:*}
    for tmpid in $idsearch ; do
    if test "$target" -eq $tmpid ; then
    target=
    break
    fi
    done
    if test -n "$target" ; then
    idsearch="$idsearch $target"
    fi
    done
    # Returns the list of existing LUNs
    getluns ()
    if test ! -x /usr/bin/sg_luns; then return ""; fi
    sgdevice
    if test -z "$SGDEV"; then return ""; fi
    sg_luns -d /dev/$SGDEV | sed -n 's/.*lun=\(.*\)/\1/p'
    # Perform scan on a single lun
    dolunscan()
    SCSISTR=
    devnr="$host $channel $id $lun"
    echo "Scanning for device $devnr ..."
    printf "${yellow}OLD: $norm"
    testexist
    : f $remove s $SCSISTR
    if test "$remove" -a "$SCSISTR"; then
    # Device exists: Test whether it's still online
    # (testonline returns 1 if it's gone or has changed)
    testonline
    RC=$?
    if test $RC != 0 -o ! -z "$forceremove"; then
    echo -en "\r\e[A\e[A\e[A${red}REM: "
    echo "$SCSISTR" | head -n1
    echo -e "${norm}\e[B\e[B"
    if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
    echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/delete
    if test $RC -eq 1 -o $lun -eq 0 ; then
    # Try readding, should fail if device is gone
    echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan
    fi
    else
    echo "scsi remove-single-device $devnr" > /proc/scsi/scsi
    if test $RC -eq 1 -o $lun -eq 0 ; then
    # Try readding, should fail if device is gone
    echo "scsi add-single-device $devnr" > /proc/scsi/scsi
    fi
    fi
    fi
    if test $RC = 0 -o "$forcerescan" ; then
    if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
    echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/rescan
    fi
    fi
    printf "\r\x1b[A\x1b[A\x1b[A${yellow}OLD: $norm"
    testexist
    if test -z "$SCSISTR"; then
    printf "\r${red}DEL: $norm\r\n\n"
    let rmvd+=1;
    return 1
    fi
    fi
    if test -z "$SCSISTR"; then
    # Device does not exist, try to add
    printf "\r${green}NEW: $norm"
    if test -e /sys/class/scsi_host/host${host}/scan; then
    echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
    else
    echo "scsi add-single-device $devnr" > /proc/scsi/scsi
    fi
    testexist
    if test -z "$SCSISTR"; then
    # Device not present
    printf "\r\x1b[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
    # Perform report lun scan
    doreportlun()
    lun=
    SCSISTR=
    for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
    if [ -d "$dev" ]; then
    lun=${dev##*:}
    break
    else
    continue
    fi
    done
    #If not a single LUN is present then assign lun=0
    if [ -z $lun ]; then
    lun=0
    devnr="$host $channel $id $lun"
    echo "Scanning for device $devnr ..."
    printf "${yellow}OLD: $norm"
    testexist
    if test -z "$SCSISTR"; then
    # Device does not exist, try to add
    printf "\r${green}NEW: $norm"
    if test -e /sys/class/scsi_host/host${host}/scan; then
    echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
    else
    echo "scsi add-single-device $devnr" > /proc/scsi/scsi
    fi
    testexist
    if test -z "$SCSISTR"; then
    # Device not present
    printf "\r\x1b[A";
    lunsearch=
    return
    fi
    fi
    fi
    flag=0
    lun_search=" `getluns`"
    # Set flag=1 if all the LUNs are removed
    if [ "${#lun_search}" = "1" ]; then
    flag=1
    fi
    lunremove=
    # Check existing luns
    for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
    [ -d "$dev" ] || continue
    lun=${dev##*:}
    if [ "$flag" = "1" ]; then
    lunremove="$lunremove $lun"
    fi
    newsearch=
    oldsearch="$lun_search"
    for tmplun in $lun_search; do
    if test $tmplun -eq $lun ; then
    dolunscan
    else
    newsearch="$newsearch $tmplun"
    fi
    done
    if [ "${#oldsearch}" = "${#newsearch}" ] ; then
    # Stale lun
    lunremove="$lunremove $lun"
    fi
    lun_search="$newsearch"
    done
    # Add new ones and check stale ones
    for lun in $lun_search $lunremove; do
    dolunscan
    done
    # Perform search (scan $host)
    dosearch ()
    if test -z "$channelsearch" ; then
    chanlist
    fi
    for channel in $channelsearch; do
    if test -z "$idsearch" ; then
    idlist
    fi
    for id in $idsearch; do
    if test -z "$lunsearch" ; then
    doreportlun
    else
    for lun in $lunsearch; do
    dolunscan
    done
    fi
    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 " -L NUM activates scanning for LUNs 0--NUM [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 " -i issue a FibreChannel LIP reset [default: disabled]"
    echo "--remove: same as -r"
    echo "--issue-lip: same as -i"
    echo "--forcerescan: Rescan existing devices"
    echo "--forceremove: Remove and readd every device (DANGEROUS)"
    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 /sys/class/scsi_host/ -a ! -d /proc/scsi/; then
    echo "Error: SCSI subsystem not active"
    exit 1
    fi
    # Make sure sg is there
    modprobe sg >/dev/null 2>&1
    sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3)
    sg_version=${sg_version##0.}
    if [ "$sg_version" -lt 70 ] ; then
    sg_len_arg="-36"
    else
    sg_len_arg="--len=36"
    fi
    # defaults
    unsetcolor
    lunsearch=""
    idsearch=`seq 0 7`
    channelsearch=""
    remove=
    forceremove=
    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` ;;
    L) lunsearch=`seq 0 $2`; shift ;;
    w) idsearch=`seq 0 15` ;;
    c) channelsearch="0 1" ;;
    r) remove=1 ;;
    i) lipreset=1 ;;
    -remove) remove=1 ;;
    -forcerescan) remove=1; forcerescan=1 ;;
    -forceremove) remove=1; forceremove=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 ;;
    -issue-lip) lipreset=1 ;;
    *) echo "Unknown option -$opt !" ;;
    esac
    shift
    opt="$1"
    done
    # Hosts given ?
    if test "@$1" != "@"; then
    hosts=$*;
    fi
    echo "Scanning SCSI subsystem for new devices"
    test -z "$remove" || echo " and remove devices that have disappeared"
    declare -i found=0
    declare -i rmvd=0
    for host in $hosts; do
    echo -n "Scanning host $host "
    if test -e /sys/class/fc_host/host$host ; then
    if test -n "$lipreset" ; then
    echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
    fi
    echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
    channelsearch=""
    idsearch=""
    fi
    [ -n "$channelsearch" ] && echo -n "channels $channelsearch "
    echo -n "for "
    if [ -n "$idsearch" ] ; then
    echo -n " SCSI target IDs " $idsearch
    else
    echo -n " all SCSI target IDs"
    fi
    if [ -n "$lunsearch" ] ; then
    echo ", LUNs " $lunsearch
    else
    echo ", all LUNs"
    fi
    dosearch;
    done
    echo "$found new device(s) found. "
    echo "$rmvd device(s) removed. "
    ===================================================================================================
    Edited by: 923185 on Mar 25, 2012 7:54 AM

    If you cannot see the device then it is not attached or mapped by multipath.
    Are you using the same kernel on both servers?

  • Lion server file sharing issue with windows API read/write ini file (GetPrivateProfileString)

    Hello,
    I try to config lion server as file server for a windows application we use at work. All other computers are windows 7 or XP, lion server is the only mac. I choose lion server because it's size, quality and personal love of apple products.
    10.7.2 lion server's samba file sharing works almost perfectly with all my windows machines, I can copy, delete, modify any text files or office files without any issue, but the most important windows application for my business doesn't work with samba file sharing. After some digging, I found it is because windows program can't read or write INI file stored on lion share. Windows API GetPrivateProfileString always returns empty if the INI file is store on lion share.
    You can download a small application for read/write windows INI file from codeproject.com to test this problem:
    http://www.codeproject.com/KB/files/ini.aspx
    I can open/edit the in file using any text editor without any problem. The only problem is with those windows APIs. ACL is turned on for my lion share and assigned "delete" rights to samba users.
    I install samba3 on the same server; it works perfectly with windows API. My windows program also works. Looks like there is something wrong with lion server's sambax.
    I'd prefer to use built-in samba even I have samba3 working. Built-in samba is very immature right now, but considered how young it is, I will give apple some time to make it mature.
    Does anyone have same issue or knows how to fix it?
    Thanks,
    Michael.

    All the memory is fine. The server rarely if ever goes down when there are only around 10-12 users connected. When there are 20+ users connected and working heavily it goes down often. When I say working heavily, I mean they are transferring huge files to the SAN (100GB+), sometimes 5 at a time per user, and there are a bunch of others who are reading large video files at a minimum of 220MB/sec from the SAN.
    Though this worked on Snow Leopard without any issues, Lion just doesn't seem to be able to handle it. The odd thing is, on Snow Leopard there was only a single 1GB ethernet connection to a NAS system, whereas with Lion we have a much more powerful machine with a 6-port 10GB ethernet card and a 4 lane 8GB fiber card to a true SAN. You would think that the newer scenario with Lion would handle far more users with ease.
    So far, very disappointing with regards to Lion's file serving performance.

  • Lion Server File Sharing Crashes

    We have a brand new Mac Pro (12 core with 64GB of RAM) running OS X Lion Server in a corporate environment. The server is running only file sharing and software update servers, and we have around 40 users who need to be connected over AFP at all times. This company runs 24/7 and we have an XSan environment using an ATTO Celerity 8GB 4 channel fiber card (84EN) along with a 6 port 10GB Ethernet card. The Ethernet card is configured in a link aggregation bond using ports 1-4. The idea is that clients who do not have fiber cards installed on their machines can still connect to the SAN via Ethernet and this file server. They AFP connect to the share, and of course the share is the SAN. It's a single mount point and everyone has read/write access.
    The issue is that this machine keeps crashing (multiple times per day) and I cannot find any reason why. Syslog shows nothing of value and I've called into Apple Enterprise Support who also brought nothing to the table.
    We initially had SMB and AFP file sharing activated but as soon as a Windows 7 client connected the machine was brought down. So, I disabled SMB via terminal (sudo serveradmin stop smb) and deactivated it via the Server app for the share point). That at least allows the machine to be up for 4-6 hours before crashing again.
    This is seemingly the simplest of setups for file sharing and I would've thought that this beast of a machine would be able to handle being a file server without issue for far more than 40 clients. I'm seeing high CPU usage, which Apple support told me was perfectly normal (around 60% on the kernel_task process and around 55% on the AppleFileServer process). It also seems to consume all 64GB of memory, though it shows 60GB as inactive, but at the same time it's paging in and out.
    Virtually all of the clients are running Lion (10.7.4), the server itself is running 10.7.4. There are a few ethernet connected clients running 10.6 along with two running 10.5. As I mentioned I disabled SMB so there are no Windows computers connecting to this machine at this time (though it would be nice to get that functionality back if AFP can be stabilized).
    None of this makes any sense to me and I'm hoping someone can shed some light on this issue. This company simply cannot be down, especially not multiple times per day. The only way to bring things back and running from a crash is to hard boot the machine via the power button as you cannot perform a restart or a shutdown. Once the machine comes back up everything is back to working order for a few more hours until it happens again.

    All the memory is fine. The server rarely if ever goes down when there are only around 10-12 users connected. When there are 20+ users connected and working heavily it goes down often. When I say working heavily, I mean they are transferring huge files to the SAN (100GB+), sometimes 5 at a time per user, and there are a bunch of others who are reading large video files at a minimum of 220MB/sec from the SAN.
    Though this worked on Snow Leopard without any issues, Lion just doesn't seem to be able to handle it. The odd thing is, on Snow Leopard there was only a single 1GB ethernet connection to a NAS system, whereas with Lion we have a much more powerful machine with a 6-port 10GB ethernet card and a 4 lane 8GB fiber card to a true SAN. You would think that the newer scenario with Lion would handle far more users with ease.
    So far, very disappointing with regards to Lion's file serving performance.

  • [AS] Saving a file without creating an idlk file

    Hi there,
    I have an AppleScript that open an InDesign template (indt), import a XML file and then save the document to another folder than the one where the XML file and the template are living.
    The problem, and I don't see how to resolve it, is that InDesign always create a lock file (idlk) with the new document and I don't seem to find a way to close the new document.
    Here's the script:
    Translating:
    chemin_fichier_xml                           == path_to_xml_file
    chemin_gabarit_indesign                   == path_to_indesign_template
    chemin_nouveau_fichier_indesign      == path_to_new_indesign_file
    on genere_fichier_indesign(chemin_fichier_xml, chemin_gabarit_indesign, chemin_nouveau_fichier_indesign)
    tell application "Adobe InDesign CS4"
    set ce_document to open chemin_gabarit_indesign without showing window
    tell ce_document
    tell XML import preferences
    set import style to merge import
    set repeat text elements to true
    set import text into tables to true
    set import CALS tables to true
    end tell
    import XML from chemin_fichier_xml
    set le_nouveau_document to chemin_nouveau_fichier_indesign
    tell ce_document to save to le_nouveau_document with force save
    (* this will generate an error *)
    -- try
    -- close ce_document saving no
    -- close le_nouveau_document saving yes
    -- end try
    end tell
    end tell
    end genere_fichier_indesign
    TIA
    Cheers
    -Emmanuel

    Hello,
    Thanks for replying.
    I still get an idlk file and an error.
    --> Adobe InDesign CS4 got an error: Can’t get document 1 of document "Sans titre-3"
    I tried other variation:
    close file le_nouveau_document saving no
    --> Can’t get file "HD:Users:stereo:Applications:Automatisation Téléhoraires:Dossiers:InDesign - À valider:StThomasTimesJournal_20100131_1009_1_Quot.indd" of document "Sans titre-2".
    close documents saving no
    -->  Can’t get every document of document "Sans titre-3"
    I'm on Snow Leopard 10.6.2 and use ID CS4 v6
    Cheers
    -Emmanuel

  • Win2008 64Bit Collection Error "Result has Repeating Key Value" On Host Per

    Win2008 64Bit Collection Error "Result has Repeating Key Value" On Host Performance Tab [ID 864908.1]      
         Modified 29-JUL-2009 Type PROBLEM Status MODERATED      
    In this Document
    Symptoms
    Cause
    Solution
    References
    This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process, and therefore has not been subject to an independent technical review.
    Applies to:
    Enterprise Manager Grid Control - Version: 10.2.0.5
    Microsoft Windows Server 2008 x64 (AMD64/EM64T)
    Symptoms
    OMS: 10.2.0.5
    Target Agent: 10.2.0.5 Windows 2008 Standard Edition Service Pack 1 64-bit
    Happens for all Windows 2008 64-bit hosts with SAN drives using multipathing.
    When accessing the Host > Performance tab on Windows 2008 64-bit host, get a Metric Collection Error:
    Exception: oracle.sysman.emSDK.emd.comm.MetricGetException: Result has repeating key value on
    drive 0: for diskactivity metric
    emagent.trc shows:
    2009-06-19 11:19:06,125 Thread-6736 ERROR engine:
    [host, <hostname>,Load] : nmeegd_GetMetricData failed : Result has repeating key value : 0 C: U: C: U:
    Collection Error:
    Error getting data for target <hostname>. Exception:
    oracle.sysman.emSDK.emd.comm.MetricGetException: Result has repeating key value : 0 C: U: C: U:
    Switching to the last 24 hrs view.
    Cause
    Microsoft issue with Windows 2008 64-bit and SAN multipath.
    Bug 8214155: ERROR RESULT HAS REPEATING KEY VALUE: <DISK DRIVES> ON DBCONSOLE
    Solution
    Contact Microsoft Support to fix the issue in Performance Monitor's PhysicalDisk object counter since "nmupm diskactivity" gets the information from the PhysicalDisk object counter.
    References:
    http://technet.microsoft.com/en-us/library/cc768048.aspx
    http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/pree_exa_swlz.mspx?mfr=true
    References
    BUG:8214155 - ERROR RESULT HAS REPEATING KEY VALUE: ON DBCONSOLE
    This bug I found on Metalink but no workaround available. I've got the same problem everytime I view performance tab on Microsoft Windows 2008 x64. Does anyone know how to solve it?

    from the emoms.log
    2009-12-08 14:25:09,171 [EMUI_14_25_05_/console/monitoring/hostSummary$pageType=current$ctxType=Hosts$selTab=1$target=CITIZEN02$type=host] ERROR host.HostSummaryDataObject getHostSummary.1215 - Result has repeating key value : 0 C: D: C: D:
    oracle.sysman.emSDK.emd.comm.MetricGetException: Result has repeating key value : 0 C: D: C: D:
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
         at java.lang.Class.newInstance0(Class.java:308)
         at java.lang.Class.newInstance(Class.java:261)
         at oracle.sysman.emSDK.xml.DelegatingHandler.getObjForTag(DelegatingHandler.java:121)
         at oracle.sysman.emSDK.xml.DelegatingHandler.startElement(DelegatingHandler.java:170)
         at org.xml.sax.helpers.ParserAdapter.startElement(ParserAdapter.java:597)
         at oracle.xml.parser.v2.XMLContentHandler.startElement(XMLContentHandler.java:180)
         at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1227)
         at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:314)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:281)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:195)
         at org.xml.sax.helpers.ParserAdapter.parse(ParserAdapter.java:431)
         at oracle.sysman.emSDK.xml.DelegatingHandler.parseObj(DelegatingHandler.java:296)
         at oracle.sysman.emSDK.emd.comm.EMDClient.parseStreamResponseContents(EMDClient.java:2883)
         at oracle.sysman.emSDK.emd.comm.EMDClient.parseResponseStream(EMDClient.java:2805)
         at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest_(EMDClient.java:2516)
         at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest_(EMDClient.java:2450)
         at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest(EMDClient.java:2367)
         at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest(EMDClient.java:2352)
         at oracle.sysman.emSDK.emd.comm.EMDClient.getMetrics(EMDClient.java:1120)
         at oracle.sysman.eml.mntr.host.HostSummaryDataObject.getHostSummary(HostSummaryDataObject.java:813)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at oracle.cabo.ui.data.provider.MethodDataProvider.getDataObject(Unknown Source)
         at oracle.cabo.ui.data.provider.TableDataProvider.getDataObject(Unknown Source)
         at oracle.cabo.ui.data.provider.CachingDataProvider.getDataObject(Unknown Source)
         at oracle.cabo.ui.data.provider.DataProviderStack.getDataObject(Unknown Source)
         at oracle.cabo.ui.LogicalNodeRenderingContext.getDataObject(Unknown Source)
         at oracle.cabo.ui.RootRenderingContext.getDataObject(Unknown Source)
         at oracle.cabo.ui.LogicalNodeRenderingContext.getDataObject(Unknown Source)
         at oracle.cabo.ui.RootRenderingContext.getDataObject(Unknown Source)
         at oracle.cabo.ui.data.DataBoundValue.getValue(Unknown Source)
         at oracle.cabo.ui.BaseUINode.getAttributeValueImpl(Unknown Source)
         at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
         at oracle.cabo.ui.laf.base.TextRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.DataScopeRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(Unknown Source)
         at oracle.cabo.servlet.AbstractPageBroker.renderPage(Unknown Source)
         at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
         at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
         at oracle.sysman.emSDK.svlt.EMServlet.doGet(EMServlet.java:368)
         at oracle.sysman.eml.app.Console.doGet(Console.java:304)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:265)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
         at oracle.sysman.eml.app.BrowserVersionFilter.doFilter(BrowserVersionFilter.java:122)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
         at oracle.sysman.emSDK.svlt.EMRedirectFilter.doFilter(EMRedirectFilter.java:102)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
         at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:369)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:670)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:341)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:816)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:231)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:136)
         at

  • Connecting two 5k's together

    Hi,
    How do we best connect our two 5596's together for redundancy and multipathing, both physically and configuration-wise?  I see information about vPC's in the manuals, but I'm not sure if this is really what we need to do.  We have a simple design--just servers connecting to the 5596's via fc, then the 5596's connecting to our storage via fc.  Thanks!

    If you are using these for FC SAN connectivity and no Ethernet then you do not need vPC as it is for providing Ethernet port channels across 2 switches.
    For FC only you would treat them just like MDS switches. You will not connect them together and each should be in their own VSAN.
    The SAN will connect to both and your servers will connect to both.
    Your servers will need SAN multipathing software to provide load balancing and redundancy

  • Explanation/help needed

    Hi everyone,
    I need some help about VSAN/VLAN configuration in UCS 2.0 (1s).
    Previosly i used to create VLAN dedicated to FCoE traffic, and then create VSAN and map it to previosly defined VLAN to carry trafic. And that works just like it should.
    This morning i have upgraded one UCS to 2.0 (1s)
    And errors with vsan/vlan configuration begins.
    Before update i had created vlans 40 and 41 dedicated to fcoe, and two vsans 10 (mapped to 40) and 20 (mapped to 41).
    Erros were as follows :
    <faultInst
    ack="no"
    cause="vlan-misconfigured"
    changeSet=""
    code="F0833"
    created="2011-11-23T12:19:34"
    descr="VLAN default is error-misconfigured because of conflicting vlan-id with an fcoe-vlan"
    dn="fabric/lan/net-default/fault-F0833"
    highestSeverity="critical"
    Code : F0833

    What type of FC switch are the Fabric Interconnects uplinked to? If it is not Cisco then you can create a new VSAN for Fabric A and then change the uplinks and vHBAs in Fabric A to this new VSAN. After Fabric A is done do Fabric B to a different VSAN/FCoE vlan. As long as host SAN multipathing is configured properly then there shouldn't be an outage.
    If the uplink switch is Cisco then you will need to take an outage because if you change the FCoE VLAN the vHBAs will logout of both FC fabrics and then log back in. This should only take about 30 seconds though.
    The other way is to change each Cisco FC switch to something besides VSAN 1, this can be easily scirpted with a very minor outage and can be done one fabric at a time. VSAN 1 should never be used for production hosts/storage. It is as bad as using VLAN 1 on the Ethernet side.
    If your northbound switch isn't Cisco you can do this one Fabric at a time. As long as host multipathing is configured properly then there will not be an outage.
    Create a new VSAN for Fabric A
    VSAN 20 - FCoE VLAN 920 (make sure this vlan isn't in use, if it is use another non existent VLAN)
    For Fabric B
    VSAN 40 - FCoE VLAN 940 (make sure this vlan isn't in use, if it is use another non existent VLAN)

  • Booting OVM server from multipath SAN

    Hi,
    I read in the release notes of OVM 3.0.3 that "booting from multipath SAN is not supported". I have a limitation that forces me to use SAN boot.
    What is the best practise?
    1. Go for local disks for OVM server
    or
    2. Is there a workaround which will enable use of device-mapper multipathing.
    Thanks in advance.

    Local disks on the servers.

  • About to install FCS2... sans leopard.  OSX suggestions?

    I'm about to install FCS2. I have avoided installing Leopard on this machine until things have settled down a bit. I was hoping for any suggestions about which OS seems to have been the most stable for other users. I'm going to wipe the box and do a clean install; hold it to QT 7.2.

    I have a Dual 2.0Ghz PowerPC Mac running MacOSX 10.4.11 and FCS 2 with nary a hiccup. Smooth as silk. On another drive I have FCS 1 running under 10.4.10...just fine.
    I am getting a new MacPro soon. And on it I will run Tiger and FCS 2. Now, this was going to be the NEW MacPros that they announced before MacWorld, but I found that those machine come loaded with Leopard, and will not take a Tiger install. And Apple recommends against installing previous OS versions on new machines. So since the machine I need to buy will be a production machine on a Tiger SAN network (yes, I know that the N in SAN stands for Network...shut it) so I needed a Tiger machine. I'm not ready to try a production machine on Leopard yet.
    ANYWAY...FCS 1 originally came as FCP 5...powerPC only. Then the Universal Crossgrade came out where you had to send in your install disks, so you would then have a version of FCS that worked on the Intel machines. FCS 2 is still a Crossgrade...works on PowerPCs and Intels.
    Shane

  • OS X Leopard does not support SAN

    Leopard has a problem with many SAN devices. If you ever eject a mounted network disk, it will never ever come back. Rebooting the machine, the network and the device will not help. It's gone forever.

    If the server doesn't appear in the sidebar of the Finder, press Command-K to open the "Connect to Server..." dialog or select it from the "Go" menu.
    You may also want to look at: Finder > Preferences > Sidebar and make sure "Connected Servers" and "Bonjour Computers" are selected.
    Personally I have no problems connecting to any server or network volume.

  • Sans Digital Drives with Snow Leopard-Anyone??

    Hey Anyone using Sans Digital drives (USB) with Macbook pro and Snow Lep.
    USB drive is crashing my system as soon as I plug it in
    Any Help???
    Matt

    Sans Digital has not tested these drives with SL-every time I call them-they think their drives just should automatically work -oh well
    Well what is happening with my drives is- I have a Sans Drive that has 2 HD in it -when they are running separate they will mount fine by USB= once I go to disc utility to rad them together in a mirror raid --once the OS mounts them -SL crashes and here comes the grey screen.
    Anyone having issues with the raid control in SL --I had these problems with reg leopard as well but I guess with updates it turned out working just fine .
    Matt

  • Image Capture, twain sane interface, and Snow Leopard compatibility?

    I have downloaded and installed Mattius Ellert's twain sane interface in order to be able to use an old scanner. In order to use it with Image Capture, Ellert's FAQ page describes a procedure for selecting the twain sane interface GUI over the native GUI. However this procedure fails in Snow Leopard; I seem to have no choice but to run the native GUI, with extremely limited functionality. The twain sane interface GUI is still there and still works; it is what comes up if I scan from Microsoft Word or Graphic Convertor. But I would like it to work with Image Capture and related Apple software (preview and the print/fax control panel). Does anyone know of a procedure to do so?
    Also does anyone know where this GUI actually lives on the computer? I examined the installed file locations specified in twain-sane interface's bom file, and just found a bunch of .strings and plist files in Image Capture/TWAIN Data Source/Sane.ds/Contents/Resources, plus one file under ....Sne.ds/Contents/MacOS called SANE.

    Ronald,
    The reason you are not seeing this device in Image Capture after installing the TWAIN/SANE stuff is because Apple removed the TWAIN interfaces from Image Capture in Snow Leopard. TWAIN is being deprecated on the Mac. What someone needs to do is develop an ICA/SANE bridge and then Image Capture would work again.
    Just trying to help.
    Andrew

  • Need Update All MACS to Leopard . SAN Questions

    Good day. We get Final Cut Server , and now we need to update all Macs for 10.5.0 . Sow i have question , Can i do it without back up , or i need to back up all date first . And also what steps i need to do. Did i need to update Metadate Controller PC or i can update only users Macs.
    Did some body try it . I have footage on Raid and have no time to back up it
    Thanks.

    I thought only the machine running Final Cut Server has to be Leopard; are you sure you need to update any of the others? If you are on Xsan 1.4.2 you should be fine with Leopard and Tiger clients on the SAN.
    The manual says
    You can run Final Cut Server clients on the following computers and operating systems:
    Any computers with Mac OS X v10.4 or later installed
    Any computers with Microsoft Windows XP or Windows Vista installed

Maybe you are looking for