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