Transcript Slide 1
Running Third Party Applications on
OpenServer 6
Richard Harry
Director, UNIX® Engineering
John Wolfe
Senior Software Engineer
Agenda
In this session we will cover:
Benefits of Migration to OpenServer 6
Hardware System Requirements
ISL issues and debugging
Migrating Third Party Apps to OpenServer 6
Debugging Post-ISL
Examples of Customer Application Migration
How to Get Some Assistance
Reasons to Deploy OpenServer 6
Benefits
Better performance than on OpenServer 5 on
identical hardware.
Better OS support for current available
commodity hardware.
High(er) Mean Time Between Failure (MTBF)
OpenServer 6 Technical Overview
Features new to OpenServer 6 [1]:
New SVR5 Kernel that delivers [1]:
Advanced fine grained locking to scale up to 16 CPUs
(OSR507=4)
Support for up to 16GB General Purpose Memory (OSR5=4GB)
Support via PSE for up to 64GB using shm/dshm
Large File Support up to 1Tb (OSR507 = 2GB)
Improved Disk I/O Performance
Improved Network Stack Performance
Improved SMP and Load Balancing
Kernel Threads
Dynamically Loadable Modules
Hyperthreading and Dual-Core
OpenServer 6 Technical Overview
Features new to OpenServer 6 [2]:
New SVR5 Kernel that delivers [2]:
Dynamic Add Memory Support
Hot Plug CPU
Hot Plug PCIx
Hot Plug of Disk, Tape and CD/DVD Devices
Veritas Journalling Filesystem
Encrypted Filesystem support
IPsec and VPN
MPIO
NIC Failover
Automatic Tuning at boot time
SAN Support (MSA500, MSA1000, MSA1500)
OpenServer 6 Technical Overview
Features new to OpenServer 6 [3]:
New SVR5 Kernel that delivers [3]:
Serial ATA HBA Support (ahci driver)
Serial Attached SCSI HBA Support (hpsas, adp94xx driver)
- LSI coming
Fiberchannel HBA Support (Qlogic qlc2300 HBA)
Prism II Wireless Nic Support (pcpms driver)
Centrino™ Wireless Nic Support
Improved AIO (not compatible with OpenServer 5 AIO)
AC97 support for i845 chipset for applications that do not
expect opensound driver.
OpenServer 6 Technical Overview
Features new to OpenServer 6 [4]:
Media Less Boot and Network Install (PXE boot)
Emergency Recovery CD
KDE Desktop Release 3.3
Ericom PowerTermTM WebConnect Server
X.org X11R6 X Server with
Greater device support, Improved performance and Multi-head
support
DocView support the Print Book Option in Postscript
and PDF format
DocView content changed from Book to Topic
format
OpenServer 6 Technical Overview
Features new to OpenServer 6 [5]:
Single Certification of Applications
SCOAdmin FTP Manager
SCOAdmin Hot Plug Manager
SCOAdmin Printer Manager can invoke CUPS Admin
Heimdal Kerberos 0.6.2Ib
tcpdump
Extended Shells (bash, zsh and tcsh)
foomatic, ghostscript and hpijs
vim and xpdf
Hardware System Requirements
System Requirements
Hardware
Minimum Recommended
Maximum
CPU
Pentium
Pentium P4
32 CPUs
Memory
64Mb
256Mb
16GB/64GB
Disk Space
1GB
4GB
HBA
IDE
SCSI or SATA
HBA
Dependent
32
System Requirements – cont.
CPU can be an:
Intel® Celeron®, Pentium®, Pentium II, Pentium II Xeon™,
Pentium III, Pentium III Xeon, Pentium 4, or Intel Xeon
microprocessor, or a microprocessor that is 100% compatible
(e.g., AMD Athlon™, Athlon 64, Duron™, Sempron™, or
Opteron™ processor)
Bootable CDROM, PXE NIC or Floppy
Video Capable of SVGA
PS/2, Serial, Bus or USB Mouse
USB or PS/2 keyboard
PCI, ISA, PCcard or Wireless Network Card
ISL – Issues and Debugging
ISL - Overview
Understand the hardware specs of the system
you are trying to deploy:
Has this system been certified by the OEM on
OSR6?
Check http://www.sco.com/chwp
Will I need an HBA diskette/CD during install?
Is my network card supported?
Does X.org support my graphics chipset?
How much disk space do I need?
How do I want to layout my partitions and slices?
What software do I want installed?
ISL – Debugging
During ISL you can use the console to debug issues:
Press “Alt-SysReq-H” or “Alt-Cntrl-H” to enter the console
Press “Alt-SysReq-F1” or “Alt-Cntrl-F1” to proceed with ISL
Access to the resmgr
Access to ISL scripts in /isl/ui_modules
Record any console messages when reporting a problem
IVAR_DEBUG_ALL=1
Enables ISL logging
Log files are dumped in /tmp/log
Transfer logs to a floppy disk using cpio:
“find /tmp/log/* | cpio –oc –O /dev/dsk/f03ht”
“cpio –ic –I /dev/dsk/f03ht”
ISL – Common Pitfalls
Root HBA not found after the DCU runs
Do you need a third-party diskette?
Are you using software based RAID?
Do you have valid media?
Did your USB floppy get recognized properly?
If you have very new hardware, try using the DCU
to bind the driver to the HBA instance manually
Press “F8” to run the DCU
Go into “Hardware Device Configuration”
Press “F2” under “Device Name” and select appropriate driver
NOTE: If hardware is not supported, could result in panic!
ISL – Common Pitfalls
My NIC is not auto-detected
Is there a driver available on the OEM website for
SCO?
(e.g. Marvell Yukon)
If the NIC is a newer version of an existing chipset,
it could be a board id issue?
“resmgr | grep 0002”
If you need a third-party driver, defer network
install, install third-party driver package after ISL
completes, and use SCOadmin Network to
configure card
ISL – Common Pitfalls
PANIC: vfs_mountroot() failure
This panic occurs when the kernel loads but the
root disk is not detected
Check to see you installed to the right disk!
During ISL you can “Select alternate root disk” during the
“Setting up your hard disks” screen.
Make sure the BIOS boot order is setup properly
Make sure the BIOS enumerated the disk properly
ISL – Common Pitfalls
Screen goes blank after ISL kernel initially
loads
Does your graphics chipset support VESA mode?
USE_VESA_BIOS=Y
Tells the kernel to use standard VESA BIOS calls instead of
relying on the ECM tables on the card
Cards that use system memory for the framebuffer
can cause issues (e.g. Intel Extreme Graphics
chipsets)
Most modern graphic chipsets are supported by ISL
Common Hardware Issues
Commands timing out or hang right after
copyright displayed
Interrupt Routing
PnP OS set to NO in the BIOS
PANIC very early during ISL
MPS table issue
PSM=atup or ACPI=y
Default PSM in OSR 6 is MPS
MPS tables are broken on some newer hardware
Common Hardware Issues
What about multi-core CPUs?
Multi-core CPUs require ACPI which is not in the
mini-kernel during ISL
ISL using atup, add latest maintenance pack, rebuild, reboot.
OSR6 will see multi-core CPUs (NOTE: Intel dual-core is in MP1)
PSM=atup
ENABLE_JT=Y (to turn on logical processors)
MULTICORE=N (to turn off physical processors MP1)
psradm/psrinfo (to get status and turn on individual processors)
Common Hardware Issues
Root filesystem is left dirty on a soft reboot
BIOS Power Management settings
Turn off aggressive power management in BIOS
OSR6 has the Intel ACPI-CA but does not use it for power management
yet
Check battery on RAID adapter
Check firmware revision
OEMs typically broadcast firmware revisions on their website
Flashing firmware
Check driver version – IHVVERSION field
http://www.sco.com/support/download.html
Check target
Look for CHECK CONDITIONS and other messages in osmlog
Common Hardware Issues
Useful BOOT PARAMETERS:
ATAPI_DMA_DISABLE
ACPI
ENABLE_JT
PSM
IVAR_DEBUG_ALL
MULTICORE (MP1)
SHOW
BOOTPROG
Third Party Application Issues & Configuration
General Issues – Third Party Applications
Install, start-up or runtime checks for
OpenServer 5 release or version
Uses OSR 5 native Development System
/usr/include, /usr/lib, and /usr/ccs/bin is the SVR5
ABI compilation system
/osr5/usr/include, /osr5/usr/lib, /osr5/usr/ccs/bin
provide OSR5 ABI compilation system
Uses the kernel compilation tools - /bin/id??
Idtools have changed and are SVR5 ABI compatible
General Issues – cont.
Application depends on “scoansi” console
terminal setting.
“scoansi” does not seem to be supported on
OpenServer 6?
Data / File migration
What is the “preferred” method to move files from
OpenServer 5 to OpenServer 6?
OpenServer 5 kernel drivers will not work on
OpenServer 6
Changes – Large File Support
Only supported on the VxFS filesystem
Enabled by default
Commands that are Large File Aware:
cat(1), du(1), pathchk(1), chgrp(1), ff(1M)
pax(1), chmod(1), find(1), pwd(1), chown(1)
fsck(1M), cksum(1), fsdb(1M), rm(1)
cmp(1), ln(1), rmdir(1), compress(1), ls(C), sum(1)
cp(1), mkdir(1), rcp(1), touch(1), cpio(1), mkfs(1M), ulimit(1)
dd(1M), mv(1), uncompress(1), df(1M), ncheck(1M), zcat(1)
cpio(C)
All except cpio(C) and ls(C) are found in /u95/bin
shell support for LFS only in bash, zsh etc.. not sh, ksh
Changes – Commands
OSR6 distributes basic system commands into three
main directories:
/bin
commands inherited from OSR5
/u95/bin
commands that conform to the UNIX95
standard, including LFS support
/udk/bin
commands inherited from UW7
For different behaviors, set your PATH as follows:
/bin
Traditional OSR5 user
/u95/bin:bin
OSR5 user who wants LFS support
/udk/bin:/u95/bin:/bin User running UW7 apps
SCOMPAT
SCOMPAT environment variable
Alters /bin/uname command –r, -v and -s output
Effects current process and children
SCOMPAT=<release>:<version>:<system>
export SCOMPAT
Add to start-up script if needed to start or during
running
SCOMPAT=3.2:5.0.7:SCO_SV
chsysinfo
/usr/sbin/chsysinfo [osr5 | osr6 | uw7 | ou8 | default]
Only as root
More pervasive than SCOMPAT
Changes system name, version and release in
kernel – uname(), sysinfo() and confstr()
Effect is system-wide – all applications running or
subsequently started.
Lasts until reboot or reset
Use “chsysinfo -default ” to restore the default
settings
Running XENIX Binaries
XEMUL_OSR5=1; export XEMUL_OSR5
Enables OpenServer 5.0.x XENIX emulation
behavior, including:
Allow minor buffer overruns.
Allows occasional accidental reuse of freed memory.
TERM=ansi; export TERM
Changes – Console
Console termtype has changed from scoansi to
ansi (MP2)
Applications with “hard wired” scoansi escape
sequences will not work directly on the OSR6
console (but will work in a scoterm or remote
login from an OSR5 system)
Applications that use terminfo/termcap will
work just fine
Data File Migration – Third Party Apps
BACKUP all relevant data files !!!!
Use you favorite file transfer method:
cpio, tar, NFS, commercial backup solution.
Move to journaling vxfs filesystem (default) of OSR 6
Move your OpenServer 5 data disks to the
OpenServer 6 system.
Migrating User Data – Mount OSR5 disk
To mount an existing OSR5 disk (5.0.6 or 5.0.7
only), you must first install the wd Supplement
on the OSR5 system
Connect the drive to the OSR6 system
After booting, login as root and run the
command getlclfsdev to determine the
/dev/dsk device nodes for the filesystems on
the disk
Use the Filesystem Manager to mount the
filesystems
Debugging Third Party Applications
Collecting enough information so that SCO
engineers can provide some assistance
TRUSS – trace system calls & signals
OpenServer 6 system call trace
SVR5 based
Similar to, but better than OpenServer 5 “trace”
Works on stripped binaries
Displays I/O buffer contents – default 32 bytes
Selective include or exclude system calls, signals or machine
faults.
Options
-f
follow all children of this process
-o <outfile>
directs truss output to <outfile>
truss -f -o truss.out <my_app_or_script>
Problems Running a XENIX Application
Collect XENIX Emulation Trace information.
XEMUL_TRACE=1; export XEMUL_TRACE
Run the application
Collect trace file – xtrace.<pid>
Collect trace of system calls and signals
truss -f -o truss.out <application>
Compress and email to [email protected] with
specific details
Core files
COREFILE_PIDS – kernel tuneable
=0
Produces a single “core” file in a directory
Existing “core” file suppresses subsequent core dumps in that
directory
=1
Produces core files with name of “core.<pid>”
SCORLIM & HCORLIM
Soft and hard core size limits - kernel tuneables
Value are in number of bytes
User control
Ulimit –c <value expressed 500K byte blocks>
Tunables
SVR5 auto tunes many tunables
Do not blindly import OSR5 tuning
e.g. buffer cache on SVR5 is used for meta data
only. There should be no need to tune NBUF,
NHBUF, NMPBUF. In SVR5 all GP memory can act as
a cache for file pages. Increasing the buffer cache
actually reduces memory available for file pages.
http://osr600doc.sco.com/en/SM_perform/osr507ke
rntuns.html for further information
Large files need process limits raised
Examples
FoxPro 2.6 for UNIX on OpenServer 6.0.0
Essentially, it just runs.
Copy application programs, scripts and data
files to OSR 6.
cpio, tar, …
Add XEMUL_OSR5=1 environment variable to
the “fox” or “foxbase” script
Frank Quirk – AccountiX, Inc.
[email protected]
Informix SE 7.23 & Informix 4GL 7.20
Database portion just works.
4GL needs OSR5 ABI runtime and DevSys
Prefix you PATH setting with /OSR5/bin
PATH=/osr5/bin:$PATH; export PATH
$INFORMIXDIR/bin/c4gl script checks for
networking runtime – changed.
OSR5 based runtime in /osr5/usr/lib
Networking library only available as shared object.
Informix SE 7.23 & Informix 4GL 7.20 – cont.
Modify the c4gl script:
Change line
from: TLILIB=/usr/lib/libnsl_s.a
to:
TLILIB=/osr5/usr/lib/libnsl.so
Modify link command option
from: -lnsl_s
to:
-lnsl
Convert object files and archives from COFF to
ELF
cof2elf command
Oracle 7.1.6 on OpenServer 6.0.0
XENIX ODT 3.2 release
Oracle patch for installing on OSR 5
OSR 5 C runtime as special static archives
Modified makefiles & scripts
Used kernel build tools
Link against “special” OSR5 runtime
cdlink - create disk image of product CD
Patches overlayed onto disk image
Installation done from the disk image
Oracle 7.1.6 on OpenServer 6.0.0 – cont.
Revised patch for installing on OSR 6
New cdlink binary
Revised Patch file
Makefiles & scripts updated to:
Use OSR5 ABI compiler and linker.
Convert existing COFF object files & archives to ELF at time of
first usage.
Updated Oracle C runtime
Added new string function used by OSR6 network libraries.
Create /bin/idar
ln –s /bin/ar /bin/idar
Publicly available TA - soon
Oracle 7.3.x on OpenServer 6.0.0
Required native OSR5 development system.
Prototyped OSR 6 set of patches
Makefiles & scripts modified to:
Use OSR5 ABI compilation system
OSR5 ANSI Std C++ available
All installed COFF object files and archives are converted to
ELF
Verified by customer with copied $ORACLE_HOME
OSR5 post_wait driver - /dev/sleeper prototype for OSR 6
Developing “patched” install
cdlink – create disk image of product CD
Modified wgstart – patch image, install, run cof2elf conversion
Expect as publicly available TA
Available Support Resources
OpenServer 6 Support Resources
Porting Guide:
http://www.sco.com/support/docs/openserver/600/
porting/osr6portingTOC.html
Upgrade Guide:
http://www.sco.com/support/docs/openserver/600/
upgrade/index.html
Knowledge base:
http://wdb1.sco.com/kb/search
Online Documentation and Late News
http://www.sco.com/support/docs/openserver/
OpenServer 6 Support Resources
Support Download Page for OpenServer 6:
http://www.sco.com/support/update/download/pro
duct.php?pfid=12&prid=20
SCO “Legend” Mailing List:
Public
[email protected]
Porting/Migration Alias:
[email protected]
Certified and Compatible Hardware
http://www.sco.com/chwp
Questions and Answers